more wasm cross-compiling follow-up

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