@ -12,13 +12,12 @@ include ../Makefile.conf
#------------------------------------------------------------------------------#
# Build parameters
APP_ABI ?= armeabi-v7a
all : build
#assets
build : showsetup uuid -install sequoia -ffi -install libetpan -build
build : showsetup uuid -install sequoia -ffi -install libetpan -build cryptopp -install libarchive -install
#------------------------------------------------------------------------------#
@ -43,15 +42,10 @@ NDK_TOOLCHAIN = $(HOST)-$(NDK_TOOLCHAIN_COMPILER)
TARGET_ARCH_ABI = $( APP_ABI)
i n c l u d e $( ANDROID_NDK ) / b u i l d / c o r e / t o o l c h a i n s / $( NDK_TOOLCHAIN ) / s e t u p . m k
ANDROID_NDK_HOME = $( ANDROID_NDK) /toolchains/llvm/prebuilt/$( TOOLCHAIN_ARCH)
LD := $( ANDROID_NDK_HOME) /bin/$( HOST) -ld
AR := $( ANDROID_NDK_HOME) /bin/$( HOST) -ar
AS := $( ANDROID_NDK_HOME) /bin/$( HOST) -as
CC := $( ANDROID_NDK_HOME) /bin/$( HOST_V7) $( ANDROID_API) -clang
CXX := $( ANDROID_NDK_HOME) /bin/$( HOST_V7) $( ANDROID_API) -clang++
RANLIB := $( ANDROID_NDK_HOME) /bin/$( HOST) -ranlib
STRIP := $( ANDROID_NDK_HOME) /bin/$( HOST) -strip
AS := $( CC)
CFLAGS += -DANDROID -I$( LOCAL) /include $( TARGET_CFLAGS) -fPIE -fPIC -std= c99
LDFLAGS += -llog -L$( LOCAL) /lib $( TARGET_LDFLAGS) -pie
@ -73,6 +67,7 @@ export ac_cv_func_malloc_0_nonnull=yes
showsetup :
@echo " NDK_TOOLCHAIN: $( NDK_TOOLCHAIN) "
@echo " ANDROID_NDK_HOME: $( ANDROID_NDK_HOME) "
@echo " NDK_SYSROOT: $( NDK_SYSROOT) "
@echo " APP_ABI: $( APP_ABI) "
@echo " HOST: $( HOST) "
@ -80,6 +75,7 @@ showsetup:
@echo " LD: $( LD) "
@echo " CFLAGS: $( CFLAGS) "
@echo " LDFLAGS: $( LDFLAGS) "
@echo " LOCAL: $( LOCAL) "
#------------------------------------------------------------------------------#
# libiconv
@ -210,17 +206,14 @@ OPENSSL_ARCHITECTURE:=android-arm
openssl/Makefile : openssl .src .stamp
cd openssl && \
PATH = " $( ANDROID_NDK_HOME) /bin: $( PATH) " ../../configure_openssl.sh ${ OPENSSL_ARCHITECTURE } $( ANDROID_API) $( LOCAL)
PATH = " $( ANDROID_NDK_HOME) /bin: $( PATH) " bash ../../configure_openssl.sh ${ OPENSSL_ARCHITECTURE } $( ANDROID_API) $( LOCAL)
openssl/libssl.so : | openssl /Makefile
PATH = " $( ANDROID_NDK_HOME) /bin: $( PATH) " $( MAKE) -C openssl
$(LOCAL)/lib/libssl.so : openssl /libssl .so
cd openssl && \
cp libcrypto.so $( LOCAL) /lib && \
cp libcrypto.a $( LOCAL) /lib && \
cp libssl.so $( LOCAL) /lib && \
cp libssl.a $( LOCAL) /lib
ls -l $( LOCAL) /lib/libssl.so
mkdir -p $( LOCAL)
$( MAKE) -C openssl install
ls -l $( LOCAL) /lib
openssl-build : openssl /libssl .so
@ -300,6 +293,46 @@ nettle-build: nettle/libnettle.so
nettle-install : $( LOCAL ) /lib /libnettle .so
#------------------------------------------------------------------------------#
# LibArchive
libarchive.src.stamp : ../downloads /libarchive -$( LIB_ARCHIVE_VERSION ) .tar .gz
tar xvf $<
mv libarchive-$( LIB_ARCHIVE_VERSION) libarchive
touch $@
libarchive-src : libarchive .src .stamp
libarchive-clean :
rm -rf libarchive
rm -rf libarchive.src.stamp
libarchive/Makefile : libarchive .src .stamp
cp libarchive/contrib/android/include/android_lf.h libarchive/libarchive/
cd libarchive && \
CC = " $( CC) " LD = " $( LD) " AR = " $( AR) " AS = " $( AS) " RANLIB = $( RANLIB) STRIP = " $( STRIP) " CFLAGS = " $( CFLAGS) " LDFLAGS = " $( LDFLAGS) " \
./configure \
--with-lib-path= $( LOCAL) /lib \
--with-include-path= $( LOCAL) /include \
--disable-documentation \
--disable-bsdtar \
--disable-bsdcpio \
--disable-bsdcat \
--without-xml2 \
--with-pic \
--host= $( HOST) \
--prefix= $( LOCAL)
libarchive/libarchive.so : libarchive /Makefile
$( MAKE) -C libarchive
$(LOCAL)/lib/libarchive.so : libarchive /libarchive .so
$( MAKE) -C libarchive DESTDIR = $( DESTDIR) prefix = $( prefix) install
libarchive-build : libarchive /libarchive .so
libarchive-install : $( LOCAL ) /lib /libarchive .so
#------------------------------------------------------------------------------#
# Sequoia-ffi
CARGO_TARGET_DIR = $( EXTERNAL_ROOT) /../build
@ -315,7 +348,8 @@ sequoia-ffi-clean:
rm -rf sequoia.src.stamp
$(CARGO_TARGET_DIR)/armv7-linux-androideabi/release/libsequoia_openpgp_ffi.so : sequoia .src .stamp sequoia -deps -build
cd sequoia && PATH = " $( ANDROID_NDK_HOME) /bin: $( PATH) " \
cd sequoia && CC = " $( CC) " LD = " $( LD) " AR = " $( AR) " AS = " $( AS) " RANLIB = $( RANLIB) STRIP = " $( STRIP) " \
CFLAGS = " $( CFLAGS) " LDFLAGS = " $( LDFLAGS) " PATH = " $( ANDROID_NDK_HOME) /bin: $( PATH) " \
LD_LIBRARY_PATH = $( LOCAL) /lib/ \
PKG_CONFIG_PATH = $( LOCAL) /lib/pkgconfig \
PKG_CONFIG_ALLOW_CROSS = 1 \
@ -334,6 +368,34 @@ sequoia-ffi-build: $(CARGO_TARGET_DIR)/armv7-linux-androideabi/release/libsequoi
sequoia-ffi-install : sequoia -deps -build $( LOCAL ) /lib /libsequoia_openpgp_ffi .so
#------------------------------------------------------------------------------#
# Crypto++
cryptopp.src.stamp : ../downloads /cryptopp .tar .gz
mkdir -p cryptopp
cd cryptopp && tar xvf ../$<
$( SED) -i 's,AR=.*,AR="llvm-ar",' cryptopp/TestScripts/setenv-android.sh
$( SED) -i 's,AS=.*,AS=$$(CC),' cryptopp/TestScripts/setenv-android.sh
$( SED) -i 's,LD=.*,LD="ld",' cryptopp/TestScripts/setenv-android.sh
$( SED) -i 's,STRIP=.*,STRIP="llvm-strip",' cryptopp/TestScripts/setenv-android.sh
$( SED) -i 's,RANLIB=.*,RANLIB="llvm-ranlib",' cryptopp/TestScripts/setenv-android.sh
$( SED) -i 's,OBJDUMB=.*,OBJDUMB="llvm-objdumb",' cryptopp/TestScripts/setenv-android.sh
touch $@
cryptopp-src : cryptopp .src .stamp
cryptopp-clean :
rm -rf cryptopp
rm -rf cryptopp.src.stamp
$(LOCAL)/lib/libcryptopp.so : cryptopp .src .stamp
cd cryptopp && bash ../../install_cryptopp.sh $( APP_ABI) $( ANDROID_API) $( LOCAL) $( MAKE)
cryptopp-build : $( LOCAL ) /lib /libcryptopp .so
cryptopp-install : $( LOCAL ) /lib /libcryptopp .so
#------------------------------------------------------------------------------#
# assets for Android app