| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- ifeq ($(NDK_TOOLCHAIN),)
- ifeq ($(NDK),)
- $(error Must export either NDK or NDK_TOOLCHAIN before building for Android)
- endif
- endif
- NDK_TOOLCHAIN ?= $(NDK)/toolchains/llvm/prebuilt/linux-x86_64
- CROSS_PREFIX29:=$(NDK_TOOLCHAIN)/bin/armv7a-linux-androideabi29-
- CROSS_PREFIX:=$(NDK_TOOLCHAIN)/bin/llvm-
- CROSS_FLAGS:=-I$(ROOT)/gen/cross
- CXX:=$(CROSS_PREFIX29)clang++
- CC:=$(CROSS_PREFIX29)clang
- AR:=$(CROSS_PREFIX)ar
- AS:=$(CROSS_PREFIX)as
- LD:=$(CROSS_PREFIX)ld
- NM:=$(CROSS_PREFIX)nm
- OBJCOPY:=$(CROSS_PREFIX)objcopy
- OBJDUMP:=$(CROSS_PREFIX)objdump
- RANLIB:=$(CROSS_PREFIX)ranlib
- STRIP:=$(CROSS_PREFIX)strip
- export CXX
- export CC
- export AR
- export CROSS_FLAGS
- # Android uses flat tree.
- buildSubDirectory=$(FB_BUILD)
- LIB_PLATFORM_RPATH=-Wl,-rpath,\$$ORIGIN
- LibraryFullName=$(LibraryBaseName)
- LibrarySoName=$(LibraryBaseName)
- # Global c++ flags: firebird needs no RTTI, choose build standard and c++ specific warnings level
- PLUSPLUS_FLAGS:= -fno-rtti -std=c++20 -Werror=delete-incomplete -Werror=return-type
- COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DANDROID -DARM -pipe -MMD -fPIC -fmessage-length=0 \
- -I$(ROOT)/extern/libtommath -I$(ROOT)/extern/libtomcrypt/src/headers \
- $(CROSS_FLAGS) -fsigned-char \
- -Wno-inline-new-delete
- OPTIMIZE_FLAGS=-fno-omit-frame-pointer
- WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable
- PROD_FLAGS=$(COMMON_FLAGS) $(OPTIMIZE_FLAGS)
- DEV_FLAGS=$(COMMON_FLAGS) $(WARN_FLAGS)
- CROSS_CONFIG=android.arme
- LDFLAGS += -static-libstdc++ -Wl,-z,max-page-size=16384
- DroidLibs := -lm -ldl -llog $(DECLIB) $(I128LIB)
- UDR_SUPPORT_LIBS :=
- LINK_LIBS = $(DroidLibs)
- STATICLINK_LIBS = $(DroidLibs)
- SO_LINK_LIBS = $(DroidLibs)
- EXE_LINK_OPTIONS= $(LDFLAGS) $(UNDEF_FLAGS) $(LIB_PATH_OPTS) $(LINK_EMPTY_SYMBOLS) -pie
- LIB_LINK_OPTIONS= $(LDFLAGS) -shared
- UNICODE_DIR := $(shell dirname `find /usr/include -name ucnv.h`)
- UNICODE_DIR := $(filter %unicode, $(UNICODE_DIR))
- UNICODE_DIR := $(firstword $(UNICODE_DIR))
- ifndef UNICODE_DIR
- $(error ERROR while locating ICU include directory, probably missing ucnv.h)
- endif
- .PHONY: prerequisites
- prerequisites: $(ROOT)/gen/cross/unicode
- $(ROOT)/gen/cross/unicode:
- echo $(UNICODE_DIR)
- rm -rf $(ROOT)/gen/cross
- mkdir $(ROOT)/gen/cross
- ln -s $(UNICODE_DIR) cross/unicode
|