xref: /freebsd/contrib/lua/src/Makefile (revision 8e3e3a7ae841ccf6f6ac30a2eeab85df5d7f04bc)
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