make.android.arm64 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. ifeq ($(NDK_TOOLCHAIN),)
  2. $(error Must export standalone NDK_TOOLCHAIN location before building for Android - use NDK's build/tools/make-standalone-toolchain.sh to build)
  3. endif
  4. NDK_ROOT:=$(NDK_TOOLCHAIN)
  5. CROSS_SYSROOT:=$(NDK_TOOLCHAIN)/sysroot
  6. CROSS_PREFIX24:=$(NDK_TOOLCHAIN)/bin/aarch64-linux-android24-
  7. CROSS_PREFIX:=$(NDK_TOOLCHAIN)/bin/aarch64-linux-android-
  8. CROSS_FLAGS:=--sysroot=$(CROSS_SYSROOT) \
  9. -I$(CROSS_SYSROOT)/usr/include -I$(ROOT)/gen/cross
  10. CXX:=$(CROSS_PREFIX24)clang++
  11. CC:=$(CROSS_PREFIX24)clang
  12. AR:=$(CROSS_PREFIX)ar
  13. AS:=$(CROSS_PREFIX)as
  14. LD:=$(CROSS_PREFIX)ld
  15. NM:=$(CROSS_PREFIX)nm
  16. OBJCOPY:=$(CROSS_PREFIX)objcopy
  17. OBJDUMP:=$(CROSS_PREFIX)objdump
  18. RANLIB:=$(CROSS_PREFIX)ranlib
  19. STRIP:=$(CROSS_PREFIX)strip
  20. export CXX
  21. export CC
  22. export AR
  23. export CROSS_FLAGS
  24. COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DANDROID -DARM64 -pipe -MMD -fPIC -fmessage-length=0 \
  25. -I$(ROOT)/extern/libtommath -I$(ROOT)/extern/libtomcrypt/src/headers \
  26. $(CROSS_FLAGS) -fsigned-char \
  27. -Wno-inline-new-delete
  28. OPTIMIZE_FLAGS=-fno-omit-frame-pointer
  29. WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable
  30. PROD_FLAGS=$(COMMON_FLAGS) $(OPTIMIZE_FLAGS)
  31. DEV_FLAGS=$(COMMON_FLAGS) $(WARN_FLAGS)
  32. CROSS_CONFIG=android.arm64
  33. LDFLAGS += --sysroot=$(CROSS_SYSROOT) -static-libstdc++
  34. DroidLibs := -lm -ldl $(DECLIB) $(RE2LIB)
  35. LINK_LIBS = $(DroidLibs)
  36. STATICLINK_LIBS = $(DroidLibs)
  37. SO_LINK_LIBS = $(DroidLibs)
  38. EXE_LINK_OPTIONS= $(LDFLAGS) $(UNDEF_FLAGS) $(LIB_PATH_OPTS) $(LINK_EMPTY_SYMBOLS) -pie
  39. LIB_LINK_OPTIONS= $(LDFLAGS) -shared
  40. UNICODE_DIR := $(shell dirname `find /usr/include -name ucnv.h`)
  41. UNICODE_DIR := $(filter %unicode, $(UNICODE_DIR))
  42. UNICODE_DIR := $(firstword $(UNICODE_DIR))
  43. ifndef UNICODE_DIR
  44. $(error ERROR while locating ICU include directory, probably missing ucnv.h)
  45. endif
  46. .PHONY: prerequisites
  47. prerequisites: $(ROOT)/gen/cross/unicode
  48. $(ROOT)/gen/cross/unicode:
  49. echo $(UNICODE_DIR)
  50. rm -rf $(ROOT)/gen/cross
  51. mkdir $(ROOT)/gen/cross
  52. ln -s $(UNICODE_DIR) cross/unicode