diff --git a/project/jni/python3/Android.mk b/project/jni/python3/Android.mk index df007f652..b3f02c024 100644 --- a/project/jni/python3/Android.mk +++ b/project/jni/python3/Android.mk @@ -1,23 +1,20 @@ -LOCAL_PATH:=$(call my-dir) +LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := $(notdir $(LOCAL_PATH)) -LOCAL_MODULE_FILENAME := lib$(notdir $(LOCAL_PATH)).so.sdl.1 # It clashes with system libcrypto and libssl in Android 4.3 and older +ifeq ($(TARGET_ARCH),arm) - -ifneq (python3,$(LOCAL_MODULE)) -ifneq ($(filter arm mips x86 arm64, $(TARGET_ARCH)),) +LOCAL_MODULE := python3 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include -LOCAL_SRC_FILES := lib-$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).so.sdl.1.so -LOCAL_BUILT_MODULE := # This fixes a bug in NDK r10d -# NDK is buggy meh -obj/local/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).so.sdl.0.so: $(LOCAL_PATH)/$(LOCAL_SRC_FILES) - cp -f $< $@ +LOCAL_STATIC_LIBRARIES := +LOCAL_SHARED_LIBRARIES := + +LOCAL_LDLIBS := + +LOCAL_SRC_FILES := libpython3.so include $(PREBUILT_SHARED_LIBRARY) -endif -endif +endif # $(TARGET_ARCH),arm diff --git a/project/jni/python3/Makefile b/project/jni/python3/Makefile index 1f1f46a11..564d0a432 100644 --- a/project/jni/python3/Makefile +++ b/project/jni/python3/Makefile @@ -11,14 +11,12 @@ mk/env.mk: env define formula $1: $1-$2 -#$1-$2: ndk $3 -$1-$2: $3 +$1-$2: ndk $3 $$(info Checking $1 $2 sources...) @wget -N -P "src/" -i "mk/$1/$2/sources.txt" ifeq ("$$(wildcard build/.built-$(BUILD_IDENTIFIER)/$1-$2)","") $$(info Building $1 $2...) @bash --noprofile --norc mk/build_single.sh $1 $2 - @mkdir -p build/.built-$(BUILD_IDENTIFIER) @touch build/.built-$(BUILD_IDENTIFIER)/$1-$2 endif endef @@ -64,14 +62,14 @@ python_gdbm: gdbm # Android NDK. -#ndk: -# $(info Checking NDK sources...) -# @wget -N -P "sdk/" $(shell bash mk/ndk_source.sh) -#ifeq ("$(wildcard build/.built-ndk-$(BUILD_IDENTIFIER))","") -# $(info Preparing NDK toolchain...) -# @bash --noprofile --norc mk/build_ndk.sh -# @touch build/.built-ndk-$(BUILD_IDENTIFIER) -#endif +ndk: + $(info Checking NDK sources...) + @wget -N -P "sdk/" $(shell bash mk/ndk_source.sh) +ifeq ("$(wildcard build/.built-ndk-$(BUILD_IDENTIFIER))","") + $(info Preparing NDK toolchain...) + @bash --noprofile --norc mk/build_ndk.sh + @touch build/.built-ndk-$(BUILD_IDENTIFIER) +endif ## Cleaning. diff --git a/project/jni/python3/compile.sh b/project/jni/python3/compile.sh index 44346f881..ae9a98db7 100755 --- a/project/jni/python3/compile.sh +++ b/project/jni/python3/compile.sh @@ -19,6 +19,17 @@ build() { CONFIGURE_ARCH=android-$ARCH;; esac +# case $ARCH in +# armeabi-v7a) +# ANDROID_PLATFORM=arm;; +# armeabi) +# ANDROID_PLATFORM=arm;; +# arm64-v8a) +# ANDROID_PLATFORM=arm;; +# *) +# ANDROID_PLATFORM=arm;; +# esac + # rm -rf build/$ARCH # mkdir -p build/$ARCH # cd build/$ARCH @@ -42,7 +53,9 @@ build() { # rm -rf lib-$ARCH # mkdir -p lib-$ARCH # cp build/$ARCH/libcrypto.so.sdl.1.so lib-${ARCH}/libcrypto.so.sdl.1.so || exit 1 - ./setCrossEnvironment-$ARCH.sh make +# ./setCrossEnvironment-$ARCH.sh make + export ANDROID_PLATFORM=arm + make } PIDS="" diff --git a/project/jni/python3/env b/project/jni/python3/env index 298404a1b..b06d7b3ff 100644 --- a/project/jni/python3/env +++ b/project/jni/python3/env @@ -1,11 +1,9 @@ export BASE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Directories. -export NDK_PATH=~/apps/android-dev/android-ndk-r13b -export ANDROID_PREFIX="${NDK_PATH}/build" -export ANDROID_TOOL_PREFIX="${NDK_PATH}/build-tools" -export ANDROID_TEST_PREFIX="${NDK_PATH}/build-vm" - +export ANDROID_PREFIX="${BASE}/build" +export ANDROID_TOOL_PREFIX="${BASE}/build-tools" +export ANDROID_TEST_PREFIX="${BASE}/build-vm" # SDKs and target platforms. export NDK_REL=android-ndk-r13b @@ -13,7 +11,7 @@ export SDK_REL=android-sdk-r24.0.2 export NDK_REV=13b export SDK_REV=24.0.2 export ANDROID_API_LEVEL=21 -export ANDROID_PLATFORM=arm +#export ANDROID_PLATFORM=arm export ANDROID_COMPILER=4.9 export ANDROID_HOST=x86_64-pc-linux-gnu export ANDROID_AGREE_LICENSE_TERMS=n diff --git a/project/jni/python3/mk/build_ndk.sh b/project/jni/python3/mk/build_ndk.sh index f733b021e..5b3871082 100755 --- a/project/jni/python3/mk/build_ndk.sh +++ b/project/jni/python3/mk/build_ndk.sh @@ -36,6 +36,9 @@ case "${NDK_REV}" in # Zip archive. pushd "${BASE}/sdk" unzip "${NDK_ARCHIVE}" || exit 1 + + #ln -s "/home/gerstrong/apps/android-dev/android-ndk-r${NDK_REV}-$(uname -s | tr '[A-Z]' '[a-z]')-${NDK_ARCH}" android-ndk-r${NDK_REV}-$(uname -s | tr '[A-Z]' '[a-z]')-${NDK_ARCH} + popd fi ;; diff --git a/project/jni/python3/mk/build_single.sh b/project/jni/python3/mk/build_single.sh index 0450eb5ca..b1ab655f5 100755 --- a/project/jni/python3/mk/build_single.sh +++ b/project/jni/python3/mk/build_single.sh @@ -15,14 +15,12 @@ export NDK_PLATFORM="android-${NDK_REV}" export SDK_PLATFORM="android-${SDK_REV}" export cross="${ANDROID_TARGET}-" -export PLATFORMVER="android-24" -export PREFIX="$NDK_PATH/platforms/$PLATFORMVER/arch-arm/usr" - export CFLAGS="--sysroot ${TOOL_PREFIX}/sysroot -I${PREFIX}/include -I${TOOL_PREFIX}/include -DANDROID -mandroid ${CFLAGS_EXTRA}" export CPPFLAGS="${CFLAGS} ${CPPFLAGS_EXTRA}" export CXXFLAGS="${CFLAGS} ${CXXFLAGS_EXTRA}" export LDFLAGS="--sysroot ${TOOL_PREFIX}/sysroot -L${PREFIX}/lib -L${TOOL_PREFIX}/lib ${LDFLAGS_EXTRA}" + export CC="${ANDROID_TARGET}-gcc" export CXX="${ANDROID_TARGET}-g++" export CPP="${ANDROID_TARGET}-cpp" diff --git a/project/jni/python3/mk/env.mk b/project/jni/python3/mk/env.mk index 456adff3f..e69de29bb 100644 --- a/project/jni/python3/mk/env.mk +++ b/project/jni/python3/mk/env.mk @@ -1,22 +0,0 @@ -ANDROID_AGREE_LICENSE_TERMS=n -ANDROID_API_LEVEL=21 -ANDROID_COMPILER=4.9 -ANDROID_DEV=/home/gerstrong/apps/android-dev/android-ndk-r13b/platforms/android-14/arch-arm/usr -ANDROID_EMULATOR_OPTIONS= -ANDROID_EMULATOR_TESTDIR=/data/py3 -ANDROID_HOST=x86_64-pc-linux-gnu -ANDROID_PLATFORM=arm -ANDROID_PREFIX=/home/gerstrong/apps/android-dev/android-ndk-r13b/build -ANDROID_TARGET=arm-linux-androideabi -ANDROID_TEST_PREFIX=/home/gerstrong/apps/android-dev/android-ndk-r13b/build-vm -ANDROID_TOOLCHAIN=arm-linux-androideabi-4.9 -ANDROID_TOOL_PREFIX=/home/gerstrong/apps/android-dev/android-ndk-r13b/build-tools -ANDROID_VM_NAME=PythonTesting -BUILD_IDENTIFIER=13b-21-arm-linux-androideabi-4.9 -NDK_PATH=/home/gerstrong/apps/android-dev/android-ndk-r13b -NDK_REL=android-ndk-r13b -NDK_REV=13b -PYTHON_OPTIONAL_MODULES='bz2 lzma ssl' -SDK_REL=android-sdk-r24.0.2 -SDK_REV=24.0.2 -TEST_IDENTIFIER=24.0.2-21-arm