From 8b08244c9bb8fc93f539ed5e3e1f7592b7a79a54 Mon Sep 17 00:00:00 2001 From: nhmall Date: Sun, 1 Dec 2024 13:24:30 -0500 Subject: [PATCH] Cross-compile build fixes recover was not being built correctly under cross compilation --- sys/unix/Makefile.top | 4 ++- sys/unix/Makefile.utl | 12 +++---- sys/unix/hints/include/cross-post.370 | 48 +++++++++++++++++++++++---- sys/unix/hints/include/cross-pre2.370 | 6 ++-- 4 files changed, 53 insertions(+), 17 deletions(-) diff --git a/sys/unix/Makefile.top b/sys/unix/Makefile.top index c7bb4b524..45cd7330a 100644 --- a/sys/unix/Makefile.top +++ b/sys/unix/Makefile.top @@ -118,6 +118,8 @@ DAT = $(DATNODLB) $(DATDLB) # $(CHGRP) $(GAMEGRP) $(INSTDIR)/sysconf && \ # chmod $(VARFILEPERM) $(INSTDIR)/sysconf; fi ); +RECOVERBIN = recover + # Lua LUAHEADERS = lib/lua-$(LUA_VERSION)/src LUATESTTARGET = $(LUAHEADERS)/lua.h @@ -283,7 +285,7 @@ package: $(GAME) recover $(VARDAT) spec_levs # recover can be used when INSURANCE is defined in include/config.h # and the checkpoint option is true recover: $(GAME) - ( cd util ; $(MAKE) recover ) + ( cd util ; $(MAKE) $(RECOVERBIN) ) dofiles: target=`sed -n \ diff --git a/sys/unix/Makefile.utl b/sys/unix/Makefile.utl index 2555449b0..ebe974cc1 100644 --- a/sys/unix/Makefile.utl +++ b/sys/unix/Makefile.utl @@ -200,7 +200,7 @@ HACKLIBOBJ = $(OBJDIR)/hacklib.o panic.o MAKEOBJS = makedefs.o $(OMONOBJ) $(ODATE) $(OALLOC) # object files for recovery utility -RECOVOBJS = $(TARGETPFX)recover.o +RECOVOBJS = recover.o # object files for the data librarian DLBOBJS = dlb_main.o $(OBJDIR)/dlb.o $(OALLOC) @@ -277,12 +277,12 @@ lintdgn: # dependencies for recover # -$(TARGETPFX)recover: $(RECOVOBJS) $(TARGETPFX)$(HACKLIB) - $(TARGET_CLINK) $(TARGET_LFLAGS) -o recover \ - $(RECOVOBJS) $(TARGETPFX)$(HACKLIB) $(LIBS) +recover: $(RECOVOBJS) $(HACKLIB) + $(CLINK) $(LFLAGS) -o recover \ + $(RECOVOBJS) $(HACKLIB) $(LIBS) -$(TARGETPFX)recover.o: recover.c $(CONFIG_H) - $(TARGET_CC) $(TARGET_CFLAGS) $(CSTD) -c recover.c -o $@ +recover.o: recover.c $(CONFIG_H) + $(CC) $(CFLAGS) $(CSTD) -c recover.c -o $@ # dependencies for dlb diff --git a/sys/unix/hints/include/cross-post.370 b/sys/unix/hints/include/cross-post.370 index 8bbf00a5e..a509aae6f 100644 --- a/sys/unix/hints/include/cross-post.370 +++ b/sys/unix/hints/include/cross-post.370 @@ -42,7 +42,7 @@ $(DOSFONT)/ter-u28b.psf: $(FONTTOP)/ter-u28b.bdf $(DOSFONT)/nh-u28b.bdf $(DOSFON $(DOSFONT)/ter-u32b.psf: $(FONTTOP)/ter-u32b.bdf $(DOSFONT)/nh-u32b.bdf $(DOSFONT)/makefont.lua $(LUABIN) $(LUABIN) $(DOSFONT)/makefont.lua $(FONTTOP)/ter-u32b.bdf $(DOSFONT)/nh-u32b.bdf $@ # -.PHONY: dodata dospkg dosfonts recover +.PHONY: dodata dospkg dosfonts dosfonts: $(FONTTARGETS) dospkg: dodata dosfonts $(GAMEBIN) $(TARGETPFX)recover.exe ../dat/nhtiles.bmp $(TARGET_STUBEDIT) $(GAMEBIN) minstack=2048K @@ -107,12 +107,17 @@ $(TARGETPFX)unixtty.o : ../sys/share/unixtty.c $(HACK_H) $(TARGETPFX)winshim.o : ../win/shim/winshim.c $(HACK_H) $(TARGETPFX)libnhmain.o : ../sys/libnh/libnhmain.c $(HACK_H) endif # CROSS_TO_WASM + # ifdef CROSS_TO_MIPS -$(MIPS_TARGET): pregame $(TARGETPFX)date.o $(HOSTOBJ) $(HOBJ) $(LUACROSSLIB) $(MIPS_DATA_DIR) +$(MIPS_TARGET): pregame $(TARGETPFX)date.o $(HOSTOBJ) $(HOBJ) $(LUACROSSLIB) \ + $(TARGETPFX)ncurses/lib/libncurses.a \ + $(MIPS_DATA_DIR) -rm $@ - $(TARGET_CC) $(TARGET_LFLAGS) $(TARGET_CFLAGS) -o $@ \ - $(HOBJ) $(TARGETPFX)date.o $(TARGET_LIBS) + $(TARGET_LINK) $(TARGET_LFLAGS) -o $@ \ + $(HOBJ) $(TARGETPFX)date.o $(TARGETPFX)$(HACKLIB) \ + $(TARGETPFX)ncurses/lib/libncurses.a \ + $(TARGET_LIBS) $(MIPS_DATA_DIR): $(MIPS_DATA_DIR)/nhdat touch $(MIPS_DATA_DIR)/perm @@ -131,9 +136,28 @@ $(TARGETPFX)unixres.o : ../sys/unix/unixres.c $(HACK_H) $(TARGETPFX)unixunix.o : ../sys/unix/unixunix.c $(HACK_H) $(TARGETPFX)ioctl.o : ../sys/share/ioctl.c $(HACK_H) $(TARGETPFX)unixtty.o : ../sys/share/unixtty.c $(HACK_H) -endif # CROSS_TO_MIPS -# +$(LUABIN): + ( cd .. && make luabin && cd src) +dodata: + ( cd .. && make dlb && cd src) + +mipsrecover: $(TARGETPFX)recover +.PHONY: mipspkg +mipspkg: dodata $(GAMEBIN) $(TARGETPFX)recover + mkdir -p $(TARGETPFX)pkg + cp $(GAMEBIN) $(TARGETPFX)pkg/nethack + cp $(TARGETPFX)recover $(TARGETPFX)pkg/recover + cp ../dat/nhdat $(TARGETPFX)pkg/nhdat + cp ../dat/license $(TARGETPFX)pkg/license + cp ../dat/symbols $(TARGETPFX)pkg/symbols + cp ../sys/share/NetHack.cnf $(TARGETPFX)pkg/.nethackrc + cp ../sys/msdos/sysconf $(TARGETPFX)pkg/sysconf + cp ../doc/nethack.txt $(TARGETPFX)pkg/nethack.txt + -touch $(TARGETPFX)pkg/record + cd $(TARGETPFX)pkg ; zip -9 ../nh370mips.zip * ; cd ../../.. + @echo MIPS package zip file $(TARGETPFX)nh370mips.zip +endif # CROSS_TO_MIPS ifdef CROSS_SHARED # shared file dependencies @@ -144,16 +168,26 @@ $(TARGETPFX)pcunix.o : ../sys/share/pcunix.c $(HACK_H) $(TARGETPFX)tileset.o : ../win/share/tileset.c $(TARGETPFX)bmptiles.o : ../win/share/bmptiles.c $(TARGETPFX)giftiles.o : ../win/share/giftiles.c -$(TARGETPFX)recover.o : ../util/recover.c endif # CROSS_SHARED # ifdef CROSS $(TARGETPFX)hacklib.a: $(TARGETPFX)hacklib.o $(TARGET_AR) $(TARGET_ARFLAGS) $@ $(TARGETPFX)hacklib.o +ifdef MAKEFILE_UTL +$(TARGETPFX)recover.o: recover.c $(CONFIG_H) + $(TARGET_CC) $(TARGET_CFLAGS) $(CSTD) -c recover.c -o $@ +ifdef CROSS_TO_MSDOS $(TARGETPFX)recover.exe : $(TARGETPFX)recover.o $(TARGETPFX)hacklib.a $(TARGET_LINK) $(TARGET_LFLAGS) \ $(TARGETPFX)recover.o $(TARGETPFX)hacklib.a -o $@ +else +$(TARGETPFX)recover : $(TARGETPFX)recover.o $(TARGETPFX)hacklib.a + $(TARGET_LINK) $(TARGET_LFLAGS) \ + $(TARGETPFX)recover.o $(TARGETPFX)hacklib.a -o $@ endif +endif # MAKEFILE_UTL +endif # CROSS + ifdef BUILD_TARGET_LUA # Lua lib $(LUACROSSLIB): $(LUALIBOBJS) diff --git a/sys/unix/hints/include/cross-pre2.370 b/sys/unix/hints/include/cross-pre2.370 index 5d2f415a4..bc38efa62 100644 --- a/sys/unix/hints/include/cross-pre2.370 +++ b/sys/unix/hints/include/cross-pre2.370 @@ -84,8 +84,6 @@ PDCOBJS = $(TARGETPFX)pdcclip.o $(TARGETPFX)pdcdisp.o \ $(TARGETPFX)pdcscrn.o $(TARGETPFX)pdcsetsc.o \ $(TARGETPFX)pdcutil.o override TARGET_LIBS += $(PDCLIB) -ifdef CROSS_TO_MSDOS -endif override BUILDMORE += $(PDCLIB) override CLEANMORE += rm -f $(PDCLIB) ; else #WANT_WIN_CURSES @@ -193,6 +191,7 @@ override LUALIB= override LUALIBS= override TOPLUALIB= override GAMEBIN = $(TARGETPFX)nethack.exe +override RECOVERBIN = $(TARGETPFX)recover.exe override PACKAGE = dospkg override PREGAME += mkdir -p $(TARGETDIR) ; make $(TARGETPFX)exceptn.o ; override CLEANMORE += rm -f -r $(TARGETDIR) ; rm -f -r $(FONTTARGETS) ; @@ -392,7 +391,8 @@ override LUALIB= override LUALIBS= override TOPLUALIB= override GAMEBIN=$(MIPS_TARGET) -#override PACKAGE= +override RECOVERBIN = $(TARGETPFX)recover +override PACKAGE = mipspkg override PREGAME += mkdir -p $(TARGETDIR) ; override CLEANMORE += rm -f -r $(TARGETDIR) ; # Rule for file in sys/unix