Luaをソースからインストールする場合、標準のMakefileではliblua.soができません。Makefileを編集する必要があります。
今回はLua5.1.5を使います。
ソースアーカイブを展開して以下のファイルを編集します。
- Makefile
- src/Makefile
1.Makefile
TO_LIBにliblua.soを加える。
1 |
TO_LIB= liblua.a liblua.so |
2.src/Makefile
(1) 以下の行を新たに加える。$(CC)の行のインデントはスペースではなく必ずタブを使ってください。
1 2 3 4 |
LUA_SO= liblua.so $(LUA_SO): $(CORE_O) $(LIB_O) $(CC) -o $@ -shared $? -lm -ldl |
(2) ALL_Tに$(LUA_SO)を加える。
1 |
ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) |
(3) CFLAGSに-fPICを追加する。
1 |
CFLAGS= -O2 -Wall -fPIC $(MYCFLAGS) |
src/Makefieの先頭から60行ほどを抜き出すと以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# makefile for building Lua # see ../INSTALL for installation instructions # see ../Makefile and luaconf.h for further customization # == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= # Your platform. See PLATS for possible values. PLAT= none CC= gcc CFLAGS= -O2 -Wall -fPIC $(MYCFLAGS) AR= ar rcu RANLIB= ranlib RM= rm -f LIBS= -lm $(MYLIBS) MYCFLAGS= MYLDFLAGS= MYLIBS= # == 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 \ lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \ lundump.o lvm.o lzio.o LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \ lstrlib.o loadlib.o linit.o LUA_T= lua LUA_O= lua.o LUAC_T= luac LUAC_O= luac.o print.o LUA_SO= liblua.so ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O) ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) ALL_A= $(LUA_A) default: $(PLAT) all: $(ALL_T) o: $(ALL_O) a: $(ALL_A) $(LUA_A): $(CORE_O) $(LIB_O) $(AR) $@ $(CORE_O) $(LIB_O) # DLL needs all object files $(RANLIB) $@ $(LUA_T): $(LUA_O) $(LUA_A) $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) $(LUAC_T): $(LUAC_O) $(LUA_A) $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) $(LUA_SO): $(CORE_O) $(LIB_O) $(CC) -o $@ -shared $? -lm -ldl |
これでMakefileの編集は完了。make && install。
1 2 |
$ make linux $ sudo make install |