Add build script
This commit is contained in:
parent
fd2ba6c852
commit
f9ddee8f39
|
@ -0,0 +1,167 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Install OS deps
|
||||
# sudo apt install mm-common libtool rake ruby
|
||||
|
||||
# Set optimization level
|
||||
export CFLAGS="-O3 -g0"
|
||||
export CXXFLAGS="-O3 -g0"
|
||||
export CPPFLAGS="-O3 -g0"
|
||||
export LDFLAGS="-O3 -g0"
|
||||
|
||||
# Make deps folder
|
||||
mkdir -p deps
|
||||
cd deps
|
||||
|
||||
# Get libsigc++
|
||||
if [ ! -d "libsigc++" ]
|
||||
then
|
||||
wget https://github.com/libsigcplusplus/libsigcplusplus/releases/download/2.10.4/libsigc++-2.10.4.tar.xz -O libsigc++.tar.xz
|
||||
tar xf libsigc++.tar.xz && rm libsigc++.tar.xz
|
||||
mv libsigc++* libsigc++
|
||||
fi
|
||||
|
||||
# Get pixman
|
||||
if [ ! -d "pixman" ]
|
||||
then
|
||||
wget https://www.cairographics.org/releases/pixman-0.40.0.tar.gz -O pixman.tar.gz
|
||||
tar xf pixman.tar.gz && rm pixman.tar.gz
|
||||
mv pixman* pixman
|
||||
fi
|
||||
|
||||
# Get physfs
|
||||
if [ ! -d "physfs" ]
|
||||
then
|
||||
wget https://icculus.org/physfs/downloads/physfs-3.0.2.tar.bz2 -O physfs.tar.bz2
|
||||
tar xf physfs.tar.bz2 && rm physfs.tar.bz2
|
||||
mv physfs* physfs
|
||||
fi
|
||||
|
||||
# Get mruby
|
||||
if [ ! -d "mruby" ]
|
||||
then
|
||||
wget https://github.com/mruby/mruby/archive/2.1.2.tar.gz -O mruby.tar.gz
|
||||
tar xf mruby.tar.gz && rm mruby.tar.gz
|
||||
mv mruby* mruby
|
||||
fi
|
||||
|
||||
# Get emscripten
|
||||
if [ ! -d "emsdk" ]
|
||||
then
|
||||
echo "Downloading emscripten"
|
||||
git clone https://github.com/emscripten-core/emsdk.git
|
||||
cd emsdk
|
||||
git pull
|
||||
./emsdk install latest
|
||||
./emsdk activate latest
|
||||
cd ..
|
||||
fi
|
||||
|
||||
# Activate emscripten
|
||||
source emsdk/emsdk_env.sh
|
||||
|
||||
# Build libsigc++
|
||||
if [ ! -f "libsigc++/sigc++/.libs/libsigc-2.0.a" ]
|
||||
then
|
||||
cd libsigc++
|
||||
emconfigure ./autogen.sh
|
||||
emconfigure ./configure --enable-static --disable-shared
|
||||
emmake make clean
|
||||
emmake make -j4
|
||||
cd ..
|
||||
fi
|
||||
|
||||
# Build pixman
|
||||
if [ ! -f "pixman/pixman/.libs/libpixman-1.a" ]
|
||||
then
|
||||
cd pixman
|
||||
emconfigure ./configure --enable-static --disable-shared
|
||||
emmake make clean
|
||||
cd pixman
|
||||
emmake make -j4 libpixman-1.la
|
||||
cd ../..
|
||||
fi
|
||||
|
||||
# Build physfs
|
||||
if [ ! -f "physfs/libphysfs.a" ]
|
||||
then
|
||||
cd physfs
|
||||
emcmake cmake .
|
||||
emmake make clean
|
||||
emmake make -j4 physfs-static
|
||||
cd ..
|
||||
fi
|
||||
|
||||
# Build mruby
|
||||
if [ ! -f "mruby/build/wasm32-unknown-gnu/lib/libmruby.a" ]
|
||||
then
|
||||
cd mruby
|
||||
cp ../../extra/build_config.rb ../../extra/vm.c.patch ./
|
||||
patch -p0 --forward < vm.c.patch
|
||||
make clean
|
||||
make
|
||||
cd ..
|
||||
fi
|
||||
|
||||
# Done building deps
|
||||
echo "Finished building dependencies"
|
||||
cd ..
|
||||
|
||||
# Build mkxp
|
||||
emcmake cmake .
|
||||
emmake make -j4
|
||||
|
||||
# Done building
|
||||
echo "Finished building MKXP"
|
||||
|
||||
# Copy to build directory
|
||||
mkdir -p build
|
||||
cp -R mkxp.html mkxp.wasm mkxp.js extra/js build/
|
||||
|
||||
# ==========================
|
||||
# Get and process gamme
|
||||
# ==========================
|
||||
cd build
|
||||
|
||||
if [ ! -d "gameasync" ]
|
||||
then
|
||||
# Get sample game
|
||||
wget https://github.com/pulsejet/knight-blade-web-async/archive/gh-pages.zip -O game.zip
|
||||
unzip game.zip "knight-blade-web-async-gh-pages/gameasync/*"
|
||||
mv knight-blade-web-async-gh-pages/gameasync .
|
||||
rm -rf knight-blade-web-async-gh-pages
|
||||
rm -f game.zip
|
||||
|
||||
# Begin processing
|
||||
cd gameasync
|
||||
|
||||
# Copy standard rgss1 if custom not present
|
||||
if [ ! -f "rgss.rb" ]
|
||||
then
|
||||
cp ../../extra/rgss.rb .
|
||||
fi
|
||||
|
||||
# Make mappings
|
||||
../../extra/make_mapping.sh
|
||||
|
||||
# Preload data
|
||||
rm -rf preload ../preload
|
||||
cp ../../extra/dump* .
|
||||
for f in Data/*
|
||||
do
|
||||
./dump.sh "$f" > /dev/null
|
||||
echo "Processed file: $f"
|
||||
done
|
||||
rm dump*
|
||||
mv preload ..
|
||||
|
||||
# Game processing done
|
||||
cd ..
|
||||
fi
|
||||
|
||||
# Make deployable
|
||||
mv mkxp.html index.html
|
||||
|
||||
# Done
|
||||
echo "Finished everything"
|
||||
cd ..
|
Loading…
Reference in New Issue