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