include ../build/Makefile-vars
# See https://github.com/sagemathinc/rogue/releases
VERSION = v5.4.1
URL = https://github.com/sagemathinc/rogue/archive/refs/tags/${VERSION}.tar.gz
TARBALL = ${UPSTREAM}/rogue-${VERSION}.tar.gz
POSIX_WASM = $(shell cowasm-package-path @cowasm/posix-wasm)
TERMCAP_WASM = $(shell cowasm-package-path @cowasm/termcap)
NCURSES_WASM = $(shell cowasm-package-path @cowasm/ncurses)
all: wasm
include ../build/Makefile-rules
${BUILD_WASM}/.patched: ${BUILD_WASM}/.build
touch ${BUILD_WASM}/.patched
#DEBUG = -g
DEBUG =
# Below we use "--build=arm" since there are problems with ./config.guess
# and it doesn't matter anyways since no native code gets run as part of the
# build. It's just an autconf shortcoming. Without this, build fails on
# aarch64 linux. With updated config.guess, build fails on aarch64-mac.
# So simple solution.
${DIST_WASM}/.built: node_modules ${BUILD_WASM}/.patched
cd ../build && make zig
cd ${BUILD_WASM} \
&& RANLIB="zig ranlib" \
AR="zig ar" \
CC="cowasm-cc" \
CXX="cowasm-c++" \
CFLAGS="-Wall -fvisibility-main ${DEBUG} -Oz -Wno-deprecated-non-prototype -I${TERMCAP_WASM}/include -I${NCURSES_WASM}/include -I${NCURSES_WASM}/include/ncurses -I${POSIX_WASM}" \
LDFLAGS="${DEBUG} -L${NCURSES_WASM}/lib -lncurses " \
./configure \
--host=none \
--build=arm \
--prefix="${DIST_WASM}" \
&& echo '#include "posix-wasm.h"' >> config.h \
&& echo '#undef HAVE_WORKING_FORK' >> config.h \
&& echo '#undef HAVE__SPAWNL' >> config.h \
&& echo '#undef HAVE_SPAWNL' >> config.h \
&& echo '#undef HAVE_GETPASS' >> config.h \
&& make -j8 \
&& make -j8 install
touch ${DIST_WASM}/.built
test: ${DIST_WASM}/.built
echo "no test of rogue yet"