| # Copyright (C) 2012 The Android Open Source Project |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| LOCAL_PATH := $(call my-dir) |
| |
| supported_platforms := linux-x86 darwin-x86 |
| cur_platform := $(filter $(HOST_OS)-$(HOST_ARCH),$(supported_platforms)) |
| |
| ifdef cur_platform |
| |
| # |
| # host libdw |
| # |
| |
| include $(CLEAR_VARS) |
| |
| LIBDW_SRC_FILES := \ |
| dwarf_abbrevhaschildren.c \ |
| dwarf_abbrev_hash.c \ |
| dwarf_addrdie.c \ |
| dwarf_arrayorder.c \ |
| dwarf_attr.c \ |
| dwarf_attr_integrate.c \ |
| dwarf_begin.c \ |
| dwarf_begin_elf.c \ |
| dwarf_bitoffset.c \ |
| dwarf_bitsize.c \ |
| dwarf_bytesize.c \ |
| dwarf_child.c \ |
| dwarf_cuoffset.c \ |
| dwarf_decl_column.c \ |
| dwarf_decl_file.c \ |
| dwarf_decl_line.c \ |
| dwarf_diecu.c \ |
| dwarf_diename.c \ |
| dwarf_dieoffset.c \ |
| dwarf_end.c \ |
| dwarf_entry_breakpoints.c \ |
| dwarf_entrypc.c \ |
| dwarf_error.c \ |
| dwarf_filesrc.c \ |
| dwarf_formaddr.c \ |
| dwarf_formblock.c \ |
| dwarf_formflag.c \ |
| dwarf_formref.c \ |
| dwarf_formref_die.c \ |
| dwarf_formsdata.c \ |
| dwarf_formstring.c \ |
| dwarf_formudata.c \ |
| dwarf_func_inline.c \ |
| dwarf_getabbrevattr.c \ |
| dwarf_getabbrev.c \ |
| dwarf_getabbrevcode.c \ |
| dwarf_getabbrevtag.c \ |
| dwarf_getarange_addr.c \ |
| dwarf_getarangeinfo.c \ |
| dwarf_getaranges.c \ |
| dwarf_getattrcnt.c \ |
| dwarf_getattrs.c \ |
| dwarf_getelf.c \ |
| dwarf_getfuncs.c \ |
| dwarf_getlocation.c \ |
| dwarf_getmacros.c \ |
| dwarf_getpubnames.c \ |
| dwarf_getscopes.c \ |
| dwarf_getscopes_die.c \ |
| dwarf_getscopevar.c \ |
| dwarf_getsrc_die.c \ |
| dwarf_getsrcdirs.c \ |
| dwarf_getsrc_file.c \ |
| dwarf_getsrcfiles.c \ |
| dwarf_getsrclines.c \ |
| dwarf_getstring.c \ |
| dwarf_hasattr.c \ |
| dwarf_hasattr_integrate.c \ |
| dwarf_haschildren.c \ |
| dwarf_hasform.c \ |
| dwarf_haspc.c \ |
| dwarf_highpc.c \ |
| dwarf_lineaddr.c \ |
| dwarf_linebeginstatement.c \ |
| dwarf_lineblock.c \ |
| dwarf_linecol.c \ |
| dwarf_lineendsequence.c \ |
| dwarf_lineepiloguebegin.c \ |
| dwarf_lineno.c \ |
| dwarf_lineprologueend.c \ |
| dwarf_linesrc.c \ |
| dwarf_lowpc.c \ |
| dwarf_macro_opcode.c \ |
| dwarf_macro_param1.c \ |
| dwarf_macro_param2.c \ |
| dwarf_nextcu.c \ |
| dwarf_offabbrev.c \ |
| dwarf_offdie.c \ |
| dwarf_onearange.c \ |
| dwarf_onesrcline.c \ |
| dwarf_ranges.c \ |
| dwarf_siblingof.c \ |
| dwarf_srclang.c \ |
| dwarf_tag.c \ |
| dwarf_whatattr.c \ |
| dwarf_whatform.c \ |
| libdw_alloc.c \ |
| libdw_findcu.c \ |
| libdw_form.c \ |
| libdw_visit_scopes.c \ |
| memory-access.c |
| |
| LOCAL_SRC_FILES := $(LIBDW_SRC_FILES) |
| |
| LOCAL_C_INCLUDES := \ |
| $(LOCAL_PATH)/.. \ |
| $(LOCAL_PATH)/../lib \ |
| $(LOCAL_PATH)/../libdw \ |
| $(LOCAL_PATH)/../libelf |
| |
| ifeq ($(HOST_OS),darwin) |
| LOCAL_CFLAGS += -fnested-functions |
| LOCAL_SRC_FILES += \ |
| ../host-darwin-fixup/getline.c |
| endif |
| |
| LOCAL_C_INCLUDES += $(LOCAL_PATH)/../host-$(HOST_OS)-fixup |
| |
| LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -D_GNU_SOURCE -DIS_LIBDW |
| |
| # to fix machine-dependent issues |
| LOCAL_CFLAGS += -include $(LOCAL_PATH)/../host-$(HOST_OS)-fixup/AndroidFixup.h |
| |
| LOCAL_MODULE:= libdw |
| |
| include $(BUILD_HOST_STATIC_LIBRARY) |
| |
| # |
| # target libdw |
| # |
| |
| include $(CLEAR_VARS) |
| |
| LOCAL_SRC_FILES := $(LIBDW_SRC_FILES) |
| |
| # missing utility functions in bionic |
| LOCAL_SRC_FILES += \ |
| ../bionic-fixup/getline.c \ |
| |
| LOCAL_C_INCLUDES := \ |
| $(LOCAL_PATH)/.. \ |
| $(LOCAL_PATH)/../lib \ |
| $(LOCAL_PATH)/../libdw \ |
| $(LOCAL_PATH)/../libelf |
| |
| LOCAL_C_INCLUDES += $(LOCAL_PATH)/../bionic-fixup |
| |
| LOCAL_CFLAGS += -include $(LOCAL_PATH)/../bionic-fixup/AndroidFixup.h |
| |
| LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -DIS_LIBDW -Werror |
| |
| # to suppress the "pointer of type ‘void *’ used in arithmetic" warning |
| LOCAL_CFLAGS += -Wno-pointer-arith |
| |
| LOCAL_MODULE_TAGS := eng |
| |
| LOCAL_MODULE:= libdw |
| |
| include $(BUILD_STATIC_LIBRARY) |
| |
| endif #cur_platform |