diff options
| author | Li Jin <dragon-fly@qq.com> | 2021-04-16 17:25:39 +0800 |
|---|---|---|
| committer | Li Jin <dragon-fly@qq.com> | 2021-04-16 17:25:39 +0800 |
| commit | ce9f6632635222b38ef0b37b4b1273da4a1877b4 (patch) | |
| tree | 04d4d3ea81749989015434333d3db1add7b0195a /src/lua/makefile | |
| parent | 3355b7c475bc4a3bc8c4f2e8a2f504bb3ccb9395 (diff) | |
| download | yuescript-ce9f6632635222b38ef0b37b4b1273da4a1877b4.tar.gz yuescript-ce9f6632635222b38ef0b37b4b1273da4a1877b4.tar.bz2 yuescript-ce9f6632635222b38ef0b37b4b1273da4a1877b4.zip | |
fix small issues, add web assembly support.
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 |
