diff --git a/project/jni/application/Android.mk b/project/jni/application/Android.mk index 1e5bfb29a..a406e0d7b 100644 --- a/project/jni/application/Android.mk +++ b/project/jni/application/Android.mk @@ -86,6 +86,7 @@ LOCAL_PATH_SDL_APPLICATION := $(LOCAL_PATH) .NOTPARALLEL: $(realpath $(LOCAL_PATH)/../../obj/local/armeabi/libapplication.so) $(LOCAL_PATH)/src/libapplication.so $(shell rm $(LOCAL_PATH)/src/libapplication.so) # Enforce rebuilding +# $(shell rm $(LOCAL_PATH)/../../obj/local/armeabi/*.so) # libapplication.so may try to link with wrong libraries, prevent that $(LOCAL_PATH)/src/libapplication.so: $(LOCAL_PATH)/src/AndroidBuild.sh $(LOCAL_PATH)/src/AndroidAppSettings.cfg $(APP_LIB_DEPENDS) echo Launching script $(LOCAL_PATH_SDL_APPLICATION)/AndroidBuild.sh diff --git a/project/jni/application/scummvm/AndroidBuild.sh b/project/jni/application/scummvm/AndroidBuild.sh index e783d2943..5ee45985f 100755 --- a/project/jni/application/scummvm/AndroidBuild.sh +++ b/project/jni/application/scummvm/AndroidBuild.sh @@ -21,7 +21,6 @@ ln -sf libtremor.a $LOCAL_PATH/../../../obj/local/armeabi/libvorbisidec.a ln -sf libflac.a $LOCAL_PATH/../../../obj/local/armeabi/libFLAC.a if [ \! -f scummvm/config.mk ] ; then - ../setEnvironment.sh sh -c "cd scummvm && env LIBS='-lflac -ltremor -logg -lmad -lz -lgcc' ./configure --host=androidsdl --enable-zlib --enable-tremor --enable-mad --enable-flac --enable-vkeybd --enable-keymapper --enable-verbose-build --disable-hq-scalers --disable-readline --disable-nasm --datadir=." + ../setEnvironment.sh sh -c "cd scummvm && env LIBS='-lflac -ltremor -logg -lmad -lz -lgcc' ./configure --host=androidsdl --enable-zlib --enable-tremor --enable-mad --enable-flac --enable-vkeybd --enable-verbose-build --disable-hq-scalers --disable-readline --disable-nasm --datadir=." fi -../setEnvironment.sh make -C scummvm -j2 -cp -f scummvm/scummvm libapplication.so +../setEnvironment.sh make -C scummvm -j2 && cp -f scummvm/scummvm libapplication.so diff --git a/project/jni/application/setEnvironment.sh b/project/jni/application/setEnvironment.sh index cbce0314a..282f0f1a8 100755 --- a/project/jni/application/setEnvironment.sh +++ b/project/jni/application/setEnvironment.sh @@ -24,6 +24,20 @@ PLATFORMVER=android-8 LOCAL_PATH=`dirname $0` LOCAL_PATH=`cd $LOCAL_PATH && pwd` +APP_MODULES=`grep 'APP_MODULES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` +APP_AVAILABLE_STATIC_LIBS=`grep 'APP_AVAILABLE_STATIC_LIBS [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` +APP_SHARED_LIBS=$( +echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do + STATIC=`echo $APP_AVAILABLE_STATIC_LIBS | grep "\\\\b$LIB\\\\b"` + if [ "$LIB" = "application" ] ; then true + elif [ "$LIB" = "sdl_main" ] ; then true + elif [ -n "$STATIC" ] ; then true + else + echo $LIB + fi +done +) + CFLAGS="-I$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/include \ -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums \ -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID \ @@ -31,12 +45,12 @@ CFLAGS="-I$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/include \ -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 \ -Wa,--noexecstack -DNDEBUG -g \ -I$LOCAL_PATH/../sdl-1.2/include -I$LOCAL_PATH/../stlport/stlport \ -`grep 'COMPILED_LIBRARIES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@' | sed \"s@\([-a-zA-Z_]\+\)@-I$LOCAL_PATH/../\1/include@g\"`" +`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-I$LOCAL_PATH/../\1/include@g\"`" LDFLAGS="-nostdlib -Wl,-soname,libapplication.so -Wl,-shared,-Bsymbolic \ -Wl,--whole-archive -Wl,--no-whole-archive \ $NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/lib/gcc/arm-eabi/4.4.0/libgcc.a \ -`echo $LOCAL_PATH/../../obj/local/armeabi/*.so | sed "s@$LOCAL_PATH/../../obj/local/armeabi/libsdl_main.so@@" | sed "s@$LOCAL_PATH/../../obj/local/armeabi/libapplication.so@@"` \ +`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/armeabi/lib\1.so@g\"` \ $NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib/libc.so \ $NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib/libstdc++.so \ $NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib/libm.so \