mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
05e69b43e9
* 3rdparty/zstd: Added Zstandard compression library version 1.5.5. * util/unzip.cpp: Added support for Zstandard compression (method 93). * util/chdcodec.cpp: Added support for Zstandard compression. * 3rdparty/flac: Always define NDEBUG to avoid log spam.
91 lines
2 KiB
Bash
Executable file
91 lines
2 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# Temporary compiled binary
|
|
OUT_FILE="tempbin"
|
|
|
|
# Optional temporary compiled WebAssembly
|
|
OUT_WASM="temp.wasm"
|
|
|
|
# Source files to compile using Emscripten.
|
|
IN_FILES="examples/emscripten.c"
|
|
|
|
# Emscripten build using emcc.
|
|
emscripten_emcc_build() {
|
|
# Compile the same example as above
|
|
CC_FLAGS="-Wall -Wextra -Wshadow -Werror -Os -g0 -flto"
|
|
emcc $CC_FLAGS -s WASM=1 -I. -o $OUT_WASM $IN_FILES
|
|
# Did compilation work?
|
|
if [ $? -ne 0 ]; then
|
|
echo "Compiling ${IN_FILES}: FAILED"
|
|
exit 1
|
|
fi
|
|
echo "Compiling ${IN_FILES}: PASSED"
|
|
rm -f $OUT_WASM
|
|
}
|
|
|
|
# Emscripten build using docker.
|
|
emscripten_docker_build() {
|
|
docker container run --rm \
|
|
--volume $PWD:/code \
|
|
--workdir /code \
|
|
emscripten/emsdk:latest \
|
|
emcc $CC_FLAGS -s WASM=1 -I. -o $OUT_WASM $IN_FILES
|
|
# Did compilation work?
|
|
if [ $? -ne 0 ]; then
|
|
echo "Compiling ${IN_FILES} (using docker): FAILED"
|
|
exit 1
|
|
fi
|
|
echo "Compiling ${IN_FILES} (using docker): PASSED"
|
|
rm -f $OUT_WASM
|
|
}
|
|
|
|
# Try Emscripten build using emcc or docker.
|
|
try_emscripten_build() {
|
|
which emcc > /dev/null
|
|
if [ $? -eq 0 ]; then
|
|
emscripten_emcc_build
|
|
return $?
|
|
fi
|
|
|
|
which docker > /dev/null
|
|
if [ $? -eq 0 ]; then
|
|
emscripten_docker_build
|
|
return $?
|
|
fi
|
|
|
|
echo "(Skipping Emscripten test)"
|
|
}
|
|
|
|
# Amalgamate the sources
|
|
./create_single_file_decoder.sh
|
|
# Did combining work?
|
|
if [ $? -ne 0 ]; then
|
|
echo "Single file decoder creation script: FAILED"
|
|
exit 1
|
|
fi
|
|
echo "Single file decoder creation script: PASSED"
|
|
|
|
# Compile the generated output
|
|
cc -Wall -Wextra -Wshadow -Werror -Os -g0 -o $OUT_FILE examples/simple.c
|
|
# Did compilation work?
|
|
if [ $? -ne 0 ]; then
|
|
echo "Compiling simple.c: FAILED"
|
|
exit 1
|
|
fi
|
|
echo "Compiling simple.c: PASSED"
|
|
|
|
# Run then delete the compiled output
|
|
./$OUT_FILE
|
|
retVal=$?
|
|
rm -f $OUT_FILE
|
|
# Did the test work?
|
|
if [ $retVal -ne 0 ]; then
|
|
echo "Running simple.c: FAILED"
|
|
exit 1
|
|
fi
|
|
echo "Running simple.c: PASSED"
|
|
|
|
# Try Emscripten build if emcc or docker command is available.
|
|
try_emscripten_build
|
|
|
|
exit 0
|