1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
From 82f26ab102f327c021d89d4917e60d13063dcd23 Mon Sep 17 00:00:00 2001
From: Stefan Strogin <stefan@steils.org>
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 <lua.h>' >> $@
+ @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 <lualib.h>' >> $@
+ @echo '#include <lauxlib.h>' >> $@
+ @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
|