]> granicus.if.org Git - nethack/commitdiff
more wasm cross-compiling follow-up
authornhmall <nhmall@nethack.org>
Tue, 6 Oct 2020 05:47:19 +0000 (01:47 -0400)
committernhmall <nhmall@nethack.org>
Tue, 6 Oct 2020 05:47:19 +0000 (01:47 -0400)
sys/unix/Makefile.top
sys/unix/hints/include/cross-post.2020
sys/unix/hints/include/cross-pre.2020

index 89a27322176dbc9128767ebf8dfc74640b7adb3e..c0e5433a35c991b9f1fa3433a2409010551d0c4b 100644 (file)
@@ -94,8 +94,10 @@ DATNODLB = $(VARDATND) license symbols
 DATDLB = $(DATHELP) dungeon.lua tribute $(SPEC_LEVS) $(QUEST_LEVS) $(VARDATD)
 DAT = $(DATNODLB) $(DATDLB)
 
+ALLDEP = $(GAME) recover Guidebook $(VARDAT) spec_levs check-dlb
+
 # first target is also the default target for 'make' without any arguments
-all:   $(GAME) recover Guidebook $(VARDAT) spec_levs check-dlb
+all:    $(ALLDEP)
        true; $(MOREALL)
        @echo "Done."
 
@@ -205,6 +207,9 @@ dlb:
        ( cd util ; $(MAKE) dlb )
        ( cd dat ; LC_ALL=C ; ../util/dlb cf nhdat $(DATDLB) )
 
+wasm:
+       ( cd src ; $(MAKE) $(WASM_TARGET) )
+
 package: $(GAME) recover $(VARDAT) spec_levs
        ( cd src ;  $(MAKE) $(PACKAGE) )
 
index a4c2d0a9cd74d0e8cbf8c7a0b960ede1b5b82562..1822dbd12babd86bb05ea9f55d3bab6b024db650 100644 (file)
@@ -120,24 +120,23 @@ amigapkg: $(GAMEBIN) $(TARGETPFX)recover.exe ../dat/nhtiles.bmp
 endif  # CROSS_TO_AMIGA
 
 ifdef CROSS_TO_WASM
-$(WASM_TARGET): $(HOBJ) $(LUACROSSLIB) Makefile $(WASM_DATA_DIR)
+$(WASM_TARGET): pregame $(HOBJ) $(LUACROSSLIB) $(WASM_DATA_DIR)
        -rm $@
-       $(TARGET_CC) $(EMCC_LFLAGS) $(EMCC_CFLAGS) -o $@ \
+       $(TARGET_CC) $(TARGET_LFLAGS) $(TARGET_CFLAGS) -o $@ \
                $(HOBJ) $(TARGET_LIBS)
 
-$(WASM_DATA_DIR):
-       -mkdir -p $(WASM_DATA_DIR)
+$(WASM_DATA_DIR): $(WASM_DATA_DIR)/nhdat
        touch $(WASM_DATA_DIR)/perm
        touch $(WASM_DATA_DIR)/record
        touch $(WASM_DATA_DIR)/logfile
        touch $(WASM_DATA_DIR)/xlogfile
-       ( cd ..; $(MAKE) dlb )
-       ( cd ..; $(MAKE) dofiles-dlb )
        cp ../sys/lib/sysconf $(WASM_DATA_DIR)/sysconf
+
+$(WASM_DATA_DIR)/nhdat:
+       ( cd ..; $(MAKE) INSTDIR='$(WASM_DATA_DIR)' dlb )
+       ( cd ..; $(MAKE) INSTDIR='$(WASM_DATA_DIR)' dofiles-dlb )
+
 #
-.PHONY: wasmpkg
-wasmpkg:
-       @echo "$(WASM_TARGET) done."
 $(TARGETPFX)unixmain.o : ../sys/unix/unixmain.c $(HACK_H)
 $(TARGETPFX)unixres.o : ../sys/unix/unixres.c $(HACK_H)
 $(TARGETPFX)unixunix.o : ../sys/unix/unixunix.c $(HACK_H)
index 0b1f717374a8bf00dbf5f1235990594ce05b91ce..4fe0f9faca5637c9af858d58a50d0e413ed8a543 100644 (file)
@@ -5,6 +5,7 @@
 #
 
 ifdef CROSS_TO_MSDOS
+CROSS=1
 BUILD_TARGET_LUA=1
 BUILD_PDCURSES=1
 CROSS_SHARED=1
@@ -15,6 +16,7 @@ override TARGET_LIBS=
 endif
 
 ifdef CROSS_TO_AMIGA
+CROSS=1
 BUILD_TARGET_LUA=1
 BUILD_PDCURSES=1
 CROSS_SHARED=1
@@ -25,6 +27,7 @@ override TARGET_LIBS=
 endif
 
 ifdef CROSS_TO_WASM
+CROSS=1
 BUILD_TARGET_LUA=1
 override TARGET = wasm
 override TARGETDIR=../targets/$(TARGET)
@@ -32,6 +35,12 @@ override TARGETPFX = $(TARGETDIR)/
 override TARGET_LIBS= 
 endif
 
+ifdef CROSS
+override PREGAME=
+override CLEANMORE=
+override PACKAGE=
+endif
+
 ifdef BUILD_TARGET_LUA
 #===============-=================================================
 # LUA library
@@ -61,7 +70,8 @@ LUAOBJFILES4 =  $(TARGETPFX)lstring.o $(TARGETPFX)lstrlib.o \
 LUALIBOBJS = $(LUAOBJFILES1) $(LUAOBJFILES2) $(LUAOBJFILES3) $(LUAOBJFILES4)
 LUACROSSLIB = $(TARGETPFX)lua$(subst .,,$(LUA_VERSION)).a
 LUAINCL  = -I$(LUASRCDIR)
