From ad6bd72f1c436de86be2fe9cf38f9e5bb03afabf Mon Sep 17 00:00:00 2001 From: ignaciogarcia Date: Thu, 27 Oct 2022 09:15:58 +0200 Subject: [PATCH] PEMA-107 Move some code to Makefile.conf and createMakefile.sh --- android/external/Makefile.conf | 5 +++-- android/external/MakefileTemplate | 33 +++++++++++++----------------- android/external/createMakefile.sh | 23 +++++++++++++++------ 3 files changed, 34 insertions(+), 27 deletions(-) diff --git a/android/external/Makefile.conf b/android/external/Makefile.conf index a0fee8d..eb52044 100644 --- a/android/external/Makefile.conf +++ b/android/external/Makefile.conf @@ -51,5 +51,6 @@ EXTERNAL_SRCS_CLEAN += sequoia-ffi-clean ### Other variables ANDROID_ETPAN_BUILD_VERSION=2 - - +# install root for built files +EXTERNAL_ROOT = $(shell pwd) +DESTDIR = $(EXTERNAL_ROOT)/.. diff --git a/android/external/MakefileTemplate b/android/external/MakefileTemplate index d274919..8e7bddd 100644 --- a/android/external/MakefileTemplate +++ b/android/external/MakefileTemplate @@ -21,35 +21,27 @@ all: build build: showsetup uuid-install sequoia-ffi-install libetpan-build #------------------------------------------------------------------------------# -# Manage paths for PREFIX, DESTDIR, LOCAL and PATH +# Manage paths for PREFIX, LOCAL and PATH -EXTERNAL_ROOT := $(shell pwd) - -# install root for built files -DESTDIR = $(EXTERNAL_ROOT)/.. -prefix = /output/$(APP_ABI) +prefix := [prefix] LOCAL := $(DESTDIR)$(prefix) PATH := ${PATH}:$(NDK_TOOLCHAIN)/bin:$(LOCAL)/bin HOST = [HOST] -NDK_TOOLCHAIN = $([NDK_TOOLCHAIN_TARGET])-$(NDK_TOOLCHAIN_COMPILER) -COMPILER_PREFIX = [COMPILER_PREFIX] +NDK_TOOLCHAIN := [NDK_TOOLCHAIN] SEQUOIA_ARCH = [SEQUOIA_ARCH] +OPENSSL_ARCHITECTURE:=[OPENSSL_ARCHITECTURE] # include Android's build flags -TARGET_ARCH_ABI = $(APP_ABI) include $(ANDROID_NDK)/build/core/toolchains/$(NDK_TOOLCHAIN)/setup.mk -CC := $(ANDROID_NDK_HOME)/bin/$(COMPILER_PREFIX)$(ANDROID_API)-clang -CXX := $(ANDROID_NDK_HOME)/bin/$(COMPILER_PREFIX)$(ANDROID_API)-clang++ +CC := [CC] +CXX := [CXX] AS := $(CC) -CFLAGS += -DANDROID -I$(LOCAL)/include $(TARGET_CFLAGS) -fPIE -fPIC -std=c99 -LDFLAGS += -llog -L$(LOCAL)/lib $(TARGET_LDFLAGS) -pie - -# change 'release' to 'debug' for unoptimized debug builds -CFLAGS += $([ARCH_DEBUG_CFLAGS]) +CFLAGS += [CFLAGS] +LDFLAGS += [LDFLAGS] #------------------------------------------------------------------------------# # GNU Tools trickery @@ -65,11 +57,16 @@ export ac_cv_func_malloc_0_nonnull=yes showsetup: @echo "NDK_TOOLCHAIN: $(NDK_TOOLCHAIN)" + @echo "NDK_TOOLCHAIN_COMPILER: $(NDK_TOOLCHAIN_COMPILER)" @echo "APP_ABI: $(APP_ABI)" @echo "HOST: $(HOST)" - @echo "COMPILER_PREFIX: $(COMPILER_PREFIX)" + @echo "SEQUOIA_ARCH: $(SEQUOIA_ARCH)" @echo "CC: $(CC)" @echo "LD: $(LD)" + @echo "AR: $(AR)" + @echo "AS: $(AS)" + @echo "STRIP: $(STRIP)" + @echo "RANLIB: $(RANLIB)" @echo "CFLAGS: $(CFLAGS)" @echo "LDFLAGS: $(LDFLAGS)" @@ -172,8 +169,6 @@ openssl.src.stamp: ../downloads/openssl-$(OPENSSL_VERSION).tar.gz mv openssl-$(OPENSSL_VERSION) openssl touch $@ -OPENSSL_ARCHITECTURE:=[OPENSSL_ARCHITECTURE] - openssl/Makefile: openssl.src.stamp cd openssl && \ PATH="$(ANDROID_NDK_HOME)/bin:$(PATH)" ../../configure_openssl.sh ${OPENSSL_ARCHITECTURE} $(ANDROID_API) $(LOCAL) diff --git a/android/external/createMakefile.sh b/android/external/createMakefile.sh index a85850a..f520d35 100644 --- a/android/external/createMakefile.sh +++ b/android/external/createMakefile.sh @@ -16,7 +16,7 @@ case $ARCH_DEST in ANDROID_API=18 HOST=i686-linux-android COMPILER_PREFIX="$HOST" - NDK_TOOLCHAIN_TARGET="APP_ABI" + NDK_TOOLCHAIN_TARGET="$ARCH_DEST" ARCH_DEBUG_CFLAGS=TARGET_x86_debug_CFLAGS OPENSSL_ARCHITECTURE=android-x86 SEQUOIA_ARCH=i686-linux-android @@ -25,7 +25,7 @@ case $ARCH_DEST in ANDROID_API=21 HOST=x86_64-linux-android COMPILER_PREFIX="$HOST" - NDK_TOOLCHAIN_TARGET="APP_ABI" + NDK_TOOLCHAIN_TARGET="$ARCH_DEST" ARCH_DEBUG_CFLAGS=TARGET_x86_64_debug_CFLAGS OPENSSL_ARCHITECTURE=android-x86_64 SEQUOIA_ARCH=x86_64-linux-android @@ -34,7 +34,7 @@ case $ARCH_DEST in ANDROID_API=18 HOST=arm-linux-androideabi COMPILER_PREFIX=armv7a-linux-androideabi - NDK_TOOLCHAIN_TARGET="HOST" + NDK_TOOLCHAIN_TARGET="$HOST" ARCH_DEBUG_CFLAGS=TARGET_arm_debug_CFLAGS OPENSSL_ARCHITECTURE=android-arm SEQUOIA_ARCH=armv7-linux-androideabi @@ -43,7 +43,7 @@ case $ARCH_DEST in ANDROID_API=21 HOST=aarch64-linux-android COMPILER_PREFIX="$HOST" - NDK_TOOLCHAIN_TARGET="HOST" + NDK_TOOLCHAIN_TARGET="$HOST" ARCH_DEBUG_CFLAGS=TARGET_arm64_debug_CFLAGS OPENSSL_ARCHITECTURE=android-arm64 GMP_MAKEFILE_EXTRA=' MPN_PATH=\"arm64 generic\"' @@ -51,6 +51,13 @@ case $ARCH_DEST in ;; esac +prefix="/output/$ARCH_DEST" +CC="\$(ANDROID_NDK_HOME)/bin/$COMPILER_PREFIX$ANDROID_API-clang" +CXX="\$(ANDROID_NDK_HOME)/bin/$COMPILER_PREFIX$ANDROID_API-clang++" +NDK_TOOLCHAIN="$NDK_TOOLCHAIN_TARGET-\$(NDK_TOOLCHAIN_COMPILER)" +CFLAGS="-DANDROID -I\$(LOCAL)/include \$(TARGET_CFLAGS) -fPIE -fPIC -std=c99 \$($ARCH_DEBUG_CFLAGS)" # change 'release' to 'debug' for unoptimized debug builds +LDFLAGS="-llog -L\$(LOCAL)/lib \$(TARGET_LDFLAGS) -pie" + ################################################################################ # Select GNU SED # ################################################################################ @@ -72,11 +79,15 @@ esac $SED -i 's/\[ARCH\]/'"$ARCH_DEST"'/g' "$FILE_DEST" $SED -i 's/\[ANDROID_API\]/'"$ANDROID_API"'/g' "$FILE_DEST" $SED -i 's/\[HOST\]/'"$HOST"'/g' "$FILE_DEST" -$SED -i 's/\[COMPILER_PREFIX\]/'"$COMPILER_PREFIX"'/g' "$FILE_DEST" -$SED -i 's/\[NDK_TOOLCHAIN_TARGET\]/'"$NDK_TOOLCHAIN_TARGET"'/g' "$FILE_DEST" +$SED -i 's@\[prefix\]@'"$prefix"'@g' "$FILE_DEST" +$SED -i 's@\[NDK_TOOLCHAIN\]@'"$NDK_TOOLCHAIN"'@g' "$FILE_DEST" $SED -i 's/\[ARCH_DEBUG_CFLAGS\]/'"$ARCH_DEBUG_CFLAGS"'/g' "$FILE_DEST" $SED -i 's/\[OPENSSL_ARCHITECTURE\]/'"$OPENSSL_ARCHITECTURE"'/g' "$FILE_DEST" $SED -i 's/\[GMP_MAKEFILE_EXTRA\]/'"$GMP_MAKEFILE_EXTRA"'/g' "$FILE_DEST" $SED -i 's/\[SEQUOIA_ARCH\]/'"$SEQUOIA_ARCH"'/g' "$FILE_DEST" +$SED -i 's@\[CC\]@'"$CC"'@g' "$FILE_DEST" +$SED -i 's@\[CXX\]@'"$CXX"'@g' "$FILE_DEST" +$SED -i 's@\[CFLAGS\]@'"$CFLAGS"'@g' "$FILE_DEST" +$SED -i 's@\[LDFLAGS\]@'"$LDFLAGS"'@g' "$FILE_DEST" cat "$FILE_DEST"