diff --git a/sys/unix/Makefile.src b/sys/unix/Makefile.src index 10e833f61..8d1490db4 100644 --- a/sys/unix/Makefile.src +++ b/sys/unix/Makefile.src @@ -582,8 +582,8 @@ HSOURCES ?= $(HACKINCL) dgn_file.h FIRSTOBJ ?= monst.o objects.o HOSTOBJ ?= $(FIRSTOBJ) alloc.o drawing.o -$(info WINOBJ=$(WINOBJ)) -$(info GENTILEOFILE=$(GENTILEOFILE)) +#$(info WINOBJ=$(WINOBJ)) +#$(info GENTILEOFILE=$(GENTILEOFILE)) # # $(TARGETPFX)date.o is not included in this list diff --git a/sys/unix/Makefile.top b/sys/unix/Makefile.top index 6641bc116..d09dd2db0 100644 --- a/sys/unix/Makefile.top +++ b/sys/unix/Makefile.top @@ -127,8 +127,9 @@ LUATOP ?= $(LUAHEADERS) LUAMAKEFLAGS ?= CC='$(CC)' SYSCFLAGS='$(SYSCFLAGS)' LUA2NHTOP ?= ../../.. LUABASELIB ?= liblua-$(LUA_VERSION).a -TOPLUALIB ?= lib/lua/$(LUABASELIB) +LUATOPLIB ?= lib/lua/$(LUABASELIB) LUAHPREFIX ?= ../ +LUALIBBUILT ?= $(LUATOP)/liblua.a ALLDEP = $(PRECHECK) $(GAME) recover Guidebook $(VARDAT) spec_levs check-dlb @@ -144,11 +145,11 @@ lua_support: include/nhlua.h @true $(LUATOP)/liblua.a: $(LUAHEADERS)/lua.h ( cd $(LUATOP) && make $(LUAMAKEFLAGS) a ) -$(TOPLUALIB): $(LUATOP)/liblua.a +lib/lua/$(LUABASELIB): $(LUALIBBUILT) @( if test -d lib/lua ; then true ; else mkdir -p lib/lua ; fi ) cp $(LUATOP)/liblua.a $@ -include/nhlua.h: $(TOPLUALIB) +include/nhlua.h: $(LUATOPLIB) echo '/* nhlua.h - generated by top Makefile */' > $@ @echo '#include "$(LUAHPREFIX)$(LUAHEADERS)/lua.h"' >> $@ @sed -e '/(lua_error)/!d' \ diff --git a/sys/unix/hints/include/cross-pre2.500 b/sys/unix/hints/include/cross-pre2.500 index a8648aca9..fead0d4e8 100644 --- a/sys/unix/hints/include/cross-pre2.500 +++ b/sys/unix/hints/include/cross-pre2.500 @@ -230,7 +230,7 @@ override SYSOBJ= $(TARGETPFX)pcmain.o $(TARGETPFX)msdos.o \ override WINLIB= override LUALIB= override LUALIBS= -override TOPLUALIB= +override LUATOPLIB= override WINX11OBJ= override GAMEBIN = $(TARGETPFX)nethack.exe override RECOVERBIN = $(TARGETPFX)recover.exe @@ -367,7 +367,7 @@ override SYSOBJ= $(TARGETPFX)libnhmain.o \ $(TARGETPFX)winshim.o override WINLIB = emranlib override LUALIB= -override TOPLUALIB= +override LUATOPLIB= override REGEXOBJ = $(TARGETPFX)posixregex.o override WINOBJ= override UUIDOBJ= @@ -450,7 +450,7 @@ override SYSOBJ = $(TARGETPFX)ioctl.o $(TARGETPFX)unixmain.o $(TARGETPFX)unixtty override WINLIB = $(NCURSESLIB) override LUALIB= override LUALIBS= -override TOPLUALIB= +override LUATOPLIB= override GAMEBIN=$(MIPS_TARGET) override RECOVERBIN = $(TARGETPFX)recover override PACKAGE = mipspkg @@ -543,7 +543,7 @@ override SYSOBJ = $(TARGETPFX)amidos.o \ override WINLIB= override LUALIB= override LUALIBS= -override TOPLUALIB= +override LUATOPLIB= override DLLIB= override WINOBJ= override GAMEBIN = $(TARGETPFX)nethack diff --git a/sys/unix/hints/include/linuxdistro.500 b/sys/unix/hints/include/linuxdistro.500 new file mode 100644 index 000000000..7ff828f1c --- /dev/null +++ b/sys/unix/hints/include/linuxdistro.500 @@ -0,0 +1,25 @@ +# ----- linuxdistro.500 -------- + +LINUX_DISTRO= +OS_ID := $(shell grep -E '^ID=' /etc/os-release 2>/dev/null | cut -d= -f2) +#$(info OS_ID=$(OS_ID)) + +ifeq ($(OS_ID),alpine) +LINUX_DISTRO=alpine +USE_SYSTEM_LUA=1 +CURSPKG = ncurses +endif +ifeq ($(OS_ID),debian) +LINUX_DISTRO=debian +USE_SYSTEM_LUA=1 +endif +ifeq ($(OS_ID),ubuntu) +LINUX_DISTRO=ubuntu +USE_SYSTEM_LUA=1 +endif +ifeq ($(OS_ID),fedora) +LINUX_DISTRO=fedora +USE_SYSTEM_LUA=1 +endif +#$(info LINUX_DIST=$(LINUX_DISTRO)) +# ----- end of linuxdistro.500 -------- diff --git a/sys/unix/hints/linux.500 b/sys/unix/hints/linux.500 index d8aebe39e..7df63d93f 100755 --- a/sys/unix/hints/linux.500 +++ b/sys/unix/hints/linux.500 @@ -36,6 +36,9 @@ HINTSINCLFILES := $(addsuffix .$(HINTSVERSION), $(HINTSINCLNAMES)) endif endif +#-INCLUDE linuxdistro.500 + + ifndef LIBXPM LIBXPM= -L/opt/X11/lib -lXpm endif @@ -69,31 +72,107 @@ USE_NOSTATICFN = 1 #-INCLUDE compiler.500 ifdef WANT_SYSTEM_LUA -OS_ID := $(shell grep -E '^ID=' /etc/os-release 2>/dev/null | cut -d= -f2) -ifeq ($(OS_ID),alpine) -USE_SYSTEM_LUA=1 -CURSPKG = ncurses -endif # Alpine Linux - -ifeq "$(USE_SYSTEM_LUA)" "1" -#5.4.8 ifndef LUA_VERSION LUA_VERSION := 5.4.8 endif LUASUBDELIM := $(subst ., ,$(LUA_VERSION)) LUASHVER := $(word 1, $(LUASUBDELIM)).$(word 2, $(LUASUBDELIM)) + +ifeq ($(LINUX_DISTRO),alpine) +# prereq: doas apk add lua5.4-dev +# doas apk add linux-headers +# doas apk add musl-dev +USE_SYSTEM_LUA=1 +SHELLPKG :=pkg-config +LUAPKGNAME = lua-$(LUASHVER) +CURSPKG = ncurses +# +else ifeq ($(LINUX_DISTRO),debian) +# prereq: sudo apt install lua5.4 liblua5.4-dev +USE_SYSTEM_LUA=1 +SHELLPKG :=pkg-config +LUAPKGNAME = lua-$(LUASHVER) +# +else ifeq ($(LINUX_DISTRO),ubuntu) +# prereq: sudo apt install lua5.4 liblua5.4-dev +USE_SYSTEM_LUA=1 +SHELLPKG :=dpkg +LUAPKGNAME = lua$(LUASHVER) +# +else ifeq ($(LINUX_DISTRO),fedora) +# prereq: sudo dnf install lua lua-devel +USE_SYSTEM_LUA=1 +SHELLPKG :=rpm +LUAPKGNAME = lua-devel +# +else +USE_SYSTEM_LUA=0 +SHELLPKG := +endif # LINUX_DISTRO + +ifeq ($(USE_SYSTEM_LUA),1) +ifneq "$(SHELLPKG)" "" +# +# Two requirements must now pass: +# 1. We need to be able to check if Lua package +# is installed. We do that here. +# 2. The lua.h header file needs to be present +# where expected. We set LUATESTTARGET here, +# but the check is done later on in the top +# Makefile. +# +# Try to confirm package presence +ifeq ($(SHELLPKG),pkg-config) +PKG_EXISTS := $(shell pkg-config --exists $(LUAPKGNAME) \ + && echo yes || echo no) +# +else ifeq ($(SHELLPKG),dpkg) +PKG_EXISTS := $(shell dpkg -s $(LUAPKGNAME) > /dev/null 2>&1 \ + && echo yes || echo no) +# +else ifeq ($(SHELLPKG),rpm) +PKG_EXISTS := $(shell rpm -q $(LUAPKGNAME) > /dev/null 2>&1 \ + && echo yes || echo no) +# +else +$(info Section for DEFAULT) +PKG_EXISTS=no +$(info Existance of package $(LUAPKGNAME) could not be verified) +endif + +ifeq ($(PKG_EXISTS),yes) +$(info Existance of package $(LUAPKGNAME) verified) +# +ifeq ($(LINUX_DISTRO),fedora) +LUACFLAGS := $(shell pkg-config --cflags lua-$(LUASHVER)) +LUALIBS := $(shell pkg-config --libs lua-$(LUASHVER)) LUAHEADERS := /usr/include/lua$(LUASHVER) LUATESTTARGET := $(LUAHEADERS)/lua.h -LUAHPREFIX := -LUAFLAGS := $(shell pkg-config --cflags lua-$(LUASHVER)) +# +else ifeq ($(LINUX_DISTRO),ubuntu) +LUACFLAGS := -I/usr/include/lua$(LUASHVER) +LUALIBS := -llua$(LUASHVER) -lm -ldl +LUAHEADERS := /usr/include/lua$(LUASHVER) +LUATESTTARGET := $(LUAHEADERS)/lua.h +# +else ifeq ($(SHELLPKG),pkg-config) +LUACFLAGS := $(shell pkg-config --cflags lua-$(LUASHVER)) LUALIBS := $(shell pkg-config --libs lua-$(LUASHVER)) -CFLAGS += $(LUAFLAGS) +LUAHEADERS := /usr/include/lua$(LUASHVER) +LUATESTTARGET := $(LUAHEADERS)/lua.h +endif +# +LUAHPREFIX= LUATOP= LUAMAKEFLAGS= LUA2NHTOP= LUABASELIB= -TOPLUALIB= +LUATOPLIB= +LUALIBBUILT= LUALIB= +CFLAGS += $(LUACFLAGS) +endif # PKG_EXISTS? +endif # SHELLPKG has a value endif # USE_SYSTEM_LUA endif # WANT_SYSTEM_LUA