diff options
Diffstat (limited to 'Android.mk')
-rwxr-xr-x | Android.mk | 382 |
1 files changed, 132 insertions, 250 deletions
@@ -1,265 +1,147 @@ -LOCAL_PATH:= $(call my-dir) +LOCAL_PATH := $(call my-dir) -COMMON_SOURCES:=\ - lib/xmalloc.c \ - lib/xstrdup.c \ - lib/xstrndup.c +supported_platforms := linux-x86 darwin-x86 +cur_platform := $(filter $(HOST_OS)-$(HOST_ARCH),$(supported_platforms)) +ifdef cur_platform # -# libelf +# host libelf # include $(CLEAR_VARS) -LOCAL_SRC_FILES:=$(COMMON_SOURCES) -LOCAL_SRC_FILES+=\ - libelf/elf32_checksum.c \ - libelf/elf32_fsize.c \ - libelf/elf32_getehdr.c \ - libelf/elf32_getphdr.c \ - libelf/elf32_getshdr.c \ - libelf/elf32_newehdr.c \ - libelf/elf32_newphdr.c \ - libelf/elf32_updatefile.c \ - libelf/elf32_updatenull.c \ - libelf/elf32_xlatetof.c \ - libelf/elf32_xlatetom.c \ - libelf/elf64_checksum.c \ - libelf/elf64_fsize.c \ - libelf/elf64_getehdr.c \ - libelf/elf64_getphdr.c \ - libelf/elf64_getshdr.c \ - libelf/elf64_newehdr.c \ - libelf/elf64_newphdr.c \ - libelf/elf64_updatefile.c \ - libelf/elf64_updatenull.c \ - libelf/elf64_xlatetof.c \ - libelf/elf64_xlatetom.c \ - libelf/elf_begin.c \ - libelf/elf_clone.c \ - libelf/elf_cntl.c \ - libelf/elf_end.c \ - libelf/elf_error.c \ - libelf/elf_fill.c \ - libelf/elf_flagdata.c \ - libelf/elf_flagehdr.c \ - libelf/elf_flagelf.c \ - libelf/elf_flagphdr.c \ - libelf/elf_flagscn.c \ - libelf/elf_flagshdr.c \ - libelf/elf_getarhdr.c \ - libelf/elf_getarsym.c \ - libelf/elf_getbase.c \ - libelf/elf_getdata.c \ - libelf/elf_getident.c \ - libelf/elf_getscn.c \ - libelf/elf_getshnum.c \ - libelf/elf_getshstrndx.c \ - libelf/elf_hash.c \ - libelf/elf_kind.c \ - libelf/elf_memory.c \ - libelf/elf_ndxscn.c \ - libelf/elf_newdata.c \ - libelf/elf_newscn.c \ - libelf/elf_next.c \ - libelf/elf_nextscn.c \ - libelf/elf_rand.c \ - libelf/elf_rawdata.c \ - libelf/elf_rawfile.c \ - libelf/elf_readall.c \ - libelf/elf_strptr.c \ - libelf/elf_update.c \ - libelf/elf_version.c \ - libelf/gelf_checksum.c \ - libelf/gelf_freechunk.c \ - libelf/gelf_fsize.c \ - libelf/gelf_getclass.c \ - libelf/gelf_getdyn.c \ - libelf/gelf_getehdr.c \ - libelf/gelf_getlib.c \ - libelf/gelf_getmove.c \ - libelf/gelf_getphdr.c \ - libelf/gelf_getrel.c \ - libelf/gelf_getrela.c \ - libelf/gelf_getshdr.c \ - libelf/gelf_getsym.c \ - libelf/gelf_getsyminfo.c \ - libelf/gelf_getsymshndx.c \ - libelf/gelf_getverdaux.c \ - libelf/gelf_getverdef.c \ - libelf/gelf_getvernaux.c \ - libelf/gelf_getverneed.c \ - libelf/gelf_getversym.c \ - libelf/gelf_newehdr.c \ - libelf/gelf_newphdr.c \ - libelf/gelf_rawchunk.c \ - libelf/gelf_update_dyn.c \ - libelf/gelf_update_ehdr.c \ - libelf/gelf_update_lib.c \ - libelf/gelf_update_move.c \ - libelf/gelf_update_phdr.c \ - libelf/gelf_update_rel.c \ - libelf/gelf_update_rela.c \ - libelf/gelf_update_shdr.c \ - libelf/gelf_update_sym.c \ - libelf/gelf_update_syminfo.c \ - libelf/gelf_update_symshndx.c \ - libelf/gelf_update_verdaux.c \ - libelf/gelf_update_verdef.c \ - libelf/gelf_update_vernaux.c \ - libelf/gelf_update_verneed.c \ - libelf/gelf_update_versym.c \ - libelf/gelf_xlate.c \ - libelf/gelf_xlatetof.c \ - libelf/gelf_xlatetom.c \ - libelf/libelf_crc32.c \ - libelf/libelf_next_prime.c \ - libelf/nlist.c +LIBELF_SRC_FILES := \ + libelf/elf32_checksum.c \ + libelf/elf32_fsize.c \ + libelf/elf32_getehdr.c \ + libelf/elf32_getphdr.c \ + libelf/elf32_getshdr.c \ + libelf/elf32_newehdr.c \ + libelf/elf32_newphdr.c \ + libelf/elf32_offscn.c \ + libelf/elf32_updatefile.c \ + libelf/elf32_updatenull.c \ + libelf/elf32_xlatetof.c \ + libelf/elf32_xlatetom.c \ + libelf/elf64_checksum.c \ + libelf/elf64_fsize.c \ + libelf/elf64_getehdr.c \ + libelf/elf64_getphdr.c \ + libelf/elf64_getshdr.c \ + libelf/elf64_newehdr.c \ + libelf/elf64_newphdr.c \ + libelf/elf64_offscn.c \ + libelf/elf64_updatefile.c \ + libelf/elf64_updatenull.c \ + libelf/elf64_xlatetof.c \ + libelf/elf64_xlatetom.c \ + libelf/elf_begin.c \ + libelf/elf_clone.c \ + libelf/elf_cntl.c \ + libelf/elf_end.c \ + libelf/elf_error.c \ + libelf/elf_fill.c \ + libelf/elf_flagdata.c \ + libelf/elf_flagehdr.c \ + libelf/elf_flagelf.c \ + libelf/elf_flagphdr.c \ + libelf/elf_flagscn.c \ + libelf/elf_flagshdr.c \ + libelf/elf_getarhdr.c \ + libelf/elf_getaroff.c \ + libelf/elf_getarsym.c \ + libelf/elf_getbase.c \ + libelf/elf_getdata.c \ + libelf/elf_getdata_rawchunk.c \ + libelf/elf_getident.c \ + libelf/elf_getscn.c \ + libelf/elf_getshnum.c \ + libelf/elf_getshstrndx.c \ + libelf/elf_gnu_hash.c \ + libelf/elf_hash.c \ + libelf/elf_kind.c \ + libelf/elf_memory.c \ + libelf/elf_ndxscn.c \ + libelf/elf_newdata.c \ + libelf/elf_newscn.c \ + libelf/elf_next.c \ + libelf/elf_nextscn.c \ + libelf/elf_rand.c \ + libelf/elf_rawdata.c \ + libelf/elf_rawfile.c \ + libelf/elf_readall.c \ + libelf/elf_scnshndx.c \ + libelf/elf_strptr.c \ + libelf/elf_update.c \ + libelf/elf_version.c \ + libelf/gelf_checksum.c \ + libelf/gelf_fsize.c \ + libelf/gelf_getauxv.c \ + libelf/gelf_getclass.c \ + libelf/gelf_getdyn.c \ + libelf/gelf_getehdr.c \ + libelf/gelf_getlib.c \ + libelf/gelf_getmove.c \ + libelf/gelf_getnote.c \ + libelf/gelf_getphdr.c \ + libelf/gelf_getrela.c \ + libelf/gelf_getrel.c \ + libelf/gelf_getshdr.c \ + libelf/gelf_getsym.c \ + libelf/gelf_getsyminfo.c \ + libelf/gelf_getsymshndx.c \ + libelf/gelf_getverdaux.c \ + libelf/gelf_getverdef.c \ + libelf/gelf_getvernaux.c \ + libelf/gelf_getverneed.c \ + libelf/gelf_getversym.c \ + libelf/gelf_newehdr.c \ + libelf/gelf_newphdr.c \ + libelf/gelf_offscn.c \ + libelf/gelf_update_auxv.c \ + libelf/gelf_update_dyn.c \ + libelf/gelf_update_ehdr.c \ + libelf/gelf_update_lib.c \ + libelf/gelf_update_move.c \ + libelf/gelf_update_phdr.c \ + libelf/gelf_update_rela.c \ + libelf/gelf_update_rel.c \ + libelf/gelf_update_shdr.c \ + libelf/gelf_update_sym.c \ + libelf/gelf_update_syminfo.c \ + libelf/gelf_update_symshndx.c \ + libelf/gelf_update_verdaux.c \ + libelf/gelf_update_verdef.c \ + libelf/gelf_update_vernaux.c \ + libelf/gelf_update_verneed.c \ + libelf/gelf_update_versym.c \ + libelf/gelf_xlate.c \ + libelf/gelf_xlatetof.c \ + libelf/gelf_xlatetom.c \ + libelf/libelf_crc32.c \ + libelf/libelf_next_prime.c \ + libelf/nlist.c + +LOCAL_SRC_FILES := $(LIBELF_SRC_FILES) + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/lib $(LOCAL_PATH)/libelf + +LOCAL_C_INCLUDES += $(LOCAL_PATH)/host-$(HOST_OS)-fixup + +LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -D_GNU_SOURCE + +# to suppress the "pointer of type ‘void *’ used in arithmetic" warning +LOCAL_CFLAGS += -Wno-pointer-arith -ifeq ($(HOST_OS),linux) -LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-linux.h -endif -ifeq ($(HOST_OS),darwin) -LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-darwin.h -endif -ifeq ($(HOST_OS),windows) -LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-cygwin.h -endif -ifeq ($(HOST_OS),freebsd) -LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-freebsd.h -endif - -LOCAL_MODULE:= libelf - -LOCAL_CFLAGS += -include $(LOCAL_PATH)/config.h -ifeq ($(HOST_OS),windows) -LOCAL_CFLAGS += -Doff64_t=_off64_t -else -LOCAL_CFLAGS += -Doff64_t=__off64_t -endif - -LOCAL_C_INCLUDES:=$(LOCAL_PATH)/lib/ $(LOCAL_PATH)/libelf/ - -include $(BUILD_HOST_STATIC_LIBRARY) - -# -# libebl -# - -include $(CLEAR_VARS) - -LOCAL_SRC_FILES:=$(COMMON_SOURCES) -LOCAL_SRC_FILES+=\ - libebl/eblbackendname.c \ - libebl/eblclosebackend.c \ - libebl/eblcorenote.c \ - libebl/eblcorenotetypename.c \ - libebl/ebldebugscnp.c \ - libebl/ebldynamictagcheck.c \ - libebl/ebldynamictagname.c \ - libebl/eblgotpcreloccheck.c \ - libebl/eblgstrtab.c \ - libebl/eblmachineflagcheck.c \ - libebl/eblmachineflagname.c \ - libebl/eblobjecttypename.c \ - libebl/eblobjnote.c \ - libebl/eblobjnotetypename.c \ - libebl/eblopenbackend.c \ - libebl/eblosabiname.c \ - libebl/eblreloctypecheck.c \ - libebl/eblreloctypename.c \ - libebl/eblrelocvaliduse.c \ - libebl/eblsectionname.c \ - libebl/eblsectiontypename.c \ - libebl/eblsegmenttypename.c \ - libebl/eblshflagscombine.c \ - libebl/eblstrtab.c \ - libebl/eblsymbolbindingname.c \ - libebl/eblsymboltypename.c \ - libebl/eblwstrtab.c - -ifeq ($(HOST_OS),linux) -LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-linux.h -endif ifeq ($(HOST_OS),darwin) -LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-darwin.h -endif -ifeq ($(HOST_OS),windows) -LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-cygwin.h -endif -ifeq ($(HOST_OS),freebsd) -LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-freebsd.h + LOCAL_CFLAGS += -fnested-functions endif -LOCAL_MODULE:=libebl +# to fix machine-dependent issues +LOCAL_CFLAGS += -include $(LOCAL_PATH)/host-$(HOST_OS)-fixup/AndroidFixup.h -LOCAL_CFLAGS += -include $(LOCAL_PATH)/config.h -DLIBSTR=\"$(LOCAL_MODULE)\" -Dstpcpy=strcpy -ifeq ($(HOST_OS),windows) -LOCAL_CFLAGS += -Doff64_t=_off64_t -else -LOCAL_CFLAGS += -Doff64_t=__off64_t -endif - -LOCAL_C_INCLUDES:=$(LOCAL_PATH)/lib/ $(LOCAL_PATH)/libelf/ $(LOCAL_PATH)/libebl/ +LOCAL_MODULE := libelf include $(BUILD_HOST_STATIC_LIBRARY) -# -# libebl_arm -# - -include $(CLEAR_VARS) - -#LOCAL_SRC_FILES:=$(COMMON_SOURCES) -LOCAL_SRC_FILES+=\ - libebl/arm_destr.c \ - libebl/arm_init.c \ - libebl/arm_symbol.c - -ifeq ($(HOST_OS),linux) -endif -ifeq ($(HOST_OS),darwin) -endif - -LOCAL_MODULE:=libebl_arm - -LOCAL_CFLAGS += -include $(LOCAL_PATH)/config.h -ifeq ($(HOST_OS),windows) -LOCAL_CFLAGS += -Doff64_t=_off64_t -else -LOCAL_CFLAGS += -Doff64_t=__off64_t -endif - -LOCAL_C_INCLUDES:=$(LOCAL_PATH)/lib/ $(LOCAL_PATH)/libelf/ $(LOCAL_PATH)/libebl/ - -include $(BUILD_HOST_STATIC_LIBRARY) - - -# -# libebl_sh -# - -include $(CLEAR_VARS) - -LOCAL_SRC_FILES+=\ - libebl/sh_destr.c \ - libebl/sh_init.c \ - libebl/sh_symbol.c - -ifeq ($(HOST_OS),linux) -endif -ifeq ($(HOST_OS),darwin) -endif - -LOCAL_MODULE:=libebl_sh - -LOCAL_CFLAGS += -include $(LOCAL_PATH)/config.h -ifeq ($(HOST_OS),windows) -LOCAL_CFLAGS += -Doff64_t=_off64_t -else -LOCAL_CFLAGS += -Doff64_t=__off64_t -endif - -LOCAL_C_INCLUDES:=$(LOCAL_PATH)/lib/ $(LOCAL_PATH)/libelf/ $(LOCAL_PATH)/libebl/ - -include $(BUILD_HOST_STATIC_LIBRARY) +endif #cur_platform |