18e3e3a7aSWarner Losh# Makefile for building Lua 28e3e3a7aSWarner Losh# See ../doc/readme.html for installation and customization instructions. 38e3e3a7aSWarner Losh 48e3e3a7aSWarner Losh# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= 58e3e3a7aSWarner Losh 68e3e3a7aSWarner Losh# Your platform. See PLATS for possible values. 7*0495ed39SKyle EvansPLAT= guess 88e3e3a7aSWarner Losh 98e3e3a7aSWarner LoshCC= gcc -std=gnu99 10*0495ed39SKyle EvansCFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_3 $(SYSCFLAGS) $(MYCFLAGS) 118e3e3a7aSWarner LoshLDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS) 128e3e3a7aSWarner LoshLIBS= -lm $(SYSLIBS) $(MYLIBS) 138e3e3a7aSWarner Losh 148e3e3a7aSWarner LoshAR= ar rcu 158e3e3a7aSWarner LoshRANLIB= ranlib 168e3e3a7aSWarner LoshRM= rm -f 17*0495ed39SKyle EvansUNAME= uname 188e3e3a7aSWarner Losh 198e3e3a7aSWarner LoshSYSCFLAGS= 208e3e3a7aSWarner LoshSYSLDFLAGS= 218e3e3a7aSWarner LoshSYSLIBS= 228e3e3a7aSWarner Losh 238e3e3a7aSWarner LoshMYCFLAGS= 248e3e3a7aSWarner LoshMYLDFLAGS= 258e3e3a7aSWarner LoshMYLIBS= 268e3e3a7aSWarner LoshMYOBJS= 278e3e3a7aSWarner Losh 28*0495ed39SKyle Evans# Special flags for compiler modules; -Os reduces code size. 29*0495ed39SKyle EvansCMCFLAGS= 30*0495ed39SKyle Evans 318e3e3a7aSWarner Losh# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= 328e3e3a7aSWarner Losh 33*0495ed39SKyle EvansPLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris 348e3e3a7aSWarner Losh 358e3e3a7aSWarner LoshLUA_A= liblua.a 36*0495ed39SKyle EvansCORE_O= lapi.o lcode.o lctype.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 37*0495ed39SKyle EvansLIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o 388e3e3a7aSWarner LoshBASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) 398e3e3a7aSWarner Losh 408e3e3a7aSWarner LoshLUA_T= lua 418e3e3a7aSWarner LoshLUA_O= lua.o 428e3e3a7aSWarner Losh 438e3e3a7aSWarner LoshLUAC_T= luac 448e3e3a7aSWarner LoshLUAC_O= luac.o 458e3e3a7aSWarner Losh 468e3e3a7aSWarner LoshALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) 478e3e3a7aSWarner LoshALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) 488e3e3a7aSWarner LoshALL_A= $(LUA_A) 498e3e3a7aSWarner Losh 508e3e3a7aSWarner Losh# Targets start here. 518e3e3a7aSWarner Loshdefault: $(PLAT) 528e3e3a7aSWarner Losh 538e3e3a7aSWarner Loshall: $(ALL_T) 548e3e3a7aSWarner Losh 558e3e3a7aSWarner Losho: $(ALL_O) 568e3e3a7aSWarner Losh 578e3e3a7aSWarner Losha: $(ALL_A) 588e3e3a7aSWarner Losh 598e3e3a7aSWarner Losh$(LUA_A): $(BASE_O) 608e3e3a7aSWarner Losh $(AR) $@ $(BASE_O) 618e3e3a7aSWarner Losh $(RANLIB) $@ 628e3e3a7aSWarner Losh 638e3e3a7aSWarner Losh$(LUA_T): $(LUA_O) $(LUA_A) 648e3e3a7aSWarner Losh $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) 658e3e3a7aSWarner Losh 668e3e3a7aSWarner Losh$(LUAC_T): $(LUAC_O) $(LUA_A) 678e3e3a7aSWarner Losh $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) 688e3e3a7aSWarner Losh 69*0495ed39SKyle Evanstest: 70*0495ed39SKyle Evans ./lua -v 71*0495ed39SKyle Evans 728e3e3a7aSWarner Loshclean: 738e3e3a7aSWarner Losh $(RM) $(ALL_T) $(ALL_O) 748e3e3a7aSWarner Losh 758e3e3a7aSWarner Loshdepend: 768e3e3a7aSWarner Losh @$(CC) $(CFLAGS) -MM l*.c 778e3e3a7aSWarner Losh 788e3e3a7aSWarner Loshecho: 798e3e3a7aSWarner Losh @echo "PLAT= $(PLAT)" 808e3e3a7aSWarner Losh @echo "CC= $(CC)" 818e3e3a7aSWarner Losh @echo "CFLAGS= $(CFLAGS)" 828e3e3a7aSWarner Losh @echo "LDFLAGS= $(SYSLDFLAGS)" 838e3e3a7aSWarner Losh @echo "LIBS= $(LIBS)" 848e3e3a7aSWarner Losh @echo "AR= $(AR)" 858e3e3a7aSWarner Losh @echo "RANLIB= $(RANLIB)" 868e3e3a7aSWarner Losh @echo "RM= $(RM)" 87*0495ed39SKyle Evans @echo "UNAME= $(UNAME)" 888e3e3a7aSWarner Losh 89*0495ed39SKyle Evans# Convenience targets for popular platforms. 908e3e3a7aSWarner LoshALL= all 918e3e3a7aSWarner Losh 92*0495ed39SKyle Evanshelp: 93*0495ed39SKyle Evans @echo "Do 'make PLATFORM' where PLATFORM is one of these:" 948e3e3a7aSWarner Losh @echo " $(PLATS)" 95*0495ed39SKyle Evans @echo "See doc/readme.html for complete instructions." 968e3e3a7aSWarner Losh 97*0495ed39SKyle Evansguess: 98*0495ed39SKyle Evans @echo Guessing `$(UNAME)` 99*0495ed39SKyle Evans @$(MAKE) `$(UNAME)` 100*0495ed39SKyle Evans 101*0495ed39SKyle EvansAIX aix: 1028e3e3a7aSWarner Losh $(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall" 1038e3e3a7aSWarner Losh 1048e3e3a7aSWarner Loshbsd: 1058e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E" 1068e3e3a7aSWarner Losh 1078e3e3a7aSWarner Loshc89: 1088e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_C89" CC="gcc -std=c89" 1098e3e3a7aSWarner Losh @echo '' 1108e3e3a7aSWarner Losh @echo '*** C89 does not guarantee 64-bit integers for Lua.' 1118e3e3a7aSWarner Losh @echo '' 1128e3e3a7aSWarner Losh 113*0495ed39SKyle EvansFreeBSD NetBSD OpenBSD freebsd: 114*0495ed39SKyle Evans $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE -I/usr/include/edit" SYSLIBS="-Wl,-E -ledit" CC="cc" 1158e3e3a7aSWarner Losh 1168e3e3a7aSWarner Loshgeneric: $(ALL) 1178e3e3a7aSWarner Losh 118*0495ed39SKyle EvansLinux linux: linux-noreadline 1198e3e3a7aSWarner Losh 120*0495ed39SKyle Evanslinux-noreadline: 121*0495ed39SKyle Evans $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl" 122*0495ed39SKyle Evans 123*0495ed39SKyle Evanslinux-readline: 124*0495ed39SKyle Evans $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE" SYSLIBS="-Wl,-E -ldl -lreadline" 125*0495ed39SKyle Evans 126*0495ed39SKyle EvansDarwin macos macosx: 127*0495ed39SKyle Evans $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX -DLUA_USE_READLINE" SYSLIBS="-lreadline" 1288e3e3a7aSWarner Losh 1298e3e3a7aSWarner Loshmingw: 130*0495ed39SKyle Evans $(MAKE) "LUA_A=lua54.dll" "LUA_T=lua.exe" \ 1318e3e3a7aSWarner Losh "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ 1328e3e3a7aSWarner Losh "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe 1338e3e3a7aSWarner Losh $(MAKE) "LUAC_T=luac.exe" luac.exe 1348e3e3a7aSWarner Losh 1358e3e3a7aSWarner Loshposix: 1368e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX" 1378e3e3a7aSWarner Losh 138*0495ed39SKyle EvansSunOS solaris: 1398e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN -D_REENTRANT" SYSLIBS="-ldl" 1408e3e3a7aSWarner Losh 141*0495ed39SKyle Evans# Targets that do not create files (not all makes understand .PHONY). 142*0495ed39SKyle Evans.PHONY: all $(PLATS) help test clean default o a depend echo 143*0495ed39SKyle Evans 144*0495ed39SKyle Evans# Compiler modules may use special flags. 145*0495ed39SKyle Evansllex.o: 146*0495ed39SKyle Evans $(CC) $(CFLAGS) $(CMCFLAGS) -c llex.c 147*0495ed39SKyle Evans 148*0495ed39SKyle Evanslparser.o: 149*0495ed39SKyle Evans $(CC) $(CFLAGS) $(CMCFLAGS) -c lparser.c 150*0495ed39SKyle Evans 151*0495ed39SKyle Evanslcode.o: 152*0495ed39SKyle Evans $(CC) $(CFLAGS) $(CMCFLAGS) -c lcode.c 1538e3e3a7aSWarner Losh 1548e3e3a7aSWarner Losh# DO NOT DELETE 1558e3e3a7aSWarner Losh 1568e3e3a7aSWarner Loshlapi.o: lapi.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 1578e3e3a7aSWarner Losh lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lstring.h \ 1588e3e3a7aSWarner Losh ltable.h lundump.h lvm.h 1598e3e3a7aSWarner Loshlauxlib.o: lauxlib.c lprefix.h lua.h luaconf.h lauxlib.h 1608e3e3a7aSWarner Loshlbaselib.o: lbaselib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1618e3e3a7aSWarner Loshlcode.o: lcode.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \ 1628e3e3a7aSWarner Losh llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \ 1638e3e3a7aSWarner Losh ldo.h lgc.h lstring.h ltable.h lvm.h 1648e3e3a7aSWarner Loshlcorolib.o: lcorolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1658e3e3a7aSWarner Loshlctype.o: lctype.c lprefix.h lctype.h lua.h luaconf.h llimits.h 1668e3e3a7aSWarner Loshldblib.o: ldblib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1678e3e3a7aSWarner Loshldebug.o: ldebug.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 1688e3e3a7aSWarner Losh lobject.h ltm.h lzio.h lmem.h lcode.h llex.h lopcodes.h lparser.h \ 1698e3e3a7aSWarner Losh ldebug.h ldo.h lfunc.h lstring.h lgc.h ltable.h lvm.h 1708e3e3a7aSWarner Loshldo.o: ldo.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 1718e3e3a7aSWarner Losh lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lopcodes.h \ 1728e3e3a7aSWarner Losh lparser.h lstring.h ltable.h lundump.h lvm.h 1738e3e3a7aSWarner Loshldump.o: ldump.c lprefix.h lua.h luaconf.h lobject.h llimits.h lstate.h \ 1748e3e3a7aSWarner Losh ltm.h lzio.h lmem.h lundump.h 175*0495ed39SKyle Evanslfunc.o: lfunc.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 176*0495ed39SKyle Evans llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h 1778e3e3a7aSWarner Loshlgc.o: lgc.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 1788e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h 1798e3e3a7aSWarner Loshlinit.o: linit.c lprefix.h lua.h luaconf.h lualib.h lauxlib.h 1808e3e3a7aSWarner Loshliolib.o: liolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1818e3e3a7aSWarner Loshllex.o: llex.c lprefix.h lua.h luaconf.h lctype.h llimits.h ldebug.h \ 1828e3e3a7aSWarner Losh lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lgc.h llex.h lparser.h \ 1838e3e3a7aSWarner Losh lstring.h ltable.h 1848e3e3a7aSWarner Loshlmathlib.o: lmathlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1858e3e3a7aSWarner Loshlmem.o: lmem.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 1868e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h 1878e3e3a7aSWarner Loshloadlib.o: loadlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1888e3e3a7aSWarner Loshlobject.o: lobject.c lprefix.h lua.h luaconf.h lctype.h llimits.h \ 1898e3e3a7aSWarner Losh ldebug.h lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h \ 1908e3e3a7aSWarner Losh lvm.h 1918e3e3a7aSWarner Loshlopcodes.o: lopcodes.c lprefix.h lopcodes.h llimits.h lua.h luaconf.h 1928e3e3a7aSWarner Loshloslib.o: loslib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1938e3e3a7aSWarner Loshlparser.o: lparser.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \ 1948e3e3a7aSWarner Losh llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \ 1958e3e3a7aSWarner Losh ldo.h lfunc.h lstring.h lgc.h ltable.h 1968e3e3a7aSWarner Loshlstate.o: lstate.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 1978e3e3a7aSWarner Losh lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h llex.h \ 1988e3e3a7aSWarner Losh lstring.h ltable.h 1998e3e3a7aSWarner Loshlstring.o: lstring.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \ 2008e3e3a7aSWarner Losh lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h 2018e3e3a7aSWarner Loshlstrlib.o: lstrlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 2028e3e3a7aSWarner Loshltable.o: ltable.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 2038e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h 2048e3e3a7aSWarner Loshltablib.o: ltablib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 2058e3e3a7aSWarner Loshltm.o: ltm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 206*0495ed39SKyle Evans llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h 2078e3e3a7aSWarner Loshlua.o: lua.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 208*0495ed39SKyle Evansluac.o: luac.c lprefix.h lua.h luaconf.h lauxlib.h ldebug.h lstate.h \ 209*0495ed39SKyle Evans lobject.h llimits.h ltm.h lzio.h lmem.h lopcodes.h lopnames.h lundump.h 2108e3e3a7aSWarner Loshlundump.o: lundump.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \ 2118e3e3a7aSWarner Losh lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h \ 2128e3e3a7aSWarner Losh lundump.h 2138e3e3a7aSWarner Loshlutf8lib.o: lutf8lib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 2148e3e3a7aSWarner Loshlvm.o: lvm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 2158e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h \ 216*0495ed39SKyle Evans ltable.h lvm.h ljumptab.h 2178e3e3a7aSWarner Loshlzio.o: lzio.c lprefix.h lua.h luaconf.h llimits.h lmem.h lstate.h \ 2188e3e3a7aSWarner Losh lobject.h ltm.h lzio.h 2198e3e3a7aSWarner Losh 2208e3e3a7aSWarner Losh# (end of Makefile) 221