1 # Makefile for building Lua
2 # See ../doc/readme.html for installation and customization instructions.
4 # == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
6 # Your platform. See PLATS for possible values.
10 CFLAGS
= -O2
-Wall
-Wextra
-DLUA_COMPAT_5_3
$(SYSCFLAGS
) $(MYCFLAGS
)
11 LDFLAGS
= $(SYSLDFLAGS
) $(MYLDFLAGS
)
12 LIBS
= -lm
$(SYSLIBS
) $(MYLIBS
)
28 # Special flags for compiler modules; -Os reduces code size.
31 # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE =======
33 PLATS
= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris
36 CORE_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 LIB_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
38 BASE_O
= $(CORE_O
) $(LIB_O
) $(MYOBJS
)
46 ALL_O
= $(BASE_O
) $(LUA_O
) $(LUAC_O
)
47 ALL_T
= $(LUA_A
) $(LUA_T
) $(LUAC_T
)
63 $(LUA_T
): $(LUA_O
) $(LUA_A
)
64 $(CC
) -o
$@
$(LDFLAGS
) $(LUA_O
) $(LUA_A
) $(LIBS
)
66 $(LUAC_T
): $(LUAC_O
) $(LUA_A
)
67 $(CC
) -o
$@
$(LDFLAGS
) $(LUAC_O
) $(LUA_A
) $(LIBS
)
73 $(RM
) $(ALL_T
) $(ALL_O
)
76 @
$(CC
) $(CFLAGS
) -MM l
*.c
81 @echo
"CFLAGS= $(CFLAGS)"
82 @echo
"LDFLAGS= $(SYSLDFLAGS)"
85 @echo
"RANLIB= $(RANLIB)"
87 @echo
"UNAME= $(UNAME)"
89 # Convenience targets for popular platforms.
93 @echo
"Do 'make PLATFORM' where PLATFORM is one of these:"
95 @echo
"See doc/readme.html for complete instructions."
98 @echo Guessing
`$(UNAME)`
102 $(MAKE
) $(ALL
) CC
="xlc" CFLAGS
="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS
="-ldl" SYSLDFLAGS
="-brtl -bexpall"
105 $(MAKE
) $(ALL
) SYSCFLAGS
="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS
="-Wl,-E"
108 $(MAKE
) $(ALL
) SYSCFLAGS
="-DLUA_USE_C89" CC
="gcc -std=c89"
110 @echo
'*** C89 does not guarantee 64-bit integers for Lua.'
111 @echo
'*** Make sure to compile all external Lua libraries'
112 @echo
'*** with LUA_USE_C89 to ensure consistency'
115 FreeBSD NetBSD OpenBSD freebsd
:
116 $(MAKE
) $(ALL
) SYSCFLAGS
="-DLUA_USE_LINUX -DLUA_USE_READLINE -I/usr/include/edit" SYSLIBS
="-Wl,-E -ledit" CC
="cc"
120 Linux linux
: linux-noreadline
123 $(MAKE
) $(ALL
) SYSCFLAGS
="-DLUA_USE_LINUX" SYSLIBS
="-Wl,-E -ldl"
126 $(MAKE
) $(ALL
) SYSCFLAGS
="-DLUA_USE_LINUX -DLUA_USE_READLINE" SYSLIBS
="-Wl,-E -ldl -lreadline"
129 $(MAKE
) $(ALL
) SYSCFLAGS
="-DLUA_USE_MACOSX -DLUA_USE_READLINE" SYSLIBS
="-lreadline"
132 $(MAKE
) "LUA_A=lua54.dll" "LUA_T=lua.exe" \
133 "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \
134 "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe
135 $(MAKE
) "LUAC_T=luac.exe" luac.exe
138 $(MAKE
) $(ALL
) SYSCFLAGS
="-DLUA_USE_POSIX"
141 $(MAKE
) $(ALL
) SYSCFLAGS
="-DLUA_USE_POSIX -DLUA_USE_DLOPEN -D_REENTRANT" SYSLIBS
="-ldl"
143 # Targets that do not create files (not all makes understand .PHONY).
144 .PHONY
: all $(PLATS
) help
test clean default o a depend echo
146 # Compiler modules may use special flags.
148 $(CC
) $(CFLAGS
) $(CMCFLAGS
) -c llex.c
151 $(CC
) $(CFLAGS
) $(CMCFLAGS
) -c lparser.c
154 $(CC
) $(CFLAGS
) $(CMCFLAGS
) -c lcode.c
158 lapi.o
: lapi.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
159 lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lstring.h \
160 ltable.h lundump.h lvm.h
161 lauxlib.o
: lauxlib.c lprefix.h lua.h luaconf.h lauxlib.h
162 lbaselib.o
: lbaselib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
163 lcode.o
: lcode.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \
164 llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \
165 ldo.h lgc.h lstring.h ltable.h lvm.h
166 lcorolib.o
: lcorolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
167 lctype.o
: lctype.c lprefix.h lctype.h lua.h luaconf.h llimits.h
168 ldblib.o
: ldblib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
169 ldebug.o
: ldebug.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
170 lobject.h ltm.h lzio.h lmem.h lcode.h llex.h lopcodes.h lparser.h \
171 ldebug.h ldo.h lfunc.h lstring.h lgc.h ltable.h lvm.h
172 ldo.o
: ldo.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
173 lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lopcodes.h \
174 lparser.h lstring.h ltable.h lundump.h lvm.h
175 ldump.o
: ldump.c lprefix.h lua.h luaconf.h lobject.h llimits.h lstate.h \
176 ltm.h lzio.h lmem.h lundump.h
177 lfunc.o
: lfunc.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
178 llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h
179 lgc.o
: lgc.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
180 llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h
181 linit.o
: linit.c lprefix.h lua.h luaconf.h lualib.h lauxlib.h
182 liolib.o
: liolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
183 llex.o
: llex.c lprefix.h lua.h luaconf.h lctype.h llimits.h ldebug.h \
184 lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lgc.h llex.h lparser.h \
186 lmathlib.o
: lmathlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
187 lmem.o
: lmem.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
188 llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h
189 loadlib.o
: loadlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
190 lobject.o
: lobject.c lprefix.h lua.h luaconf.h lctype.h llimits.h \
191 ldebug.h lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h \
193 lopcodes.o
: lopcodes.c lprefix.h lopcodes.h llimits.h lua.h luaconf.h
194 loslib.o
: loslib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
195 lparser.o
: lparser.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \
196 llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \
197 ldo.h lfunc.h lstring.h lgc.h ltable.h
198 lstate.o
: lstate.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
199 lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h llex.h \
201 lstring.o
: lstring.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \
202 lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h
203 lstrlib.o
: lstrlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
204 ltable.o
: ltable.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
205 llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h
206 ltablib.o
: ltablib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
207 ltm.o
: ltm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
208 llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h
209 lua.o
: lua.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
210 luac.o
: luac.c lprefix.h lua.h luaconf.h lauxlib.h ldebug.h lstate.h \
211 lobject.h llimits.h ltm.h lzio.h lmem.h lopcodes.h lopnames.h lundump.h
212 lundump.o
: lundump.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \
213 lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h \
215 lutf8lib.o
: lutf8lib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
216 lvm.o
: lvm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
217 llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h \
218 ltable.h lvm.h ljumptab.h
219 lzio.o
: lzio.c lprefix.h lua.h luaconf.h llimits.h lmem.h lstate.h \
220 lobject.h ltm.h lzio.h