打造高效的跨平台的OpenOffice.org开发环境之二--Emacs 24的编译与安装

[内容提要] 本文主要说明怎样获取emacs的最新源代码,emacs的编译环境,在不同平台(Ubuntu & Windows)从最新的源码编译与安装emacs的过程与步骤;以及插件cedet、ecb、cscope、jde编译安装过程。重点讲述windows下的编译环境配置。

我们要想在开发优秀的软件,必须要有优秀的开发工具。想必国人用windows习惯了,不用说首选必是MS visual studio,可以非常方便的开发自己的项目,但是只能在windows下使用。如果你的项目代码是跨平台的,vs将无武之地。Emacs是最古老的编辑器,也是世界上最强大的IDE。像OpenOffice.org这样大型跨平台的包括C++/C、JAVA、python、C#、甚至VBA多语言编译的项目,正是emacs显示其强大功能,无所不包的地方。

正所谓“工欲善其事,必先利其器”,我们如何利用和改造emacs,使之成为我们开发的利器。本篇是打造高效的跨平台的OpenOffice.org开发环境系列之一--Emacs 24 的编译与安装,讲述如何从源代码编译安装emacs,重点讲述windows xp使用mingw编译emacs24的环境配置和所需的附加组件,以及插件编译安装。

  1. 获得emacs源码

由于Emacs开发团队把版本控制系统从CVS转换为Bazzar,因此,这里我们以ubuntu和winodows xp 如何获取gnu emacs源码。

Ubuntu Lucid

安装 Bazaar

下面的安装命令为你安装bazaar 和相关依赖软件。
$ sudo apt-get install bzr

从仓库检出代码
$ cd ~
$ bzr branch http://bzr.savannah.gnu.org/r/emacs/trunk emacsrc

windows xp

如果你的windows系统安装了python2.6, 从下载地址:http://launchpad.net/bzr/2.1/2.1.1/+download/bzr-2.1.1.win32-py2.6.exe 下载bazaar for python,或者包括全部依赖组件的安装文件:http://launchpad.net/bzr/2.1/2.1.1/+download/bzr-2.1.1-setup.exe 。详细安装过程请参考[3.]
检出代码同ubuntu。
当然你希望在linux和windows 下使用同一份源代码,关于使用相同源代码请参考本文emacs 编译部分的说明。

更新源码

如果你要更新emacs到最新代码,只需在emacs检出代码目录下用以下命令即可:
bzr pull 

在更新到最新版本,你可以看到emacs的版本信息,如下所示:
:/developdir/emacsrc$ bzr pull
Using saved parent location: http://bzr.savannah.gnu.org/r/emacs/trunk/
+N admin/unidata/BidiMirroring.txt
...
M test/ChangeLog
All changes applied successfully.
Now on revision 100623.

[注:]由于trunk分支在不断更新中,有可能你下的那个revision编译有些问题,解决办法:一是回滚到以前某个revision,版本100434在windows 和ubuntu 下编译通过;二是等再下一个revision。

编译emacs之前的准备

请仔细阅读emacsrc 目录下的INSTALL && INSTALL.BZR 文件,一般你只需按照上面说的做就可以编译安装emacs了。

Ubuntu Lucid

在ubuntu编译emacs非常简单,用apt-get即可简单完成emacs编译环境的构建。

$ sudo apt-get install build-essential
$ sudo apt-get build-dep emacs23

windows xp

在windows使用MinGW来编译emacs。

  1. MinGW/MSYS编译环境

安装MinGW 5.1.6 和MSYS基本系统(1.0.14.1)、binutils、gcc4.4.0 、w32api。

  1. MinGW 安装

安装mingw5.1.6 ,安装目录在c:/mingw,如果安装在其他目录,注意msys的环境中要一致。

  1. 基本安装

直接将msysCORE-1.0.11-bin.tar.gz解压到c:/msys/1.0目录下。或使用msys安装向导(MSYS-1.0.11.exe) 安装,

编辑 "C:/msys/1.0/etc/fstab" 文件, 注意用 'LF 行结束符。得到如下形式:

c:/mingw /mingw

  1. 更新MSYSCORE 到1.0.14

  2. 安装MSys Developer Tooltkit

下载:http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe。安装在目录 C:/msys/1.0 下

  1. AutoTools in MSYS

更新 autoconf, automake and libtool 记住解压到 C:/Msys/1.0

  1. gcc 4.4.0 安装

使用sf网站的GCC 4.4.0, 下载地址: http://sourceforge.net/projects/mingw/files/GCC%20Version%204/Current%20Release_%20gcc-4.4.0/gcc-full-4.4.0-mingw32-bin-2.tar.lzma/download 注意libtools工具有一个bug,使用文本编辑器编辑 MinGW/lib/gcc/mingw32/4.4.0/libstdc++.la文件(line should be library_names='')

  1. Emacs 图形支持库

