|
|
@ -9,7 +9,7 @@ |
|
|
|
# TODO: get params from the outside for multiarch build
|
|
|
|
|
|
|
|
NDK_ABI ?= arm |
|
|
|
NDK_TOOLCHAIN_VERSION ?= 4.9 |
|
|
|
NDK_TOOLCHAIN_VERSION ?= clang |
|
|
|
APP_ABI ?= armeabi-v7a |
|
|
|
APP_PLATFORM ?= android-18 |
|
|
|
PEP_PACKAGE_NAME ?= com.pep.k9 |
|
|
@ -44,8 +44,9 @@ else |
|
|
|
NDK_PROCESSOR=x86 |
|
|
|
endif |
|
|
|
|
|
|
|
NDK_SYSROOT=$(ANDROID_NDK_HOME)/platforms/$(APP_PLATFORM)/arch-$(NDK_ABI) |
|
|
|
NDK_SYSROOT=$(ANDROID_NDK_HOME)/sysroot |
|
|
|
NDK_UNAME := $(shell uname -s | tr '[A-Z]' '[a-z]') |
|
|
|
|
|
|
|
ifeq ($(NDK_ABI),x86) |
|
|
|
HOST = i686-linux-android |
|
|
|
NDK_TOOLCHAIN = $(NDK_ABI)-$(NDK_TOOLCHAIN_VERSION) |
|
|
@ -53,27 +54,28 @@ else |
|
|
|
HOST = $(NDK_ABI)-linux-androideabi |
|
|
|
NDK_TOOLCHAIN = $(HOST)-$(NDK_TOOLCHAIN_VERSION) |
|
|
|
endif |
|
|
|
NDK_TOOLCHAIN_BASE=$(ANDROID_NDK_HOME)/toolchains/$(NDK_TOOLCHAIN)/prebuilt/$(NDK_UNAME)-$(NDK_PROCESSOR) |
|
|
|
|
|
|
|
# include Android's build flags
|
|
|
|
TARGET_ARCH_ABI = $(APP_ABI) |
|
|
|
include $(ANDROID_NDK_HOME)/build/core/toolchains/$(NDK_TOOLCHAIN)/setup.mk |
|
|
|
#include $(ANDROID_NDK)/build/core/toolchains/$(NDK_TOOLCHAIN)/setup.mk
|
|
|
|
#include $(ANDROID_NDK_HOME)/toolchains/$(NDK_TOOLCHAIN)/setup.mk
|
|
|
|
ANDROID_NDK_HOME=$(EXTERNAL_ROOT)/ndk-18-arm |
|
|
|
LD := $(ANDROID_NDK_HOME)/bin/$(HOST)-ld |
|
|
|
AR := $(ANDROID_NDK_HOME)/bin/$(HOST)-ar |
|
|
|
AS :cd= $(ANDROID_NDK_HOME)/bin/$(HOST)-clang |
|
|
|
CC := $(ANDROID_NDK_HOME)/bin/$(HOST)-clang |
|
|
|
CXX := $(ANDROID_NDK_HOME)/bin/$(HOST)-clang++ |
|
|
|
RANLIB := $(ANDROID_NDK_HOME)/bin/$(HOST)-ranlib |
|
|
|
|
|
|
|
CC := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-gcc --sysroot=$(NDK_SYSROOT) |
|
|
|
LD := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-ld |
|
|
|
AR := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-ar |
|
|
|
RANLIB := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-ranlib |
|
|
|
|
|
|
|
CFLAGS = -DANDROID -I$(LOCAL)/include $(TARGET_CFLAGS) |
|
|
|
LDFLAGS = -llog -L$(LOCAL)/lib $(TARGET_LDFLAGS) -pie |
|
|
|
CFLAGS += -DANDROID -I$(LOCAL)/include $(TARGET_CFLAGS) -fPIE -fPIC -D_FILE_OFFSET_BITS=64 -DLARGEFILE_SOURCE=1 |
|
|
|
LDFLAGS += -llog -L$(LOCAL)/lib $(TARGET_LDFLAGS) -pie |
|
|
|
|
|
|
|
# change 'release' to 'debug' for unoptimized debug builds
|
|
|
|
ifeq ($(APP_ABI),armeabi-v7a) |
|
|
|
CFLAGS += $(TARGET_arm_release_CFLAGS) |
|
|
|
CFLAGS += $(TARGET_arm_debug_CFLAGS) |
|
|
|
endif |
|
|
|
ifeq ($(APP_ABI),armeabi) |
|
|
|
CFLAGS += $(TARGET_thumb_release_CFLAGS) |
|
|
|
CFLAGS += $(TARGET_thumb_debug_CFLAGS) |
|
|
|
endif |
|
|
|
|
|
|
|
#------------------------------------------------------------------------------#
|
|
|
@ -187,6 +189,7 @@ libassuan/Makefile: libassuan/configure |
|
|
|
CC="$(CC)" AR="$(AR)" RANLIB=$(RANLIB) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
|
|
|
|
./configure \
|
|
|
|
--enable-maintainer-mode \
|
|
|
|
--disable-largefile \
|
|
|
|
--host=$(HOST) \
|
|
|
|
--with-gpg-error-prefix=$(LOCAL) \
|
|
|
|
--prefix=$(LOCAL) |
|
|
@ -205,7 +208,7 @@ libassuan-install: $(LOCAL)/lib/libassuan.so |
|
|
|
#------------------------------------------------------------------------------#
|
|
|
|
# libksba
|
|
|
|
|
|
|
|
EXTERNAL_GIT_REPOS += libksba|git://git.gnupg.org/libksba.git?libksba-1.3.3 |
|
|
|
EXTERNAL_GIT_REPOS += libksba|git://git.gnupg.org/libksba.git?libksba-1.3.4 |
|
|
|
|
|
|
|
libksba/configure: libksba.src.stamp libksba/configure.ac |
|
|
|
cd libksba && ./autogen.sh |
|
|
@ -231,6 +234,35 @@ libksba-build: libksba/src/.libs/libksba.so |
|
|
|
|
|
|
|
libksba-install: $(LOCAL)/lib/libksba.so |
|
|
|
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------#
|
|
|
|
# npth
|
|
|
|
|
|
|
|
EXTERNAL_GIT_REPOS += npth|git://git.gnupg.org/npth.git?npth-1.2 |
|
|
|
|
|
|
|
npth/configure: npth.src.stamp npth/configure.ac |
|
|
|
cd npth && ./autogen.sh |
|
|
|
|
|
|
|
npth/Makefile: $(LOCAL)/lib/libgpg-error.so npth/configure |
|
|
|
cd npth && \
|
|
|
|
CC="$(CC)" AR="$(AR)" RANLIB=$(RANLIB) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
|
|
|
|
./configure $(CONFIGURE_ARGS) \
|
|
|
|
--enable-maintainer-mode \
|
|
|
|
--host=$(HOST) \
|
|
|
|
--with-gpg-error-prefix=$(LOCAL) \
|
|
|
|
--prefix=$(LOCAL) |
|
|
|
|
|
|
|
npth/src/.libs/libnpth.so: npth/Makefile |
|
|
|
$(MAKE) -C npth |
|
|
|
|
|
|
|
$(LOCAL)/lib/libnpth.so: npth/src/.libs/libnpth.so |
|
|
|
$(MAKE) -C npth prefix=$(LOCAL) install |
|
|
|
ls -l $(LOCAL)/lib/libnpth.so |
|
|
|
|
|
|
|
npth-build: npth/src/.libs/libnpth.so |
|
|
|
|
|
|
|
npth-install: $(LOCAL)/lib/libnpth.so |
|
|
|
|
|
|
|
#------------------------------------------------------------------------------#
|
|
|
|
# curl
|
|
|
|
|
|
|
@ -350,7 +382,7 @@ gnupg/Makefile: gnupg/configure |
|
|
|
--disable-gpgsm \
|
|
|
|
--prefix=$(prefix) |
|
|
|
|
|
|
|
gnupg/g10/gpg2: $(LOCAL)/lib/libgpg-error.so $(LOCAL)/lib/libgcrypt.so $(LOCAL)/lib/libksba.so $(LOCAL)/lib/libassuan.so $(LOCAL)/lib/libcurl.so $(LOCAL)/lib/libiconv.so gnupg/Makefile |
|
|
|
gnupg/g10/gpg2: $(LOCAL)/lib/libgpg-error.so $(LOCAL)/lib/libgcrypt.so $(LOCAL)/lib/libksba.so $(LOCAL)/lib/libnpth.so $(LOCAL)/lib/libassuan.so $(LOCAL)/lib/libcurl.so $(LOCAL)/lib/libiconv.so gnupg/Makefile |
|
|
|
$(MAKE) -C gnupg |
|
|
|
|
|
|
|
$(LOCAL)/bin/gpg2: gnupg/g10/gpg2 gnupg/configure |
|
|
@ -369,8 +401,14 @@ gnupg-install: $(LOCAL)/bin/gpg2 |
|
|
|
|
|
|
|
EXTERNAL_GIT_REPOS += gpgme|git://git.gnupg.org/gpgme.git?gpgme-1.8.0 |
|
|
|
|
|
|
|
gpgme/configure: gpgme.src.stamp gpgme/configure.ac |
|
|
|
cd gpgme && ./autogen.sh |
|
|
|
gpgme/configure: gpgme.src.stamp gpgme/configure.ac |
|
|
|
cd gpgme && ./autogen.sh |
|
|
|
|
|
|
|
ifneq ("x$(findstring '64',$(HOST))x","xx") |
|
|
|
gpgme_32b_force_no_largefile = |
|
|
|
else |
|
|
|
gpgme_32b_force_no_largefile = --disable-largefile |
|
|
|
endif |
|
|
|
|
|
|
|
gpgme/Makefile: gpgme/configure |
|
|
|
-patch -N -p1 --reject-file=- gpgme/m4/libtool.m4 libtool-Add-Android-Linux-support.patch |
|
|
@ -378,6 +416,7 @@ gpgme/Makefile: gpgme/configure |
|
|
|
CC="$(CC)" AR="$(AR)" RANLIB=$(RANLIB) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
|
|
|
|
./configure \
|
|
|
|
--host=$(HOST) \
|
|
|
|
$(gpgme_32b_force_no_largefile) \
|
|
|
|
--enable-maintainer-mode \
|
|
|
|
--with-gpg-error-prefix=$(LOCAL) \
|
|
|
|
--with-libassuan-prefix=$(LOCAL) \
|
|
|
@ -411,7 +450,7 @@ libetpan/build-android/libetpan-android-1.zip: libiconv-install libetpan.src.sta |
|
|
|
|
|
|
|
libetpan-build: libetpan/build-android/libetpan-android-1.zip |
|
|
|
|
|
|
|
libetpan-cleanzip: |
|
|
|
libetpan-cleanzip: |
|
|
|
rm -f libetpan/build-android/libetpan-android-1.zip |
|
|
|
|
|
|
|
#------------------------------------------------------------------------------#
|
|
|
@ -438,7 +477,7 @@ EXTERNAL_SRCS_CLEAN += uuid-clean |
|
|
|
|
|
|
|
uuid/Makefile: uuid.src.stamp |
|
|
|
sed -i 's,AC_CHECK_VA_COPY(),,' uuid/uuid.ac |
|
|
|
cd uuid && autoconf |
|
|
|
cd uuid && autoconf |
|
|
|
-patch -N -p1 --reject-file=- uuid/libtool.m4 libtool-Add-Android-Linux-support-iconv.patch |
|
|
|
cp config.sub uuid |
|
|
|
cp config.guess uuid |
|
|
@ -490,7 +529,7 @@ assets: clean-assets |
|
|
|
|
|
|
|
#------------------------------------------------------------------------------#
|
|
|
|
# Clone update and archive external projects GIT repos
|
|
|
|
# Local clone is in external/$project.git while
|
|
|
|
# Local clone is in external/$project.git while
|
|
|
|
# selected commit is archived in external/$project
|
|
|
|
|
|
|
|
define per_repo_targets |
|
|
@ -510,7 +549,7 @@ $(1).src.stamp: $(1).git.stamp |
|
|
|
|
|
|
|
$(1)-src: $(1).src.stamp |
|
|
|
|
|
|
|
$(1)-clean: |
|
|
|
$(1)-clean: |
|
|
|
rm -rf $(1) |
|
|
|
rm -f $(1).src.stamp |
|
|
|
|
|
|
@ -546,6 +585,9 @@ clean-install: |
|
|
|
|
|
|
|
clean: $(EXTERNAL_SRCS_CLEAN) clean-assets clean-install libetpan-cleanzip |
|
|
|
|
|
|
|
clean-all: clean |
|
|
|
rm -rf *.git |
|
|
|
rm -rf *.stamp |
|
|
|
#------------------------------------------------------------------------------#
|
|
|
|
|
|
|
|
.PHONY = clean clean-install clean-assets libetpan-cleanzip\
|
|
|
@ -553,6 +595,7 @@ clean: $(EXTERNAL_SRCS_CLEAN) clean-assets clean-install libetpan-cleanzip |
|
|
|
libgcrypt-build libgcrypt-install \
|
|
|
|
libassuan-build libassuan-install \
|
|
|
|
libksba-build libksba-install \
|
|
|
|
libnpth-build libnpth-install \
|
|
|
|
libiconv-build libiconv-install \
|
|
|
|
uuid-build uuid-install \
|
|
|
|
gnupg-build gnupg-install\
|
|
|
|