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. 70495ed39SKyle EvansPLAT= guess 88e3e3a7aSWarner Losh 98e3e3a7aSWarner LoshCC= gcc -std=gnu99 100495ed39SKyle 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 170495ed39SKyle EvansUNAME= uname 188e3e3a7aSWarner Losh 198e3e3a7aSWarner LoshSYSCFLAGS= 208e3e3a7aSWarner LoshSYSLDFLAGS= 218e3e3a7aSWarner LoshSYSLIBS= 228e3e3a7aSWarner Losh 238e3e3a7aSWarner LoshMYCFLAGS= 248e3e3a7aSWarner LoshMYLDFLAGS= 258e3e3a7aSWarner LoshMYLIBS= 268e3e3a7aSWarner LoshMYOBJS= 278e3e3a7aSWarner Losh 280495ed39SKyle Evans# Special flags for compiler modules; -Os reduces code size. 290495ed39SKyle EvansCMCFLAGS= 300495ed39SKyle Evans 318e3e3a7aSWarner Losh# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= 328e3e3a7aSWarner Losh 33*a9490b81SWarner LoshPLATS= guess aix bsd c89 freebsd generic ios linux linux-readline macosx mingw posix solaris 348e3e3a7aSWarner Losh 358e3e3a7aSWarner LoshLUA_A= liblua.a 360495ed39SKyle 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 370495ed39SKyle 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 690495ed39SKyle Evanstest: 700495ed39SKyle Evans ./lua -v 710495ed39SKyle 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)" 870495ed39SKyle Evans @echo "UNAME= $(UNAME)" 888e3e3a7aSWarner Losh 890495ed39SKyle Evans# Convenience targets for popular platforms. 908e3e3a7aSWarner LoshALL= all 918e3e3a7aSWarner Losh 920495ed39SKyle Evanshelp: 930495ed39SKyle Evans @echo "Do 'make PLATFORM' where PLATFORM is one of these:" 948e3e3a7aSWarner Losh @echo " $(PLATS)" 950495ed39SKyle Evans @echo "See doc/readme.html for complete instructions." 968e3e3a7aSWarner Losh 970495ed39SKyle Evansguess: 980495ed39SKyle Evans @echo Guessing `$(UNAME)` 990495ed39SKyle Evans @$(MAKE) `$(UNAME)` 1000495ed39SKyle Evans 1010495ed39SKyle 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 1130495ed39SKyle EvansFreeBSD NetBSD OpenBSD freebsd: 1140495ed39SKyle 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*a9490b81SWarner Loshios: 119*a9490b81SWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_IOS" 120*a9490b81SWarner Losh 1210495ed39SKyle EvansLinux linux: linux-noreadline 1228e3e3a7aSWarner Losh 1230495ed39SKyle Evanslinux-noreadline: 1240495ed39SKyle Evans $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl" 1250495ed39SKyle Evans 1260495ed39SKyle Evanslinux-readline: 1270495ed39SKyle Evans $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE" SYSLIBS="-Wl,-E -ldl -lreadline" 1280495ed39SKyle Evans 1290495ed39SKyle EvansDarwin macos macosx: 1300495ed39SKyle Evans $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX -DLUA_USE_READLINE" SYSLIBS="-lreadline" 1318e3e3a7aSWarner Losh 1328e3e3a7aSWarner Loshmingw: 1330495ed39SKyle Evans $(MAKE) "LUA_A=lua54.dll" "LUA_T=lua.exe" \ 1348e3e3a7aSWarner Losh "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ 1358e3e3a7aSWarner Losh "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe 1368e3e3a7aSWarner Losh $(MAKE) "LUAC_T=luac.exe" luac.exe 1378e3e3a7aSWarner Losh 1388e3e3a7aSWarner Loshposix: 1398e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX" 1408e3e3a7aSWarner Losh 1410495ed39SKyle EvansSunOS solaris: 1428e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN -D_REENTRANT" SYSLIBS="-ldl" 1438e3e3a7aSWarner Losh 1440495ed39SKyle Evans# Targets that do not create files (not all makes understand .PHONY). 1450495ed39SKyle Evans.PHONY: all $(PLATS) help test clean default o a depend echo 1460495ed39SKyle Evans 1470495ed39SKyle Evans# Compiler modules may use special flags. 1480495ed39SKyle Evansllex.o: 1490495ed39SKyle Evans $(CC) $(CFLAGS) $(CMCFLAGS) -c llex.c 1500495ed39SKyle Evans 1510495ed39SKyle Evanslparser.o: 1520495ed39SKyle Evans $(CC) $(CFLAGS) $(CMCFLAGS) -c lparser.c 1530495ed39SKyle Evans 1540495ed39SKyle Evanslcode.o: 1550495ed39SKyle Evans $(CC) $(CFLAGS) $(CMCFLAGS) -c lcode.c 1568e3e3a7aSWarner Losh 1578e3e3a7aSWarner Losh# DO NOT DELETE 1588e3e3a7aSWarner Losh 1598e3e3a7aSWarner Loshlapi.o: lapi.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 1608e3e3a7aSWarner Losh lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lstring.h \ 1618e3e3a7aSWarner Losh ltable.h lundump.h lvm.h 1628e3e3a7aSWarner Loshlauxlib.o: lauxlib.c lprefix.h lua.h luaconf.h lauxlib.h 1638e3e3a7aSWarner Loshlbaselib.o: lbaselib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1648e3e3a7aSWarner Loshlcode.o: lcode.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \ 1658e3e3a7aSWarner Losh llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \ 1668e3e3a7aSWarner Losh ldo.h lgc.h lstring.h ltable.h lvm.h 1678e3e3a7aSWarner Loshlcorolib.o: lcorolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1688e3e3a7aSWarner Loshlctype.o: lctype.c lprefix.h lctype.h lua.h luaconf.h llimits.h 1698e3e3a7aSWarner Loshldblib.o: ldblib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1708e3e3a7aSWarner Loshldebug.o: ldebug.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 1718e3e3a7aSWarner Losh lobject.h ltm.h lzio.h lmem.h lcode.h llex.h lopcodes.h lparser.h \ 1728e3e3a7aSWarner Losh ldebug.h ldo.h lfunc.h lstring.h lgc.h ltable.h lvm.h 1738e3e3a7aSWarner Loshldo.o: ldo.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 1748e3e3a7aSWarner Losh lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lopcodes.h \ 1758e3e3a7aSWarner Losh lparser.h lstring.h ltable.h lundump.h lvm.h 1768e3e3a7aSWarner Loshldump.o: ldump.c lprefix.h lua.h luaconf.h lobject.h llimits.h lstate.h \ 1778e3e3a7aSWarner Losh ltm.h lzio.h lmem.h lundump.h 1780495ed39SKyle Evanslfunc.o: lfunc.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 1790495ed39SKyle Evans llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h 1808e3e3a7aSWarner Loshlgc.o: lgc.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 1818e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h 1828e3e3a7aSWarner Loshlinit.o: linit.c lprefix.h lua.h luaconf.h lualib.h lauxlib.h 1838e3e3a7aSWarner Loshliolib.o: liolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1848e3e3a7aSWarner Loshllex.o: llex.c lprefix.h lua.h luaconf.h lctype.h llimits.h ldebug.h \ 1858e3e3a7aSWarner Losh lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lgc.h llex.h lparser.h \ 1868e3e3a7aSWarner Losh lstring.h ltable.h 1878e3e3a7aSWarner Loshlmathlib.o: lmathlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1888e3e3a7aSWarner Loshlmem.o: lmem.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 1898e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h 1908e3e3a7aSWarner Loshloadlib.o: loadlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1918e3e3a7aSWarner Loshlobject.o: lobject.c lprefix.h lua.h luaconf.h lctype.h llimits.h \ 1928e3e3a7aSWarner Losh ldebug.h lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h \ 1938e3e3a7aSWarner Losh lvm.h 1948e3e3a7aSWarner Loshlopcodes.o: lopcodes.c lprefix.h lopcodes.h llimits.h lua.h luaconf.h 1958e3e3a7aSWarner Loshloslib.o: loslib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 1968e3e3a7aSWarner Loshlparser.o: lparser.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \ 1978e3e3a7aSWarner Losh llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \ 1988e3e3a7aSWarner Losh ldo.h lfunc.h lstring.h lgc.h ltable.h 1998e3e3a7aSWarner Loshlstate.o: lstate.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 2008e3e3a7aSWarner Losh lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h llex.h \ 2018e3e3a7aSWarner Losh lstring.h ltable.h 2028e3e3a7aSWarner Loshlstring.o: lstring.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \ 2038e3e3a7aSWarner Losh lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h 2048e3e3a7aSWarner Loshlstrlib.o: lstrlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 2058e3e3a7aSWarner Loshltable.o: ltable.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 2068e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h 2078e3e3a7aSWarner Loshltablib.o: ltablib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 2088e3e3a7aSWarner Loshltm.o: ltm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 2090495ed39SKyle Evans llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h 2108e3e3a7aSWarner Loshlua.o: lua.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 2110495ed39SKyle Evansluac.o: luac.c lprefix.h lua.h luaconf.h lauxlib.h ldebug.h lstate.h \ 2120495ed39SKyle Evans lobject.h llimits.h ltm.h lzio.h lmem.h lopcodes.h lopnames.h lundump.h 2138e3e3a7aSWarner Loshlundump.o: lundump.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \ 2148e3e3a7aSWarner Losh lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h \ 2158e3e3a7aSWarner Losh lundump.h 2168e3e3a7aSWarner Loshlutf8lib.o: lutf8lib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 2178e3e3a7aSWarner Loshlvm.o: lvm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 2188e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h \ 2190495ed39SKyle Evans ltable.h lvm.h ljumptab.h 2208e3e3a7aSWarner Loshlzio.o: lzio.c lprefix.h lua.h luaconf.h llimits.h lmem.h lstate.h \ 2218e3e3a7aSWarner Losh lobject.h ltm.h lzio.h 2228e3e3a7aSWarner Losh 2238e3e3a7aSWarner Losh# (end of Makefile) 224