85 lines
2.1 KiB
Plaintext
85 lines
2.1 KiB
Plaintext
|
|
#-PRE xxxx
|
|
# enscripten WebAssembly config
|
|
|
|
WANT_WASM=1
|
|
WASM_DEBUG=1
|
|
WASM_DATA_DIR=$(NHSROOT)/src/wasm-data
|
|
|
|
# toolchain
|
|
EMCC=emcc
|
|
EMAR=emar rcu
|
|
EMRANLIB=emranlib
|
|
|
|
# link flags
|
|
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"]'
|
|
EMCC_LFLAGS+=-O3
|
|
EMCC_LFLAGS+=-s MODULARIZE
|
|
EMCC_LFLAGS+=-s EXPORTED_FUNCTIONS='["_main", "_shim_graphics_set_callback", "_mapglyph", "_display_inventory"]'
|
|
EMCC_LFLAGS+=-s EXPORTED_RUNTIME_METHODS='["cwrap", "ccall", "addFunction", "removeFunction", "UTF8ToString", "getValue", "setValue"]'
|
|
EMCC_LFLAGS+=-s ERROR_ON_UNDEFINED_SYMBOLS=0
|
|
EMCC_LFLAGS+=--embed-file wasm-data@/
|
|
|
|
# For a list of EMCC settings:
|
|
# https://github.com/emscripten-core/emscripten/blob/master/src/settings.js
|
|
|
|
# WASM C flags
|
|
EMCC_CFLAGS=
|
|
EMCC_CFLAGS+=-Wall
|
|
EMCC_CFLAGS+=-Werror
|
|
#EMCC_CFLAGS+=-s DISABLE_EXCEPTION_CATCHING=0
|
|
#EMCC_CFLAGS+=-s NO_EXIT_RUNTIME=1
|
|
EMCC_CFLAGS+=-s EXIT_RUNTIME=1
|
|
# if INVOKE_RUN=0, you must Module.callMain() with an optional parameter of commandline args
|
|
#EMCC_CFLAGS+=-s INVOKE_RUN=0
|
|
|
|
#EMCC_DEBUG_CFLAGS+=-s ASSERTIONS=1
|
|
EMCC_DEBUG_CFLAGS+=-s ASSERTIONS=2
|
|
EMCC_DEBUG_CFLAGS+=-s STACK_OVERFLOW_CHECK=2
|
|
EMCC_DEBUG_CFLAGS+=-s SAFE_HEAP=1
|
|
EMCC_DEBUG_CFLAGS+=-s LLD_REPORT_UNDEFINED=1
|
|
EMCC_DEBUG_CFLAGS+=-s EXCEPTION_DEBUG=0
|
|
#EMCC_DEBUG_CFLAGS+=-fsanitize=undefined -fsanitize=address -fsanitize=leak
|
|
EMCC_DEBUG_CFLAGS+=--profiling
|
|
|
|
EMCC_PROD_CFLAGS+=-O3
|
|
|
|
ifdef WASM_DEBUG
|
|
EMCC_CFLAGS+=$(EMCC_DEBUG_CFLAGS)
|
|
else
|
|
EMCC_CFLAGS+=$(EMCC_PROD_CFLAGS)
|
|
endif
|
|
|
|
# Nethack C flags
|
|
CFLAGS+=-DSYSCF -DSYSCF_FILE=\"/sysconf\" -DSECURE
|
|
CFLAGS+=-g -I../include -DNOTPARMDECL
|
|
CFLAGS+=-Wall
|
|
CFLAGS+=-Werror
|
|
CFLAGS+=-DGCC_WARN
|
|
CFLAGS+=-DNO_SIGNAL
|
|
|
|
# NetHack sources control
|
|
CFLAGS+=-DDLB
|
|
CFLAGS+=-DHACKDIR=\"$(HACKDIR)\"
|
|
CFLAGS+=-DDLB
|
|
#CFLAGS+=-DGREPPATH=\"/usr/bin/grep\"
|
|
CFLAGS+=-DNOMAIL
|
|
|
|
# installation config
|
|
# hackdir is the wasm / emscripten embed data root directory
|
|
HACKDIR=/
|
|
CHOWN=/usr/bin/true
|
|
CHGRP=/usr/bin/true
|
|
GAMEPERM = 0700
|
|
VARFILEPERM = 0600
|
|
VARDIRPERM = 0700
|
|
|
|
INSTDIR=$(HACKDIR)
|
|
VARDIR=$(HACKDIR)
|
|
|
|
#-POST
|
|
# no post
|