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