125b3c049e70834cf33790a28643ab058b507b35cBen Cheng## Process this file with automake to create Makefile.in
225b3c049e70834cf33790a28643ab058b507b35cBen Cheng##
303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes## Copyright (C) 2002-2010, 2012, 2014 Red Hat, Inc.
403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes## This file is part of elfutils.
525b3c049e70834cf33790a28643ab058b507b35cBen Cheng##
603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes## This file is free software; you can redistribute it and/or modify
703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes## it under the terms of either
825b3c049e70834cf33790a28643ab058b507b35cBen Cheng##
903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes##   * the GNU Lesser General Public License as published by the Free
1003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes##     Software Foundation; either version 3 of the License, or (at
1103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes##     your option) any later version
1203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes##
1303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes## or
1403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes##
1503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes##   * the GNU General Public License as published by the Free
1603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes##     Software Foundation; either version 2 of the License, or (at
1703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes##     your option) any later version
1803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes##
1903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes## or both in parallel, as here.
2003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes##
2103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes## elfutils is distributed in the hope that it will be useful, but
2225b3c049e70834cf33790a28643ab058b507b35cBen Cheng## WITHOUT ANY WARRANTY; without even the implied warranty of
2325b3c049e70834cf33790a28643ab058b507b35cBen Cheng## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
2425b3c049e70834cf33790a28643ab058b507b35cBen Cheng## General Public License for more details.
2525b3c049e70834cf33790a28643ab058b507b35cBen Cheng##
2603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes## You should have received copies of the GNU General Public License and
2703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes## the GNU Lesser General Public License along with this program.  If
2803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes## not, see <http://www.gnu.org/licenses/>.
2925b3c049e70834cf33790a28643ab058b507b35cBen Cheng##
3025b3c049e70834cf33790a28643ab058b507b35cBen Chenginclude $(top_srcdir)/config/eu.am
3125b3c049e70834cf33790a28643ab058b507b35cBen Chengif BUILD_STATIC
3225b3c049e70834cf33790a28643ab058b507b35cBen ChengAM_CFLAGS += -fpic
3325b3c049e70834cf33790a28643ab058b507b35cBen Chengendif
3403333823c75a1c1887e923828113a1b0fd12020cElliott HughesAM_CPPFLAGS += -I$(srcdir)/../libelf
3525b3c049e70834cf33790a28643ab058b507b35cBen ChengVERSION = 1
3625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
3725b3c049e70834cf33790a28643ab058b507b35cBen Chenglib_LIBRARIES = libdw.a
3825b3c049e70834cf33790a28643ab058b507b35cBen Chengnoinst_LIBRARIES = libdw_pic.a
3925b3c049e70834cf33790a28643ab058b507b35cBen Chengnoinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so)
4025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
4125b3c049e70834cf33790a28643ab058b507b35cBen Chenginclude_HEADERS = dwarf.h
4225b3c049e70834cf33790a28643ab058b507b35cBen Chengpkginclude_HEADERS = libdw.h
4325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
4425b3c049e70834cf33790a28643ab058b507b35cBen Chenglibdw_a_SOURCES = dwarf_begin.c dwarf_begin_elf.c dwarf_end.c dwarf_getelf.c \
4525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_getpubnames.c dwarf_getabbrev.c dwarf_tag.c \
4625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_error.c dwarf_nextcu.c dwarf_diename.c dwarf_offdie.c \
4725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_attr.c dwarf_formstring.c \
4825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_abbrev_hash.c dwarf_sig8_hash.c \
4925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_attr_integrate.c dwarf_hasattr_integrate.c \
5025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_child.c dwarf_haschildren.c dwarf_formaddr.c \
5125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_formudata.c dwarf_formsdata.c dwarf_lowpc.c \
5225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_entrypc.c dwarf_haspc.c dwarf_highpc.c dwarf_ranges.c \
5325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_formref.c dwarf_formref_die.c dwarf_siblingof.c \
5425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_dieoffset.c dwarf_cuoffset.c dwarf_diecu.c \
5525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_hasattr.c dwarf_hasform.c \
5625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_whatform.c dwarf_whatattr.c \
5725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_bytesize.c dwarf_arrayorder.c dwarf_bitsize.c \
5825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_bitoffset.c dwarf_srclang.c dwarf_getabbrevtag.c \
5925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_getabbrevcode.c dwarf_abbrevhaschildren.c \
6025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_getattrcnt.c dwarf_getabbrevattr.c \
6125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_getsrclines.c dwarf_getsrc_die.c \
6225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_getscopes.c dwarf_getscopes_die.c dwarf_getscopevar.c \
6325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_linesrc.c dwarf_lineno.c dwarf_lineaddr.c \
6425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_linecol.c dwarf_linebeginstatement.c \
6525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_lineendsequence.c dwarf_lineblock.c \
6625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_lineprologueend.c dwarf_lineepiloguebegin.c \
6725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_lineisa.c dwarf_linediscriminator.c \
6825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_lineop_index.c \
6925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_onesrcline.c dwarf_formblock.c \
7025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_getsrcfiles.c dwarf_filesrc.c dwarf_getsrcdirs.c \
7125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_getlocation.c dwarf_getstring.c dwarf_offabbrev.c \
7225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_getaranges.c dwarf_onearange.c dwarf_getarangeinfo.c \
7325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_getarange_addr.c dwarf_getattrs.c dwarf_formflag.c \
7403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes		  dwarf_getmacros.c dwarf_macro_getparamcnt.c	\
7503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes		  dwarf_macro_opcode.c dwarf_macro_param.c	\
7603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes		  dwarf_macro_param1.c dwarf_macro_param2.c	\
7703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes		  dwarf_macro_getsrcfiles.c			\
7803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes		  dwarf_addrdie.c dwarf_getfuncs.c \
7925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_decl_file.c dwarf_decl_line.c dwarf_decl_column.c \
8025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_func_inline.c dwarf_getsrc_file.c \
8103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes		  libdw_findcu.c libdw_form.c libdw_alloc.c \
8225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  libdw_visit_scopes.c \
8325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_entry_breakpoints.c \
8425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_next_cfi.c \
8525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  cie.c fde.c cfi.c frame-cache.c \
8625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_frame_info.c dwarf_frame_cfa.c dwarf_frame_register.c \
8725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_cfi_addrframe.c \
8825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		  dwarf_getcfi.c dwarf_getcfi_elf.c dwarf_cfi_end.c \
8903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes		  dwarf_aggregate_size.c dwarf_getlocation_implicit_pointer.c \
9003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes		  dwarf_getlocation_die.c dwarf_getlocation_attr.c \
9103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes		  dwarf_getalt.c dwarf_setalt.c dwarf_cu_getdwarf.c \
9203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes		  dwarf_cu_die.c dwarf_peel_type.c
9325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
9425b3c049e70834cf33790a28643ab058b507b35cBen Chengif MAINTAINER_MODE
9525b3c049e70834cf33790a28643ab058b507b35cBen ChengBUILT_SOURCES = $(srcdir)/known-dwarf.h
9625b3c049e70834cf33790a28643ab058b507b35cBen ChengMAINTAINERCLEANFILES = $(srcdir)/known-dwarf.h
9725b3c049e70834cf33790a28643ab058b507b35cBen Cheng$(srcdir)/known-dwarf.h: $(top_srcdir)/config/known-dwarf.awk $(srcdir)/dwarf.h
9825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	gawk -f $^ > $@.new
9925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	mv -f $@.new $@
10025b3c049e70834cf33790a28643ab058b507b35cBen Chengendif
10125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
10225b3c049e70834cf33790a28643ab058b507b35cBen Chenglibdw_pic_a_SOURCES =
10325b3c049e70834cf33790a28643ab058b507b35cBen Chengam_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os)
10425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
10525b3c049e70834cf33790a28643ab058b507b35cBen Chenglibdw_so_SOURCES =
10603333823c75a1c1887e923828113a1b0fd12020cElliott Hugheslibdw.so$(EXEEXT): $(srcdir)/libdw.map libdw_pic.a ../libdwelf/libdwelf_pic.a \
10725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	  ../libdwfl/libdwfl_pic.a ../libebl/libebl.a \
10825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	  ../libelf/libelf.so
10925b3c049e70834cf33790a28643ab058b507b35cBen Cheng# The rpath is necessary for libebl because its $ORIGIN use will
11025b3c049e70834cf33790a28643ab058b507b35cBen Cheng# not fly in a setuid executable that links in libdw.
11125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	$(LINK) -shared -o $@ -Wl,--soname,$@.$(VERSION),-z,defs \
11225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		-Wl,--enable-new-dtags,-rpath,$(pkglibdir) \
11325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		-Wl,--version-script,$<,--no-undefined \
11425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		-Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
11525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		-ldl $(zip_LIBS)
11603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes	@$(textrel_check)
11725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	ln -fs $@ $@.$(VERSION)
11825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
11925b3c049e70834cf33790a28643ab058b507b35cBen Chenginstall: install-am libdw.so
12025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	$(mkinstalldirs) $(DESTDIR)$(libdir)
12125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	$(INSTALL_PROGRAM) libdw.so $(DESTDIR)$(libdir)/libdw-$(PACKAGE_VERSION).so
12225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	ln -fs libdw-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libdw.so.$(VERSION)
12325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	ln -fs libdw.so.$(VERSION) $(DESTDIR)$(libdir)/libdw.so
12425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
12525b3c049e70834cf33790a28643ab058b507b35cBen Chenguninstall: uninstall-am
12625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	rm -f $(DESTDIR)$(libdir)/libdw-$(PACKAGE_VERSION).so
12725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	rm -f $(DESTDIR)$(libdir)/libdw.so.$(VERSION)
12825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	rm -f $(DESTDIR)$(libdir)/libdw.so
12925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils
13025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
13103333823c75a1c1887e923828113a1b0fd12020cElliott Hugheslibdwfl_objects = $(shell $(AR) t ../libdwfl/libdwfl.a)
13203333823c75a1c1887e923828113a1b0fd12020cElliott Hugheslibdw_a_LIBADD = $(addprefix ../libdwfl/,$(libdwfl_objects))
13303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes
13403333823c75a1c1887e923828113a1b0fd12020cElliott Hugheslibdwelf_objects = $(shell $(AR) t ../libdwelf/libdwelf.a)
13503333823c75a1c1887e923828113a1b0fd12020cElliott Hugheslibdw_a_LIBADD += $(addprefix ../libdwelf/,$(libdwelf_objects))
13625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
13725b3c049e70834cf33790a28643ab058b507b35cBen Chengnoinst_HEADERS = libdwP.h memory-access.h dwarf_abbrev_hash.h \
13825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 dwarf_sig8_hash.h cfi.h encoded-value.h
13925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
14003333823c75a1c1887e923828113a1b0fd12020cElliott HughesEXTRA_DIST = libdw.map known-dwarf.h
14125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
14225b3c049e70834cf33790a28643ab058b507b35cBen ChengMOSTLYCLEANFILES = $(am_libdw_pic_a_OBJECTS) libdw.so.$(VERSION)
143