Makefile.am revision 1.7
1# Makefile.am -- Backtrace Makefile.
2# Copyright (C) 2012-2018 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	pecoff.c \
60	unknown.c \
61	xcoff.c
62
63VIEW_FILES = \
64	read.c \
65	mmapio.c
66
67ALLOC_FILES = \
68	alloc.c \
69	mmap.c
70
71EXTRA_libbacktrace_la_SOURCES = \
72	$(BACKTRACE_FILES) \
73	$(FORMAT_FILES) \
74	$(VIEW_FILES) \
75	$(ALLOC_FILES)
76
77libbacktrace_la_LIBADD = \
78	$(BACKTRACE_FILE) \
79	$(FORMAT_FILE) \
80	$(VIEW_FILE) \
81	$(ALLOC_FILE)
82
83libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
84
85# Testsuite.
86
87check_PROGRAMS =
88
89TESTS = $(check_PROGRAMS)
90
91if NATIVE
92
93btest_SOURCES = btest.c testlib.c
94btest_CFLAGS = $(AM_CFLAGS) -g -O
95btest_LDADD = libbacktrace.la
96
97check_PROGRAMS += btest
98
99stest_SOURCES = stest.c
100stest_LDADD = libbacktrace.la
101
102check_PROGRAMS += stest
103
104ztest_SOURCES = ztest.c testlib.c
105ztest_CFLAGS = -DSRCDIR=\"$(srcdir)\"
106ztest_LDADD = libbacktrace.la
107
108if HAVE_ZLIB
109ztest_LDADD += -lz
110endif
111ztest_LDADD += $(CLOCK_GETTIME_LINK)
112
113check_PROGRAMS += ztest
114
115edtest_SOURCES = edtest.c edtest2_build.c testlib.c
116edtest_LDADD = libbacktrace.la
117
118check_PROGRAMS += edtest
119
120edtest2_build.c: gen_edtest2_build; @true
121gen_edtest2_build: $(srcdir)/edtest2.c
122	cat $(srcdir)/edtest2.c > tmp-edtest2_build.c
123	$(SHELL) $(srcdir)/../move-if-change tmp-edtest2_build.c edtest2_build.c
124	echo timestamp > $@
125
126if HAVE_PTHREAD
127
128check_PROGRAMS += ttest
129
130ttest_SOURCES = ttest.c testlib.c
131ttest_CFLAGS = $(AM_CFLAGS) -pthread
132ttest_LDADD = libbacktrace.la
133
134endif HAVE_PTHREAD
135
136if HAVE_OBJCOPY_DEBUGLINK
137
138TESTS += dtest
139
140dtest: btest
141	$(OBJCOPY) --only-keep-debug btest btest.debug
142	$(OBJCOPY) --strip-debug --add-gnu-debuglink=btest.debug btest dtest
143
144endif HAVE_OBJCOPY_DEBUGLINK
145
146if HAVE_COMPRESSED_DEBUG
147
148ctestg_SOURCES = btest.c testlib.c
149ctestg_CFLAGS = $(AM_CFLAGS) -g
150ctestg_LDFLAGS = -Wl,--compress-debug-sections=zlib-gnu
151ctestg_LDADD = libbacktrace.la
152
153ctesta_SOURCES = btest.c testlib.c
154ctesta_CFLAGS = $(AM_CFLAGS) -g
155ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi
156ctesta_LDADD = libbacktrace.la
157
158check_PROGRAMS += ctestg ctesta
159
160endif
161
162endif NATIVE
163
164# We can't use automake's automatic dependency tracking, because it
165# breaks when using bootstrap-lean.  Automatic dependency tracking
166# with GCC bootstrap will cause some of the objects to depend on
167# header files in prev-gcc/include, e.g., stddef.h and stdarg.h.  When
168# using bootstrap-lean, prev-gcc is removed after each stage.  When
169# running "make install", those header files will be gone, causing the
170# library to be rebuilt at install time.  That may not succeed.
171
172# These manual dependencies do not include dependencies on unwind.h,
173# even though that is part of GCC, because where to find it depends on
174# whether we are being built as a host library or a target library.
175
176INCDIR = $(top_srcdir)/../include
177alloc.lo: config.h backtrace.h internal.h
178backtrace.lo: config.h backtrace.h internal.h
179btest.lo: (INCDIR)/filenames.h backtrace.h backtrace-supported.h
180dwarf.lo: config.h $(INCDIR)/dwarf2.h $(INCDIR)/dwarf2.def \
181	$(INCDIR)/filenames.h backtrace.h internal.h
182elf.lo: config.h backtrace.h internal.h
183fileline.lo: config.h backtrace.h internal.h
184mmap.lo: config.h backtrace.h internal.h
185mmapio.lo: config.h backtrace.h internal.h
186nounwind.lo: config.h internal.h
187pecoff.lo: config.h backtrace.h internal.h
188posix.lo: config.h backtrace.h internal.h
189print.lo: config.h backtrace.h internal.h
190read.lo: config.h backtrace.h internal.h
191simple.lo: config.h backtrace.h internal.h
192sort.lo: config.h backtrace.h internal.h
193stest.lo: config.h backtrace.h internal.h
194state.lo: config.h backtrace.h backtrace-supported.h internal.h
195unknown.lo: config.h backtrace.h internal.h
196xcoff.lo: config.h backtrace.h internal.h
197
198