1fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# Copyright (C) 2012 The Android Open Source Project 2fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# 3fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# Licensed under the Apache License, Version 2.0 (the "License"); 4fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# you may not use this file except in compliance with the License. 5fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# You may obtain a copy of the License at 6fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# 7fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# http://www.apache.org/licenses/LICENSE-2.0 8fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# 9fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# Unless required by applicable law or agreed to in writing, software 10fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# distributed under the License is distributed on an "AS IS" BASIS, 11fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# See the License for the specific language governing permissions and 13fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# limitations under the License. 14fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 15fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_PATH := $(call my-dir) 16fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 17fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Chengsupported_platforms := linux-x86 darwin-x86 18fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Chengcur_platform := $(filter $(HOST_OS)-$(HOST_ARCH),$(supported_platforms)) 19fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 20fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Chengifdef cur_platform 21fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 22fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# 23fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# host libelf 24fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# 25fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 26fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Chenginclude $(CLEAR_VARS) 27fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 28fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLIBELF_SRC_FILES := \ 29fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf32_checksum.c \ 30fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf32_fsize.c \ 31fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf32_getehdr.c \ 32fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf32_getphdr.c \ 33fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf32_getshdr.c \ 34fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf32_newehdr.c \ 35fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf32_newphdr.c \ 36fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf32_offscn.c \ 37fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf32_updatefile.c \ 38fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf32_updatenull.c \ 39fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf32_xlatetof.c \ 40fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf32_xlatetom.c \ 41fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf64_checksum.c \ 42fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf64_fsize.c \ 43fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf64_getehdr.c \ 44fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf64_getphdr.c \ 45fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf64_getshdr.c \ 46fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf64_newehdr.c \ 47fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf64_newphdr.c \ 48fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf64_offscn.c \ 49fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf64_updatefile.c \ 50fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf64_updatenull.c \ 51fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf64_xlatetof.c \ 52fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf64_xlatetom.c \ 53fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_begin.c \ 54fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_clone.c \ 55fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_cntl.c \ 56fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_end.c \ 57fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_error.c \ 58fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_fill.c \ 59fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_flagdata.c \ 60fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_flagehdr.c \ 61fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_flagelf.c \ 62fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_flagphdr.c \ 63fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_flagscn.c \ 64fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_flagshdr.c \ 65fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_getarhdr.c \ 66fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_getaroff.c \ 67fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_getarsym.c \ 68fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_getbase.c \ 69fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_getdata.c \ 70fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_getdata_rawchunk.c \ 71fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_getident.c \ 72fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_getscn.c \ 73fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_getshnum.c \ 74fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_getshstrndx.c \ 75fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_gnu_hash.c \ 76fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_hash.c \ 77fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_kind.c \ 78fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_memory.c \ 79fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_ndxscn.c \ 80fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_newdata.c \ 81fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_newscn.c \ 82fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_next.c \ 83fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_nextscn.c \ 84fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_rand.c \ 85fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_rawdata.c \ 86fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_rawfile.c \ 87fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_readall.c \ 88fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_scnshndx.c \ 89fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_strptr.c \ 90fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_update.c \ 91fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng elf_version.c \ 92fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_checksum.c \ 93fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_fsize.c \ 94fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getauxv.c \ 95fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getclass.c \ 96fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getdyn.c \ 97fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getehdr.c \ 98fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getlib.c \ 99fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getmove.c \ 100fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getnote.c \ 101fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getphdr.c \ 102fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getrela.c \ 103fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getrel.c \ 104fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getshdr.c \ 105fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getsym.c \ 106fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getsyminfo.c \ 107fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getsymshndx.c \ 108fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getverdaux.c \ 109fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getverdef.c \ 110fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getvernaux.c \ 111fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getverneed.c \ 112fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_getversym.c \ 113fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_newehdr.c \ 114fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_newphdr.c \ 115fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_offscn.c \ 116fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_auxv.c \ 117fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_dyn.c \ 118fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_ehdr.c \ 119fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_lib.c \ 120fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_move.c \ 121fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_phdr.c \ 122fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_rela.c \ 123fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_rel.c \ 124fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_shdr.c \ 125fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_sym.c \ 126fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_syminfo.c \ 127fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_symshndx.c \ 128fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_verdaux.c \ 129fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_verdef.c \ 130fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_vernaux.c \ 131fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_verneed.c \ 132fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_update_versym.c \ 133fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_xlate.c \ 134fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_xlatetof.c \ 135fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng gelf_xlatetom.c \ 136fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng libelf_crc32.c \ 137fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng libelf_next_prime.c \ 138fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng nlist.c 139fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 140fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_SRC_FILES := $(LIBELF_SRC_FILES) 141fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 142fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_C_INCLUDES := \ 143fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng $(LOCAL_PATH)/.. \ 144fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng $(LOCAL_PATH)/../lib \ 145fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng $(LOCAL_PATH)/../libelf 146fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 147fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_C_INCLUDES += $(LOCAL_PATH)/../host-$(HOST_OS)-fixup 148fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 149fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -D_GNU_SOURCE 150fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 151fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# to suppress the "pointer of type ‘void *’ used in arithmetic" warning 152fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_CFLAGS += -Wno-pointer-arith 153fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 154fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Chengifeq ($(HOST_OS),darwin) 155fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng LOCAL_CFLAGS += -fnested-functions 156fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Chengendif 157fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 158fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# to fix machine-dependent issues 159fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_CFLAGS += -include $(LOCAL_PATH)/../host-$(HOST_OS)-fixup/AndroidFixup.h 160fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 161fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_MODULE := libelf 162fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 163fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Chenginclude $(BUILD_HOST_STATIC_LIBRARY) 164fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 165fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# 166fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# target libelf 167fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# 168fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 169fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Chenginclude $(CLEAR_VARS) 170fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 171fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_SRC_FILES := $(LIBELF_SRC_FILES) 172fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 173fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_C_INCLUDES := \ 174fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng $(LOCAL_PATH)/.. \ 175fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng $(LOCAL_PATH)/../lib \ 176fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng $(LOCAL_PATH)/../libelf 177fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 178fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_C_INCLUDES += $(LOCAL_PATH)/../bionic-fixup 179fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 180fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -Werror 181fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 182fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng# to suppress the "pointer of type ‘void *’ used in arithmetic" warning 183fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_CFLAGS += -Wno-pointer-arith 184fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 185fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_CFLAGS += -include $(LOCAL_PATH)/../bionic-fixup/AndroidFixup.h 186fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 187fac061ffdea9dc61a3b7c53cb85a44594a4354baBen ChengLOCAL_MODULE := libelf 188fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 189fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Chenginclude $(BUILD_STATIC_LIBRARY) 190fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Cheng 191fac061ffdea9dc61a3b7c53cb85a44594a4354baBen Chengendif #cur_platform 192