1# makefile for building Lua 2# see ../INSTALL for installation instructions 3# see ../Makefile and luaconf.h for further customization 4 5# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= 6 7# Your platform. See PLATS for possible values. 8PLAT= none 9 10CC?= gcc 11CFLAGS= -O2 -Wall $(MYCFLAGS) 12AR= ar rcu 13RANLIB= ranlib 14RM= rm -f 15LIBS= -lm $(MYLIBS) 16 17MYCFLAGS= 18MYLDFLAGS= 19MYLIBS= 20 21# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE ========= 22 23PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris 24 25LUA_A= liblua.a 26CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \ 27 lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \ 28 lundump.o lvm.o lzio.o strbuf.o fpconv.o 29LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \ 30 lstrlib.o loadlib.o linit.o lua_cjson.o lua_struct.o lua_cmsgpack.o \ 31 lua_bit.o 32 33LUA_T= lua 34LUA_O= lua.o 35 36LUAC_T= luac 37LUAC_O= luac.o print.o 38 39ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O) 40ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) 41ALL_A= $(LUA_A) 42 43default: $(PLAT) 44 45all: $(ALL_T) 46 47o: $(ALL_O) 48 49a: $(ALL_A) 50 51$(LUA_A): $(CORE_O) $(LIB_O) 52 $(AR) $@ $(CORE_O) $(LIB_O) # DLL needs all object files 53 $(RANLIB) $@ 54 55$(LUA_T): $(LUA_O) $(LUA_A) 56 $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) 57 58$(LUAC_T): $(LUAC_O) $(LUA_A) 59 $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) 60 61clean: 62 $(RM) $(ALL_T) $(ALL_O) 63 64depend: 65 @$(CC) $(CFLAGS) -MM l*.c print.c 66 67echo: 68 @echo "PLAT = $(PLAT)" 69 @echo "CC = $(CC)" 70 @echo "CFLAGS = $(CFLAGS)" 71 @echo "AR = $(AR)" 72 @echo "RANLIB = $(RANLIB)" 73 @echo "RM = $(RM)" 74 @echo "MYCFLAGS = $(MYCFLAGS)" 75 @echo "MYLDFLAGS = $(MYLDFLAGS)" 76 @echo "MYLIBS = $(MYLIBS)" 77 78# convenience targets for popular platforms 79 80none: 81 @echo "Please choose a platform:" 82 @echo " $(PLATS)" 83 84aix: 85 $(MAKE) all CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-ldl" MYLDFLAGS="-brtl -bexpall" 86 87ansi: 88 $(MAKE) all MYCFLAGS=-DLUA_ANSI 89 90bsd: 91 $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-Wl,-E" 92 93freebsd: 94 $(MAKE) all MYCFLAGS="-DLUA_USE_LINUX" MYLIBS="-Wl,-E -lreadline" 95 96generic: 97 $(MAKE) all MYCFLAGS= 98 99linux: 100 $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses" 101 102macosx: 103 $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-lreadline" 104# use this on Mac OS X 10.3- 105# $(MAKE) all MYCFLAGS=-DLUA_USE_MACOSX 106 107mingw: 108 $(MAKE) "LUA_A=lua51.dll" "LUA_T=lua.exe" \ 109 "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ 110 "MYCFLAGS=-DLUA_BUILD_AS_DLL" "MYLIBS=" "MYLDFLAGS=-s" lua.exe 111 $(MAKE) "LUAC_T=luac.exe" luac.exe 112 113posix: 114 $(MAKE) all MYCFLAGS=-DLUA_USE_POSIX 115 116solaris: 117 $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-ldl" 118 119# list targets that do not create files (but not all makes understand .PHONY) 120.PHONY: all $(PLATS) default o a clean depend echo none 121 122# DO NOT DELETE 123 124lapi.o: lapi.c lua.h luaconf.h lapi.h lobject.h llimits.h ldebug.h \ 125 lstate.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h \ 126 lundump.h lvm.h 127lauxlib.o: lauxlib.c lua.h luaconf.h lauxlib.h 128lbaselib.o: lbaselib.c lua.h luaconf.h lauxlib.h lualib.h 129lcode.o: lcode.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \ 130 lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h lgc.h \ 131 ltable.h 132ldblib.o: ldblib.c lua.h luaconf.h lauxlib.h lualib.h 133ldebug.o: ldebug.c lua.h luaconf.h lapi.h lobject.h llimits.h lcode.h \ 134 llex.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h \ 135 lfunc.h lstring.h lgc.h ltable.h lvm.h 136ldo.o: ldo.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \ 137 lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lparser.h lstring.h \ 138 ltable.h lundump.h lvm.h 139ldump.o: ldump.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h \ 140 lzio.h lmem.h lundump.h 141lfunc.o: lfunc.c lua.h luaconf.h lfunc.h lobject.h llimits.h lgc.h lmem.h \ 142 lstate.h ltm.h lzio.h 143lgc.o: lgc.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \ 144 lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h 145linit.o: linit.c lua.h luaconf.h lualib.h lauxlib.h 146liolib.o: liolib.c lua.h luaconf.h lauxlib.h lualib.h 147llex.o: llex.c lua.h luaconf.h ldo.h lobject.h llimits.h lstate.h ltm.h \ 148 lzio.h lmem.h llex.h lparser.h lstring.h lgc.h ltable.h 149lmathlib.o: lmathlib.c lua.h luaconf.h lauxlib.h lualib.h 150lmem.o: lmem.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \ 151 ltm.h lzio.h lmem.h ldo.h 152loadlib.o: loadlib.c lua.h luaconf.h lauxlib.h lualib.h 153lobject.o: lobject.c lua.h luaconf.h ldo.h lobject.h llimits.h lstate.h \ 154 ltm.h lzio.h lmem.h lstring.h lgc.h lvm.h 155lopcodes.o: lopcodes.c lopcodes.h llimits.h lua.h luaconf.h 156loslib.o: loslib.c lua.h luaconf.h lauxlib.h lualib.h 157lparser.o: lparser.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \ 158 lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h \ 159 lfunc.h lstring.h lgc.h ltable.h 160lstate.o: lstate.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \ 161 ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h llex.h lstring.h ltable.h 162lstring.o: lstring.c lua.h luaconf.h lmem.h llimits.h lobject.h lstate.h \ 163 ltm.h lzio.h lstring.h lgc.h 164lstrlib.o: lstrlib.c lua.h luaconf.h lauxlib.h lualib.h 165ltable.o: ltable.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \ 166 ltm.h lzio.h lmem.h ldo.h lgc.h ltable.h 167ltablib.o: ltablib.c lua.h luaconf.h lauxlib.h lualib.h 168ltm.o: ltm.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h lzio.h \ 169 lmem.h lstring.h lgc.h ltable.h 170lua.o: lua.c lua.h luaconf.h lauxlib.h lualib.h 171luac.o: luac.c lua.h luaconf.h lauxlib.h ldo.h lobject.h llimits.h \ 172 lstate.h ltm.h lzio.h lmem.h lfunc.h lopcodes.h lstring.h lgc.h \ 173 lundump.h 174lundump.o: lundump.c lua.h luaconf.h ldebug.h lstate.h lobject.h \ 175 llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h lundump.h 176lvm.o: lvm.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \ 177 lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h ltable.h lvm.h 178lzio.o: lzio.c lua.h luaconf.h llimits.h lmem.h lstate.h lobject.h ltm.h \ 179 lzio.h 180print.o: print.c ldebug.h lstate.h lua.h luaconf.h lobject.h llimits.h \ 181 ltm.h lzio.h lmem.h lopcodes.h lundump.h 182 183# (end of Makefile) 184