最終更新日: 2016-09-24 土 14:15
ホーム | 文書トップ | 目次

NTEmacsビルド(24.5 その3)

Table of Contents

本ビルドの概要

  • 簡易IME対応
  • -shared-libgcc を指定
  • rsvg-2 と gnutls 有効
  • シンボル情報無し

MSYS2にてビルド(2015.9.20)

環境構築

の通りにインストール

ソースの入手

GNU ミラーサイト 例えば、ftp://ftp.ring.gr.jp/pub/GNU/emacs/ からダウンロードする。

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

IMEパッチ

上記ページの”IMEの未確定文字のインライン表示”に記載している通り、src/w32fns.c にて、「WM_IME_STARTCOMPOSITION ハンドラ内部で break; するのではなく、goto dflt; する」という変更を行う。

環境変数の指定

MSYS2 シェルから実行する

$ export MSYSTEM=MINGW32
$ export PKG_CONFIG_PATH=/mingw32/lib/pkgconfig

configure

$ ./configure CFLAGS="-s -O2 -shared-libgcc" --without-dbus

configure実行結果

Configured for `i686-pc-mingw32'.

  Where should the build process find the source code?    .
  What compiler should emacs be built with?               gcc  -std=gnu99 -s -O2 -shared-libgcc
  Should Emacs use the GNU version of malloc?             yes
  Should Emacs use a relocating allocator for buffers?    yes
  Should Emacs use mmap(2) for buffer allocation?         no
  What window system should Emacs use?                    w32
  What toolkit should Emacs use?                          none
  Where do we find X Windows header files?                NONE
  Where do we find X Windows libraries?                   NONE
  Does Emacs use -lXaw3d?                                 no
  Does Emacs use -lXpm?                                   yes
  Does Emacs use -ljpeg?                                  yes
  Does Emacs use -ltiff?                                  yes
  Does Emacs use a gif library?                           yes
  Does Emacs use a png library?                           yes
  Does Emacs use -lrsvg-2?                                yes
  Does Emacs use imagemagick?                             no
  Does Emacs support sound?                               yes
  Does Emacs use -lgpm?                                   no
  Does Emacs use -ldbus?                                  no
  Does Emacs use -lgconf?                                 no
  Does Emacs use GSettings?                               no
  Does Emacs use a file notification library?             yes (w32)
  Does Emacs use access control lists?                    yes
  Does Emacs use -lselinux?                               no
  Does Emacs use -lgnutls?                                yes
  Does Emacs use -lxml2?                                  yes
  Does Emacs use -lfreetype?                              no
  Does Emacs use -lm17n-flt?                              no
  Does Emacs use -lotf?                                   no
  Does Emacs use -lxft?                                   no
  Does Emacs directly use zlib?                           yes
  Does Emacs use toolkit scroll bars?                     yes


checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating lib/Makefile
config.status: creating lib-src/Makefile
config.status: creating oldXMenu/Makefile
config.status: creating doc/emacs/Makefile
config.status: creating doc/misc/Makefile
config.status: creating doc/lispintro/Makefile
config.status: creating doc/lispref/Makefile
config.status: creating src/Makefile
config.status: creating lwlib/Makefile
config.status: creating lisp/Makefile
config.status: creating leim/Makefile
config.status: creating nextstep/Makefile
config.status: creating nt/Makefile
config.status: creating admin/unidata/Makefile
config.status: creating admin/grammars/Makefile
config.status: creating src/config.h
config.status: executing depfiles commands
config.status: executing src/epaths.h commands
config.status: executing src/.gdbinit commands

Makefileより抜粋

cache_file = /dev/null
CONFIGURE_FLAGS = --cache-file=$(cache_file)

CC=gcc  -std=gnu99
CFLAGS=-s -O2 -shared-libgcc
LDFLAGS=
CPPFLAGS=-mtune=pentium4   -DUSE_CRT_DLL=1 -I ${abs_top_srcdir}/nt/inc
EXEEXT=.exe

make

MSYS2のシェルで実行する。

$ make bootstrap

make install

$ make install

MSYS2 の usr/local の下にインストールされる。(例 C:\msys32\usr\local)

DLLのコピー

MSYS2がインストールされていないPCでも動作可能にする為、依存するDLLを emacsのexeファイルがあるフォルダにコピーする。

下記の16ファイルを emacs.exe があるディレクトリにコピーする。

  • C:\msys32\mingw32\bin から
    • libgcc_s_dw2-1.dll -shared-libgcc を指定した場合には不要・・・かと思ったが必要なようだ。無いとemacs自体が起動できない。
    • libgdk_pixbuf-2.0-0.dll
    • libgif-7.dll
    • libglib-2.0-0.dll
    • libgnutls-28.dll
    • libgobject-2.0-0.dll
    • libiconv-2.dll
    • libjpeg-8.dll
    • librsvg-2-2.dll
    • libpng16-16.dll
    • libtiff-5.dll
    • libwinpthread-1.dll
    • libxml2-2.dll
    • libXpm-noX4.dll
    • zlib1.dll
cp /c/msys32/mingw32/bin/libgcc_s_dw2-1.dll      /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/libgdk_pixbuf-2.0-0.dll /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/libgif-7.dll            /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/libglib-2.0-0.dll       /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/libgnutls-28.dll        /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/libgobject-2.0-0.dll    /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/libiconv-2.dll          /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/libjpeg-8.dll           /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/librsvg-2-2.dll         /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/libpng16-16.dll         /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/libtiff-5.dll           /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/libwinpthread-1.dll     /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/libxml2-2.dll           /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/libXpm-noX4.dll         /c/msys32/usr/local/bin
cp /c/msys32/mingw32/bin/zlib1.dll               /c/msys32/usr/local/bin

バイナリ

こちら から提供中

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