From 82f26ab102f327c021d89d4917e60d13063dcd23 Mon Sep 17 00:00:00 2001 From: Stefan Strogin Date: Tue, 5 May 2026 04:53:20 +0000 Subject: [PATCH] Allow building against system Lua --- sys/unix/Makefile.src | 6 ++++++ sys/unix/Makefile.top | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/sys/unix/Makefile.src b/sys/unix/Makefile.src index 863fa096c..c5004de5a 100644 --- a/sys/unix/Makefile.src +++ b/sys/unix/Makefile.src @@ -503,10 +503,16 @@ MAKEDEFS = ../util/makedefs # -lm required by lua LUA_VERSION ?=5.4.8 +SYSTEM_LUA ?=0 +LUA_LIBS ?= LUABASE = liblua-$(LUA_VERSION).a LUALIB = ../lib/lua/$(LUABASE) LUALIBS = $(LUALIB) -lm $(DLLIB) LUAHEADERS = lib/lua-$(LUA_VERSION)/src +ifeq ($(SYSTEM_LUA),1) +LUALIB = +LUALIBS = $(LUA_LIBS) +endif # timestamp files to reduce `make' overhead and shorten .o dependency lists CONFIG_H = ../src/config.h-t diff --git a/sys/unix/Makefile.top b/sys/unix/Makefile.top index 5ecca3232..47e455a3e 100644 --- a/sys/unix/Makefile.top +++ b/sys/unix/Makefile.top @@ -122,12 +122,17 @@ RECOVERBIN = recover # Lua LUAHEADERS = lib/lua-$(LUA_VERSION)/src +SYSTEM_LUA ?=0 +LUA_HEADER_DIR ?=/usr/include LUATESTTARGET = $(LUAHEADERS)/lua.h LUATOP = $(LUAHEADERS) LUAMAKEFLAGS = CC='$(CC)' SYSCFLAGS='$(SYSCFLAGS)' LUA2NHTOP = ../../.. LUABASELIB = liblua-$(LUA_VERSION).a TOPLUALIB = lib/lua/$(LUABASELIB) +ifeq ($(SYSTEM_LUA),1) +TOPLUALIB = +endif ALLDEP = $(PRECHECK) $(GAME) recover Guidebook $(VARDAT) spec_levs check-dlb @@ -141,6 +146,17 @@ $(GAME): lua_support lua_support: include/nhlua.h @true +ifeq ($(SYSTEM_LUA),1) +include/nhlua.h: + echo '/* nhlua.h - generated by top Makefile */' > $@ + @echo '#include ' >> $@ + @sed -e '/(lua_error)/!d' \ + -e '/(lua_error)/s/LUA_API/ATTRNORETURN LUA_API/1' \ + -e '/(lua_error)/s/;/ NORETURN;/1' < $(LUA_HEADER_DIR)/lua.h >> $@ + @echo '#include ' >> $@ + @echo '#include ' >> $@ + @echo '/*nhlua.h*/' >> $@ +else $(LUATOP)/liblua.a: $(LUAHEADERS)/lua.h ( cd $(LUATOP) && make $(LUAMAKEFLAGS) a ) $(TOPLUALIB): $(LUATOP)/liblua.a @@ -160,6 +176,7 @@ include/nhlua.h: $(TOPLUALIB) lib/lua-$(LUA_VERSION)/src/lua.h: @echo "Please do 'make fetch-lua' in the top directory to obtain lua-$(LUA_VERSION)" @false +endif luabin: ( cd $(LUATOP) \ && make $(LUAMAKEFILES) all && cd $(LUA2NHTOP) ) -- 2.54.0