1# Makefile.am -- Backtrace Makefile.
2# Copyright (C) 2012-2016 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
32AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG)
33
34lib_LTLIBRARIES = libbacktrace.la
35include_HEADERS = backtrace.h backtrace-supported.h
36
37libbacktrace_la_SOURCES = \
38	backtrace.h \
39	atomic.c \
40	dwarf.c \
41	fileline.c \
42	internal.h \
43	posix.c \
44	print.c \
45	sort.c \
46	state.c
47
48BACKTRACE_FILES = \
49	backtrace.c \
50	simple.c \
51	nounwind.c
52
53FORMAT_FILES = \
54	elf.c \
55	pecoff.c \
56	unknown.c
57
58VIEW_FILES = \
59	read.c \
60	mmapio.c
61
62ALLOC_FILES = \
63	alloc.c \
64	mmap.c
65
66EXTRA_libbacktrace_la_SOURCES = \
67	$(BACKTRACE_FILES) \
68	$(FORMAT_FILES) \
69	$(VIEW_FILES) \
70	$(ALLOC_FILES)
71
72libbacktrace_la_LIBADD = \
73	$(BACKTRACE_FILE) \
74	$(FORMAT_FILE) \
75	$(VIEW_FILE) \
76	$(ALLOC_FILE)
77
78libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
79
80# Testsuite.
81
82check_PROGRAMS =
83
84TESTS = $(check_PROGRAMS)
85
86if NATIVE
87
88btest_SOURCES = btest.c
89btest_CFLAGS = $(AM_CFLAGS) -g -O
90btest_LDADD = libbacktrace.la
91
92check_PROGRAMS += btest
93
94stest_SOURCES = stest.c
95stest_LDADD = libbacktrace.la
96
97check_PROGRAMS += stest
98
99endif NATIVE
100
101# We can't use automake's automatic dependency tracking, because it
102# breaks when using bootstrap-lean.  Automatic dependency tracking
103# with GCC bootstrap will cause some of the objects to depend on
104# header files in prev-gcc/include, e.g., stddef.h and stdarg.h.  When
105# using bootstrap-lean, prev-gcc is removed after each stage.  When
106# running "make install", those header files will be gone, causing the
107# library to be rebuilt at install time.  That may not succeed.
108
109# These manual dependencies do not include dependencies on unwind.h,
110# even though that is part of GCC, because where to find it depends on
111# whether we are being built as a host library or a target library.
112
113alloc.lo: config.h backtrace.h internal.h
114backtrace.lo: config.h backtrace.h internal.h
115btest.lo: backtrace.h backtrace-supported.h
116dwarf.lo: config.h backtrace.h internal.h
117elf.lo: config.h backtrace.h internal.h
118fileline.lo: config.h backtrace.h internal.h
119mmap.lo: config.h backtrace.h internal.h
120mmapio.lo: config.h backtrace.h internal.h
121nounwind.lo: config.h internal.h
122pecoff.lo: config.h backtrace.h internal.h
123posix.lo: config.h backtrace.h internal.h
124print.lo: config.h backtrace.h internal.h
125read.lo: config.h backtrace.h internal.h
126simple.lo: config.h backtrace.h internal.h
127sort.lo: config.h backtrace.h internal.h
128stest.lo: config.h backtrace.h internal.h
129state.lo: config.h backtrace.h backtrace-supported.h internal.h
130unknown.lo: config.h backtrace.h internal.h
131