From 988ce392a63112c625e8ef5a78fcbb5c73367095 Mon Sep 17 00:00:00 2001 From: chaoskagami Date: Mon, 25 Aug 2014 20:54:32 -0400 Subject: [PATCH] Android is building - untested as of yet, booting up my nvidia shield --- build | 10 +- buildscripts/build.android | 26 + buildscripts/build.generic | 8 +- buildscripts/build.mingw32 | 4 +- buildscripts/build.mingw64 | 4 +- buildscripts/mk | 22 +- external/Android/AndroidManifest.xml | 6 +- external/Android/build.xml | 2 +- external/Android/jni/Application.mk | 1 + external/Android/jni/SDL2_image/Android.mk | 6 +- .../jni/SDL2_image/external/jpeg-9/Android.mk | 16 +- .../jni/SDL2_image/external/jpeg-9/jidctfst.S | 476 ----------------- .../jni/SDL2_image/external/jpeg-9/jidctfst.c | 112 ++-- external/Android/jni/SDL2_mixer/Android.mk | 6 +- external/Android/jni/src/Android.mk | 31 +- external/Android/jni/src/AudioManager.cpp | 172 ++++++ external/Android/jni/src/AudioManager.hpp | 36 ++ external/Android/jni/src/ContextManager.cpp | 491 ++++++++++++++++++ external/Android/jni/src/ContextManager.hpp | 111 ++++ external/Android/jni/src/Data.cpp | 87 ++++ external/Android/jni/src/Data.hpp | 48 ++ external/Android/jni/src/Funcs.hpp | 40 ++ external/Android/jni/src/Loop.cpp | 65 +++ external/Android/jni/src/Parse.cpp | 280 ++++++++++ external/Android/jni/src/TextManager.cpp | 143 +++++ external/Android/jni/src/TextManager.hpp | 45 ++ external/Android/jni/src/UDisplayable.cpp | 402 ++++++++++++++ external/Android/jni/src/UDisplayable.hpp | 76 +++ external/Android/jni/src/VNDC.cpp | 137 +++++ external/Android/jni/src/Zero.hpp | 22 + external/Android/jni/src/gitrev.hpp | 5 + external/Android/jni/src/op_bgload.cpp | 45 ++ external/Android/jni/src/op_choice.cpp | 102 ++++ external/Android/jni/src/op_cleartext.cpp | 52 ++ external/Android/jni/src/op_delay.cpp | 18 + external/Android/jni/src/op_fi.cpp | 13 + external/Android/jni/src/op_goto.cpp | 50 ++ external/Android/jni/src/op_gsetvar.cpp | 28 + external/Android/jni/src/op_if.cpp | 57 ++ external/Android/jni/src/op_jump.cpp | 53 ++ external/Android/jni/src/op_music.cpp | 30 ++ external/Android/jni/src/op_random.cpp | 21 + external/Android/jni/src/op_setimg.cpp | 36 ++ external/Android/jni/src/op_setvar.cpp | 66 +++ external/Android/jni/src/op_sound.cpp | 64 +++ external/Android/jni/src/op_text.cpp | 126 +++++ .../github/chaoskagami/vndc/VNDCActivity.java | 5 + external/zero/include/AudioManager.hpp | 6 +- external/zero/include/ContextManager.hpp | 46 +- external/zero/include/TextManager.hpp | 12 +- external/zero/include/UDisplayable.hpp | 16 +- external/zero/include/Zero.hpp | 8 +- external/zero/src/AudioManager.cpp | 5 + external/zero/src/ContextManager.cpp | 38 ++ external/zero/src/TextManager.cpp | 8 + external/zero/src/UDisplayable.cpp | 26 +- vndc/include/Data.hpp | 55 +- vndc/include/Funcs.hpp | 7 + vndc/include/gitrev.hpp | 5 + vndc/src/Data.cpp | 32 ++ vndc/src/Loop.cpp | 1 - vndc/src/VNDC.cpp | 6 +- 62 files changed, 3285 insertions(+), 642 deletions(-) create mode 100755 buildscripts/build.android delete mode 100644 external/Android/jni/SDL2_image/external/jpeg-9/jidctfst.S create mode 100644 external/Android/jni/src/AudioManager.cpp create mode 100644 external/Android/jni/src/AudioManager.hpp create mode 100644 external/Android/jni/src/ContextManager.cpp create mode 100644 external/Android/jni/src/ContextManager.hpp create mode 100644 external/Android/jni/src/Data.cpp create mode 100644 external/Android/jni/src/Data.hpp create mode 100644 external/Android/jni/src/Funcs.hpp create mode 100644 external/Android/jni/src/Loop.cpp create mode 100644 external/Android/jni/src/Parse.cpp create mode 100644 external/Android/jni/src/TextManager.cpp create mode 100644 external/Android/jni/src/TextManager.hpp create mode 100644 external/Android/jni/src/UDisplayable.cpp create mode 100644 external/Android/jni/src/UDisplayable.hpp create mode 100644 external/Android/jni/src/VNDC.cpp create mode 100644 external/Android/jni/src/Zero.hpp create mode 100644 external/Android/jni/src/gitrev.hpp create mode 100644 external/Android/jni/src/op_bgload.cpp create mode 100644 external/Android/jni/src/op_choice.cpp create mode 100644 external/Android/jni/src/op_cleartext.cpp create mode 100644 external/Android/jni/src/op_delay.cpp create mode 100644 external/Android/jni/src/op_fi.cpp create mode 100644 external/Android/jni/src/op_goto.cpp create mode 100644 external/Android/jni/src/op_gsetvar.cpp create mode 100644 external/Android/jni/src/op_if.cpp create mode 100644 external/Android/jni/src/op_jump.cpp create mode 100644 external/Android/jni/src/op_music.cpp create mode 100644 external/Android/jni/src/op_random.cpp create mode 100644 external/Android/jni/src/op_setimg.cpp create mode 100644 external/Android/jni/src/op_setvar.cpp create mode 100644 external/Android/jni/src/op_sound.cpp create mode 100644 external/Android/jni/src/op_text.cpp create mode 100644 external/Android/src/com/github/chaoskagami/vndc/VNDCActivity.java create mode 100644 vndc/include/gitrev.hpp diff --git a/build b/build index 1b69089..5a210b5 100755 --- a/build +++ b/build @@ -10,9 +10,17 @@ elif [ "$1" == "linux" ]; then buildscripts/build.generic elif [ "$1" == "generic" ]; then buildscripts/build.generic +elif [ "$1" == "android" ]; then + buildscripts/build.android elif [ "$1" == "clean" ]; then rm -rf bin - echo "Removed bin directory." + echo "RM bin" + cd external/Android + echo "NDK-CLEAN external/Android" + ndk-build clean > /dev/null + echo "ANT-CLEAN external/Android" + ant clean > /dev/null + cd ../../ else echo "Targets: mingw32, mingw64, linux, generic" echo "linux32 target was removed. Build in a chroot." diff --git a/buildscripts/build.android b/buildscripts/build.android new file mode 100755 index 0000000..b3ea0ac --- /dev/null +++ b/buildscripts/build.android @@ -0,0 +1,26 @@ +#!/bin/bash + +## +## Use this build script to build for +## android. GLES2 support is required. +## + +source buildscripts/mk + +ROOT=`pwd` + +# Extra parameter sets 'we're android' value. +gith vndc/include/gitrev.hpp "#define WITH_ANDROID 1" +echo "COPY vndc/*/* -> external/Android/jni/src" +cp -r $ROOT/vndc/*/* $ROOT/external/Android/jni/src/ > /dev/null 2>&1 +echo "COPY external/zero/*/* -> external/Android/jni/src" +cp -r $ROOT/external/zero/*/* $ROOT/external/Android/jni/src/ > /dev/null 2>&1 + +cd $ROOT/external/Android + +echo "NDK-BUILD external/Android" +ndk-build > /dev/null +echo "ANT-BUILD external/Android" +ant debug > /dev/null + +cd $ROOT diff --git a/buildscripts/build.generic b/buildscripts/build.generic index 960b784..66dd153 100755 --- a/buildscripts/build.generic +++ b/buildscripts/build.generic @@ -10,12 +10,14 @@ ROOT=`pwd` SRC=$ROOT/ LIB=$ROOT/external/lib BIN=$ROOT/bin -CXXFLAGS="-DGIT_REV=\"$(git rev-parse HEAD)\"" + +CXXFLAGS="`pkg-config sdl2 --cflags` `pkg-config SDL2_mixer --cflags` `pkg-config SDL2_image --cflags` `pkg-config SDL2_ttf --cflags`" +LDFLAGS="`pkg-config sdl2 --libs` `pkg-config SDL2_image --libs` `pkg-config SDL2_ttf --libs` `pkg-config SDL2_mixer --libs`" +INCLUDE="-I$ROOT/external/zero/include -I$ROOT/vndc/include" source buildscripts/mk -LDFLAGS="`pkg-config sdl2 --libs-only-l --libs-only-L` `pkg-config SDL2_image --libs-only-l --libs-only-L` `pkg-config SDL2_ttf --libs-only-l --libs-only-L` `pkg-config SDL2_mixer --libs-only-l --libs-only-L`" -INCLUDE="-I$ROOT/external/zero/include -I$ROOT/external/out/include -I$ROOT/vndc/include" +gith vndc/include/gitrev.hpp newtd mkmcc external/zero/src diff --git a/buildscripts/build.mingw32 b/buildscripts/build.mingw32 index 81ee95f..f34f96b 100755 --- a/buildscripts/build.mingw32 +++ b/buildscripts/build.mingw32 @@ -9,7 +9,7 @@ ROOT=`pwd` SRC=$ROOT/ BIN=$ROOT/bin -CXXFLAGS="-I$ROOT/external/Windows/i686-w64-mingw32/include -DGIT_REV=\"$(git rev-parse HEAD)\"" +CXXFLAGS="-I$ROOT/external/Windows/i686-w64-mingw32/include" CROSS=i686-w64-mingw32 @@ -18,6 +18,8 @@ source buildscripts/mk LDFLAGS="-L$ROOT/external/Windows/i686-w64-mingw32/lib -lmingw32 -lSDL2main -lSDL2 -lSDL2_mixer -lSDL2_image -lSDL2_ttf -Dmain=SDL_main -Wl,--no-undefined -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -static-libgcc -static-libstdc++ -mwindows" INCLUDE="-I$ROOT/external/zero/include -I$ROOT/vndc/include" +gith vndc/include/gitrev.hpp + newtd mkmcc external/zero/src mkmcc vndc/src diff --git a/buildscripts/build.mingw64 b/buildscripts/build.mingw64 index dc77e03..bbd2f6c 100755 --- a/buildscripts/build.mingw64 +++ b/buildscripts/build.mingw64 @@ -11,7 +11,7 @@ ROOT=`pwd` SRC=$ROOT/ BIN=$ROOT/bin -CXXFLAGS="-I$ROOT/external/Windows/x86_64-w64-mingw32/include -DGIT_REV=\"$(git rev-parse HEAD)\"" +CXXFLAGS="-I$ROOT/external/Windows/x86_64-w64-mingw32/include" CROSS=x86_64-w64-mingw32 @@ -20,6 +20,8 @@ source buildscripts/mk LDFLAGS="-L$ROOT/external/Windows/x86_64-w64-mingw32/lib -lmingw32 -lSDL2main -lSDL2 -lSDL2_mixer -lSDL2_image -lSDL2_ttf -Dmain=SDL_main -Wl,--no-undefined -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -static-libgcc -static-libstdc++" INCLUDE="-I$ROOT/external/zero/include -I$ROOT/vndc/include" +gith vndc/include/gitrev.hpp + newtd mkmcc external/zero/src mkmcc vndc/src diff --git a/buildscripts/mk b/buildscripts/mk index bbebdd1..50d03ae 100755 --- a/buildscripts/mk +++ b/buildscripts/mk @@ -3,11 +3,18 @@ # This is all auxillary functions to simplify the build script. # I hate makefiles, and cmake so shell scripts work. -CXX="${CROSS}-g++" +if [ ! -z "${CROSS}" ]; then + CXX="${CROSS}-g++" + LD="${CROSS}-g++" + AR="${CROSS}-ar rcs" +else + CXX="g++" + LD="g++" + AR="ar rcs" +fi + CXXFLAGS="$CXXFLAGS -std=gnu++11 -Wall -Werror -Wno-error=pointer-arith" -LD="${CROSS}-g++" LDFLAGS="$LDFLAGS -lSDL2 -lSDL2_image -lSDL2_mixer -lSDL2_ttf" -AR="${CROSS}-ar rcs" CA_CMD="$CXX $CXXFLAGS $LDFLAGS" @@ -52,3 +59,12 @@ function deltd { cd .. rm -rf td } + +function gith { + echo "PROP $1" + echo "#ifndef GIT_REV_HDR" > "$ROOT/$1" + echo "#define GIT_REV_HDR" >> "$ROOT/$1" + echo "#define GIT_REV \"$(git rev-parse HEAD)\"" >> "$ROOT/$1" + echo "$2" >> "$ROOT/$1" + echo "#endif" >> "$ROOT/$1" +} diff --git a/external/Android/AndroidManifest.xml b/external/Android/AndroidManifest.xml index dc8450a..cf06c9e 100644 --- a/external/Android/AndroidManifest.xml +++ b/external/Android/AndroidManifest.xml @@ -3,7 +3,7 @@ com.gamemaker.game --> @@ -22,7 +22,7 @@ android:allowBackup="true" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:hardwareAccelerated="true" > - @@ -34,7 +34,7 @@ - + diff --git a/external/Android/build.xml b/external/Android/build.xml index 9f19a07..a814f01 100644 --- a/external/Android/build.xml +++ b/external/Android/build.xml @@ -1,6 +1,6 @@ - +