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