69 lines
2.7 KiB
Makefile
69 lines
2.7 KiB
Makefile
ANDROID_NDK_HOME ?= $(SRCDIR)/$(NDK_DIR)
|
|
NDK_HOME := $(ANDROID_NDK_HOME)
|
|
|
|
DLLEXT := .so
|
|
TOOLCHAIN := $(NDK_HOME)/toolchains/llvm/prebuilt/linux-x86_64
|
|
SYSROOT := $(TOOLCHAIN)/sysroot
|
|
PREFIX := $(DESTDIR)/$(TARGET)
|
|
TOOLCHAIN_FILE := $(SRCDIR)/$(TARGET).cmake
|
|
TOOLCHAIN_CLANG_BIN := $(TOOLCHAIN)/bin/$(TARGET)$(NDK_API)
|
|
TOOLCHAIN_BIN := $(TOOLCHAIN)/bin/$(BASE_TARGET)
|
|
PROTOC := $(DESTDIR)/host/bin/protoc
|
|
|
|
export CC := $(TOOLCHAIN_CLANG_BIN)-clang
|
|
export CXX := $(TOOLCHAIN_CLANG_BIN)-clang++
|
|
export AR := $(TOOLCHAIN_BIN)-ar
|
|
export LD := $(CC)
|
|
export AS := $(TOOLCHAIN_BIN)-as
|
|
export STRIP := $(TOOLCHAIN_BIN)-strip
|
|
export NM := $(TOOLCHAIN_BIN)-nm
|
|
export LDFLAGS := -static-libstdc++ -llog
|
|
export PKG_CONFIG_LIBDIR:= $(PREFIX)/lib/pkgconfig
|
|
export PKG_CONFIG_PATH := $(PREFIX)/lib/pkgconfig
|
|
export PATH := $(TOOLCHAIN)/bin:$(PATH)
|
|
export TOX4J_PLATFORM := $(TARGET)
|
|
|
|
ifeq ($(TARGET),i686-linux-android)
|
|
undefine AS
|
|
else ifeq ($(TARGET),x86_64-linux-android)
|
|
undefine AS
|
|
endif
|
|
|
|
protobuf_CONFIGURE := --prefix=$(PREFIX) --host=$(TARGET) --with-sysroot=$(SYSROOT) --disable-shared --with-protoc=$(PROTOC)
|
|
libsodium_CONFIGURE := --prefix=$(PREFIX) --host=$(TARGET) --with-sysroot=$(SYSROOT) --disable-shared
|
|
opus_CONFIGURE := --prefix=$(PREFIX) --host=$(TARGET) --with-sysroot=$(SYSROOT) --disable-shared
|
|
libvpx_CONFIGURE := --prefix=$(PREFIX) --libc=$(SYSROOT) --target=$(VPX_TARGET) --disable-examples --disable-unit-tests --enable-pic
|
|
toxcore_CONFIGURE := -DCMAKE_INSTALL_PREFIX:PATH=$(PREFIX) -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE) -DANDROID_CPU_FEATURES=$(NDK_HOME)/sources/android/cpufeatures/cpu-features.c -DENABLE_STATIC=ON -DENABLE_SHARED=OFF
|
|
tox4j_CONFIGURE := -DCMAKE_INSTALL_PREFIX:PATH=$(PREFIX) -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE) -DANDROID_CPU_FEATURES=$(NDK_HOME)/sources/android/cpufeatures/cpu-features.c
|
|
|
|
build: $(PREFIX)/tox4j.stamp $(foreach i,jvm-macros jvm-toxcore-api tox4j-c,$(DESTDIR)/$i.stamp)
|
|
|
|
test: build
|
|
@echo "No tests for Android builds"
|
|
|
|
$(NDK_HOME):
|
|
@echo "Downloading NDK..."
|
|
@$(PRE_RULE)
|
|
@mkdir -p $(@D)
|
|
test -f $(NDK_PACKAGE) || curl -s $(NDK_URL) -o $(NDK_PACKAGE)
|
|
7z x $(NDK_PACKAGE) -o$(SRCDIR) > /dev/null
|
|
@$(POST_RULE)
|
|
|
|
$(TOOLCHAIN_FILE): scripts/android.mk | $(NDK_HOME)
|
|
@$(PRE_RULE)
|
|
mkdir -p $(@D)
|
|
echo 'set(CMAKE_SYSTEM_NAME Linux)' > $@
|
|
echo >> $@
|
|
echo 'set(CMAKE_BUILD_TYPE Release CACHE STRING "")' >> $@
|
|
echo >> $@
|
|
echo 'set(CMAKE_SYSROOT $(SYSROOT))' >> $@
|
|
echo >> $@
|
|
echo 'set(CMAKE_FIND_ROOT_PATH $(PREFIX))' >> $@
|
|
echo 'set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)' >> $@
|
|
echo 'set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)' >> $@
|
|
echo 'set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)' >> $@
|
|
echo 'set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)' >> $@
|
|
@$(POST_RULE)
|
|
|
|
include scripts/release.mk
|