Add build script
This commit is contained in:
		
							parent
							
								
									fd2ba6c852
								
							
						
					
					
						commit
						f9ddee8f39
					
				
					 1 changed files with 167 additions and 0 deletions
				
			
		
							
								
								
									
										167
									
								
								build.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										167
									
								
								build.sh
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue