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