1# Makefile.am -- Backtrace Makefile. 2# Copyright (C) 2012-2024 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) $(CET_HOST_FLAGS) 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 macho.c \ 60 pecoff.c \ 61 unknown.c \ 62 xcoff.c 63 64VIEW_FILES = \ 65 read.c \ 66 mmapio.c 67 68ALLOC_FILES = \ 69 alloc.c \ 70 mmap.c 71 72EXTRA_libbacktrace_la_SOURCES = \ 73 $(BACKTRACE_FILES) \ 74 $(FORMAT_FILES) \ 75 $(VIEW_FILES) \ 76 $(ALLOC_FILES) 77 78libbacktrace_la_LIBADD = \ 79 $(BACKTRACE_FILE) \ 80 $(FORMAT_FILE) \ 81 $(VIEW_FILE) \ 82 $(ALLOC_FILE) 83 84libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD) 85 86# Testsuite. 87 88# Add a test to this variable if you want it to be built as a program, 89# with SOURCES, etc. 90check_PROGRAMS = 91 92# Add a test to this variable if you want it to be run. 93TESTS = 94 95# Add a test to this variable if you want it to be built as a Makefile 96# target and run. 97MAKETESTS = 98 99# Add a test to this variable if you want it to be built as a program, 100# with SOURCES, etc., and run. 101BUILDTESTS = 102 103# Add a file to this variable if you want it to be built for testing. 104check_DATA = 105 106# Flags to use when compiling test programs. 107libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g 108 109# Flags to use when linking test programs. 110# This avoids generating a shell script when configured with --enable-shared. 111libbacktrace_testing_ldflags = -no-install 112 113if USE_DSYMUTIL 114 115%.dSYM: % 116 $(DSYMUTIL) $< 117 118endif USE_DSYMUTIL 119 120if NATIVE 121check_LTLIBRARIES = libbacktrace_alloc.la 122 123libbacktrace_alloc_la_SOURCES = $(libbacktrace_la_SOURCES) 124libbacktrace_alloc_la_LIBADD = $(BACKTRACE_FILE) $(FORMAT_FILE) read.lo alloc.lo 125 126libbacktrace_alloc_la_DEPENDENCIES = $(libbacktrace_alloc_la_LIBADD) 127 128check_LTLIBRARIES += libbacktrace_noformat.la 129 130libbacktrace_noformat_la_SOURCES = $(libbacktrace_la_SOURCES) 131libbacktrace_noformat_la_LIBADD = $(BACKTRACE_FILE) $(VIEW_FILE) $(ALLOC_FILE) 132 133libbacktrace_noformat_la_DEPENDENCIES = $(libbacktrace_noformat_la_LIBADD) 134 135if HAVE_ELF 136if HAVE_OBJCOPY_DEBUGLINK 137 138TEST_BUILD_ID_DIR=$(abs_builddir)/usr/lib/debug/.build-id/ 139 140check_LTLIBRARIES += libbacktrace_elf_for_test.la 141 142libbacktrace_elf_for_test_la_SOURCES = $(libbacktrace_la_SOURCES) 143libbacktrace_elf_for_test_la_LIBADD = $(BACKTRACE_FILE) elf_for_test.lo \ 144 $(VIEW_FILE) $(ALLOC_FILE) 145 146elf_for_test.c: elf.c 147 SEARCH='^#define SYSTEM_BUILD_ID_DIR.*$$'; \ 148 REPLACE="#define SYSTEM_BUILD_ID_DIR \"$(TEST_BUILD_ID_DIR)\""; \ 149 $(SED) "s%$$SEARCH%$$REPLACE%" \ 150 $< \ 151 > $@.tmp 152 mv $@.tmp $@ 153 154endif HAVE_OBJCOPY_DEBUGLINK 155endif HAVE_ELF 156 157elf_%.c: elf.c 158 nlinit=`echo 'nl="'; echo '"'`; eval "$$nlinit"; \ 159 SEARCH='#error "Unknown BACKTRACE_ELF_SIZE"'; \ 160 REPLACE="#undef BACKTRACE_ELF_SIZE\\$${nl}#define BACKTRACE_ELF_SIZE"; \ 161 $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \ 162 $< \ 163 > $@.tmp 164 mv $@.tmp $@ 165 166xcoff_%.c: xcoff.c 167 nlinit=`echo 'nl="'; echo '"'`; eval "$$nlinit"; \ 168 SEARCH='#error "Unknown BACKTRACE_XCOFF_SIZE"'; \ 169 REPLACE="#undef BACKTRACE_XCOFF_SIZE\\$${nl}#define BACKTRACE_XCOFF_SIZE"; \ 170 $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \ 171 $< \ 172 > $@.tmp 173 mv $@.tmp $@ 174 175test_elf_32_SOURCES = test_format.c testlib.c 176test_elf_32_CFLAGS = $(libbacktrace_TEST_CFLAGS) 177test_elf_32_LDFLAGS = $(libbacktrace_testing_ldflags) 178test_elf_32_LDADD = libbacktrace_noformat.la elf_32.lo 179 180BUILDTESTS += test_elf_32 181 182test_elf_64_SOURCES = test_format.c testlib.c 183test_elf_64_CFLAGS = $(libbacktrace_TEST_CFLAGS) 184test_elf_64_LDFLAGS = $(libbacktrace_testing_ldflags) 185test_elf_64_LDADD = libbacktrace_noformat.la elf_64.lo 186 187BUILDTESTS += test_elf_64 188 189test_macho_SOURCES = test_format.c testlib.c 190test_macho_CFLAGS = $(libbacktrace_TEST_CFLAGS) 191test_macho_LDFLAGS = $(libbacktrace_testing_ldflags) 192test_macho_LDADD = libbacktrace_noformat.la macho.lo 193 194BUILDTESTS += test_macho 195 196test_xcoff_32_SOURCES = test_format.c testlib.c 197test_xcoff_32_CFLAGS = $(libbacktrace_TEST_CFLAGS) 198test_xcoff_32_LDFLAGS = $(libbacktrace_testing_ldflags) 199test_xcoff_32_LDADD = libbacktrace_noformat.la xcoff_32.lo 200 201BUILDTESTS += test_xcoff_32 202 203test_xcoff_64_SOURCES = test_format.c testlib.c 204test_xcoff_64_CFLAGS = $(libbacktrace_TEST_CFLAGS) 205test_xcoff_64_LDFLAGS = $(libbacktrace_testing_ldflags) 206test_xcoff_64_LDADD = libbacktrace_noformat.la xcoff_64.lo 207 208BUILDTESTS += test_xcoff_64 209 210test_pecoff_SOURCES = test_format.c testlib.c 211test_pecoff_CFLAGS = $(libbacktrace_TEST_CFLAGS) 212test_pecoff_LDFLAGS = $(libbacktrace_testing_ldflags) 213test_pecoff_LDADD = libbacktrace_noformat.la pecoff.lo 214 215BUILDTESTS += test_pecoff 216 217test_unknown_SOURCES = test_format.c testlib.c 218test_unknown_CFLAGS = $(libbacktrace_TEST_CFLAGS) 219test_unknown_LDFLAGS = $(libbacktrace_testing_ldflags) 220test_unknown_LDADD = libbacktrace_noformat.la unknown.lo 221 222BUILDTESTS += test_unknown 223 224unittest_SOURCES = unittest.c testlib.c 225unittest_CFLAGS = $(libbacktrace_TEST_CFLAGS) 226unittest_LDFLAGS = $(libbacktrace_testing_ldflags) 227unittest_LDADD = libbacktrace.la 228 229BUILDTESTS += unittest 230 231unittest_alloc_SOURCES = $(unittest_SOURCES) 232unittest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS) 233unittest_alloc_LDFLAGS = $(libbacktrace_testing_ldflags) 234unittest_alloc_LDADD = libbacktrace_alloc.la 235 236BUILDTESTS += unittest_alloc 237 238check_LTLIBRARIES += libbacktrace_instrumented_alloc.la 239 240libbacktrace_instrumented_alloc_la_SOURCES = $(libbacktrace_la_SOURCES) 241libbacktrace_instrumented_alloc_la_LIBADD = $(BACKTRACE_FILE) $(FORMAT_FILE) \ 242 read.lo instrumented_alloc.lo 243 244libbacktrace_instrumented_alloc_la_DEPENDENCIES = \ 245 $(libbacktrace_instrumented_alloc_la_LIBADD) 246 247instrumented_alloc.lo: alloc.c 248 249allocfail_SOURCES = allocfail.c testlib.c 250allocfail_CFLAGS = $(libbacktrace_TEST_CFLAGS) 251allocfail_LDADD = libbacktrace_instrumented_alloc.la 252 253check_PROGRAMS += allocfail 254 255allocfail.sh: allocfail 256 257TESTS += allocfail.sh 258 259if USE_DSYMUTIL 260check_DATA += allocfail.dSYM 261endif USE_DSYMUTIL 262 263if HAVE_ELF 264if HAVE_BUILDID 265if HAVE_OBJCOPY_DEBUGLINK 266 267b2test_SOURCES = $(btest_SOURCES) 268b2test_CFLAGS = $(libbacktrace_TEST_CFLAGS) 269b2test_LDFLAGS = -Wl,--build-id $(libbacktrace_testing_ldflags) 270b2test_LDADD = libbacktrace_elf_for_test.la 271 272check_PROGRAMS += b2test 273MAKETESTS += b2test_buildid b2test_buildidfull 274 275if HAVE_DWZ 276 277b3test_SOURCES = $(btest_SOURCES) 278b3test_CFLAGS = $(libbacktrace_TEST_CFLAGS) 279b3test_LDFLAGS = -Wl,--build-id $(libbacktrace_testing_ldflags) 280b3test_LDADD = libbacktrace_elf_for_test.la 281 282check_PROGRAMS += b3test 283MAKETESTS += b3test_dwz_buildid b3test_dwz_buildidfull 284 285endif HAVE_DWZ 286 287endif HAVE_OBJCOPY_DEBUGLINK 288endif HAVE_BUILDID 289endif HAVE_ELF 290 291btest_SOURCES = btest.c testlib.c 292btest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O 293btest_LDFLAGS = $(libbacktrace_testing_ldflags) 294btest_LDADD = libbacktrace.la 295 296BUILDTESTS += btest 297 298if USE_DSYMUTIL 299check_DATA += btest.dSYM 300endif USE_DSYMUTIL 301 302if HAVE_ELF 303 304btest_lto_SOURCES = btest.c testlib.c 305btest_lto_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O -flto 306btest_lto_LDFLAGS = $(libbacktrace_testing_ldflags) 307btest_lto_LDADD = libbacktrace.la 308 309BUILDTESTS += btest_lto 310 311endif HAVE_ELF 312 313btest_alloc_SOURCES = $(btest_SOURCES) 314btest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS) 315btest_alloc_LDFLAGS = $(libbacktrace_testing_ldflags) 316btest_alloc_LDADD = libbacktrace_alloc.la 317 318BUILDTESTS += btest_alloc 319 320if USE_DSYMUTIL 321check_DATA += btest_alloc.dSYM 322endif USE_DSYMUTIL 323 324if HAVE_DWZ 325 326%_dwz: % 327 rm -f $@ $@_common.debug 328 cp $< $@_1 329 cp $< $@_2 330 if $(DWZ) -m $@_common.debug $@_1 $@_2; then \ 331 rm -f $@_2; \ 332 mv $@_1 $@; \ 333 else \ 334 echo "Ignoring dwz errors, assuming that test passes"; \ 335 cp $< $@; \ 336 fi 337 338MAKETESTS += btest_dwz 339 340if HAVE_OBJCOPY_DEBUGLINK 341 342MAKETESTS += btest_dwz_gnudebuglink 343 344endif HAVE_OBJCOPY_DEBUGLINK 345 346endif HAVE_DWZ 347 348stest_SOURCES = stest.c 349stest_CFLAGS = $(libbacktrace_TEST_CFLAGS) 350stest_LDFLAGS = $(libbacktrace_testing_ldflags) 351stest_LDADD = libbacktrace.la 352 353BUILDTESTS += stest 354 355if USE_DSYMUTIL 356check_DATA += stest.dSYM 357endif USE_DSYMUTIL 358 359stest_alloc_SOURCES = $(stest_SOURCES) 360stest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS) 361stest_alloc_LDFLAGS = $(libbacktrace_testing_ldflags) 362stest_alloc_LDADD = libbacktrace_alloc.la 363 364BUILDTESTS += stest_alloc 365 366if USE_DSYMUTIL 367check_DATA += stest_alloc.dSYM 368endif USE_DSYMUTIL 369 370if HAVE_ELF 371 372ztest_SOURCES = ztest.c testlib.c 373ztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\" 374ztest_LDFLAGS = $(libbacktrace_testing_ldflags) 375ztest_LDADD = libbacktrace.la 376ztest_alloc_LDADD = libbacktrace_alloc.la 377 378if HAVE_ZLIB 379ztest_LDADD += -lz 380ztest_alloc_LDADD += -lz 381endif 382ztest_LDADD += $(CLOCK_GETTIME_LINK) 383ztest_alloc_LDADD += $(CLOCK_GETTIME_LINK) 384 385BUILDTESTS += ztest 386 387ztest_alloc_SOURCES = $(ztest_SOURCES) 388ztest_alloc_CFLAGS = $(ztest_CFLAGS) 389ztest_alloc_LDFLAGS = $(libbacktrace_testing_ldflags) 390 391BUILDTESTS += ztest_alloc 392 393zstdtest_SOURCES = zstdtest.c testlib.c 394zstdtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\" 395zstdtest_LDFLAGS = $(libbacktrace_testing_ldflags) 396zstdtest_LDADD = libbacktrace.la 397zstdtest_alloc_LDADD = libbacktrace_alloc.la 398 399if HAVE_ZSTD 400zstdtest_LDADD += -lzstd 401zstdtest_alloc_LDADD += -lzstd 402endif 403zstdtest_LDADD += $(CLOCK_GETTIME_LINK) 404zstdtest_alloc_LDADD += $(CLOCK_GETTIME_LINK) 405 406BUILDTESTS += zstdtest 407 408zstdtest_alloc_SOURCES = $(zstdtest_SOURCES) 409zstdtest_alloc_CFLAGS = $(zstdtest_CFLAGS) 410zstdtest_alloc_LDFLAGS = $(libbacktrace_testing_ldflags) 411 412BUILDTESTS += zstdtest_alloc 413 414endif HAVE_ELF 415 416edtest_SOURCES = edtest.c edtest2_build.c testlib.c 417edtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) 418edtest_LDFLAGS = $(libbacktrace_testing_ldflags) 419edtest_LDADD = libbacktrace.la 420 421BUILDTESTS += edtest 422 423if USE_DSYMUTIL 424check_DATA += edtest.dSYM 425endif USE_DSYMUTIL 426 427edtest_alloc_SOURCES = $(edtest_SOURCES) 428edtest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS) 429edtest_alloc_LDFLAGS = $(libbacktrace_testing_ldflags) 430edtest_alloc_LDADD = libbacktrace_alloc.la 431 432if USE_DSYMUTIL 433check_DATA += edtest_alloc.dSYM 434endif USE_DSYMUTIL 435 436BUILDTESTS += edtest_alloc 437 438edtest2_build.c: gen_edtest2_build; @true 439gen_edtest2_build: $(srcdir)/edtest2.c 440 cat $(srcdir)/edtest2.c > tmp-edtest2_build.c 441 $(SHELL) $(srcdir)/../move-if-change tmp-edtest2_build.c edtest2_build.c 442 echo timestamp > $@ 443 444if HAVE_PTHREAD 445 446BUILDTESTS += ttest 447 448ttest_SOURCES = ttest.c testlib.c 449ttest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -pthread 450ttest_LDFLAGS = $(libbacktrace_testing_ldflags) 451ttest_LDADD = libbacktrace.la 452 453if USE_DSYMUTIL 454check_DATA += ttest.dSYM 455endif USE_DSYMUTIL 456 457BUILDTESTS += ttest_alloc 458 459ttest_alloc_SOURCES = $(ttest_SOURCES) 460ttest_alloc_CFLAGS = $(ttest_CFLAGS) 461ttest_alloc_LDFLAGS = $(libbacktrace_testing_ldflags) 462ttest_alloc_LDADD = libbacktrace_alloc.la 463 464if USE_DSYMUTIL 465check_DATA += ttest_alloc.dSYM 466endif USE_DSYMUTIL 467 468endif HAVE_PTHREAD 469 470if HAVE_OBJCOPY_DEBUGLINK 471 472MAKETESTS += btest_gnudebuglink btest_gnudebuglinkfull 473 474%_gnudebuglink: % 475 $(OBJCOPY) --only-keep-debug $< $@.debug 476 $(OBJCOPY) --strip-debug --add-gnu-debuglink=$@.debug $< $@ 477 478%_gnudebuglinkfull: % 479 $(OBJCOPY) --only-keep-debug $< $@.debug 480 $(OBJCOPY) --strip-all --add-gnu-debuglink=$@.debug $< $@ 481 482endif HAVE_OBJCOPY_DEBUGLINK 483 484%_buildid: % 485 ./install-debuginfo-for-buildid.sh \ 486 "$(TEST_BUILD_ID_DIR)" \ 487 $< 488 $(OBJCOPY) --strip-debug $< $@ 489 490%_buildidfull: % 491 ./install-debuginfo-for-buildid.sh \ 492 "$(TEST_BUILD_ID_DIR)" \ 493 $< 494 $(OBJCOPY) --strip-all $< $@ 495 496if HAVE_COMPRESSED_DEBUG 497 498ctestg_SOURCES = btest.c testlib.c 499ctestg_CFLAGS = $(libbacktrace_TEST_CFLAGS) 500ctestg_LDFLAGS = -Wl,--compress-debug-sections=zlib-gnu $(libbacktrace_testing_ldflags) 501ctestg_LDADD = libbacktrace.la 502 503ctesta_SOURCES = btest.c testlib.c 504ctesta_CFLAGS = $(libbacktrace_TEST_CFLAGS) 505ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi $(libbacktrace_testing_ldflags) 506ctesta_LDADD = libbacktrace.la 507 508BUILDTESTS += ctestg ctesta 509 510if HAVE_COMPRESSED_DEBUG_ZSTD 511 512ctestzstd_SOURCES = btest.c testlib.c 513ctestzstd_CFLAGS = $(libbacktrace_TEST_CFLAGS) 514ctestzstd_LDFLAGS = -Wl,--compress-debug-sections=zstd $(libbacktrace_testing_ldflags) 515ctestzstd_LDADD = libbacktrace.la 516 517BUILDTESTS += ctestzstd 518 519endif 520 521ctestg_alloc_SOURCES = $(ctestg_SOURCES) 522ctestg_alloc_CFLAGS = $(ctestg_CFLAGS) 523ctestg_alloc_LDFLAGS = $(ctestg_LDFLAGS) $(libbacktrace_testing_ldflags) 524ctestg_alloc_LDADD = libbacktrace_alloc.la 525 526ctesta_alloc_SOURCES = $(ctesta_SOURCES) 527ctesta_alloc_CFLAGS = $(ctesta_CFLAGS) 528ctesta_alloc_LDFLAGS = $(ctesta_LDFLAGS) $(libbacktrace_testing_ldflags) 529ctesta_alloc_LDADD = libbacktrace_alloc.la 530 531BUILDTESTS += ctestg_alloc ctesta_alloc 532 533endif 534 535if HAVE_DWARF5 536 537dwarf5_SOURCES = btest.c testlib.c 538dwarf5_CFLAGS = $(libbacktrace_TEST_CFLAGS) -gdwarf-5 539dwarf5_LDFLAGS = $(libbacktrace_testing_ldflags) 540dwarf5_LDADD = libbacktrace.la 541 542BUILDTESTS += dwarf5 543 544if USE_DSYMUTIL 545check_DATA += dwarf5.dSYM 546endif USE_DSYMUTIL 547 548dwarf5_alloc_SOURCES = $(dwarf5_SOURCES) 549dwarf5_alloc_CFLAGS = $(dwarf5_CFLAGS) 550dwarf5_alloc_LDFLAGS = $(libbacktrace_testing_ldflags) 551dwarf5_alloc_LDADD = libbacktrace_alloc.la 552 553BUILDTESTS += dwarf5_alloc 554 555if USE_DSYMUTIL 556check_DATA += dwarf5_alloc.dSYM 557endif USE_DSYMUTIL 558 559endif 560 561mtest_SOURCES = mtest.c testlib.c 562mtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O 563mtest_LDFLAGS = $(libbacktrace_testing_ldflags) 564mtest_LDADD = libbacktrace.la 565 566BUILDTESTS += mtest 567 568if USE_DSYMUTIL 569check_DATA += mtest.dSYM 570endif USE_DSYMUTIL 571 572if HAVE_MINIDEBUG 573 574MAKETESTS += mtest_minidebug 575 576%_minidebug: % 577 $(NM) -D $< -P --defined-only | $(AWK) '{ print $$1 }' | sort > $<.dsyms 578 $(NM) $< -P --defined-only | $(AWK) '{ if ($$2 == "T" || $$2 == "t" || $$2 == "D") print $$1 }' | sort > $<.fsyms 579 $(COMM) -13 $<.dsyms $<.fsyms > $<.keepsyms 580 $(OBJCOPY) --only-keep-debug $< $<.dbg 581 $(OBJCOPY) -S --remove-section .gdb_index --remove-section .comment --keep-symbols=$<.keepsyms $<.dbg $<.mdbg 582 $(OBJCOPY) --strip-all --remove-section ..comment $< $<.strip 583 rm -f $<.mdbg.xz 584 $(XZ) $<.mdbg 585 $(OBJCOPY) --add-section .gnu_debugdata=$<.mdbg.xz $<.strip 586 mv $<.strip $@ 587 588endif HAVE_MINIDEBUG 589 590endif NATIVE 591 592if HAVE_ELF 593 594xztest_SOURCES = xztest.c testlib.c 595xztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\" 596xztest_LDFLAGS = $(libbacktrace_testing_ldflags) 597xztest_LDADD = libbacktrace.la 598 599xztest_alloc_SOURCES = $(xztest_SOURCES) 600xztest_alloc_CFLAGS = $(xztest_CFLAGS) 601xztest_alloc_LDFLAGS = $(libbacktrace_testing_ldflags) 602xztest_alloc_LDADD = libbacktrace_alloc.la 603 604if HAVE_LIBLZMA 605xztest_LDADD += -llzma 606xztest_alloc_LDADD += -llzma 607endif 608 609xztest_LDADD += $(CLOCK_GETTIME_LINK) 610xztest_alloc_LDADD += $(CLOCK_GETTIME_LINK) 611 612BUILDTESTS += xztest xztest_alloc 613 614endif HAVE_ELF 615 616check_PROGRAMS += $(BUILDTESTS) 617 618TESTS += $(MAKETESTS) $(BUILDTESTS) 619 620CLEANFILES = \ 621 $(MAKETESTS) $(BUILDTESTS) *.debug elf_for_test.c edtest2_build.c \ 622 gen_edtest2_build \ 623 *.dsyms *.fsyms *.keepsyms *.dbg *.mdbg *.mdbg.xz *.strip 624 625clean-local: 626 -rm -rf usr 627 628# We can't use automake's automatic dependency tracking, because it 629# breaks when using bootstrap-lean. Automatic dependency tracking 630# with GCC bootstrap will cause some of the objects to depend on 631# header files in prev-gcc/include, e.g., stddef.h and stdarg.h. When 632# using bootstrap-lean, prev-gcc is removed after each stage. When 633# running "make install", those header files will be gone, causing the 634# library to be rebuilt at install time. That may not succeed. 635 636# These manual dependencies do not include dependencies on unwind.h, 637# even though that is part of GCC, because where to find it depends on 638# whether we are being built as a host library or a target library. 639 640INCDIR = $(top_srcdir)/../include 641alloc.lo: config.h backtrace.h internal.h 642backtrace.lo: config.h backtrace.h internal.h 643btest.lo: $(INCDIR)/filenames.h backtrace.h backtrace-supported.h 644dwarf.lo: config.h $(INCDIR)/dwarf2.h $(INCDIR)/dwarf2.def \ 645 $(INCDIR)/filenames.h backtrace.h internal.h 646elf.lo: config.h backtrace.h internal.h 647fileline.lo: config.h backtrace.h internal.h 648macho.lo: config.h backtrace.h internal.h 649mmap.lo: config.h backtrace.h internal.h 650mmapio.lo: config.h backtrace.h internal.h 651mtest.lo: backtrace.h backtrace-supported.h 652nounwind.lo: config.h internal.h 653pecoff.lo: config.h backtrace.h internal.h 654posix.lo: config.h backtrace.h internal.h 655print.lo: config.h backtrace.h internal.h 656read.lo: config.h backtrace.h internal.h 657simple.lo: config.h backtrace.h internal.h 658sort.lo: config.h backtrace.h internal.h 659stest.lo: config.h backtrace.h internal.h 660state.lo: config.h backtrace.h backtrace-supported.h internal.h 661unknown.lo: config.h backtrace.h internal.h 662xcoff.lo: config.h backtrace.h internal.h 663xztest.lo: config.h backtrace.h backtrace-supported.h internal.h testlib.h 664ztest.lo: config.h backtrace.h backtrace-supported.h internal.h testlib.h 665 666include $(top_srcdir)/../multilib.am 667