1# Makefile.am -- Backtrace Makefile.
2# Copyright (C) 2012-2015 Free Software Foundation, Inc.
3
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met:
7
8#     (1) Redistributions of source code must retain the above copyright
9#     notice, this list of conditions and the following disclaimer. 
10
11#     (2) Redistributions in binary form must reproduce the above copyright
12#     notice, this list of conditions and the following disclaimer in
13#     the documentation and/or other materials provided with the
14#     distribution.  
15
16#     (3) The name of the author may not be used to
17#     endorse or promote products derived from this software without
18#     specific prior written permission.
19
20# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
24# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
25# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
29# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30# POSSIBILITY OF SUCH DAMAGE.
31
32ACLOCAL_AMFLAGS = -I .. -I ../config
33
34AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \
35	-I ../libgcc
36
37AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG)
38
39noinst_LTLIBRARIES = libbacktrace.la
40
41libbacktrace_la_SOURCES = \
42	backtrace.h \
43	atomic.c \
44	dwarf.c \
45	fileline.c \
46	internal.h \
47	posix.c \
48	print.c \
49	sort.c \
50	state.c
51
52BACKTRACE_FILES = \
53	backtrace.c \
54	simple.c \
55	nounwind.c
56
57FORMAT_FILES = \
58	elf.c \
59	unknown.c
60
61VIEW_FILES = \
62	read.c \
63	mmapio.c
64
65ALLOC_FILES = \
66	alloc.c \
67	mmap.c
68
69EXTRA_libbacktrace_la_SOURCES = \
70	$(BACKTRACE_FILES) \
71	$(FORMAT_FILES) \
72	$(VIEW_FILES) \
73	$(ALLOC_FILES)
74
75libbacktrace_la_LIBADD = \
76	$(BACKTRACE_FILE) \
77	$(FORMAT_FILE) \
78	$(VIEW_FILE) \
79	$(ALLOC_FILE)
80
81libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
82
83# Testsuite.
84
85check_PROGRAMS =
86
87TESTS = $(check_PROGRAMS)
88
89if NATIVE
90
91btest_SOURCES = btest.c
92btest_CFLAGS = $(AM_CFLAGS) -g -O
93btest_LDADD = libbacktrace.la
94
95check_PROGRAMS += btest
96
97stest_SOURCES = stest.c
98stest_LDADD = libbacktrace.la
99
100check_PROGRAMS += stest
101
102endif NATIVE
103
104# We can't use automake's automatic dependency tracking, because it
105# breaks when using bootstrap-lean.  Automatic dependency tracking
106# with GCC bootstrap will cause some of the objects to depend on
107# header files in prev-gcc/include, e.g., stddef.h and stdarg.h.  When
108# using bootstrap-lean, prev-gcc is removed after each stage.  When
109# running "make install", those header files will be gone, causing the
110# library to be rebuilt at install time.  That may not succeed.
111
112# These manual dependencies do not include dependencies on unwind.h,
113# even though that is part of GCC, because where to find it depends on
114# whether we are being built as a host library or a target library.
115
116INCDIR = $(top_srcdir)/../include
117alloc.lo: config.h backtrace.h internal.h
118backtrace.lo: config.h backtrace.h
119btest.lo: (INCDIR)/filenames.h backtrace.h backtrace-supported.h
120dwarf.lo: config.h $(INCDIR)/dwarf2.h $(INCDIR)/dwarf2.def \
121	$(INCDIR)/filenames.h backtrace.h internal.h
122elf.lo: config.h backtrace.h internal.h
123fileline.lo: config.h backtrace.h internal.h
124mmap.lo: config.h backtrace.h internal.h
125mmapio.lo: config.h backtrace.h internal.h
126nounwind.lo: config.h internal.h
127posix.lo: config.h backtrace.h internal.h
128print.lo: config.h backtrace.h internal.h
129read.lo: config.h backtrace.h internal.h
130simple.lo: config.h backtrace.h internal.h
131state.lo: config.h backtrace.h backtrace-supported.h internal.h
132unknown.lo: config.h backtrace.h internal.h
133