Home | History | Annotate | Download | only in android
      1 # Use bash for additional echo fancyness
      2 SHELL = /bin/bash
      3 
      4 ####################################################################################################
      5 ## defines
      6 
      7 # Build for Jellybean 
      8 #--yd BUILD_ANDROID_JELLYBEAN = $(shell test -d $(ANDROID_ROOT)/frameworks/native && echo 1)
      9 
     10 # Build for Lollipop
     11 # ANDROID version check
     12 BUILD_ANDROID_LOLLIPOP = $(shell test -d $(ANDROID_ROOT)/bionic/libc/kernel/uapi && echo 1)
     13 #ANDROID version check END
     14 
     15 #--yd PRODUCT = generic_arm64
     16 #--yd TARGET = android
     17 
     18 ## libraries ##
     19 LIB_PREFIX = lib
     20 
     21 STATIC_LIB_EXT = a
     22 SHARED_LIB_EXT = so
     23 
     24 # normally, overridden from outside 
     25 # ?= assignment sets it only if not already defined
     26 TARGET ?= android
     27 
     28 MLLITE_LIB_NAME     ?= mllite
     29 #--yd MLLITE_LIB_NAME     ?= mllite_64
     30 MPL_LIB_NAME        ?= mplmpu
     31 
     32 ## applications ##
     33 SHARED_APP_SUFFIX = -shared
     34 STATIC_APP_SUFFIX = -static
     35 
     36 ####################################################################################################
     37 ## compile, includes, and linker
     38 
     39 ifeq ($(BUILD_ANDROID_JELLYBEAN),1)
     40 ANDROID_COMPILE = -DANDROID_JELLYBEAN=1
     41 endif
     42 
     43 ANDROID_LINK  = -nostdlib
     44 ANDROID_LINK += -fpic
     45 ANDROID_LINK += -Wl,--gc-sections 
     46 ANDROID_LINK += -Wl,--no-whole-archive 
     47 ANDROID_LINK += -L$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib
     48 ifeq ($(ARCH),arm)
     49 ANDROID_LINK += -L$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/system/lib
     50 endif
     51 
     52 ANDROID_LINK_EXECUTABLE  = $(ANDROID_LINK)
     53 ifeq ($(ARCH),arm64)
     54 ANDROID_LINK_EXECUTABLE += -Wl,-dynamic-linker,/system/bin/linker64
     55 else
     56 ANDROID_LINK_EXECUTABLE += -Wl,-dynamic-linker,/system/bin/linker
     57 endif
     58 ifneq ($(BUILD_ANDROID_JELLYBEAN),1)
     59 #--yd ANDROID_LINK_EXECUTABLE += -Wl,-T,$(ANDROID_ROOT)/build/core/armelf.x
     60 #--yd ANDROID_LINK_EXECUTABLE += -Wl,-T,$(ANDROID_ROOT)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/aarch64-linux-android/lib/ldscripts/armelf.x
     61 ifeq ($(ARCH),arm64)
     62 ANDROID_LINK_EXECUTABLE += -Wl,-T,$(ANDROID_ROOT)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/aarch64-linux-android/lib/ldscripts/aarch64linux.x
     63 endif
     64 endif
     65 ANDROID_LINK_EXECUTABLE += $(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib/crtbegin_dynamic.o
     66 ANDROID_LINK_EXECUTABLE += $(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib/crtend_android.o
     67 
     68 ANDROID_INCLUDES  = -I$(ANDROID_ROOT)/system/core/include
     69 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/hardware/libhardware/include
     70 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/hardware/ril/include
     71 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/dalvik/libnativehelper/include
     72 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/frameworks/base/include   # ICS
     73 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/frameworks/native/include # Jellybean
     74 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/external/skia/include
     75 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/out/target/product/generic/obj/include
     76 #--yd ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/arch-arm/include
     77 
     78 ifeq ($(BUILD_ANDROID_LOLLIPOP),1)
     79 #for Android L--yd
     80 ANDROID_INCLUDES += -DHAVE_SYS_UIO_H
     81 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/uapi #LP
     82 ifeq ($(ARCH),arm64)
     83 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/uapi/asm-arm64 #LP
     84 else
     85 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/uapi/asm-arm #LP
     86 endif
     87 endif
     88 $(info YD>>>TARGET_ARCH=$(TARGET_ARCH), ARCH=$(ARCH))
     89 #--yd ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/arch-arm64/include
     90 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/arch-$(ARCH)/include
     91 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/include
     92 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libstdc++/include
     93 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/common
     94 #--yd ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/arch-arm64
     95 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/arch-$(ARCH)
     96 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/include
     97 #--yd ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/include/arch/arm64
     98 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/include/arch/$(ARCH)
     99 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libthread_db/include
    100 #--yd ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/arm64
    101 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/$(ARCH)
    102 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm
    103 
    104 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/out/target/product/generic/obj/SHARED_LIBRARIES/libm_intermediates
    105 #--yd #for Android L--yd
    106 #--yd ANDROID_INCLUDES += -DHAVE_SYS_UIO_H
    107 
    108 
    109 KERNEL_INCLUDES  = -I$(KERNEL_ROOT)/include
    110 
    111 ifeq ($(ARCH),arm)
    112 KERNEL_INCLUDES  += -I$(KERNEL_ROOT)/arch/arm/include -I$(KERNEL_ROOT)/arch/arm/include/generated
    113 endif
    114 
    115 #--yd KERNEL_INCLUDES  = -I$(KERNEL_ROOT)/include -I$(KERNEL_ROOT)/include/uapi -I$(KERNEL_ROOT)/arch/arm64/include -I$(KERNEL_ROOT)/arch/arm64/include/generated -I$(KERNEL_ROOT)/arch/arm64/include/uapi
    116 
    117 INV_INCLUDES  = -I$(INV_ROOT)/software/core/driver/include
    118 INV_INCLUDES += -I$(MLLITE_DIR)
    119 INV_INCLUDES += -I$(MLLITE_DIR)/linux
    120 
    121 INV_DEFINES += -DINV_CACHE_DMP=1
    122 
    123 ####################################################################################################
    124 ## macros
    125 
    126 ifndef echo_in_colors
    127 define echo_in_colors
    128 	echo -ne "\e[1;32m"$(1)"\e[0m"
    129 endef 
    130 endif
    131 
    132 
    133 
    134