blob: fba97acb9b9bcdfacc763cd17fc14e3aa577b9d2 [file] [log] [blame]
#
## Cross-compile env for Android
# Requires Android NDK >= r8
# Requires the following env variables:
#
# NDK_BASE - path to your NDK's root directory
# e.g., /home/user/android-ndk
# OPENSSL_ANDROID - path to NDK built openssl
# e.g., /home/user/src/openssl-android
#
# Android NDK setup
NDK_COMPILER_VERSION=4.6
NDK_ABI=arm
NDK_BASE ?= /usr/local/android-ndk
#platform level >= 8 required for dladdr()
NDK_PLATFORM_LEVEL ?= 8
NDK_SYSROOT=$(NDK_BASE)/platforms/android-$(NDK_PLATFORM_LEVEL)/arch-arm
NDK_UNAME=`uname -s | tr '[A-Z]' '[a-z]'`
NDK_TOOLCHAIN=$(NDK_BASE)/toolchains/$(NDK_ABI)-linux-androideabi-$(NDK_COMPILER_VERSION)/prebuilt/$(NDK_UNAME)-x86
# to use the real HOST tag, you need the latest libtool files:
# http://stackoverflow.com/questions/4594736/configure-does-not-recognize-androideabi
NDK_UNAME := `uname -s | tr '[A-Z]' '[a-z]'`
HOST := arm-linux-androideabi
LOCAL_LDFLAGS = -L$(OPENSSL_ANDROID)/obj/local/armeabi/ -ldl -lcrypto -lssl -lz
LOCAL_LDFLAGS += -L$(NDK_TOOLCHAIN)/lib/gcc/arm-linux-androideabi/$($NDK_COMPILER_VERSION) -lgcc
CFLAGS = -I$(OPENSSL_ANDROID)/include
CC := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-gcc --sysroot=$(NDK_SYSROOT)
CXX := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-g++
CPP := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-cpp
LD := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-ld
AR := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-ar
RANLIB := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-ranlib
STRIP := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-strip \
all: $(OPENSSL_ANDROID)/libs/armeabi/libcrypto.so tlsdate-build
$(OPENSSL_ANDROID)/libs/armeabi/libcrypto.so:
cd $(OPENSSL_ANDROID) && ndk-build -j4
openssl-clean:
-cd $(OPENSSL_ANDROID) && ndk-build clean
openssl-distclean:
-cd $(OPENSSL_ANDROID) && ndk-build distclean
configure: configure.ac
./autogen.sh && \
CFLAGS="$(CFLAGS)" ./configure \
CC="$(CC)" \
AR=$(AR) \
RANLIB=$(RANLIB) \
CFLAGS="$(CFLAGS)" \
--disable-static \
--disable-languages \
--disable-dbus \
--host=$(HOST)
#--prefix=$(prefix) \
#--exec-prefix=$(prefix)
tlsdate-build: configure
make -f Makefile CFLAGS="$(CFLAGS)" LDFLAGS="$(LOCAL_LDFLAGS)"
tlsdate-clean:
-make -f Makefile clean
tlsdate-distclean:
-make -f Makefile distclean && rm configure
clean: openssl-clean tlsdate-clean
distclean: openssl-distclean tlsdate-distclean
.PHONY: clean openssl-clean tlsdate-clean