最終更新日: 2020-08-14 金 16:13
ホーム | 文書トップ | 目次

NTEmacsビルド(27.1)

Table of Contents

概要

  • 2020.8.14 MSYS2にてビルド

ソースの入手

GNU http://ftp.gnu.org/gnu/emacs/ からダウンロード。

  • emacs-27.1.tar.gz を任意のディレクトリ(例 D:\ドライブ直下)に展開する。

ビルド方法

ソースの下記ファイルにインストール方法が載っている

  • INSTALL
  • nt/INSTALL
  • nt/INSTALL.W64

IMEパッチ

IMEパッチは適用しない

MSYS2

インストール

必要なパッケージ

共通

$ pacman -S base-devel

32bit版

不明

64bit版

$ pacman -S mingw-w64-x86_64-toolchain
$ pacman -S mingw-w64-x86_64-xpm-nox
$ pacman -S mingw-w64-x86_64-libtiff
$ pacman -S mingw-w64-x86_64-giflib
$ pacman -S mingw-w64-x86_64-libpng
$ pacman -S mingw-w64-x86_64-libjpeg-turbo
$ pacman -S mingw-w64-x86_64-librsvg
$ pacman -S mingw-w64-x86_64-libxml2
$ pacman -S mingw-w64-x86_64-gnutls

追加

$ pacman -S mingw-w64-x86_64-cairomm
$ pacman -S mingw-w64-x86_64-pangomm

コンフィギュレーション

シェルの起動

ビルド対象に合わせていずれかを起動する

C:\msys64 以下の、

  • 32bit版をビルドする場合には、mingw32.exe
  • 64bit版をビルドする場合には、mingw64.exe

build_msys2_shell_bassui.png

autogen.sh

emacs-27.1 ディレクトリ直下にて実行

$ ./autogen.sh
Checking whether you have the necessary tools...
(Read INSTALL.REPO for more details on building Emacs)
Checking for autoconf (need at least version 2.65) ... ok
Your system has the required tools.
Running 'autoreconf -fi -I m4' ...
You can now run './configure'.

configure(32bit)

やっていない

configure(64bit)

ビルドオプションは INSTALL.W64 を参考にした。 CFLAGS="-s"は”実行可能ファイルからすべてのシンボル・テーブルと再配置情報を削除する”の意味。

configureを実行した際にデフォルトで指定されるオプション(-g3 -O2 -gdwarf-2)に対して、"-s"を追加した。

これによりexeファイルサイズがかなり小さくなる。

$ PKG_CONFIG_PATH=/mingw64/lib/pkgconfig ./configure CFLAGS="-s -g3 -O2 -gdwarf-2" --prefix=/c/usr/emacs --without-imagemagick --without-dbus --with-cairo

configure実行結果

nt/Makefileより抜粋

(略)

CC=gcc 
CFLAGS=-s -g3 -O2 -gdwarf-2
CPPFLAGS = -mtune=generic   -DUSE_CRT_DLL=1 -I ${abs_top_srcdir}/nt/inc
LDFLAGS = 

version=27.1
## Used in $archlibdir.
configuration=x86_64-w64-mingw32
EXEEXT=.exe
C_SWITCH_SYSTEM=-mtune=generic

(略)

prefix=/c/usr/emacs

(略)

make

make bootstrap

10:56-11:20

$ make bootstrap

make install

$ make install

configureで指定した prefix の下にインストールされる。(例 C:\usr\emacs)

DLLのコピー

DLLファイルについて

依存するDLLを emacsのexeファイルがあるフォルダにコピーする。

こちら の通り、当初は、まっとうにビルド環境(mingw64)からdllをコピーしてみたが、 tif,pngの表示と GnuTLS の動作がNGだったので、公式配布の 26.2 の bin/ のdllをそのままコピーした。

手抜きだが動作は問題があった動作はOKになった。

IMEの挙動

「Windows 10 April 2018 Update」でIMEの切り替えができなくなって日本語入力ができなくなることがある。 「Emacsのウインドウをマウスで移動させるか、サイズ変更する」ことでで入力できるようになる。

バイナリ

こちら から提供中

参考

ホーム | 文書トップ | 目次
Created by Emacs 27.1 (Org mode 9.3)