如果想要编译的emacs能够显示jpeg,tiff,gif,svg,xpm等格式的文件,或是想有一个漂亮的工具栏,那么就需要编译支持图形库的emacs。把需要的图形库头文件放在nt/inc目录下或是其他地方,然后把其路径使用-I包含进来,并把他们的dll文件与编译后的emacs放在一起。所有的图形库可以去http://gnuwin32.sourceforge.net/ 下载,包括: jpeg-dev_8-1_win32.zip、jpeg_8-1_win32.zip、libpng-dev_1.4.0-1_win32.zip、libpng_1.4.0-1_win32.zip、librsvg-dev_2.26.2-1_win32.zip、librsvg_2.26.2-1_win32.zip、libtiff-dev_3.9.1-2_win32.zip、libtiff_3.9.1-2_win32.zip、xpm-nox-4.2.0-lib.zip、xpm-nox-4.2.0-bin.zip、xpm-nox-4.2.0-dep.zip

详见《构建MSYS--GCC4.4.0编译环境》

  1. makeinfo环境

下载MiKTeX 2.8,并安装。下载地址: http://ftp.ctex.org/mirrors/CTAN/systems/win32/miktex/setup/basic-miktex-2.8.3761.exe 在编译插件时加入miktex的路径。

@panshi /d/SoftEnv/emacs240/site-lisp/elib
$ export PATH=$PATH:/d/SoftEnv/emacs240/bin
@panshi /d/SoftEnv/emacs240/site-lisp/elib
$ export PATH=/e/SoftEnv/MiKTeX/ 2.8/miktex/bin:$PATH

编译与安装emacs

环境配置好了,接下来的编译安装就很简单了。

Ubuntu Lucid

配置:
./configure --prefix=/opt/emacs240 CPPFLAGS="-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0"

编译与安装:
运行以下命令,即可在ubuntu系统上安装emacs,并且在开始面板菜单,应用程序->编程中看到emacs 了。

bzr pull
make bootstrap
cd lisp
make autoloads
cd ..
make
make dist
sudo make install

其中make dist 制作emacs source 发行包,在$emacsrc目录下生成emacs-$version将emacs源码打包,这样可以实现不同平台源码共用。

安装后运行效果图emacs24-run-20100421

windows xp

configure

emacs 需要在dos环境下进行configure,然后将makefle文件转换成unix形式。在 cmd shell 下执行如下命令
configure --with-gcc --no-cygwin --no-debug --with-svg --prefix d:/SoftEnv/emacs240 --cflags -ID:/SoftEnv/gtk+/include/gtk-2.0 --cflags -IC:/MinGW/include --cflags -IC:/msys/1.0/include --cflags -IC:/msys/1.0/local/include --cflags -ID:/SoftEnv/gtk+/include/glib-2.0 --cflags -ID:/SoftEnv/gtk+/lib/glib-2.0/include

dos2unix makefile

  1. 编译安装

在mingw下编译与linux一样。

bzr pull
make bootstrap
make info
cd lisp
make autoloads
cd ..
make install #将emacs安装在 d:/SoftEnv/emacs240目录下

  1. 增加对图像的支持

虽然我们在编译emacs时已经增加了对png、svg等图形的支持,但安装后的emacs找不到相关库文件的路径,最好将libtiff3.dll等exe、dll文件copy到安装目录的bin目录下。下面是是否有image支持的运行emacs开始界面的区别。

image image

  1. 注册 Emacs

    假定你安装emacs 的目录是d:/SoftEnv/emacs240。首先从emacs bin目录下运行addpm.exe。既可以双击运行该程序,或在cmd下运行。调用addmp.exe将在windows注册数据库创建一个键值,告诉emacs在那儿找到支持文件,并且在开始菜单中创建一个文件夹,和连接到runemacs.exe快捷方式。以后可以方便地运行emacs了。

  2.  

插件安装

 

Cscope安装

对于浏览源代码来说,在 Emacs 里面也有很多工具可用,比如自带的 etags 就不错,不过功能不如 Cscope 强大。它最初是由 Bell 实验室开发,并且多年以来一直是 AT&T Unix 商业发行版的一部分。它已经被用于管理超过两千万行代码的工程。本文主要讲述编译安装cscope,至于如何建索引,怎样使用cscope阅读代码,请参考《打造高效的跨平台的OpenOffice.org开发环境之三--Emacs定制与扩展》《打造高效的跨平台的OpenOffice.org开发环境之四--编辑与浏览OOo代码》

under unbuntu install cscope

a. download source :

使用wget下载已打包的cscope或直接从cscope cvs代码仓库checkout。

