1*8e3e3a7aSWarner Losh# Makefile for building Lua 2*8e3e3a7aSWarner Losh# See ../doc/readme.html for installation and customization instructions. 3*8e3e3a7aSWarner Losh 4*8e3e3a7aSWarner Losh# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= 5*8e3e3a7aSWarner Losh 6*8e3e3a7aSWarner Losh# Your platform. See PLATS for possible values. 7*8e3e3a7aSWarner LoshPLAT= none 8*8e3e3a7aSWarner Losh 9*8e3e3a7aSWarner LoshCC= gcc -std=gnu99 10*8e3e3a7aSWarner LoshCFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_2 $(SYSCFLAGS) $(MYCFLAGS) 11*8e3e3a7aSWarner LoshLDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS) 12*8e3e3a7aSWarner LoshLIBS= -lm $(SYSLIBS) $(MYLIBS) 13*8e3e3a7aSWarner Losh 14*8e3e3a7aSWarner LoshAR= ar rcu 15*8e3e3a7aSWarner LoshRANLIB= ranlib 16*8e3e3a7aSWarner LoshRM= rm -f 17*8e3e3a7aSWarner Losh 18*8e3e3a7aSWarner LoshSYSCFLAGS= 19*8e3e3a7aSWarner LoshSYSLDFLAGS= 20*8e3e3a7aSWarner LoshSYSLIBS= 21*8e3e3a7aSWarner Losh 22*8e3e3a7aSWarner LoshMYCFLAGS= 23*8e3e3a7aSWarner LoshMYLDFLAGS= 24*8e3e3a7aSWarner LoshMYLIBS= 25*8e3e3a7aSWarner LoshMYOBJS= 26*8e3e3a7aSWarner Losh 27*8e3e3a7aSWarner Losh# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= 28*8e3e3a7aSWarner Losh 29*8e3e3a7aSWarner LoshPLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris 30*8e3e3a7aSWarner Losh 31*8e3e3a7aSWarner LoshLUA_A= liblua.a 32*8e3e3a7aSWarner LoshCORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ 33*8e3e3a7aSWarner Losh lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ 34*8e3e3a7aSWarner Losh ltm.o lundump.o lvm.o lzio.o 35*8e3e3a7aSWarner LoshLIB_O= lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o \ 36*8e3e3a7aSWarner Losh lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o 37*8e3e3a7aSWarner LoshBASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) 38*8e3e3a7aSWarner Losh 39*8e3e3a7aSWarner LoshLUA_T= lua 40*8e3e3a7aSWarner LoshLUA_O= lua.o 41*8e3e3a7aSWarner Losh 42*8e3e3a7aSWarner LoshLUAC_T= luac 43*8e3e3a7aSWarner LoshLUAC_O= luac.o 44*8e3e3a7aSWarner Losh 45*8e3e3a7aSWarner LoshALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) 46*8e3e3a7aSWarner LoshALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) 47*8e3e3a7aSWarner LoshALL_A= $(LUA_A) 48*8e3e3a7aSWarner Losh 49*8e3e3a7aSWarner Losh# Targets start here. 50*8e3e3a7aSWarner Loshdefault: $(PLAT) 51*8e3e3a7aSWarner Losh 52*8e3e3a7aSWarner Loshall: $(ALL_T) 53*8e3e3a7aSWarner Losh 54*8e3e3a7aSWarner Losho: $(ALL_O) 55*8e3e3a7aSWarner Losh 56*8e3e3a7aSWarner Losha: $(ALL_A) 57*8e3e3a7aSWarner Losh 58*8e3e3a7aSWarner Losh$(LUA_A): $(BASE_O) 59*8e3e3a7aSWarner Losh $(AR) $@ $(BASE_O) 60*8e3e3a7aSWarner Losh $(RANLIB) $@ 61*8e3e3a7aSWarner Losh 62*8e3e3a7aSWarner Losh$(LUA_T): $(LUA_O) $(LUA_A) 63*8e3e3a7aSWarner Losh $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) 64*8e3e3a7aSWarner Losh 65*8e3e3a7aSWarner Losh$(LUAC_T): $(LUAC_O) $(LUA_A) 66*8e3e3a7aSWarner Losh $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) 67*8e3e3a7aSWarner Losh 68*8e3e3a7aSWarner Loshclean: 69*8e3e3a7aSWarner Losh $(RM) $(ALL_T) $(ALL_O) 70*8e3e3a7aSWarner Losh 71*8e3e3a7aSWarner Loshdepend: 72*8e3e3a7aSWarner Losh @$(CC) $(CFLAGS) -MM l*.c 73*8e3e3a7aSWarner Losh 74*8e3e3a7aSWarner Loshecho: 75*8e3e3a7aSWarner Losh @echo "PLAT= $(PLAT)" 76*8e3e3a7aSWarner Losh @echo "CC= $(CC)" 77*8e3e3a7aSWarner Losh @echo "CFLAGS= $(CFLAGS)" 78*8e3e3a7aSWarner Losh @echo "LDFLAGS= $(SYSLDFLAGS)" 79*8e3e3a7aSWarner Losh @echo "LIBS= $(LIBS)" 80*8e3e3a7aSWarner Losh @echo "AR= $(AR)" 81*8e3e3a7aSWarner Losh @echo "RANLIB= $(RANLIB)" 82*8e3e3a7aSWarner Losh @echo "RM= $(RM)" 83*8e3e3a7aSWarner Losh 84*8e3e3a7aSWarner Losh# Convenience targets for popular platforms 85*8e3e3a7aSWarner LoshALL= all 86*8e3e3a7aSWarner Losh 87*8e3e3a7aSWarner Loshnone: 88*8e3e3a7aSWarner Losh @echo "Please do 'make PLATFORM' where PLATFORM is one of these:" 89*8e3e3a7aSWarner Losh @echo " $(PLATS)" 90*8e3e3a7aSWarner Losh 91*8e3e3a7aSWarner Loshaix: 92*8e3e3a7aSWarner Losh $(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall" 93*8e3e3a7aSWarner Losh 94*8e3e3a7aSWarner Loshbsd: 95*8e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E" 96*8e3e3a7aSWarner Losh 97*8e3e3a7aSWarner Loshc89: 98*8e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_C89" CC="gcc -std=c89" 99*8e3e3a7aSWarner Losh @echo '' 100*8e3e3a7aSWarner Losh @echo '*** C89 does not guarantee 64-bit integers for Lua.' 101*8e3e3a7aSWarner Losh @echo '' 102*8e3e3a7aSWarner Losh 103*8e3e3a7aSWarner Losh 104*8e3e3a7aSWarner Loshfreebsd: 105*8e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -lreadline" 106*8e3e3a7aSWarner Losh 107*8e3e3a7aSWarner Loshgeneric: $(ALL) 108*8e3e3a7aSWarner Losh 109*8e3e3a7aSWarner Loshlinux: 110*8e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline" 111*8e3e3a7aSWarner Losh 112*8e3e3a7aSWarner Loshmacosx: 113*8e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" CC=cc 114*8e3e3a7aSWarner Losh 115*8e3e3a7aSWarner Loshmingw: 116*8e3e3a7aSWarner Losh $(MAKE) "LUA_A=lua53.dll" "LUA_T=lua.exe" \ 117*8e3e3a7aSWarner Losh "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ 118*8e3e3a7aSWarner Losh "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe 119*8e3e3a7aSWarner Losh $(MAKE) "LUAC_T=luac.exe" luac.exe 120*8e3e3a7aSWarner Losh 121*8e3e3a7aSWarner Loshposix: 122*8e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX" 123*8e3e3a7aSWarner Losh 124*8e3e3a7aSWarner Loshsolaris: 125*8e3e3a7aSWarner Losh $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN -D_REENTRANT" SYSLIBS="-ldl" 126*8e3e3a7aSWarner Losh 127*8e3e3a7aSWarner Losh# list targets that do not create files (but not all makes understand .PHONY) 128*8e3e3a7aSWarner Losh.PHONY: all $(PLATS) default o a clean depend echo none 129*8e3e3a7aSWarner Losh 130*8e3e3a7aSWarner Losh# DO NOT DELETE 131*8e3e3a7aSWarner Losh 132*8e3e3a7aSWarner Loshlapi.o: lapi.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 133*8e3e3a7aSWarner Losh lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lstring.h \ 134*8e3e3a7aSWarner Losh ltable.h lundump.h lvm.h 135*8e3e3a7aSWarner Loshlauxlib.o: lauxlib.c lprefix.h lua.h luaconf.h lauxlib.h 136*8e3e3a7aSWarner Loshlbaselib.o: lbaselib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 137*8e3e3a7aSWarner Loshlbitlib.o: lbitlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 138*8e3e3a7aSWarner Loshlcode.o: lcode.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \ 139*8e3e3a7aSWarner Losh llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \ 140*8e3e3a7aSWarner Losh ldo.h lgc.h lstring.h ltable.h lvm.h 141*8e3e3a7aSWarner Loshlcorolib.o: lcorolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 142*8e3e3a7aSWarner Loshlctype.o: lctype.c lprefix.h lctype.h lua.h luaconf.h llimits.h 143*8e3e3a7aSWarner Loshldblib.o: ldblib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 144*8e3e3a7aSWarner Loshldebug.o: ldebug.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 145*8e3e3a7aSWarner Losh lobject.h ltm.h lzio.h lmem.h lcode.h llex.h lopcodes.h lparser.h \ 146*8e3e3a7aSWarner Losh ldebug.h ldo.h lfunc.h lstring.h lgc.h ltable.h lvm.h 147*8e3e3a7aSWarner Loshldo.o: ldo.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 148*8e3e3a7aSWarner Losh lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lopcodes.h \ 149*8e3e3a7aSWarner Losh lparser.h lstring.h ltable.h lundump.h lvm.h 150*8e3e3a7aSWarner Loshldump.o: ldump.c lprefix.h lua.h luaconf.h lobject.h llimits.h lstate.h \ 151*8e3e3a7aSWarner Losh ltm.h lzio.h lmem.h lundump.h 152*8e3e3a7aSWarner Loshlfunc.o: lfunc.c lprefix.h lua.h luaconf.h lfunc.h lobject.h llimits.h \ 153*8e3e3a7aSWarner Losh lgc.h lstate.h ltm.h lzio.h lmem.h 154*8e3e3a7aSWarner Loshlgc.o: lgc.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 155*8e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h 156*8e3e3a7aSWarner Loshlinit.o: linit.c lprefix.h lua.h luaconf.h lualib.h lauxlib.h 157*8e3e3a7aSWarner Loshliolib.o: liolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 158*8e3e3a7aSWarner Loshllex.o: llex.c lprefix.h lua.h luaconf.h lctype.h llimits.h ldebug.h \ 159*8e3e3a7aSWarner Losh lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lgc.h llex.h lparser.h \ 160*8e3e3a7aSWarner Losh lstring.h ltable.h 161*8e3e3a7aSWarner Loshlmathlib.o: lmathlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 162*8e3e3a7aSWarner Loshlmem.o: lmem.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 163*8e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h 164*8e3e3a7aSWarner Loshloadlib.o: loadlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 165*8e3e3a7aSWarner Loshlobject.o: lobject.c lprefix.h lua.h luaconf.h lctype.h llimits.h \ 166*8e3e3a7aSWarner Losh ldebug.h lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h \ 167*8e3e3a7aSWarner Losh lvm.h 168*8e3e3a7aSWarner Loshlopcodes.o: lopcodes.c lprefix.h lopcodes.h llimits.h lua.h luaconf.h 169*8e3e3a7aSWarner Loshloslib.o: loslib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 170*8e3e3a7aSWarner Loshlparser.o: lparser.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \ 171*8e3e3a7aSWarner Losh llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \ 172*8e3e3a7aSWarner Losh ldo.h lfunc.h lstring.h lgc.h ltable.h 173*8e3e3a7aSWarner Loshlstate.o: lstate.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 174*8e3e3a7aSWarner Losh lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h llex.h \ 175*8e3e3a7aSWarner Losh lstring.h ltable.h 176*8e3e3a7aSWarner Loshlstring.o: lstring.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \ 177*8e3e3a7aSWarner Losh lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h 178*8e3e3a7aSWarner Loshlstrlib.o: lstrlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 179*8e3e3a7aSWarner Loshltable.o: ltable.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 180*8e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h 181*8e3e3a7aSWarner Loshltablib.o: ltablib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 182*8e3e3a7aSWarner Loshltm.o: ltm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 183*8e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h ltable.h lvm.h 184*8e3e3a7aSWarner Loshlua.o: lua.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 185*8e3e3a7aSWarner Loshluac.o: luac.c lprefix.h lua.h luaconf.h lauxlib.h lobject.h llimits.h \ 186*8e3e3a7aSWarner Losh lstate.h ltm.h lzio.h lmem.h lundump.h ldebug.h lopcodes.h 187*8e3e3a7aSWarner Loshlundump.o: lundump.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \ 188*8e3e3a7aSWarner Losh lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h \ 189*8e3e3a7aSWarner Losh lundump.h 190*8e3e3a7aSWarner Loshlutf8lib.o: lutf8lib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 191*8e3e3a7aSWarner Loshlvm.o: lvm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 192*8e3e3a7aSWarner Losh llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h \ 193*8e3e3a7aSWarner Losh ltable.h lvm.h 194*8e3e3a7aSWarner Loshlzio.o: lzio.c lprefix.h lua.h luaconf.h llimits.h lmem.h lstate.h \ 195*8e3e3a7aSWarner Losh lobject.h ltm.h lzio.h 196*8e3e3a7aSWarner Losh 197*8e3e3a7aSWarner Losh# (end of Makefile) 198