-BUILDMORE += $(LUACROSSLIB)
+override BUILDMORE += $(LUACROSSLIB) ;
+override CLEANMORE += rm -f $(LUACROSSLIB) ;
 override TARGET_LIBS += $(LUACROSSLIB) -lm
 else
 LUAINCL=
@@ -110,7 +120,8 @@ ifdef CROSS_TO_AMIGA
 PDCINCL += -I$(PDCTOP)/sdl1 -I/opt/amiga/m68k-amigaos/include/SDL
 override TARGET_LIBS += -lSDL
 endif
-BUILDMORE += $(PDCLIB)
+override BUILDMORE += $(PDCLIB) ;
+override CLEANMORE += rm -f $(PDCLIB) ;
 # Rules for PDCurses files
 $(TARGETPFX)%.o : $(PDCTOP)/pdcurses/%.c
        $(TARGET_CC) $(PDCINCL) $(TARGET_CFLAGS) -o$@  $<
@@ -173,10 +184,10 @@ override SYSOBJ= $(TARGETPFX)pcmain.o $(TARGETPFX)msdos.o \
 override WINLIB=
 override LUALIB=
 override GAMEBIN = $(TARGETPFX)nethack.exe
-override PACKAGE= dospkg
+override PACKAGE = dospkg
+override PREGAME += mkdir -p $(TARGETDIR) ;
+override CLEANMORE += rm -f -r $(TARGETDIR) ;
 VARDATND += nhtiles.bmp
-PREGAME = mkdir -p $(TARGETDIR)
-CLEANMORE += rm -f -r $(TARGETDIR)
 #
 ifdef WANT_WIN_CURSES
 # rules for pdcurses dos-specific files
@@ -262,9 +273,9 @@ override SYSOBJ = $(TARGETPFX)amidos.o $(TARGETPFX)amigst.o \
 override WINLIB=
 override LUALIB=
 override GAMEBIN = $(TARGETPFX)nethack
-override PACKAGE= amigapkg
-PREGAME = mkdir -p $(TARGETDIR)
-CLEANMORE += rm -r $(TARGETDIR)
+override PACKAGE = amigapkg
+override PREGAME += mkdir -p $(TARGETDIR) ;
+override CLEANMORE += rm -r $(TARGETDIR) ;
 #              ../util/txt2iff
 #
 ifdef WANT_WIN_CURSES
@@ -284,9 +295,10 @@ ifdef CROSS_TO_WASM
 # originally from https://github.com/NetHack/NetHack/pull/385
 #===============-=================================================
 #
-WASM_DATA_DIR = $(TARGETPFX)wasm-data/
+WASM_DATA_DIR = $(TARGETPFX)wasm-data
 WASM_TARGET = $(TARGETPFX)nethack.js
-EMCC_LFLAGS = -s SINGLE_FILE=1
+EMCC_LFLAGS =
+#EMCC_LFLAGS += -s SINGLE_FILE=1
 EMCC_LFLAGS += -s WASM=1
 EMCC_LFLAGS += -s ALLOW_TABLE_GROWTH
 EMCC_LFLAGS += -s ASYNCIFY -s ASYNCIFY_IMPORTS='["local_callback"]'
@@ -303,7 +315,7 @@ EMCC_LFLAGS += --embed-file $(WASM_DATA_DIR)
 # WASM C flags
 EMCC_CFLAGS=
 EMCC_CFLAGS += -Wall
-EMCC_CFLAGS += -Werror
+#EMCC_CFLAGS += -Werror
 #EMCC_CFLAGS += -s DISABLE_EXCEPTION_CATCHING=0
 EMCC_DEBUG_CFLAGS += -s ASSERTIONS=1
 #EMCC_DEBUG_CFLAGS += -s ASSERTIONS=2
@@ -325,7 +337,7 @@ endif
 override TARGET_CC = emcc
 override TARGET_CXX = emcc
 override TARGET_AR = emar
-override TARGET_CFLAGS = $(EMCC_CFLAGS) -c \
+override TARGET_CFLAGS = $(EMCC_CFLAGS) \
        -I../include \
        $(LUAINCL) -DDLB $(PDCURSESDEF) \
        -DNOTTYGRAPHICS -DSHIM_GRAPHICS -DDEFAULT_WINDOW_SYS=\"shim\" \
@@ -343,14 +355,17 @@ override SYSOBJ= $(TARGETPFX)libnethackmain.o \
                $(TARGETPFX)winshim.o
 override WINLIB = emranlib 
 override LUALIB=
-override PACKAGE= wasmpkg
 override REGEXOBJ = $(TARGETPFX)posixregex.o
+override WINOBJ=
+#override INSTDIR = $(WASM_DATA_DIR)
+#override PACKAGE= wasmpkg
+#override MOREALL = ( cd src ; $(MAKE) $(WASM_TARGET) )
+override GAME=
+override ALLDEP = wasm
+override PREGAME += mkdir -p $(TARGETDIR)/wasm-data ;
+override CLEANMORE += rm -rf $(TARGETDIR) ;
 RANLIB=$(EMRANLIB)
 #VARDATND += nhtiles.bmp
-override GAME=
-MOREALL += ( cd src ; $(MAKE) pregame ; $(MAKE) $(WASM_TARGET) )
-PREGAME = mkdir -p $(TARGETDIR)
-CLEANMORE += rm -f -r $(TARGETDIR)
 # Rule for file in sys/unix
 $(TARGETPFX)%.o : ../sys/unix/%.c
        $(TARGET_CC) $(TARGET_CFLAGS) -c -o$@ $<