1# Copyright (C) 2013 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 15LOCAL_PATH := $(call my-dir) 16 17supported_platforms := linux darwin 18cur_platform := $(filter $(HOST_OS),$(supported_platforms)) 19 20ifdef cur_platform 21 22# 23# host libdw 24# 25 26include $(CLEAR_VARS) 27 28LIBDW_SRC_FILES := \ 29 cfi.c \ 30 cie.c \ 31 dwarf_abbrevhaschildren.c \ 32 dwarf_abbrev_hash.c \ 33 dwarf_addrdie.c \ 34 dwarf_arrayorder.c \ 35 dwarf_attr.c \ 36 dwarf_attr_integrate.c \ 37 dwarf_begin.c \ 38 dwarf_begin_elf.c \ 39 dwarf_bitoffset.c \ 40 dwarf_bitsize.c \ 41 dwarf_bytesize.c \ 42 dwarf_cfi_addrframe.c \ 43 dwarf_child.c \ 44 dwarf_cuoffset.c \ 45 dwarf_decl_column.c \ 46 dwarf_decl_file.c \ 47 dwarf_decl_line.c \ 48 dwarf_diecu.c \ 49 dwarf_diename.c \ 50 dwarf_dieoffset.c \ 51 dwarf_end.c \ 52 dwarf_entry_breakpoints.c \ 53 dwarf_entrypc.c \ 54 dwarf_error.c \ 55 dwarf_filesrc.c \ 56 dwarf_formaddr.c \ 57 dwarf_formblock.c \ 58 dwarf_formflag.c \ 59 dwarf_formref.c \ 60 dwarf_formref_die.c \ 61 dwarf_formsdata.c \ 62 dwarf_formstring.c \ 63 dwarf_formudata.c \ 64 dwarf_frame_cfa.c \ 65 dwarf_func_inline.c \ 66 dwarf_getabbrevattr.c \ 67 dwarf_getabbrev.c \ 68 dwarf_getabbrevcode.c \ 69 dwarf_getabbrevtag.c \ 70 dwarf_getarange_addr.c \ 71 dwarf_getarangeinfo.c \ 72 dwarf_getaranges.c \ 73 dwarf_getattrcnt.c \ 74 dwarf_getattrs.c \ 75 dwarf_getcfi.c \ 76 dwarf_getelf.c \ 77 dwarf_getfuncs.c \ 78 dwarf_getlocation.c \ 79 dwarf_getmacros.c \ 80 dwarf_getpubnames.c \ 81 dwarf_getscopes.c \ 82 dwarf_getscopes_die.c \ 83 dwarf_getscopevar.c \ 84 dwarf_getsrc_die.c \ 85 dwarf_getsrcdirs.c \ 86 dwarf_getsrc_file.c \ 87 dwarf_getsrcfiles.c \ 88 dwarf_getsrclines.c \ 89 dwarf_getstring.c \ 90 dwarf_hasattr.c \ 91 dwarf_hasattr_integrate.c \ 92 dwarf_haschildren.c \ 93 dwarf_hasform.c \ 94 dwarf_haspc.c \ 95 dwarf_highpc.c \ 96 dwarf_lineaddr.c \ 97 dwarf_linebeginstatement.c \ 98 dwarf_lineblock.c \ 99 dwarf_linecol.c \ 100 dwarf_lineendsequence.c \ 101 dwarf_lineepiloguebegin.c \ 102 dwarf_lineno.c \ 103 dwarf_lineprologueend.c \ 104 dwarf_linesrc.c \ 105 dwarf_lowpc.c \ 106 dwarf_macro_opcode.c \ 107 dwarf_macro_param1.c \ 108 dwarf_macro_param2.c \ 109 dwarf_next_cfi.c \ 110 dwarf_nextcu.c \ 111 dwarf_offabbrev.c \ 112 dwarf_offdie.c \ 113 dwarf_onearange.c \ 114 dwarf_onesrcline.c \ 115 dwarf_ranges.c \ 116 dwarf_siblingof.c \ 117 dwarf_sig8_hash.c \ 118 dwarf_srclang.c \ 119 dwarf_tag.c \ 120 dwarf_whatattr.c \ 121 dwarf_whatform.c \ 122 fde.c \ 123 frame-cache.c \ 124 libdw_alloc.c \ 125 libdw_findcu.c \ 126 libdw_form.c \ 127 libdw_visit_scopes.c \ 128 memory-access.c 129 130LOCAL_SRC_FILES := $(LIBDW_SRC_FILES) 131 132LOCAL_C_INCLUDES := \ 133 $(LOCAL_PATH)/.. \ 134 $(LOCAL_PATH)/../lib \ 135 $(LOCAL_PATH)/../libdw \ 136 $(LOCAL_PATH)/../libelf 137 138ifeq ($(HOST_OS),darwin) 139 LOCAL_CFLAGS += -fnested-functions 140endif 141 142# can't build libdw with clang 143LOCAL_CLANG := false 144 145LOCAL_C_INCLUDES += $(LOCAL_PATH)/../host-$(HOST_OS)-fixup 146 147LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -D_GNU_SOURCE -DIS_LIBDW 148 149# to fix machine-dependent issues 150LOCAL_CFLAGS += -include $(LOCAL_PATH)/../host-$(HOST_OS)-fixup/AndroidFixup.h 151 152# to suppress the "pointer of type ‘void *’ used in arithmetic" warning 153LOCAL_CFLAGS += -Wno-pointer-arith 154 155LOCAL_MODULE:= libdw 156 157include $(BUILD_HOST_STATIC_LIBRARY) 158 159# 160# target libdw 161# 162 163include $(CLEAR_VARS) 164 165LOCAL_SRC_FILES := $(LIBDW_SRC_FILES) 166 167LOCAL_C_INCLUDES := \ 168 $(LOCAL_PATH)/.. \ 169 $(LOCAL_PATH)/../lib \ 170 $(LOCAL_PATH)/../libdw \ 171 $(LOCAL_PATH)/../libelf 172 173LOCAL_C_INCLUDES += $(LOCAL_PATH)/../bionic-fixup 174 175LOCAL_CFLAGS += -include $(LOCAL_PATH)/../bionic-fixup/AndroidFixup.h 176 177LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -DIS_LIBDW -Werror 178 179# to suppress the "pointer of type ‘void *’ used in arithmetic" warning 180LOCAL_CFLAGS += -Wno-pointer-arith 181 182LOCAL_MODULE_TAGS := eng 183 184LOCAL_MODULE:= libdw 185 186include $(BUILD_STATIC_LIBRARY) 187 188endif #cur_platform 189