Metakit 訂正編

どうやら README にあった configure のあと、Makefile を修正するというのは公式のユニバーサルバイナリPython 2.5 のときの話だったようで、configure && make && make install で普通にいけました。
Metakit for Python の日本語訳の基本的な使い方もそのまま実行できることを確認しました。
otool -L (他の OS での ldd コマンドに相当) で再度確認したところ、共有ライブラリ自身のパスが相対パスで埋め込まれているのが微妙な気もしましたが、Python モジュール版は問題なく使えています。
・・・それでもちょっと気になったので Makefile をこのようにして再コンパイル&インストールました。

--- Makefile.orig	2006-11-17 20:40:43.000000000 +0900
+++ Makefile	2006-11-17 20:57:27.000000000 +0900
@@ -134,7 +134,7 @@
 	ranlib $@
 
 libmk4$(SHLIB_SUFFIX): $(LOBJS) $(LINK_SPECIAL_FILES)
-	$(SHLIB_LD) -o $@ $(LOBJS) $(LINK_SPECIAL_FLAGS)
+	$(SHLIB_LD) -o $@ -install_name $(libdir)/libmk4$(SHLIB_SUFFIX) $(LOBJS) $(LINK_SPECIAL_FLAGS)
 
 Mk4tcl$(LIB_SUFFIX): mk4tcl.o mk4too.o $(LOBJS)
 	ar rcu $@ mk4tcl.o mk4too.o $(LOBJS)
@@ -148,7 +148,7 @@
 	ranlib $@
 
 Mk4py$(SHLIB_SUFFIX): $(PYOBJS) $(LOBJS) $(LINK_SPECIAL_FILES)
-	$(SHLIB_LD) -o $@ $(PYOBJS) $(LOBJS) $(LINK_SPECIAL_FLAGS)
+	$(SHLIB_LD) -o $@ -install_name $(pylibdir)/Mk4py$(SHLIB_SUFFIX) $(PYOBJS) $(LOBJS) $(LINK_SPECIAL_FLAGS)
 
 Mk4lua$(SHLIB_SUFFIX): mk4lua.o $(LOBJS) $(LINK_SPECIAL_FILES)
 	$(SHLIB_LD) -o $@ mk4lua.o $(LOBJS) $(LINK_SPECIAL_FLAGS)

# この変更を Makefile に施して make した場合、make test は カレントディレクトリを DYLD_LIBRARY_PATH に指定してやる必要があります。

% DYLD_LIBRARY_PATH=. make test