diff options
Diffstat (limited to 'src/lua/makefile')
-rw-r--r-- | src/lua/makefile | 222 |
1 files changed, 127 insertions, 95 deletions
diff --git a/src/lua/makefile b/src/lua/makefile index ccd5315..f78c0b8 100644 --- a/src/lua/makefile +++ b/src/lua/makefile | |||
@@ -1,89 +1,54 @@ | |||
1 | # makefile for building Lua | 1 | # Makefile for building Lua |
2 | # see INSTALL for installation instructions | 2 | # See ../doc/readme.html for installation and customization instructions. |
3 | # see ../Makefile and luaconf.h for further customization | ||
4 | 3 | ||
5 | # == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= | 4 | # == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= |
6 | 5 | ||
7 | # Warnings valid for both C and C++ | 6 | # Your platform. See PLATS for possible values. |
8 | CWARNSCPP= \ | 7 | PLAT= guess |
9 | -Wextra \ | 8 | |
10 | -Wshadow \ | 9 | CC= gcc -std=gnu99 |
11 | -Wsign-compare \ | 10 | CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_3 $(SYSCFLAGS) $(MYCFLAGS) |
12 | -Wundef \ | 11 | LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS) |
13 | -Wwrite-strings \ | 12 | LIBS= -lm $(SYSLIBS) $(MYLIBS) |
14 | -Wredundant-decls \ | 13 | |
15 | -Wdisabled-optimization \ | 14 | AR= ar rcu |
16 | -Wdouble-promotion \ | ||
17 | # the next warnings might be useful sometimes, | ||
18 | # but usually they generate too much noise | ||
19 | # -Werror \ | ||
20 | # -pedantic # warns if we use jump tables \ | ||
21 | # -Wconversion \ | ||
22 | # -Wsign-conversion \ | ||
23 | # -Wstrict-overflow=2 \ | ||
24 | # -Wformat=2 \ | ||
25 | # -Wcast-qual \ | ||
26 | |||
27 | # The next warnings are neither valid nor needed for C++ | ||
28 | CWARNSC= -Wdeclaration-after-statement \ | ||
29 | -Wmissing-prototypes \ | ||
30 | -Wnested-externs \ | ||
31 | -Wstrict-prototypes \ | ||
32 | -Wc++-compat \ | ||
33 | -Wold-style-definition \ | ||
34 | |||
35 | |||
36 | CWARNS= $(CWARNSCPP) $(CWARNSC) | ||
37 | |||
38 | |||
39 | # -DEXTERNMEMCHECK -DHARDSTACKTESTS -DHARDMEMTESTS -DTRACEMEM='"tempmem"' | ||
40 | # -DMAXINDEXRK=1 -DLUA_COMPAT_5_3 | ||
41 | # -g -DLUA_USER_H='"ltests.h"' | ||
42 | # -pg -malign-double | ||
43 | # -DLUA_USE_CTYPE -DLUA_USE_APICHECK | ||
44 | # ('-ftrapv' for runtime checks of integer overflows) | ||
45 | # -fsanitize=undefined -ftrapv -fno-inline | ||
46 | |||
47 | |||
48 | LOCAL = $(CWARNS) | ||
49 | |||
50 | |||
51 | # enable Linux goodies | ||
52 | MYCFLAGS= $(LOCAL) -std=c99 | ||
53 | |||
54 | UNAME_S:=$(shell uname -s) | ||
55 | ifeq ($(UNAME_S),Darwin) | ||
56 | MYCFLAGS += -DLUA_USE_MACOSX | ||
57 | MYLDFLAGS= $(LOCAL) -Wl | ||
58 | else | ||
59 | MYCFLAGS += -DLUA_USE_LINUX | ||
60 | MYLDFLAGS= $(LOCAL) -Wl,-E | ||
61 | endif | ||
62 | |||
63 | CC= gcc | ||
64 | CFLAGS= -Wall -O2 $(MYCFLAGS) -fno-stack-protector -fno-common | ||
65 | AR= ar rc | ||
66 | RANLIB= ranlib | 15 | RANLIB= ranlib |
67 | RM= rm -f | 16 | RM= rm -f |
17 | UNAME= uname | ||
18 | |||
19 | SYSCFLAGS= | ||
20 | SYSLDFLAGS= | ||
21 | SYSLIBS= | ||
22 | |||
23 | MYCFLAGS= | ||
24 | MYLDFLAGS= | ||
25 | MYLIBS= | ||
26 | MYOBJS= | ||
68 | 27 | ||
28 | # Special flags for compiler modules; -Os reduces code size. | ||
29 | CMCFLAGS= | ||
69 | 30 | ||
31 | # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= | ||
70 | 32 | ||
71 | # == 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 |
72 | 34 | ||
35 | LUA_A= liblua.a | ||
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) | ||
73 | 39 | ||
74 | LIBS = -lm | 40 | LUA_T= lua |
41 | LUA_O= lua.o | ||
75 | 42 | ||
76 | CORE_T= liblua.a | 43 | LUAC_T= luac |
77 | CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ | 44 | LUAC_O= luac.o |
78 | lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ | ||
79 | ltm.o lundump.o lvm.o lzio.o | ||
80 | AUX_O= lauxlib.o | ||
81 | LIB_O= lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o lstrlib.o \ | ||
82 | lutf8lib.o loadlib.o lcorolib.o linit.o | ||
83 | 45 | ||
84 | ALL_T= $(CORE_T) | 46 | ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) |
85 | ALL_O= $(CORE_O) $(AUX_O) $(LIB_O) | 47 | ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) |
86 | ALL_A= $(CORE_T) | 48 | ALL_A= $(LUA_A) |
49 | |||
50 | # Targets start here. | ||
51 | default: $(PLAT) | ||
87 | 52 | ||
88 | all: $(ALL_T) | 53 | all: $(ALL_T) |
89 | 54 | ||
@@ -91,40 +56,104 @@ o: $(ALL_O) | |||
91 | 56 | ||
92 | a: $(ALL_A) | 57 | a: $(ALL_A) |
93 | 58 | ||
94 | $(CORE_T): $(CORE_O) $(AUX_O) $(LIB_O) | 59 | $(LUA_A): $(BASE_O) |
95 | $(AR) $@ $? | 60 | $(AR) $@ $(BASE_O) |
96 | $(RANLIB) $@ | 61 | $(RANLIB) $@ |
97 | 62 | ||
98 | llex.o: | 63 | $(LUA_T): $(LUA_O) $(LUA_A) |
99 | $(CC) $(CFLAGS) -Os -c llex.c | 64 | $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) |
100 | 65 | ||
101 | lparser.o: | 66 | $(LUAC_T): $(LUAC_O) $(LUA_A) |
102 | $(CC) $(CFLAGS) -Os -c lparser.c | 67 | $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) |
103 | |||
104 | lcode.o: | ||
105 | $(CC) $(CFLAGS) -Os -c lcode.c | ||
106 | 68 | ||
69 | test: | ||
70 | ./$(LUA_T) -v | ||
107 | 71 | ||
108 | clean: | 72 | clean: |
109 | $(RM) $(ALL_T) $(ALL_O) | 73 | $(RM) $(ALL_T) $(ALL_O) |
110 | 74 | ||
111 | depend: | 75 | depend: |
112 | @$(CC) $(CFLAGS) -MM *.c | 76 | @$(CC) $(CFLAGS) -MM l*.c |
113 | 77 | ||
114 | echo: | 78 | echo: |
115 | @echo "CC = $(CC)" | 79 | @echo "PLAT= $(PLAT)" |
116 | @echo "CFLAGS = $(CFLAGS)" | 80 | @echo "CC= $(CC)" |
117 | @echo "AR = $(AR)" | 81 | @echo "CFLAGS= $(CFLAGS)" |
118 | @echo "RANLIB = $(RANLIB)" | 82 | @echo "LDFLAGS= $(SYSLDFLAGS)" |
119 | @echo "RM = $(RM)" | 83 | @echo "LIBS= $(LIBS)" |
120 | @echo "MYCFLAGS = $(MYCFLAGS)" | 84 | @echo "AR= $(AR)" |
121 | @echo "MYLDFLAGS = $(MYLDFLAGS)" | 85 | @echo "RANLIB= $(RANLIB)" |
122 | @echo "DL = $(DL)" | 86 | @echo "RM= $(RM)" |
87 | @echo "UNAME= $(UNAME)" | ||
88 | |||
89 | # Convenience targets for popular platforms. | ||
90 | ALL= all | ||
91 | |||
92 | help: | ||
93 | @echo "Do 'make PLATFORM' where PLATFORM is one of these:" | ||
94 | @echo " $(PLATS)" | ||
95 | @echo "See doc/readme.html for complete instructions." | ||
96 | |||
97 | guess: | ||
98 | @echo Guessing `$(UNAME)` | ||
99 | @$(MAKE) `$(UNAME)` | ||
100 | |||
101 | AIX aix: | ||
102 | $(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall" | ||
103 | |||
104 | bsd: | ||
105 | $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E" | ||
106 | |||
107 | c89: | ||
108 | $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_C89" CC="gcc -std=c89" | ||
109 | @echo '' | ||
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' | ||
113 | @echo '' | ||
123 | 114 | ||
124 | $(ALL_O): makefile | 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" | ||
117 | |||
118 | generic: $(ALL) | ||
119 | |||
120 | Linux linux: linux-noreadline | ||
121 | |||
122 | linux-noreadline: | ||
123 | $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl" | ||
124 | |||
125 | linux-readline: | ||
126 | $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE" SYSLIBS="-Wl,-E -ldl -lreadline" | ||
127 | |||
128 | Darwin macos macosx: | ||
129 | $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX -DLUA_USE_READLINE" SYSLIBS="-lreadline" | ||
130 | |||
131 | mingw: | ||
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 | ||
136 | |||
137 | posix: | ||
138 | $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX" | ||
139 | |||
140 | SunOS solaris: | ||
141 | $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN -D_REENTRANT" SYSLIBS="-ldl" | ||
142 | |||
143 | # Targets that do not create files (not all makes understand .PHONY). | ||
144 | .PHONY: all $(PLATS) help test clean default o a depend echo | ||
145 | |||
146 | # Compiler modules may use special flags. | ||
147 | llex.o: | ||
148 | $(CC) $(CFLAGS) $(CMCFLAGS) -c llex.c | ||
149 | |||
150 | lparser.o: | ||
151 | $(CC) $(CFLAGS) $(CMCFLAGS) -c lparser.c | ||
152 | |||
153 | lcode.o: | ||
154 | $(CC) $(CFLAGS) $(CMCFLAGS) -c lcode.c | ||
125 | 155 | ||
126 | # DO NOT EDIT | 156 | # DO NOT DELETE |
127 | # automatically made with 'gcc -MM l*.c' | ||
128 | 157 | ||
129 | lapi.o: lapi.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ | 158 | lapi.o: lapi.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ |
130 | lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lstring.h \ | 159 | lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lstring.h \ |
@@ -177,6 +206,9 @@ ltable.o: ltable.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ | |||
177 | ltablib.o: ltablib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h | 206 | ltablib.o: ltablib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h |
178 | ltm.o: ltm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ | 207 | ltm.o: ltm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ |
179 | llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.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 | ||
180 | lundump.o: lundump.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \ | 212 | lundump.o: lundump.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \ |
181 | lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h \ | 213 | lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h \ |
182 | lundump.h | 214 | lundump.h |