Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- source ../../sources.def
- source /path/to/build_env
- STATIC_LIBS=(
- ruby-static
- SDL2main
- SDL2_image
- SDL_sound
- SDL2_ttf
- freetype
- png16
- jpeg
- vorbisfile
- vorbis
- ogg
- # z
- physfs
- pixman-1
- sigc-2.0
- SDL2
- openal
- boost_program_options
- # fluidsynth
- )
- LIBS_l=()
- SED_LIB_REGEX=""
- for l in ${STATIC_LIBS[*]}
- do
- ld_com="-l${l}"
- LIBS_l+=($ld_com)
- SED_LIB_REGEX+="|-l${l}"
- done
- SED_LIB_CMD="sed -r s/$SED_LIB_REGEX|-lruby//g"
- PKGS=(sigc++-2.0 pixman-1 zlib physfs vorbisfile
- sdl2 SDL2_image SDL2_ttf SDL_sound openal)
- CC="ccache $HOST-gcc"
- CXX="ccache $HOST-g++"
- STRIP=$HOST-strip
- CFLAGS=$(pkg-config --cflags ${PKGS[*]})
- CFLAGS+=" -pipe -DGLES2_HEADER"
- RUBY_CFLAGS=$(pkg-config --cflags ruby-2.1)
- LD_UNDEF="-Wl,--undefined=SDL_main_sym"
- DYN_LIBS=$(pkg-config --libs --static ${PKGS[*]} ruby-2.1)
- DYN_LIBS+=" -lOpenSLES"
- DYN_LIBS=$(echo "${DYN_LIBS}" | $SED_LIB_CMD)
- LDFLAGS="-Wl,-Bdynamic ${DYN_LIBS} -Wl,-Bstatic ${LIBS_l[*]} -Wl,-Bdynamic"
- echo $LDFLAGS
- #exit
- OBJECTS=()
- ARG_DESC=(
- "--link-only" "LINK_ONLY"
- "--debug" "DEBUG"
- "--no-strip" "NO_STRIP"
- )
- # Init option vars to false
- for (( i=0; i<$((${#ARG_DESC[@]}/2)); i++ )); do
- arg_var=${ARG_DESC[$((i*2+1))]}
- declare $arg_var=false
- done
- # Parse args
- for arg in $@; do
- for (( i=0; i<$((${#ARG_DESC[@]}/2)); i++ )); do
- if [ ${arg} == ${ARG_DESC[$((i*2))]} ]; then
- arg_var=${ARG_DESC[$((i*2+1))]}
- declare $arg_var=true
- fi
- done
- done
- if [ $DEBUG == true ]; then
- CFLAGS+=" -g"
- else
- CFLAGS+=" -O2 -DNDEBUG"
- fi
- function check_success {
- if [ $? -ne 0 ]; then
- exit
- fi
- }
- BUILD_DIR=`pwd`
- cd ../..
- for embed in ${EMBED[*]}
- do
- file="${embed}"
- base=$(basename $file)
- out="${BUILD_DIR}/${base}.xxd"
- if [ $LINK_ONLY == false ]; then
- echo "Generating ${out}"
- xxd -i $file > "${out}"
- check_success
- fi
- done
- cd -
- for src in ${SOURCES[*]}
- do
- file="../../${src}"
- base=$(basename --suffix=.cpp $src)
- out="${base}.o"
- OBJECTS+=" ${out}"
- if [ $LINK_ONLY == false ]; then
- echo "Compiling ${out}"
- $CXX -c -o $out $file -I. -I../../src $CFLAGS
- check_success
- fi
- done
- for src in ${MRI_SOURCES[*]}
- do
- file="../../${src}"
- base=$(basename --suffix=.cpp $src)
- out="${base}.o"
- OBJECTS+=" ${out}"
- if [ $LINK_ONLY == false ]; then
- echo "Compiling ${out}"
- $CXX -c -o $out $file -I. -I../../src -I../../binding-mri $CFLAGS $RUBY_CFLAGS
- check_success
- fi
- done
- function link_so {
- SO_F="lib${1}.so"
- echo "Linking ${SO_F}"
- $CXX $CFLAGS -shared -Wl,-soname="${SO_F}" -o $SO_F ${OBJECTS[*]} $LDFLAGS $2
- check_success
- if [ $DEBUG == false -a $NO_STRIP == false ]; then
- echo "Stripping ${SO_F}"
- $STRIP -s $SO_F
- fi
- }
- link_so mkxp
- echo "Installing libmkxp.so"
- cp libmkxp.so ../android-project/libs/armeabi-v7a/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement