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