From 7bbf39c8c6c17779d8f82ce1488f37c619446b70 Mon Sep 17 00:00:00 2001 From: Jeremy Baxter Date: Sun, 18 Feb 2024 19:35:06 +1300 Subject: [PATCH] external/lua: revise makefile to be more generic part of this is making Lua's makefile use Callisto's config.mk by default. --- external/lua/Makefile | 82 +------------ external/lua/patches/lua-5.4.6-makefile.diff | 122 +++++++++++++++++-- 2 files changed, 118 insertions(+), 86 deletions(-) diff --git a/external/lua/Makefile b/external/lua/Makefile index 0da195e..67279aa 100644 --- a/external/lua/Makefile +++ b/external/lua/Makefile @@ -3,18 +3,15 @@ # == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= -# Your platform. See PLATS for possible values. -PLAT= guess +include ../../config.mk -CC= cc -std=c99 -CFLAGS= -O2 $(SYSCFLAGS) $(MYCFLAGS) -LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS) -LIBS= -lm $(SYSLIBS) $(MYLIBS) +CC= ${_CC} +CFLAGS= ${_CFLAGS} ${_CPPFLAGS} +LDFLAGS= ${_LDFLAGS} AR= ar cr RANLIB= ranlib RM= rm -f -UNAME= uname SYSCFLAGS= SYSLDFLAGS= @@ -30,8 +27,6 @@ CMCFLAGS= # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= -PLATS= guess aix bsd c89 freebsd generic ios linux linux-readline macosx mingw posix solaris - LUA_A= liblua.a 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 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 @@ -48,8 +43,6 @@ ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ALL_A= $(LUA_A) # Targets start here. -default: $(PLAT) - all: $(ALL_T) o: $(ALL_O) @@ -75,76 +68,11 @@ clean: depend: @$(CC) $(CFLAGS) -MM l*.c -echo: - @echo "PLAT= $(PLAT)" - @echo "CC= $(CC)" - @echo "CFLAGS= $(CFLAGS)" - @echo "LDFLAGS= $(LDFLAGS)" - @echo "LIBS= $(LIBS)" - @echo "AR= $(AR)" - @echo "RANLIB= $(RANLIB)" - @echo "RM= $(RM)" - @echo "UNAME= $(UNAME)" - # Convenience targets for popular platforms. ALL= all -help: - @echo "Do 'make PLATFORM' where PLATFORM is one of these:" - @echo " $(PLATS)" - @echo "See doc/readme.html for complete instructions." - -guess: - @echo Guessing `$(UNAME)` - @$(MAKE) `$(UNAME)` - -AIX aix: - $(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall" - -bsd: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E" - -c89: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_C89" CC="gcc -std=c89" - @echo '' - @echo '*** C89 does not guarantee 64-bit integers for Lua.' - @echo '*** Make sure to compile all external Lua libraries' - @echo '*** with LUA_USE_C89 to ensure consistency' - @echo '' - -FreeBSD NetBSD OpenBSD freebsd: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE -I/usr/include/edit" SYSLIBS="-Wl,-E -ledit" CC="cc" - -generic: $(ALL) - -ios: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_IOS" - -Linux linux: linux-noreadline - -linux-noreadline: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl" - -linux-readline: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE" SYSLIBS="-Wl,-E -ldl -lreadline" - -Darwin macos macosx: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX -DLUA_USE_READLINE" SYSLIBS="-lreadline" - -mingw: - $(MAKE) "LUA_A=lua54.dll" "LUA_T=lua.exe" \ - "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ - "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe - $(MAKE) "LUAC_T=luac.exe" luac.exe - -posix: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX" - -SunOS solaris: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN -D_REENTRANT" SYSLIBS="-ldl" - # Targets that do not create files (not all makes understand .PHONY). -.PHONY: all $(PLATS) help test clean default o a depend echo +.PHONY: all test clean o a depend # Compiler modules may use special flags. llex.o: diff --git a/external/lua/patches/lua-5.4.6-makefile.diff b/external/lua/patches/lua-5.4.6-makefile.diff index c0322ca..d7b6620 100644 --- a/external/lua/patches/lua-5.4.6-makefile.diff +++ b/external/lua/patches/lua-5.4.6-makefile.diff @@ -1,18 +1,122 @@ --- Makefile +++ Makefile -@@ -6,12 +6,12 @@ - # Your platform. See PLATS for possible values. - PLAT= guess - +@@ -3,18 +3,15 @@ + + # == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= + +-# Your platform. See PLATS for possible values. +-PLAT= guess ++include ../../config.mk + -CC= gcc -std=gnu99 -CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_3 $(SYSCFLAGS) $(MYCFLAGS) -+CC= cc -std=c99 -+CFLAGS= -O2 $(SYSCFLAGS) $(MYCFLAGS) - LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS) - LIBS= -lm $(SYSLIBS) $(MYLIBS) +-LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS) +-LIBS= -lm $(SYSLIBS) $(MYLIBS) ++CC= ${_CC} ++CFLAGS= ${_CFLAGS} ${_CPPFLAGS} ++LDFLAGS= ${_LDFLAGS} -AR= ar rcu +AR= ar cr RANLIB= ranlib RM= rm -f - UNAME= uname +-UNAME= uname + + SYSCFLAGS= + SYSLDFLAGS= +@@ -30,8 +27,6 @@ + + # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= + +-PLATS= guess aix bsd c89 freebsd generic ios linux linux-readline macosx mingw posix solaris +- + LUA_A= liblua.a + 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 + 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 +@@ -48,8 +43,6 @@ + ALL_A= $(LUA_A) + + # Targets start here. +-default: $(PLAT) +- + all: $(ALL_T) + + o: $(ALL_O) +@@ -75,76 +68,11 @@ + depend: + @$(CC) $(CFLAGS) -MM l*.c + +-echo: +- @echo "PLAT= $(PLAT)" +- @echo "CC= $(CC)" +- @echo "CFLAGS= $(CFLAGS)" +- @echo "LDFLAGS= $(LDFLAGS)" +- @echo "LIBS= $(LIBS)" +- @echo "AR= $(AR)" +- @echo "RANLIB= $(RANLIB)" +- @echo "RM= $(RM)" +- @echo "UNAME= $(UNAME)" +- + # Convenience targets for popular platforms. + ALL= all + +-help: +- @echo "Do 'make PLATFORM' where PLATFORM is one of these:" +- @echo " $(PLATS)" +- @echo "See doc/readme.html for complete instructions." +- +-guess: +- @echo Guessing `$(UNAME)` +- @$(MAKE) `$(UNAME)` +- +-AIX aix: +- $(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall" +- +-bsd: +- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E" +- +-c89: +- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_C89" CC="gcc -std=c89" +- @echo '' +- @echo '*** C89 does not guarantee 64-bit integers for Lua.' +- @echo '*** Make sure to compile all external Lua libraries' +- @echo '*** with LUA_USE_C89 to ensure consistency' +- @echo '' +- +-FreeBSD NetBSD OpenBSD freebsd: +- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE -I/usr/include/edit" SYSLIBS="-Wl,-E -ledit" CC="cc" +- +-generic: $(ALL) +- +-ios: +- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_IOS" +- +-Linux linux: linux-noreadline +- +-linux-noreadline: +- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl" +- +-linux-readline: +- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE" SYSLIBS="-Wl,-E -ldl -lreadline" +- +-Darwin macos macosx: +- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX -DLUA_USE_READLINE" SYSLIBS="-lreadline" +- +-mingw: +- $(MAKE) "LUA_A=lua54.dll" "LUA_T=lua.exe" \ +- "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ +- "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe +- $(MAKE) "LUAC_T=luac.exe" luac.exe +- +-posix: +- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX" +- +-SunOS solaris: +- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN -D_REENTRANT" SYSLIBS="-ldl" +- + # Targets that do not create files (not all makes understand .PHONY). +-.PHONY: all $(PLATS) help test clean default o a depend echo ++.PHONY: all test clean o a depend + + # Compiler modules may use special flags. + llex.o: