Home | History | Annotate | Download | only in libdw
      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_TAGS := eng
    143 
    144 LOCAL_MODULE:= libdw
    145 
    146 include $(BUILD_HOST_STATIC_LIBRARY)
    147 
    148 #
    149 # target libdw
    150 #
    151 
    152 include $(CLEAR_VARS)
    153 
    154 LOCAL_SRC_FILES := $(LIBDW_SRC_FILES)
    155 
    156 # missing utility functions in bionic
    157 LOCAL_SRC_FILES += \
    158 	../bionic-fixup/getline.c \
    159 
    160 LOCAL_C_INCLUDES := \
    161 	$(LOCAL_PATH)/.. \
    162 	$(LOCAL_PATH)/../lib \
    163 	$(LOCAL_PATH)/../libdw \
    164 	$(LOCAL_PATH)/../libelf
    165 
    166 LOCAL_C_INCLUDES += $(LOCAL_PATH)/../bionic-fixup
    167 
    168 LOCAL_CFLAGS += -include $(LOCAL_PATH)/../bionic-fixup/AndroidFixup.h
    169 
    170 LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -DIS_LIBDW -Werror
    171 
    172 # to suppress the "pointer of type void * used in arithmetic" warning
    173 LOCAL_CFLAGS += -Wno-pointer-arith
    174 
    175 LOCAL_MODULE_TAGS := eng
    176 
    177 LOCAL_MODULE:= libdw
    178 
    179 include $(BUILD_STATIC_LIBRARY)
    180 
    181 endif #cur_platform
    182