123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 |
- ## Process this file with automake to generate Makefile.in
- #
- # Copyright (C) 2006-2015 Free Software Foundation, Inc.
- #
- # This file is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 3 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; see the file COPYING3. If not see
- # <http://www.gnu.org/licenses/>.
- #
- AUTOMAKE_OPTIONS = foreign
- SUBDIRS = po testsuite
- tooldir = $(exec_prefix)/$(target_alias)
- ACLOCAL_AMFLAGS = -I ../bfd -I ../config
- # This is where we get zlib from. zlibdir is -L../zlib and zlibinc is
- # -I../zlib, unless we were configured with --with-system-zlib, in which
- # case both are empty.
- ZLIB = @zlibdir@ -lz
- ZLIBINC = @zlibinc@
- AM_CFLAGS = $(WARN_CFLAGS) $(LFS_CFLAGS) $(RANDOM_SEED_CFLAGS) $(ZLIBINC)
- AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CFLAGS) $(RANDOM_SEED_CFLAGS) $(ZLIBINC)
- AM_CPPFLAGS = \
- -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../elfcpp \
- -DLOCALEDIR="\"$(datadir)/locale\"" \
- -DBINDIR="\"$(bindir)\"" -DTOOLBINDIR="\"$(tooldir)/bin\"" \
- -DTOOLLIBDIR="\"$(tooldir)/lib\"" @INCINTL@
- LIBIBERTY = ../libiberty/libiberty.a
- if PLUGINS
- LIBDL = @DLOPEN_LIBS@
- endif
- if THREADS
- THREADSLIB = -lpthread
- endif
- AM_YFLAGS = -d
- # Automake 1.10+ disables lex and yacc output file regeneration if
- # maintainer mode is disabled. Avoid this.
- am__skiplex =
- am__skipyacc =
- bin_PROGRAMS = dwp
- noinst_PROGRAMS = ld-new incremental-dump
- noinst_LIBRARIES = libgold.a
- CCFILES = \
- archive.cc \
- attributes.cc \
- binary.cc \
- common.cc \
- compressed_output.cc \
- copy-relocs.cc \
- cref.cc \
- defstd.cc \
- descriptors.cc \
- dirsearch.cc \
- dynobj.cc \
- dwarf_reader.cc \
- ehframe.cc \
- errors.cc \
- expression.cc \
- fileread.cc \
- gc.cc \
- gdb-index.cc \
- gold.cc \
- gold-threads.cc \
- icf.cc \
- incremental.cc \
- int_encoding.cc \
- layout.cc \
- mapfile.cc \
- merge.cc \
- nacl.cc \
- object.cc \
- options.cc \
- output.cc \
- parameters.cc \
- plugin.cc \
- readsyms.cc \
- reduced_debug_output.cc \
- reloc.cc \
- resolve.cc \
- script-sections.cc \
- script.cc \
- stringpool.cc \
- symtab.cc \
- target.cc \
- target-select.cc \
- timer.cc \
- version.cc \
- workqueue.cc \
- workqueue-threads.cc
- HFILES = \
- arm-reloc-property.h \
- aarch64-reloc-property.h \
- archive.h \
- attributes.h \
- binary.h \
- common.h \
- compressed_output.h \
- copy-relocs.h \
- cref.h \
- defstd.h \
- dirsearch.h \
- descriptors.h \
- dynobj.h \
- dwarf_reader.h \
- ehframe.h \
- errors.h \
- fileread.h \
- freebsd.h \
- gc.h \
- gdb-index.h \
- gold.h \
- gold-threads.h \
- icf.h \
- int_encoding.h \
- layout.h \
- mapfile.h \
- merge.h \
- nacl.h \
- object.h \
- options.h \
- output.h \
- parameters.h \
- plugin.h \
- readsyms.h \
- reduced_debug_output.h \
- reloc.h \
- reloc-types.h \
- script-c.h \
- script-sections.h \
- script.h \
- stringpool.h \
- symtab.h \
- target.h \
- target-reloc.h \
- target-select.h \
- timer.h \
- tls.h \
- token.h \
- workqueue.h \
- workqueue-internal.h
- YFILES = \
- yyscript.y
- DEFFILES = arm-reloc.def aarch64-reloc.def
- EXTRA_DIST = yyscript.c yyscript.h
- diststuff: $(EXTRA_DIST)
- TARGETSOURCES = \
- i386.cc x86_64.cc sparc.cc powerpc.cc arm.cc arm-reloc-property.cc tilegx.cc \
- mips.cc aarch64.cc aarch64-reloc-property.cc
- ALL_TARGETOBJS = \
- i386.$(OBJEXT) x86_64.$(OBJEXT) sparc.$(OBJEXT) powerpc.$(OBJEXT) \
- arm.$(OBJEXT) arm-reloc-property.$(OBJEXT) tilegx.$(OBJEXT) \
- mips.$(OBJEXT) aarch64.$(OBJEXT) aarch64-reloc-property.$(OBJEXT)
- libgold_a_SOURCES = $(CCFILES) $(HFILES) $(YFILES) $(DEFFILES)
- libgold_a_LIBADD = $(LIBOBJS)
- sources_var = main.cc
- deps_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL_DEP)
- ldadd_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(GOLD_LDADD) $(LIBINTL) \
- $(THREADSLIB) $(LIBDL) $(ZLIB)
- ldflags_var = $(GOLD_LDFLAGS)
- ld_new_SOURCES = $(sources_var)
- ld_new_DEPENDENCIES = $(deps_var)
- ld_new_LDADD = $(ldadd_var)
- ld_new_LDFLAGS = $(ldflags_var)
- EXTRA_ld_new_SOURCES = $(TARGETSOURCES)
- incremental_dump_SOURCES = incremental-dump.cc
- incremental_dump_DEPENDENCIES = $(TARGETOBJS) libgold.a $(LIBIBERTY) \
- $(LIBINTL_DEP)
- incremental_dump_LDADD = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL) \
- $(THREADSLIB) $(LIBDL) $(ZLIB)
- dwp_SOURCES = dwp.cc
- dwp_DEPENDENCIES = libgold.a $(LIBIBERTY) $(LIBINTL_DEP)
- dwp_LDADD = libgold.a $(LIBIBERTY) $(GOLD_LDADD) $(LIBINTL) $(THREADSLIB) \
- $(LIBDL) $(ZLIB)
- dwp_LDFLAGS = $(GOLD_LDFLAGS)
- CONFIG_STATUS_DEPENDENCIES = $(srcdir)/../bfd/development.sh
- # Use an explicit dependency for the bison generated header file.
- expression.$(OBJEXT): yyscript.h
- script-sections.$(OBJEXT): yyscript.h
- script.$(OBJEXT): yyscript.h
- # We have to build libgold.a before we run the tests.
- check: libgold.a
- .PHONY: install-exec-local
- install-exec-local: ld-new$(EXEEXT)
- $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(tooldir)/bin
- n=`echo $(installed_linker) | sed '$(transform)'`; \
- $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) \
- ld-new$(EXEEXT) $(DESTDIR)$(bindir)/$${n}$(EXEEXT); \
- if test "$(bindir)" != "$(tooldir)/bin"; then \
- rm -f $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT); \
- ln $(DESTDIR)$(bindir)/$${n}$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT) >/dev/null 2>/dev/null \
- || $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT); \
- fi; \
- if test "x$(install_as_default)" = "xyes"; then \
- ld=`echo ld | sed '$(transform)'`; \
- rm -f $(DESTDIR)$(bindir)/$${ld}$(EXEEXT); \
- ln $(DESTDIR)$(bindir)/$${n}$(EXEEXT) $(DESTDIR)$(bindir)/$${ld}$(EXEEXT) >/dev/null 2>/dev/null \
- || $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(bindir)/$${ld}$(EXEEXT); \
- if test "$(bindir)" != "$(tooldir)/bin"; then \
- rm -f $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \
- ln $(DESTDIR)$(bindir)/$${n}$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT) >/dev/null 2>/dev/null \
- || $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \
- fi; \
- fi
- # We want install to imply install-info as per GNU standards, despite
- # the cygnus option.
- install-data-local: install-info
- POTFILES= $(CCFILES) $(HFILES) $(TARGETSOURCES)
- po/POTFILES.in: @MAINT@ Makefile
- for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
- && mv tmp $(srcdir)/po/POTFILES.in
- # Bootstrap test support. We use ld-new to build ld1, then use ld1 to
- # build ld2. ld1 and ld2 should be identical. ld-new need not be
- # identical to ld1, since it was linked with the host linker.
- if GCC
- if NATIVE_LINKER
- gcctestdir1/ld: ld-new
- test -d gcctestdir1 || mkdir -p gcctestdir1
- rm -f gcctestdir1/ld
- (cd gcctestdir1 && $(LN_S) ../ld-new ld)
- ld1_SOURCES = $(sources_var)
- ld1_DEPENDENCIES = $(deps_var) gcctestdir1/ld
- ld1_LDADD = $(ldadd_var)
- ld1_LDFLAGS = -Bgcctestdir1/
- gcctestdir2/ld: ld1
- test -d gcctestdir2 || mkdir -p gcctestdir2
- rm -f gcctestdir2/ld
- (cd gcctestdir2 && $(LN_S) ../ld1 ld)
- ld2_SOURCES = $(sources_var)
- ld2_DEPENDENCIES = $(deps_var) gcctestdir2/ld
- ld2_LDADD = $(ldadd_var)
- ld2_LDFLAGS = -Bgcctestdir2/
- bootstrap-test: ld2
- rm -f $@
- echo "#!/bin/sh" > $@
- echo "cmp ld1 ld2" >> $@
- chmod +x $@
- libgold-1-r.o: gcctestdir1/ld libgold.a
- gcctestdir1/ld -o $@ -r --whole-archive libgold.a
- ld1_r_SOURCES = $(sources_var)
- ld1_r_DEPENDENCIES = libgold-1-r.o $(deps_var) gcctestdir1/ld
- ld1_r_LDADD = libgold-1-r.o $(ldadd_var)
- ld1_r_LDFLAGS = -Bgcctestdir1/
- gcctestdir2-r/ld: ld1-r
- test -d gcctestdir2-r || mkdir -p gcctestdir2-r
- rm -f gcctestdir2-r/ld
- (cd gcctestdir2-r && $(LN_S) ../ld1-r ld)
- libgold-2-r.o: gcctestdir2-r/ld libgold.a
- gcctestdir2-r/ld -o $@ -r --whole-archive libgold.a
- ld2_r_SOURCES = $(sources_var)
- ld2_r_DEPENDENCIES = libgold-2-r.o $(deps_var) gcctestdir2-r/ld
- ld2_r_LDADD = libgold-2-r.o $(ldadd_var)
- ld2_r_LDFLAGS = -Bgcctestdir2-r/
- bootstrap-test-r: ld2-r
- rm -f $@
- echo "#!/bin/sh" > $@
- echo "cmp ld1-r ld2-r" >> $@
- chmod +x $@
- check_PROGRAMS = ld1 ld2 ld1-r ld2-r
- TESTS = bootstrap-test bootstrap-test-r
- # Verify that changing the number of threads doesn't change the
- # treehash computation, by building ld1 and ld3 the same way except
- # for the number of threads. However, the build ID should change if
- # we change the chunk size for --build-id=tree, so ld4 should be
- # different. We run the latter test even if multithreading is unavailable,
- # because the treehash can still operate in that mode.
- check_PROGRAMS += ld4
- TESTS += bootstrap-test-treehash-chunksize
- gcctestdir3/ld: ld-new
- test -d gcctestdir3 || mkdir -p gcctestdir3
- rm -f gcctestdir3/ld
- (cd gcctestdir3 && $(LN_S) ../ld-new ld)
- ld3_SOURCES = $(sources_var)
- ld3_DEPENDENCIES = $(deps_var) gcctestdir3/ld
- ld3_LDADD = $(ldadd_var)
- ld3_LDFLAGS = -Bgcctestdir3/
- gcctestdir4/ld: ld-new
- test -d gcctestdir4 || mkdir -p gcctestdir4
- rm -f gcctestdir4/ld
- (cd gcctestdir4 && $(LN_S) ../ld-new ld)
- ld4_SOURCES = $(sources_var)
- ld4_DEPENDENCIES = $(deps_var) gcctestdir4/ld
- ld4_LDADD = $(ldadd_var)
- ld4_LDFLAGS = -Bgcctestdir4/
- ld1_LDFLAGS += -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
- ld2_LDFLAGS += -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
- ld3_LDFLAGS += -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
- ld4_LDFLAGS += -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12346 -Wl,--build-id-min-file-size-for-treehash=0
- if THREADS
- ld1_LDFLAGS += -Wl,--thread-count=3
- ld2_LDFLAGS += -Wl,--thread-count=3
- ld3_LDFLAGS += -Wl,--thread-count=13
- ld4_LDFLAGS += -Wl,--thread-count=3
- check_PROGRAMS += ld3
- TESTS += bootstrap-test-treehash-chunksize
- bootstrap-test-treehash: ld1 ld3
- rm -f $@
- echo "#!/bin/sh" > $@
- echo "cmp ld1 ld3" >> $@
- chmod +x $@
- endif
- bootstrap-test-treehash-chunksize: ld1 ld4
- rm -f $@
- echo "#!/bin/sh" > $@
- echo "cmp ld1 ld4 | grep ." >> $@
- chmod +x $@
- endif
- endif
|