Browse Source

PEMA-107 Move common variables to Makefile.conf

Done so that we do not need to repeat much generated code.
pull/30/head
ignaciogarcia 3 years ago
parent
commit
8c80c9794d
No known key found for this signature in database GPG Key ID: 5E6A455C909DD623
  1. 11
      android/external/Makefile.conf
  2. 39
      android/external/MakefileTemplate
  3. 15
      android/external/createMakefile.sh

11
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

39
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 \

15
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"

Loading…
Cancel
Save