wget http://219.239.26.18/download/2367991/3051978/2/bz2/0/68/1261726543872_580/cscope-15.7a.tar.bz2

or:

cvs -d:pserver:anonymous@cscope.cvs.sourceforge.net:/cvsroot/cscope login
cvs -z3 -d:pserver:anonymous@cscope.cvs.sourceforge.net:/cvsroot/cscope co -P cscope

b. build && install cscope

# ./configure
# make
# sudo make install // 需要root权限

c. install cscope emacs plugins

cscope/contrib/xcscope/

cscope-indexer脚本位于/usr/bin目录下,xcscope.el被置于emacs默认的load-path

:/usr/local/bin$ sudo cp /media/develop/OpenSource/emacs/emacs_plugin/cscope/contrib/xcscope/cscope-indexer ./
:/usr/local/share/emacs$ ls ../../bin/

b2m cscope-indexer ebrowse emacs-24.0.50 etags ocs
cscope ctags emacs emacsclient grep-changelog rcs-checkin

$ sudo cp /media/develop/OpenSource/emacs/emacs_plugin/cscope/contrib/xcscope/xcscope.el /usr/share/emacs/site-lisp/

:/usr/local/share/emacs$ ls site-lisp/
cedet ecb elib jdee subdirs.el xcscope.el

d. 在~/.emacs.d/init.el文件中加入下面的语句。

;;cscope integration
(require 'xcscope)

至此,cscope安装完成,可以使用了。

Under Windows install cscope

windows下和linux类似,只是从源码编译安装很麻烦,就用编译好的cscope.exe sort.exe,将这两个文件以及 cscope-indexer文件copy到emacs bin目录下。同样cp xcscope.el 到 emace site-lisp目录。

 

CEDET安装

 

1、下载cedet的cvs版本
cvs -d:pserver:anonymous@cedet.cvs.sourceforge.net:/cvsroot/cedet login
cvs -z3 -d:pserver:anonymous@cedet.cvs.sourceforge.net:/cvsroot/cedet co -P cedet
2、编译

方法一:用emacs编译*.el ,不编译online help
../../bin/emacs -Q -l cedet-build.el -f cedet-build

在emacs中打开cedet-build.el文件,然后
M-x eval-buffer
M-x cedet-build-in-default-emacs
编译过程中如果发生超过emacs堆栈大小的错误,退出emacs再重新编译即可。

方法二:
cd cedet
touch `find . -name Makefile` (cvs版本不需要这个)
a) make

b) make EMACS=<your favorite emacs>

c) make MAKEINFO=/usr/local/bin/makeinfo

d) make MAKEINFO=echo
如果出现下面的错误请用d)来编译,或者修改错误文件。这个错误是由于文件格式不符合makeinfo要求。
/usr/local/share/emacs/site-lisp/cedet/eieio//eieio.texi:729: Cross 引用到不存在 Classes”(也许字段不正确?).
makeinfo:由于错误删除宏输出文件“/usr/local/share/emacs/site-lisp/cedet/eieio/eieio.info”;用 --force 保留宏输出。

如果编译过程中发生类似找不到loaddef文件,custom-autoload以及其他奇怪的错误,执行:
a) make clean-autoloads
b) make clean-all
然后再重新编译。编译错误还有可能是make版本引起的,请使用GNU make,或者使用windows下的安装方法。

3、简单配置:

;; Load CEDET
(load-file "E:/OOEnv/emacs240/site-lisp/cedet/common/cedet.el")

JDEE安装

 

JDEE 安装要求:

源码下载:

svn co https://jdee.svn.sourceforge.net/svnroot/jdee jdee

编译前的准备

Update the Emacs Lisp load path

编译jdee 需要speedbar, eieio, and semantic bovina 以及elib 包,在安装好以上包的同时,需要更新lisp加载路径,如下所示:

