aboutsummaryrefslogtreecommitdiff
path: root/src/lua/makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/makefile')
-rw-r--r--src/lua/makefile222
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.
8CWARNSCPP= \ 7PLAT= guess
9 -Wextra \ 8
10 -Wshadow \ 9CC= gcc -std=gnu99
11 -Wsign-compare \ 10CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_3 $(SYSCFLAGS) $(MYCFLAGS)
12 -Wundef \ 11LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS)
13 -Wwrite-strings \ 12LIBS= -lm $(SYSLIBS) $(MYLIBS)
14 -Wredundant-decls \ 13
15 -Wdisabled-optimization \ 14AR= 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++
28CWARNSC= -Wdeclaration-after-statement \
29 -Wmissing-prototypes \
30 -Wnested-externs \
31 -Wstrict-prototypes \
32 -Wc++-compat \
33 -Wold-style-definition \
34
35
36CWARNS= $(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
48LOCAL = $(CWARNS)
49
50
51# enable Linux goodies
52MYCFLAGS= $(LOCAL) -std=c99
53
54UNAME_S:=$(shell uname -s)
55ifeq ($(UNAME_S),Darwin)
56 MYCFLAGS += -DLUA_USE_MACOSX
57 MYLDFLAGS= $(LOCAL) -Wl
58else
59 MYCFLAGS += -DLUA_USE_LINUX
60 MYLDFLAGS= $(LOCAL) -Wl,-E
61endif
62
63CC= gcc
64CFLAGS= -Wall -O2 $(MYCFLAGS) -fno-stack-protector -fno-common
65AR= ar rc
66RANLIB= ranlib 15RANLIB= ranlib
67RM= rm -f 16RM= rm -f
17UNAME= uname
18
19SYSCFLAGS=
20SYSLDFLAGS=
21SYSLIBS=
22
23MYCFLAGS=
24MYLDFLAGS=
25MYLIBS=
26MYOBJS=
68 27
28# Special flags for compiler modules; -Os reduces code size.
29CMCFLAGS=
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 ========= 33PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris
72 34
35LUA_A= liblua.a
36CORE_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
37LIB_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
38BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
73 39
74LIBS = -lm 40LUA_T= lua
41LUA_O= lua.o
75 42
76CORE_T= liblua.a 43LUAC_T= luac
77CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ 44LUAC_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
80AUX_O= lauxlib.o
81LIB_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
84ALL_T= $(CORE_T) 46ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
85ALL_O= $(CORE_O) $(AUX_O) $(LIB_O) 47ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
86ALL_A= $(CORE_T) 48ALL_A= $(LUA_A)
49
50# Targets start here.
51default: $(PLAT)
87 52
88all: $(ALL_T) 53all: $(ALL_T)
89 54
@@ -91,40 +56,104 @@ o: $(ALL_O)
91 56
92a: $(ALL_A) 57a: $(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
98llex.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
101lparser.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
104lcode.o:
105 $(CC) $(CFLAGS) -Os -c lcode.c
106 68
69test:
70 ./$(LUA_T) -v
107 71
108clean: 72clean:
109 $(RM) $(ALL_T) $(ALL_O) 73 $(RM) $(ALL_T) $(ALL_O)
110 74
111depend: 75depend:
112 @$(CC) $(CFLAGS) -MM *.c 76 @$(CC) $(CFLAGS) -MM l*.c
113 77
114echo: 78echo:
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.
90ALL= all
91
92help:
93 @echo "Do 'make PLATFORM' where PLATFORM is one of these:"
94 @echo " $(PLATS)"
95 @echo "See doc/readme.html for complete instructions."
96
97guess:
98 @echo Guessing `$(UNAME)`
99 @$(MAKE) `$(UNAME)`
100
101AIX aix:
102 $(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall"
103
104bsd:
105 $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E"
106
107c89:
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 115FreeBSD NetBSD OpenBSD freebsd:
116 $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE -I/usr/include/edit" SYSLIBS="-Wl,-E -ledit" CC="cc"
117
118generic: $(ALL)
119
120Linux linux: linux-noreadline
121
122linux-noreadline:
123 $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl"
124
125linux-readline:
126 $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE" SYSLIBS="-Wl,-E -ldl -lreadline"
127
128Darwin macos macosx:
129 $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX -DLUA_USE_READLINE" SYSLIBS="-lreadline"
130
131mingw:
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
137posix:
138 $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX"
139
140SunOS 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.
147llex.o:
148 $(CC) $(CFLAGS) $(CMCFLAGS) -c llex.c
149
150lparser.o:
151 $(CC) $(CFLAGS) $(CMCFLAGS) -c lparser.c
152
153lcode.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
129lapi.o: lapi.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ 158lapi.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 \
177ltablib.o: ltablib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h 206ltablib.o: ltablib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
178ltm.o: ltm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ 207ltm.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
209lua.o: lua.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
210luac.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
180lundump.o: lundump.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \ 212lundump.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