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