Emacs 23.3 出たのか。記念ビルドしておこう。
— tomoya (@tomoyaton) March 10, 2011
Emacs-23.3 がリリースされたとのことなので、@tomoyaton さんのビルド
をリアルタイムで眺めながら
、初めて Mac でビルドしてみました。
% wget http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3.tar.bz2
% tar xjf emacs-23.3.tar.bz2
% mkdir work; cd work
% ../emacs-23.3/configure --with-ns --without-x 2>&1 | tee ../emacs-23.3_configure.log
% cp config.log ../emacs-23.3_config.log
% make 2>&1 | tee ../emacs-23.3_make.log
% make GZIP_PROG="" install 2>&1 | tee ../emacs-23.3_make-install.log
% cp -r nextstep/Emacs.app /Applications
ログを神経質に残しているのは、インフラ担当時代の癖です。。
Makefile 見ると分かりますが、prefix が /usr/local じゃなくて
/Users/masutaka/tmp/work/nextstep/Emacs.app/Contents/Resources とか
になるんですねえ。面白い。
最後 /Applications に Emacs.app をコピーしているので、Dock -> アプ
リケーション -> Emacs から使えます。でも環境変数が引き継がれないの
で、私は alias にして端末から起動してます。
alias emacs=/Applications/Emacs.app/Contents/MacOS/Emacs
configure のログはこんな感じでした。Linux の時 [2009-07-31-2]
と比
べて no が多いですが、jpeg は表示できたので別なライブラリが肩代わり
しているのですかね?
Where should the build process find the source code? /Users/masutaka/tmp/emacs-23.3
What operating system and machine description files should Emacs use?
`s/darwin.h' and `m/amdx86-64.h'
What compiler should emacs be built with? gcc -g -O2 -Wdeclaration-after-statement -Wno-pointer-sign
Should Emacs use the GNU version of malloc? no
(The GNU allocators don't work with this system configuration.)
Should Emacs use a relocating allocator for buffers? no
Should Emacs use mmap(2) for buffer allocation? no
What window system should Emacs use? nextstep
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? no
Does Emacs use -ljpeg? no
Does Emacs use -ltiff? no
Does Emacs use a gif library? no
Does Emacs use -lpng? no
Does Emacs use -lrsvg-2? no
Does Emacs use -lgpm? no
Does Emacs use -ldbus? yes
Does Emacs use -lgconf? no
Does Emacs use -lfreetype? no
Does Emacs use -lm17n-flt? no
Does Emacs use -lotf? no
Does Emacs use -lxft? no
Does Emacs use toolkit scroll bars? yes
ちなみに Mac では ldd はない(※)ので、otool を使うのだそうです。
うーん、依存関係は実にシンプル。
% otool -L /Applications/Emacs.app/Contents/MacOS/Emacs
/Applications/Emacs.app/Contents/MacOS/Emacs:
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1038.35.0)
/opt/local/lib/libdbus-1.3.dylib (compatibility version 8.0.0, current version 8.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)
/opt/local/lib/libncursesw.5.dylib (compatibility version 5.0.0, current version 5.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 44.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.42.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 38.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 751.42.0)
※ binutils にも入ってない。
% port contents binutils | grep /opt/local/bin
/opt/local/bin/gaddr2line
/opt/local/bin/gar
/opt/local/bin/gc++filt
/opt/local/bin/gelfedit
/opt/local/bin/gnm
/opt/local/bin/gobjcopy
/opt/local/bin/gobjdump
/opt/local/bin/granlib
/opt/local/bin/greadelf
/opt/local/bin/gsize
/opt/local/bin/gstrings
/opt/local/bin/gstrip
strip されているかはどうやって調べるのでしょう?誰か教えて。。