Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

Windows 用の Emacs 25.3 を手元でビルド

Emacs 25.3 が緊急リリースされたってことで,Windows 用の Emacs 25.3 を手元でビルド.

以前の Emacs 25.2 の時の記事はこのあたりに書いてあります.基本的に内容は同じです.(typo とかは修正してあるつもりです)

ざっと手順を書くと.

msys2 の環境を整えます.詳細は msys2 のホームページなどを参考にしてください.私の場合は,過去に構築した環境があるのでそれをそのまま使います.

参考までに,一番最後に今使っている環境にインストールされてるパッケージの一覧をつけておきます.

emacs-25.3.tar.gz をダウンロードしてきて,ime パッチ適用.25.1 とあんまり変わらないかなという判断で,手元にあった emacs 25.1 用の ime パッチを使いました.パッチは https://gist.github.com/rzl24ozi あたりから頂いたと思いますけど,今なら emacs-25.3 用があるので普通はそちらを使ったほうがいいかと思います.みなさん,作業がはやいですね.ちなみに千葉大の方で配布されている Mac Port な Emacs パッチもすでに ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-25.3-mac-6.7.tar.gz にありますね.

Windows の方に話を戻して

% tar xf emacs-25.3.tar.gz
% cd emacs-25.3
% patch -p0 < ../emacs-25.1-w32-ime.diff.txt

でビルド.下記の例は c:/emacs/emacs-25.3 以下に入れる場合です.あ,コマンドは全部 mingw64.exe を実行したコンソール画面から実行しています.

% autogen.sh
% ./configure --prefix=/C/emacs/emacs-25.3
% make -j4
% make install

以前使っていた c:/emacs/emacs-25.2 の下から必要な elispemacs-25.3 以下に手作業でコピー.

% cp -pr /C/emacs/emacs-25.2/share/emacs/site-lisp/* /C/emacs/emacs-25.3/share/emacs/site-lisp/

あとは単独で emacs を実行できるように c:/msys64/mingw64/bin 以下にある dll を c:/emacs/emacs-25.3/bin 以下にコピー.必要ないものも含まれるかもしれないけど,自分で使うようなのでとりあえず気にしない.

% cp -p /mingw64/bin/*.dll /C/emacs/emacs-25.3/bin

この状態で,Windowsエクスプローラなどから C:/emacs/emacs-25.3/bin/runemacs.exe をクリックして Emacs が実行できることを確認.これでオッケーかな?

この状態で c:/emacs/emacs-25.3 以下全体を zip で固めておいてバックアップ.ほかのマシンで使いたいときにはこの zip を持って行って解凍するだけで使えるようにね.

一応,手元でビルドして zip で固めたものを http://plamo.linet.gr.jp/~matsuki/windows/emacs-25.3_with_msys2lib.zip に置いておきました.自分用のバックアップのつもりなので,ドキュメントとかは含まれていませんので,使われる場合には適当に使ってください.一応,ESET NOD32 Antivirus と Norton Internet Security でウイルスが含まれていないことはチェック済みです.

手元の msys2 環境にインストールしているパッケージ一覧はこんな感じです.

% pacman -Qe
asciidoc 8.6.9-4
autoconf 2.69-3
autoconf2.13 2.13-2
autogen 5.18.4-2
automake-wrapper 10-1
automake1.10 1.10.3-3
automake1.11 1.11.6-3
automake1.12 1.12.6-3
automake1.13 1.13.4-4
automake1.14 1.14.1-3
automake1.15 1.15-2
automake1.6 1.6.3-2
automake1.7 1.7.9-2
automake1.8 1.8.5-3
automake1.9 1.9.6-2
bash 4.4.012-1
bash-completion 2.3-1
bison 3.0.4-1
bsdcpio 3.2.2-2
bsdtar 3.2.2-2
bzip2 1.0.6-2
catgets 1.1-2
coreutils 8.26-1
crypt 1.4-1
curl 7.53.1-1
dash 0.5.9.1-1
diffstat 1.58-1
diffutils 3.5-1
dos2unix 7.3.4-1
file 5.30-1
filesystem 2017.02-4
findutils 4.6.0-1
flex 2.6.3-1
gawk 4.1.4-2
gcc-libs 6.3.0-1
gdb 7.11.1-1
gettext-devel 0.19.7-3
gperf 3.1-1
grep 3.0-1
groff 1.22.3-1
gzip 1.8-1
help2man 1.47.3-1
inetutils 1.9.2-1
info 6.3-1
intltool 0.51.0-2
lemon 3.8.7.0-1
less 481-1
libtool 2.4.6-2
libunrar 5.3.7-1
lndir 1.0.3-1
make 4.2.1-1
man-db 2.7.4-1
mingw-w64-x86_64-binutils 2.28-1
mingw-w64-x86_64-crt-git 5.0.0.4817.b0e7567e-1
mingw-w64-x86_64-gcc 6.3.0-2
mingw-w64-x86_64-gcc-ada 6.3.0-2
mingw-w64-x86_64-gcc-fortran 6.3.0-2
mingw-w64-x86_64-gcc-libgfortran 6.3.0-2
mingw-w64-x86_64-gcc-libs 6.3.0-2
mingw-w64-x86_64-gcc-objc 6.3.0-2
mingw-w64-x86_64-gdb 7.12.1-2
mingw-w64-x86_64-giflib 5.1.4-1
mingw-w64-x86_64-gnutls 3.5.10-1
mingw-w64-x86_64-headers-git 5.0.0.4819.e4dfb654-1
mingw-w64-x86_64-libjpeg-turbo 1.5.1-1
mingw-w64-x86_64-libmangle-git 5.0.0.4760.d3089b5-1
mingw-w64-x86_64-libpng 1.6.29-1
mingw-w64-x86_64-librsvg 2.40.17-1
mingw-w64-x86_64-libtiff 4.0.7-2
mingw-w64-x86_64-libwinpthread-git 5.0.0.4816.8692be6a-1
mingw-w64-x86_64-libxml2 2.9.4-4
mingw-w64-x86_64-make 4.2.1-1
mingw-w64-x86_64-pkg-config 0.29.2-1
mingw-w64-x86_64-tools-git 5.0.0.4760.d3089b5-1
mingw-w64-x86_64-winpthreads-git 5.0.0.4816.8692be6a-1
mingw-w64-x86_64-xpm-nox 4.2.0-4
mingw-w64-x86_64-zlib 1.2.11-1
mintty 1~2.7.3-1
msys2-keyring r9.397a52e-1
msys2-launcher-git 0.3.32.56c2ba7-2
msys2-runtime 2.7.0-1
ncurses 6.0.20170121-1
pacman 5.0.1-2
pacman-mirrors 20160112-1
pactoys-git r2.07ca37f-1
patch 2.7.5-1
patchutils 0.3.4-1
pax-git 20140703.2.1.g469552a-1
perl 5.24.1-2
pkg-config 0.29.2-1
pkgfile 15-1
quilt 0.65-1
rcs 5.9.4-1
rebase 4.4.2-1
scons 2.5.0-1
sed 4.4-2
swig 3.0.10-1
texinfo 6.3-1
texinfo-tex 6.3-1
tftp-hpa 5.2-1
time 1.7-1
ttyrec 1.0.8-1
tzcode 2017.b-1
unrar 5.3.7-1
util-linux 2.26.2-1
which 2.21-2
xmlto 0.0.28-1

25.1 用の ime パッチを使っていますが,数日使っている限りでは特に問題ないみたい.

以上,参考まで.