From 8c80c9794de562d0b1a90010b17202d840be6ea2 Mon Sep 17 00:00:00 2001 From: ignaciogarcia Date: Thu, 27 Oct 2022 10:14:22 +0200 Subject: [PATCH] PEMA-107 Move common variables to Makefile.conf Done so that we do not need to repeat much generated code. --- android/external/Makefile.conf | 11 +++++++++ android/external/MakefileTemplate | 39 ++++++++++++------------------ android/external/createMakefile.sh | 15 ++---------- 3 files changed, 29 insertions(+), 36 deletions(-) diff --git a/android/external/Makefile.conf b/android/external/Makefile.conf index eb52044..f9102f8 100644 --- a/android/external/Makefile.conf +++ b/android/external/Makefile.conf @@ -54,3 +54,14 @@ ANDROID_ETPAN_BUILD_VERSION=2 # install root for built files EXTERNAL_ROOT = $(shell pwd) DESTDIR = $(EXTERNAL_ROOT)/.. +prefix = /output/$(APP_ABI) +LOCAL = $(DESTDIR)$(prefix) +NDK_TOOLCHAIN = $(NDK_TOOLCHAIN_TARGET)-$(NDK_TOOLCHAIN_COMPILER) +TEMP_WORK_PATH = $(ANDROID_NDK_HOME)/bin:${PATH}:$(NDK_TOOLCHAIN)/bin:$(LOCAL)/bin + +CC = $(ANDROID_NDK_HOME)/bin/$(COMPILER_PREFIX)$(ANDROID_API)-clang +AS = $(CC) +CXX = $(ANDROID_NDK_HOME)/bin/$(COMPILER_PREFIX)$(ANDROID_API)-clang++ + +MYCFLAGS = -DANDROID -I$(LOCAL)/include $(TARGET_CFLAGS) -fPIE -fPIC -std=c99 $($ARCH_DEBUG_CFLAGS) # change 'release' to 'debug' for unoptimized debug builds +MYLDFLAGS = -llog -L$(LOCAL)/lib $(TARGET_LDFLAGS) -pie \ No newline at end of file diff --git a/android/external/MakefileTemplate b/android/external/MakefileTemplate index 7e2c752..e882ec4 100644 --- a/android/external/MakefileTemplate +++ b/android/external/MakefileTemplate @@ -3,6 +3,15 @@ # This file may be used under the terms of the GNU General Public License version 3 # see LICENSE.txt +# Build parameters +APP_ABI ?= [ARCH] +ANDROID_API ?= [ANDROID_API] +HOST ?= [HOST] +NDK_TOOLCHAIN_TARGET ?= [NDK_TOOLCHAIN_TARGET] +SEQUOIA_ARCH ?= [SEQUOIA_ARCH] +OPENSSL_ARCHITECTURE ?= [OPENSSL_ARCHITECTURE] +COMPILER_PREFIX ?= [COMPILER_PREFIX] + include ../Makefile.conf #------------------------------------------------------------------------------# @@ -11,10 +20,6 @@ include ../Makefile.conf #------------------------------------------------------------------------------# #------------------------------------------------------------------------------# -# Build parameters - -APP_ABI ?= [ARCH] -ANDROID_API ?= [ANDROID_API] all: build @@ -23,25 +28,11 @@ build: showsetup uuid-prebuild sequoia-ffi-install libetpan-build #------------------------------------------------------------------------------# # Manage paths for PREFIX, LOCAL and PATH -prefix := [prefix] -LOCAL := $(DESTDIR)$(prefix) - -PATH := ${PATH}:$(NDK_TOOLCHAIN)/bin:$(LOCAL)/bin - -HOST = [HOST] -NDK_TOOLCHAIN := [NDK_TOOLCHAIN] -SEQUOIA_ARCH = [SEQUOIA_ARCH] -OPENSSL_ARCHITECTURE:=[OPENSSL_ARCHITECTURE] - # include Android's build flags include $(ANDROID_NDK)/build/core/toolchains/$(NDK_TOOLCHAIN)/setup.mk -CC := [CC] -CXX := [CXX] -AS := $(CC) - -CFLAGS += [CFLAGS] -LDFLAGS += [LDFLAGS] +CFLAGS += $(MYCFLAGS) +LDFLAGS += $(MYLDFLAGS) #------------------------------------------------------------------------------# # GNU Tools trickery @@ -58,6 +49,8 @@ export ac_cv_func_malloc_0_nonnull=yes showsetup: @echo "NDK_TOOLCHAIN: $(NDK_TOOLCHAIN)" @echo "NDK_TOOLCHAIN_COMPILER: $(NDK_TOOLCHAIN_COMPILER)" + @echo "NDK_TOOLCHAIN_TARGET: $(NDK_TOOLCHAIN_TARGET)" + @echo "TEMP_WORK_PATH: $(TEMP_WORK_PATH)" @echo "APP_ABI: $(APP_ABI)" @echo "HOST: $(HOST)" @echo "SEQUOIA_ARCH: $(SEQUOIA_ARCH)" @@ -166,9 +159,9 @@ openssl.src.stamp: ../downloads/openssl-$(OPENSSL_VERSION).tar.gz openssl/Makefile: openssl.src.stamp cd openssl && \ - PATH="$(ANDROID_NDK_HOME)/bin:$(PATH)" ../../configure_openssl.sh ${OPENSSL_ARCHITECTURE} $(ANDROID_API) $(LOCAL) + PATH=$(TEMP_WORK_PATH) ../../configure_openssl.sh ${OPENSSL_ARCHITECTURE} $(ANDROID_API) $(LOCAL) openssl/libssl.so: | openssl/Makefile - PATH="$(ANDROID_NDK_HOME)/bin:$(PATH)" $(MAKE) -C openssl + PATH=$(TEMP_WORK_PATH) $(MAKE) -C openssl $(LOCAL)/lib/libssl.so: openssl/libssl.so mkdir -p $(LOCAL)/lib && cd openssl && \ @@ -266,7 +259,7 @@ sequoia-ffi-clean: rm -rf sequoia.src.stamp $(CARGO_TARGET_DIR)/$(SEQUOIA_ARCH)/release/libsequoia_openpgp_ffi.so: sequoia.src.stamp sequoia-deps-build - cd sequoia && PATH="$(ANDROID_NDK_HOME)/bin:$(PATH)" \ + cd sequoia && PATH=$(TEMP_WORK_PATH) \ CC="$(CC)" LD="$(LD)" AR="$(AR)" AS="$(AS)" RANLIB=$(RANLIB) STRIP="$(STRIP)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \ LD_LIBRARY_PATH=$(LOCAL)/lib/ \ PKG_CONFIG_PATH=$(LOCAL)/lib/pkgconfig \ diff --git a/android/external/createMakefile.sh b/android/external/createMakefile.sh index f520d35..ee95864 100644 --- a/android/external/createMakefile.sh +++ b/android/external/createMakefile.sh @@ -51,13 +51,6 @@ 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 # ################################################################################ @@ -79,15 +72,11 @@ 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@\[prefix\]@'"$prefix"'@g' "$FILE_DEST" -$SED -i 's@\[NDK_TOOLCHAIN\]@'"$NDK_TOOLCHAIN"'@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/\[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"