87 lines
2.6 KiB
Bash
Executable File
87 lines
2.6 KiB
Bash
Executable File
#!/bin/bash -eux
|
|
|
|
source common.sh
|
|
|
|
INCREMENTAL=${INCREMENTAL:-false}
|
|
|
|
pushd build
|
|
if ! $INCREMENTAL; then
|
|
rm -rf minetest
|
|
fi
|
|
mkdir -p minetest
|
|
pushd minetest
|
|
|
|
export EMSDK_EXTRA="-sUSE_SDL=2"
|
|
export CFLAGS="$CFLAGS $EMSDK_EXTRA"
|
|
export CXXFLAGS="$CXXFLAGS $EMSDK_EXTRA"
|
|
export LDFLAGS="$LDFLAGS $EMSDK_EXTRA -sALLOW_MEMORY_GROWTH=1 -sPTHREAD_POOL_SIZE=20 -s EXPORTED_RUNTIME_METHODS=ccall,cwrap"
|
|
export LDFLAGS="$LDFLAGS -L$INSTALL_DIR/lib -lssl -lcrypto -lemsocket -lwebsocket.js"
|
|
|
|
# Used by CMakeFiles.txt in the webport
|
|
export FSROOT_DIR="$BUILD_DIR/fsroot"
|
|
|
|
# Create a dummy .o file to use as a substitute for the OpenGLES2 / EGL libraries,
|
|
# since Emscripten doesn't actually provide those. (the symbols are resolved through
|
|
# javascript stubs).
|
|
echo > dummy.c
|
|
emcc -c dummy.c -o dummy.o
|
|
DUMMY_OBJECT="$(pwd)/dummy.o"
|
|
|
|
if ! $INCREMENTAL; then
|
|
emcmake cmake \
|
|
-DENABLE_SYSTEM_GMP=OFF \
|
|
-DRUN_IN_PLACE=TRUE \
|
|
-DENABLE_GLES=TRUE \
|
|
-DCMAKE_BUILD_TYPE="$BUILD_KIND" \
|
|
-DZLIB_INCLUDE_DIR="$INSTALL_DIR/include" \
|
|
-DZLIB_LIBRARY="$INSTALL_DIR/lib/libz.a" \
|
|
-DJPEG_INCLUDE_DIR="$INSTALL_DIR/include" \
|
|
-DJPEG_LIBRARY="$INSTALL_DIR/lib/libjpeg.a" \
|
|
-DPNG_PNG_INCLUDE_DIR="$INSTALL_DIR/include" \
|
|
-DPNG_LIBRARY="$INSTALL_DIR/lib/libpng.a" \
|
|
-DOGG_INCLUDE_DIR="$INSTALL_DIR/include" \
|
|
-DVORBIS_INCLUDE_DIR="$INSTALL_DIR/include" \
|
|
-DOGG_LIBRARY="$INSTALL_DIR/lib/libogg.a" \
|
|
-DVORBIS_LIBRARY="$INSTALL_DIR/lib/libvorbis.a" \
|
|
-DVORBISFILE_LIBRARY="$INSTALL_DIR/lib/libvorbisfile.a" \
|
|
-DFREETYPE_LIBRARY="$INSTALL_DIR/lib/libfreetype.a" \
|
|
-DFREETYPE_INCLUDE_DIRS="$INSTALL_DIR/include/freetype2" \
|
|
-DOPENGLES2_INCLUDE_DIR="$EMSDK_SYSINCLUDE" \
|
|
-DOPENGLES2_LIBRARY="$DUMMY_OBJECT" \
|
|
-DSQLITE3_LIBRARY="$INSTALL_DIR/lib/libsqlite3.a" \
|
|
-DSQLITE3_INCLUDE_DIR="$INSTALL_DIR/include" \
|
|
-DZSTD_LIBRARY="$INSTALL_DIR/lib/libzstd.a" \
|
|
-DZSTD_INCLUDE_DIR="$INSTALL_DIR/include" \
|
|
-DEGL_LIBRARY="$DUMMY_OBJECT" \
|
|
-DEGL_INCLUDE_DIR="$EMSDK_SYSINCLUDE" \
|
|
-DCURL_LIBRARY="$INSTALL_DIR/lib/libcurl.a" \
|
|
-DCURL_INCLUDE_DIR="$INSTALL_DIR/include" \
|
|
-G "Unix Makefiles" \
|
|
"$BASE_DIR/minetest"
|
|
fi
|
|
|
|
if $INCREMENTAL; then
|
|
emmake make -j1
|
|
else
|
|
emmake make -j4
|
|
fi
|
|
|
|
echo "Installing into www/"
|
|
rm -rf "$WWW_DIR"
|
|
mkdir "$WWW_DIR"
|
|
|
|
FILES="minetest.data minetest.js minetest.wasm minetest.worker.js"
|
|
|
|
for I in $FILES; do
|
|
cp src/"$I" "$WWW_DIR"
|
|
done
|
|
|
|
if [ -f src/minetest.wasm.map ]; then
|
|
cp src/minetest.wasm.map "$WWW_DIR"
|
|
fi
|
|
|
|
cp "$BASE_DIR/static/index.html" "$WWW_DIR"
|
|
cp "$BASE_DIR/static/.htaccess" "$WWW_DIR"
|
|
|
|
echo "DONE"
|