Files
nethack/sys/lib/hints/wasm
2020-09-12 12:40:04 -07:00

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