# This builds the vis editor.
include ../build/Makefile-vars
# See https://github.com/sagemathinc/viz/releases
VERSION = 0.8.4
URL = https://github.com/sagemathinc/viz/archive/refs/tags/${VERSION}.tar.gz
TARBALL = ${UPSTREAM}/viz-${VERSION}.tar.gz
LUA = ${PACKAGES}/lua/dist/
all: deps native ${BIN}/viz-native wasm ${BIN}/viz-wasm
include ../build/Makefile-rules
###
# NATIVE
###
${DIST_NATIVE}/.built: ${BUILD_NATIVE}/.build
cd ../build && make zig
cd ../lua && make native
rm -rf ${DIST_NATIVE}
cd ${BUILD_NATIVE} \
&& CC="zig cc" \
CFLAGS="-O2 -I${LUA}/native/include " \
LDFLAGS="-L${LUA}/native/lib -llua " \
./configure --prefix=${DIST_NATIVE} \
&& make -j8 install
touch ${DIST_NATIVE}/.built
${BIN}/viz-native: ${DIST_NATIVE}/.built ${CWD}/bin/viz-native
ln -sf ${CWD}/bin/viz-native ${BIN}/viz-native
touch ${BIN}/viz-native
###
# WASM
###
${BUILD_WASM}/.patched: ${BUILD_WASM}/.build
mkdir -p ${BUILD_WASM}/bits/
# Adding header at the beginning:
echo '#include "posix-wasm.h"' | cat - ${BUILD_WASM}/vis.c > ${BUILD_WASM}/tmp && mv ${BUILD_WASM}/tmp ${BUILD_WASM}/vis.c
echo '#include "posix-wasm.h"' > ${BUILD_WASM}/setjmp.h
echo '#define TIOCGWINSZ 0x5413' >> ${BUILD_WASM}/setjmp.h
echo '#include "posix-wasm.h"' > ${BUILD_WASM}/bits/setjmp.h
echo '#include "posix-wasm.h"' | cat - ${BUILD_WASM}/vis.h > ${BUILD_WASM}/tmp && mv ${BUILD_WASM}/tmp ${BUILD_WASM}/vis.h
echo '#include "posix-wasm.h"' | cat - ${BUILD_WASM}/text-io.c > ${BUILD_WASM}/tmp && mv ${BUILD_WASM}/tmp ${BUILD_WASM}/text-io.c
touch ${BUILD_WASM}/.patched
NCURSES_WASM = $(shell cowasm-package-path @cowasm/ncurses)
LUA_WASM = $(shell cowasm-package-path @cowasm/lua)
POSIX_WASM = $(shell cowasm-package-path @cowasm/posix-wasm)
${DIST_WASM}/.built: ${BUILD_WASM}/.patched
cd ../build && make zig
rm -rf ${DIST_WASM}
cd ${BUILD_WASM} \
&& CC="cowasm-cc" \
CFLAGS="-v -Oz -fvisibility-main -I. -I${POSIX_WASM} -I${NCURSES_WASM}/include -I${NCURSES_WASM}/include/ncurses -I${LUA_WASM}/include" \
LDFLAGS="-L${LUA_WASM}/lib -llua -L${NCURSES_WASM}/lib -lncurses " \
./configure --prefix=${DIST_WASM} \
&& make -j8 viz
mkdir -p ${DIST_WASM}/bin
cp ${BUILD_WASM}/viz ${DIST_WASM}/bin/
touch ${DIST_WASM}/.built
${BIN}/viz-wasm: ${DIST_WASM}/.built ${CWD}/bin/viz-wasm
ln -sf ${CWD}/bin/viz-wasm ${BIN}/viz-wasm
touch ${BIN}/viz-wasm
test: all
echo "it built!"