(add-to-list 'load-path (expand-file-name "E:/OOEnv/emacs240/site-lisp/cedet/semantic"))
(add-to-list 'load-path (expand-file-name "E:/OOEnv/emacs240/site-lisp/cedet/speedbar"))
(add-to-list 'load-path (expand-file-name "E:/OOEnv/emacs240/site-lisp/cedet/eieio"))
(add-to-list 'load-path (expand-file-name "E:/OOEnv/emacs240/site-lisp/jdee/lisp"))
(add-to-list 'load-path (expand-file-name "E:/OOEnv/emacs240/site-lisp/elib"))

Ensure that the JDEE is loaded at Emacs startup

(require 'jde)

 

编译步骤

Ubuntu:

1、配置java classpath

请参考: http://ant-contrib.sourceforge.net/#install

2、参照jde/doc/install.html的说明,创建供ant使用的文件:~/.jdee-config.properties ,内容如下所示:

cedet.dir=/usr/local/share/emacs/site-lisp/cedet
elib.dir=/usr/local/share/emacs/site-lisp/elib
prefix.dir=/usr/local/share/emacs/site-lisp/jde
build.bin.emacs=emacs
config.time=2010/05/22 02/:51

3、Configure and build with ant

修改 build.xml使之符合java antlr的要求,并和你的antlr.jar一致,由于release-info 编译通不过,又不影响使用,所以去掉 release-info的打包,下面的diff 是我的修改

==============================================================

--- build.xml (版本 239)

+++ build.xml (工作副本)

@@ -196,7 +196,7 @@

 

 

-

+

 

out="${build.release.properties.xml}"

style="${build.release.properties.xsl}">

@@ -245,7 +245,7 @@

windowtitle="JDEE ${project.version} Java API"/>

 

-

+

description="create the "source" distribution, which includes binaries, the docs, and the Java source">

 

:/developdir/emacsrc/site-lisp/jdee$ ant -p //查看ant 编译选项

ant clean-all
ant configure
ant build
ant bindist
ant install

如果install有错误,请编译好的dist下的jdee-2.4.1 copy到site-lisp目录下,并更名为jdee

ECB安装

 

安装要求:
  1. Emacs版本:要求 >= 21 。这个不成问题,我们使用的是24.0

  2. CEDET套件: 从 http://cedet.sourceforge.net可以得到,按照 http://cedet.sourceforge.net/setup.shtml 上面的说明安装好。Emacs 24.0 已经将cedet包含在内,如果你要使用最新的cedet,也可以将内嵌cedet 屏蔽掉。

  3. 对java 代码的可选项: 如果编辑java代码,希望ECB很好工作,最好安装JDEE 包 ( http://jdee.sourceforge.net) 。

简单配置:

;; Load ECB

(add-to-list 'load-path "E:/OOEnv/emacs240/site-lisp/ecb")

(require 'ecb)

(require 'ecb-autoloads) ;Fast loading

注意这个段要加在cedet配置的后面

linux 编译

修改Makefile 文件

CEDET=/usr/local/share/emacs/site-lisp/cedet

:/developdir/emacsrc/site-lisp/ecb$ make

:/developdir/emacsrc/site-lisp/ecb$ make all

如果在make 时出现以下错误:

...

Directories-window”(也许字段不正确?).texi:1497: Cross 引用到不存在的节点“ECB

Methods-window”(也许字段不正确?).ecb.texi:1193: Cross 引用到不存在的节点“ECB

edit-area”(也许字段不正确?).ecb//ecb.texi:975: Cross 引用到不存在的节点“The

/developdir/emacsrc/site-lisp/ecb//ecb.texi:112: Cross 引用到不存在的节点“Intera ECB commands”(也许字段不正确?).

makeinfo:由于错误删除宏输出文件“/developdir/emacsrc/site-lisp/ecb/html-help/index.html”;用 --force 保留宏输出。

mv: 无法 stat “html-help/index.html”: 没有那个文件或目录

make: *** [online-help] 错误 1

请在make 时使用参数如下,并安装好texinfo软件,错误大多是texi文件的格式问题,@变量定义不能跨行,错误修改方法是让@变量在一行内。这些错误不影响ecb的使用,只是online help不好使。

make ecb EMACS=emacs CEDET=/usr/local/share/emacs/site-lisp/cedet

 

总结

本文主要讲述emacs以及在openoffice.org开发中用到的需要编译的插件cedet、cscope、jde、ecb等在ubuntu、windows的编译与安装。详细说明不同平台下的环境配置,以及编译过程中出现问题时处理方法。至于如何定制与配置,将在另一篇文章中讲解。

进一步的工作,由于emacs在开发中,不断增加很多新特性和新功能,需要写一个包括源码下载编译,以及插件安装配置的脚本。

 

参考文献:

  1. Emacs Wiki http://www.emacswiki.org/
    BzrForEmacsDevs http://www.emacswiki.org/emacs/BzrForEmacsDevs
    Bazaar on Windows - Quick install guide http://wiki.bazaar.canonical.com/WindowsInstall
    compile-emacs-from-cvs-on-windows http://derekslager.com/blog/posts/2007/01/emacs-hack-3-compile-emacs-from-cvs-on-windows.ashx
    Building Emacs on MS Windows http://www.ourcomments.org/Emacs/w32-build-emacs.html
    Emacs 编辑环境 http://www.ibm.com/developerworks/cn/aix/lp/emacsnew.html
    Emacs中文网 http://emacser.com/
    cscope的主页: http://cscope.sourceforge.net/
    http://cedet.sourceforge.net/setup.shtml
    http://jdee.sourceforge.net/install.html
    http://ecb.sourceforge.net/docs/Install-and-first-steps.html#Install-and-first-steps
    http://emacser.com/install-cedet.htm

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值