2007年10月 9日 23:07
概要
組み込み言語Luaのライブラリ(liblua)をユニバーサルバイナリのdylibとしてビルドしたものを.frameworkパッケージ形式として格納したものです。
ソースコードには変更を加えていないため、ライセンス条項についてはLua公式サイトに掲載されているものが引き続き適応されるかと思います。
なお、Mac OS X 10.5 Leopardで使用するが64ビット対応が必要ない場合、Tiger用でも問題ありません。また、64ビット非対応プロセッサで64ビット対応版を用いても問題ありません。ただし、その場合32ビット版と同等の動作をします。
連絡先
もし何か問題が生じた場合、Eメールでご連絡ください。
If any problem occurs, please contact us at E-mail.
ダウンロード
lua-framework104.dmg(193,697bytes)(Mac OS X 10.4 Tiger向け)
lua-framework105-64.dmg(361,066bytes)(Mac OS X 10.5 Leopard向け 64ビット対応)
パッチ
以下に示すパッチを、公式配布されているソースコードに当てることで自分でビルドできます。
Tiger向けUniversal Binaryをビルドする場合"make macosx_ub"、Leopard向け64ビット対応Universal Binaryをビルドする場合"make macosx_ub64"を呼び出してください。
lua-5.1.2/Makefile
*** lua-5.1.2/Makefile 2007-03-25 23:44:39.000000000 +0900
--- lua-5.1.2-new/Makefile 2007-11-15 15:44:25.000000000 +0900
***************
*** 38,44 ****
# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
# Convenience platforms targets.
! PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
# What to install.
TO_BIN= lua luac
--- 38,44 ----
# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
# Convenience platforms targets.
! PLATS= aix ansi bsd freebsd generic linux macosx macosx_ub macosx_ub64 mingw posix solaris
# What to install.
TO_BIN= lua luac
lua-5.1.2/src/Makefile
*** lua-5.1.2/src/Makefile 2007-03-25 23:49:23.000000000 +0900
--- lua-5.1.2-new/src/Makefile 2007-11-15 16:48:11.000000000 +0900
***************
*** 20,26 ****
# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
! PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
LUA_A= liblua.a
CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
--- 20,26 ----
# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
! PLATS= aix ansi bsd freebsd generic linux macosx macosx_ub macosx_ub64 mingw posix solaris
LUA_A= liblua.a
CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
***************
*** 36,42 ****
LUAC_O= luac.o print.o
ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
! ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
ALL_A= $(LUA_A)
default: $(PLAT)
--- 36,42 ----
LUAC_O= luac.o print.o
ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
! ALL_T= Lua $(LUA_A) $(LUA_T) $(LUAC_T)
ALL_A= $(LUA_A)
default: $(PLAT)
***************
*** 50,55 ****
--- 50,58 ----
$(LUA_A): $(CORE_O) $(LIB_O)
$(AR) $@ $?
$(RANLIB) $@
+
+ Lua: $(CORE_O) $(LIB_O)
+ $(CC) -dynamiclib -install_name "@executable_path/../Frameworks/Lua.framework/Versions/A/Lua" -o Lua $^ $(MYLDFLAGS) $(LIBS)
$(LUA_T): $(LUA_O) $(LUA_A)
$(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
***************
*** 103,108 ****
--- 106,117 ----
# use this on Mac OS X 10.4
# $(MAKE) all MYCFLAGS="-DLUA_USE_MACOSX -DLUA_USE_READLINE" MYLIBS="-lreadline"
+ macosx_ub:
+ $(MAKE) all MYCFLAGS="-DLUA_USE_MACOSX -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386" MYLDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386"
+
+ macosx_ub64:
+ $(MAKE) all MYCFLAGS="-DLUA_USE_MACOSX -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch ppc -arch i386 -arch ppc64 -arch x86_64" MYLDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch ppc -arch i386 -arch ppc64 -arch x86_64"
+
mingw:
$(MAKE) "LUA_A=lua51.dll" "LUA_T=lua.exe" \
"AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \
謝辞
ユニバーサルバイナリ化に際して次のサイトにお世話になりました。
- lua-users メーリングリストログ "OS X Universal Binary Makefile Patch"
- lua-users メーリングリストログ "Re: Building lua dylib on Mac OS X 10.4"
履歴
- 2007年10月09日
- 初版公開
- 2007年10月27日
- 不足していたヘッダファイルを追加
- 2007年11月15日
- Leopard, 64ビット対応バイナリのアップロード
- 2007年12月25日
- リンク切れを起こしていたのを修正

