Browse Source

PEMA-107 Use toolchains installed by default with the NDK

Change binutils tools prefix for arm architecture.
Slightly improve script formatting.
pull/25/head
ignaciogarcia 3 years ago
parent
commit
0544920675
No known key found for this signature in database GPG Key ID: 5E6A455C909DD623
  1. 11
      android/external/MakefileTemplate
  2. 29
      android/external/createMakefile.sh
  3. 21
      android/external/generate-standalone-ndk-toolchain.sh

11
android/external/MakefileTemplate

@ -32,18 +32,17 @@ LOCAL := $(DESTDIR)$(prefix)
PATH := ${PATH}:$(NDK_TOOLCHAIN)/bin:$(LOCAL)/bin
NDK_SYSROOT=$(ANDROID_NDK_HOME)/sysroot
HOST = [HOST]
NDK_TOOLCHAIN = $([NDK_TOOLCHAIN_TARGET])-$(NDK_TOOLCHAIN_COMPILER)
COMPILER_PREFIX = [COMPILER_PREFIX]
# 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/$(HOST)[EXTRA_FLAGS_API]-clang
CXX := $(ANDROID_NDK_HOME)/bin/$(HOST)[EXTRA_FLAGS_API]-clang++
AS := $(ANDROID_NDK_HOME)/bin/$(HOST)[EXTRA_FLAGS_API]-clang
CC := $(ANDROID_NDK_HOME)/bin/$(COMPILER_PREFIX)$(ANDROID_API)-clang
CXX := $(ANDROID_NDK_HOME)/bin/$(COMPILER_PREFIX)$(ANDROID_API)-clang++
AS := $(CC)
CFLAGS += -DANDROID -I$(LOCAL)/include $(TARGET_CFLAGS) -fPIE -fPIC -std=c99
LDFLAGS += -llog -L$(LOCAL)/lib $(TARGET_LDFLAGS) -pie
@ -65,9 +64,9 @@ export ac_cv_func_malloc_0_nonnull=yes
showsetup:
@echo "NDK_TOOLCHAIN: $(NDK_TOOLCHAIN)"
@echo "NDK_SYSROOT: $(NDK_SYSROOT)"
@echo "APP_ABI: $(APP_ABI)"
@echo "HOST: $(HOST)"
@echo "COMPILER_PREFIX: $(COMPILER_PREFIX)"
@echo "CC: $(CC)"
@echo "LD: $(LD)"
@echo "CFLAGS: $(CFLAGS)"

29
android/external/createMakefile.sh

@ -3,8 +3,8 @@
#cd ~code/android/pEpJNIAdapter/external
ARCH_DEST="$1"
mkdir $ARCH_DEST
cp MakefileTemplate $ARCH_DEST/Makefile
mkdir "$ARCH_DEST"
cp MakefileTemplate "$ARCH_DEST"/Makefile
FILE_DEST=$ARCH_DEST/Makefile
################################################################################
@ -15,6 +15,7 @@ case $ARCH_DEST in
x86)
ANDROID_API=18
HOST=i686-linux-android
COMPILER_PREFIX="$HOST"
NDK_TOOLCHAIN_TARGET="APP_ABI"
ARCH_DEBUG_CFLAGS=TARGET_x86_debug_CFLAGS
OPENSSL_ARCHITECTURE=android-x86
@ -23,7 +24,7 @@ case $ARCH_DEST in
x86_64)
ANDROID_API=21
HOST=x86_64-linux-android
EXTRA_FLAGS_API="\$(ANDROID_API)"
COMPILER_PREFIX="$HOST"
NDK_TOOLCHAIN_TARGET="APP_ABI"
ARCH_DEBUG_CFLAGS=TARGET_x86_64_debug_CFLAGS
OPENSSL_ARCHITECTURE=android-x86_64
@ -32,6 +33,7 @@ case $ARCH_DEST in
armeabi-v7a)
ANDROID_API=18
HOST=arm-linux-androideabi
COMPILER_PREFIX=armv7a-linux-androideabi
NDK_TOOLCHAIN_TARGET="HOST"
ARCH_DEBUG_CFLAGS=TARGET_arm_debug_CFLAGS
OPENSSL_ARCHITECTURE=android-arm
@ -40,6 +42,7 @@ case $ARCH_DEST in
arm64-v8a)
ANDROID_API=21
HOST=aarch64-linux-android
COMPILER_PREFIX="$HOST"
NDK_TOOLCHAIN_TARGET="HOST"
ARCH_DEBUG_CFLAGS=TARGET_arm64_debug_CFLAGS
OPENSSL_ARCHITECTURE=android-arm64
@ -66,14 +69,14 @@ esac
# REPLACE FIELDS IN TEMPLATE #
################################################################################
$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/\[EXTRA_FLAGS_API\]/'"$EXTRA_FLAGS_API"'/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/\[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/\[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"
cat $FILE_DEST
cat "$FILE_DEST"

21
android/external/generate-standalone-ndk-toolchain.sh

@ -1,21 +0,0 @@
#!/bin/bash
usage="Usage: $(basename "$0") [-h][--force] -- Script to generate android standalone toolchain to build pEp for Android.
where:
-h Show this help text
--force Force generating the toolchain"
if [ "$1" == "-h" ]; then
echo "$usage"
exit 0
fi
if [ -z "$ANDROID_NDK" ]; then
echo "Please define \$ANDROID_NDK"
exit 1
fi
$ANDROID_NDK/build/tools/make_standalone_toolchain.py $1 --arch arm --api 18 --install-dir=ndk-18-arm
exit 0
Loading…
Cancel
Save