在Windows下编译Emacs

本页目录
在Windows下编译Emacs  
直接下载CVS Emacs源代码
通过代理服务器下载CVS Emacs源代码
安装MSYS和MinGW
安装图形支持库
优化选项
编译过程
复制图形库文件

top在Windows下编译Emacs  

  Windows下编译好的Emacs主要有两个版本,一个来自http://nqmacs.sourceforge.net/,另一个来自http://www.crasseux.com/emacs/。 这两个版本都很好用,但是如果你想用最新的版本,你就需要自己编译一个Emacs,下面介绍一下我的编译过程(main branch和unicode branch都适用)。
  如果你不愿意编译,或者编译过程出现问题,可以到这里下载我编译好的CVS Emacs。

top直接下载CVS Emacs源代码

  我是使用Cygwin中的cvs来下载Emacs源代码的,命令如下:
$export CVS_RSH=ssh
$cvs -z3 -d:ext:anoncvs@savannah.gnu.org:/cvsroot/emacs co emacs
这样签出的是main branch,如果想签出unicode branch,命令如下:
$export CVS_RSH=ssh
$cvs -z3 -d:ext:anoncvs@savannah.gnu.org:/cvsroot/emacs co -r emacs-unicode-2 emacs

top通过代理服务器下载CVS Emacs源代码

  我是一个学生,而教育网的国际流量要是付费的,Emacs源代码有好几十兆,可是不少钱:(
  如果你和我有一样的问题,那么就用代理服务器来下载CVS Emacs吧。先到http://www.taiyo.co.jp/~gotoh/ssh/connect.html下载一个connect.c文件, 然后在Cygwin中编译这个文件,把编译出来的connect.exe放到/usr/local/bin:
$gcc connect.c -o connect
$mv connect.exe /usr/local/bin/
  然后编辑 ~/.ssh/config 文件(如果没有,自己建立一个),添加如下内容:
Host *.gnu.org
ProxyCommand connect -H your.http.proxy:port %h %p
  这样就可以通过HTTP代理下载CVS Emacs源代码了,然后就和直接下载源代码的过程一样了,照上面做吧。

top安装MSYS和MinGW

  到http://www.mingw.org下载MSYS-1.0.10.exe、MinGW-3.1.0-1.exe、mingw32-make-3.80.0-3.exe,安装MSYS到C:\MSYS,安装MinGW到C:\MinGW,再 把mingw32-make也安装到C:\MinGW,再将C:\MinGW\bin\下的mingw32-make.exe复制为make.exe(原来的mingw32-make.exe还有用,不要动)。然后设置环境变量, 将 C:\MinGW\bin;C:\MinGW\include;C:\MinGW\lib;C:\MSYS\bin 加入到 $PATH 中, 注意 C:\MinGW\bin要在C:\MSYS\bin的前面。

top安装图形支持库

  目前Emacs可以支持jpeg、gif、tiff、xpm、png等图片格式,在Windows下编译需要安装图片支持库。所有支持库都可以在http://gnuwin32.sourceforge.net/或 者http://sourceforge.net/project/showfiles.php?group_id=23617找到。

  1. jpeg支持
    下载jpeg-6b-3.exe,然后安装到C:\MinGW
  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. tiff支持
    下载tiff-win32-3.6.1-2.exe,安装到C:\MinGW
  4. xpm支持
    下载xpm-nox-4.2.0-bin.exe和xpm-nox-4.2.0-src.exe,全部安装到C:\MinGW,然后将C:\MinGW\src\xpm-nox-4.2.0\lib\simx.h复制到C:\MinGW\include下, 并在C:\MinGW\include下建子目录X11,然后将C:\MinGW\src\xpm-nox-4.2.0\lib\xpm.h复制到C:\MinGW\include\X11下
  5. png支持
    下载zlib-1.2.1-1.exe和libpng-1.2.8.exe,全部安装到C:\MinGW

top优化选项

  Emacs默认的makefile文件比较保守,我们可以修改nt目录下 gmake.defs 中的 WIN32_WINNT=0x0500 ,让编译的Emacs可以使用Windows 2000以后系统的一些新的特性。

top编译过程

  编译过程需要在cmd和MSYS中共同完成,先将cmd和MSYS的目录都切换到源代码的nt目录下,然后按下面步骤编译:

  1. 在cmd中执行
    >configure.bat --with-gcc --no-debug --no-cygwin
    
  2. 在cmd中执行
    >mingw32-make bootstrap
    
    如果出现错误,就在MSYS中执行
    $make bootstrap
    
  3. 在cmd中执行
    >mingw32-make info
    >mingw32-make install INSTALL_DIR=C:/Emacs (注意这里要用/而不是\)
    

top复制图形库文件

  将C:\MinGW\bin中的jpeg62.dll、libpng13.dll、libtiff3.dll、libungif.dll、libXpm-noX4.dll和zlib1.dll复制到C:/Emacs/bin下。好了,这样就完成了编译过程, 你可以在Emacs的开始画面中看到自己机器的名字,呵呵,很酷吧。