• 11757阅读
  • 0回复

如何编译 CVS Emacs Native Windows (MinGW)[转贴] [复制链接]

上一主题 下一主题
离线XChinux
 

只看楼主 倒序阅读 楼主  发表于: 2005-07-30
源地址:http://www.eqiao.com/?p=89

作者:峨桥

如何编译 CVS Emacs Native Windows (MinGW)
现在Emacs/Gnus已经是我生活中不可缺少的内容,因为我的email阅读和新闻组浏览,都必须用它们。

长期以来,在windows下,我一直使用的是两种编译版本,一种是来自 http://www.crasseux.com/emacs/ (这可能也是最广为人知的版本),另一个就是 http://nqmacs.sf.net 的版本。通常我都是使用前者,但是由于更新非常慢,因此也使用后者。

后来觉得这样不爽,因为我属于那种喜欢活在剃刀边缘的,可是这两个维护者的更新速度太慢,于是决定还是自己编译。

既然自己编译,我当然希望加入更多的支持,特别是图像,我决定要加入所有的能够支持的格式。
通过综合在相关的新闻组获得的信息和一些有经验的朋友的帮忙,我终于完成了这一工作。考虑到可能会有很多朋友有同样的兴趣,需要做同样的事,因此我将详细步骤写出来,希望对需要的人有所帮助。

crasseux.com有编译说明,但是内容已经过时,而且不够详细,看完了还是不能完成编译工作的。因此建议大家不要浪费时间了。

1. Emacs CVS 代码的获得
我是通过安装 cygwin ,在其中使用 cvs 来获得代码的,当然也可以通过安装诸如 wincvs, tortoisecvs 之类的软件,不过总觉得这些不如 cygwin 下来的方便。
cvs代码获得的命令为:

$export CVS_RSH=”ssh”
$cvs -z3 -d:ext:anoncvs@savannah.gnu.org:/cvsroot/emacs co emacs

2. MinGW 安装
http://www.mingw.org 获得,实际上这个站点我无法访问,我是通过 http://sourceforge.net/projects/mingw 直接访问的,点击 Files,然后下载以下文件:MinGW-3.1.0-1.exe, mingw32-make-3.80.0-3.exe。
安装MinGW 到 C:/MinGW 目录下,然后安装 mingw32-make 到 C:/MinGW 下,通过浏览器到 C:/MinGW/bin 下,将 mingw32-make.exe 改名或者另外复制为 make.exe。

(以上的设置已经足够。不过为了求新,我是同时下载了 gcc-core-3.4.1-20040711-1.tar.gz, mingw-runtime-3.3.tar.gz 和 w32api-2.5.tar.gz,将它们直接解压到 C:/MinGW 下更新旧的文件。不过这对这篇文章本身没有任何影响。新旧两种配置我都测试过。)

3. 图形支持库的安装
所有图形支持库,都是到 GnuWin32 下载,地址为 http://gnuwin32.sf.net/ 。下载最方面的是访问 http://sourceforge.net/project/showfiles.php?group_id=23617

3.1. jpg 支持
下载 jpeg-6b-3.exe,然后安装到 C:/MinGW 下。

3.2. gif支持
下载 libungif-4.1.0b1-bin.zip 和 libungif-4.1.0b1-src.zip ,全部解压到 C:/MinGW 下,然后将 C:/MinGW/src/lib/gif_lib.h 复制到 C:/MinGW/include/下面。

3.3. tiff支持
下载 tiff-win32-3.6.1-2.exe,安装到 C:/MinGW 下。

3.4. xpm支持
下载 xpm-nox-4.2.0-bin.exe和 xpm-nox-4.2.0-src.exe,全部安装到 C:/MinGW 下面,然后将 C:/MinGW/src/xom-nox-4.2.0/lib/simx.h 复制到 C:/MinGW/include 下,并在 C:/MinGW/include/ 下建子目录 X11,然后将 C:/MinGW/src/xom-nox-4.2.0/lib/xpm.h 复制到 C:/MinGW/include/X11/ 下。

3.5. png支持
下载zlib-1.2.1-1.exe 和 libpng-1.2.5-1.exe ,全部安装到 C:/MinGW 下。

4. 环境设置
修改环境变量 PATH (可以同时按下 winkey + Pause ,然后选择 高级 -> 环境变量),将 C:/MinGW/bin;C:/MinGW/include;C:/MinGW/lib 加入到 PATH 中。如果你同时安装了 cygwin,注意让保持它们位于 cygwin 的路径之前。

5. 编译
通过运行 cmd.exe 打开windows shell, 然后到 emacs/nt/ 目录下,运行

configure.bat –with-gcc –no-cygwin
然后
make bootstrap
make info
make install (这样默认是安装在 c:/emacs 下)
如果需要修改安装目录, 用
make install INSTALL_DIR=c:/emacs-cvs (注意这里要用 / 而不是 \ )

6. 库文件的复制
到 C:/MinGW/bin 下,复制一下文件到 emacs/bin 下:
jpeg62.dll, libpng12.dll, libtiff3.dll, libungif.dll, libXpm-noX4.dll 和 zlib1.dll

你要是喜欢,可以将它们重命名,比如改名为: jpeg.dll, libpng.dll, libtiff.dll, libxpm.dll, zlib.dll等。

最新的emacs可以通过设置变量 image-library-alist 来指定这些库文件的名字。默认值为:
((xpm “libXpm-nox4.dll” “libxpm.dll”) (png “libpng13d.dll” “libpng13.dll” “libpng12d.dll” “libpng12.dll” “libpng.dll”) (jpeg “jpeg62.dll” “libjpeg.dll” “jpeg-62.dll” “jpeg.dll”) (tiff “libtiff3.dll” “libtiff.dll”) (gif “libungif.dll”))

编译安装成功后,运行 runemacs.exe (安装中会自动建立一个 emacs 程序启动图标),你可以通过 evaluate 变量 image-types 看出支持的图像格式,应该是:

(png gif tiff jpeg xpm xbm pbm)

另外提一下我个人喜欢的emacs 运行方式, 我不通过安装的 emacs 图标运行,而是在 cygwin 环境下,在 /usr/bin 下建立一个 symlink :
$ln -s c:/emacs/bin/runemacs.exe runemacs

然后在 cygwin shell 里运行

$runemacs&

这样通过 cygwin 下运行 mingw 编译的 native windows build, 可以使用 Windows 的输入法,同时可以使用诸如cygwin下的工具,诸如 w3m, crm114, clamav 等工具,从而在windows下同样可以维持一个功能强大的环境。至于email, 我是通过在cygwin 下安装 exim, 然后通过 cygrunsrv.exe 将 exim 作为 windows service 运行,这样就不需要通过外部 smtp 服务起来发送邮件,我觉得这是一件很爽的事。

时间仓促,来不及仔细组织,希望对别人有所帮助。也希望通过同样工作的朋友来交流。

此文要特别感谢 cn.comp.os.linux 组中的 Felix ,是他的指教使我知道需要将 simx.h 复制到 include 下。这篇文章是很多人的努力的一个综合,我只是通过自己的编译经验,确立了一个最简洁的步骤和最小安装需要。因为很多文章中,是提出要安装所有图形库的源码的。我的编译经验表明并不需要。

以上编译在 Window XP 和 Windows Server 2003 下成功。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个