1# Process this file with automake to generate Makefile.in 2 3AUTOMAKE_OPTIONS = foreign 4 5SUBDIRS = po testsuite 6 7tooldir = $(exec_prefix)/$(target_alias) 8 9ACLOCAL_AMFLAGS = -I ../bfd -I ../config 10 11AM_CFLAGS = $(WARN_CFLAGS) $(LFS_CFLAGS) $(RANDOM_SEED_CFLAGS) 12AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CFLAGS) $(RANDOM_SEED_CFLAGS) 13 14AM_CPPFLAGS = \ 15 -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../elfcpp \ 16 -DLOCALEDIR="\"$(datadir)/locale\"" \ 17 -DBINDIR="\"$(bindir)\"" -DTOOLBINDIR="\"$(tooldir)/bin\"" \ 18 @INCINTL@ 19 20LIBIBERTY = ../libiberty/libiberty.a 21 22if PLUGINS 23LIBDL = -ldl 24endif 25 26if THREADS 27THREADSLIB = -lpthread 28endif 29 30AM_YFLAGS = -d 31 32# Automake 1.10+ disables lex and yacc output file regeneration if 33# maintainer mode is disabled. Avoid this. 34am__skiplex = 35am__skipyacc = 36 37noinst_PROGRAMS = ld-new incremental-dump 38noinst_LIBRARIES = libgold.a 39 40CCFILES = \ 41 archive.cc \ 42 attributes.cc \ 43 binary.cc \ 44 common.cc \ 45 compressed_output.cc \ 46 copy-relocs.cc \ 47 cref.cc \ 48 defstd.cc \ 49 descriptors.cc \ 50 dirsearch.cc \ 51 dynobj.cc \ 52 dwarf_reader.cc \ 53 ehframe.cc \ 54 errors.cc \ 55 expression.cc \ 56 fileread.cc \ 57 gc.cc \ 58 gold.cc \ 59 gold-threads.cc \ 60 icf.cc \ 61 incremental.cc \ 62 int_encoding.cc \ 63 layout.cc \ 64 mapfile.cc \ 65 merge.cc \ 66 object.cc \ 67 options.cc \ 68 output.cc \ 69 parameters.cc \ 70 plugin.cc \ 71 readsyms.cc \ 72 reduced_debug_output.cc \ 73 reloc.cc \ 74 resolve.cc \ 75 script-sections.cc \ 76 script.cc \ 77 stringpool.cc \ 78 symtab.cc \ 79 target.cc \ 80 target-select.cc \ 81 timer.cc \ 82 version.cc \ 83 workqueue.cc \ 84 workqueue-threads.cc 85 86HFILES = \ 87 arm-reloc-property.h \ 88 archive.h \ 89 attributes.h \ 90 binary.h \ 91 common.h \ 92 compressed_output.h \ 93 copy-relocs.h \ 94 cref.h \ 95 defstd.h \ 96 dirsearch.h \ 97 descriptors.h \ 98 dynobj.h \ 99 dwarf_reader.h \ 100 ehframe.h \ 101 errors.h \ 102 fileread.h \ 103 freebsd.h \ 104 gc.h \ 105 gold.h \ 106 gold-threads.h \ 107 icf.h \ 108 int_encoding.h \ 109 layout.h \ 110 mapfile.h \ 111 merge.h \ 112 object.h \ 113 options.h \ 114 output.h \ 115 parameters.h \ 116 plugin.h \ 117 readsyms.h \ 118 reduced_debug_output.h \ 119 reloc.h \ 120 reloc-types.h \ 121 script-c.h \ 122 script-sections.h \ 123 script.h \ 124 stringpool.h \ 125 symtab.h \ 126 target.h \ 127 target-reloc.h \ 128 target-select.h \ 129 timer.h \ 130 tls.h \ 131 token.h \ 132 workqueue.h \ 133 workqueue-internal.h 134 135YFILES = \ 136 yyscript.y 137 138DEFFILES = arm-reloc.def 139 140EXTRA_DIST = yyscript.c yyscript.h 141 142TARGETSOURCES = \ 143 i386.cc x86_64.cc sparc.cc powerpc.cc arm.cc arm-reloc-property.cc 144 145ALL_TARGETOBJS = \ 146 i386.$(OBJEXT) x86_64.$(OBJEXT) sparc.$(OBJEXT) powerpc.$(OBJEXT) \ 147 arm.$(OBJEXT) arm-reloc-property.$(OBJEXT) 148 149libgold_a_SOURCES = $(CCFILES) $(HFILES) $(YFILES) $(DEFFILES) 150libgold_a_LIBADD = $(LIBOBJS) 151 152sources_var = main.cc 153deps_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL_DEP) 154ldadd_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL) \ 155 $(THREADSLIB) $(LIBDL) 156 157ld_new_SOURCES = $(sources_var) 158ld_new_DEPENDENCIES = $(deps_var) 159ld_new_LDADD = $(ldadd_var) 160 161EXTRA_ld_new_SOURCES = $(TARGETSOURCES) 162 163incremental_dump_SOURCES = incremental-dump.cc 164incremental_dump_DEPENDENCIES = $(TARGETOBJS) libgold.a $(LIBIBERTY) \ 165 $(LIBINTL_DEP) 166incremental_dump_LDADD = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL) \ 167 $(THREADSLIB) $(LIBDL) 168 169# Use an explicit dependency for the bison generated header file. 170expression.$(OBJEXT): yyscript.h 171script-sections.$(OBJEXT): yyscript.h 172script.$(OBJEXT): yyscript.h 173 174# We have to build libgold.a before we run the tests. 175check: libgold.a 176 177.PHONY: install-exec-local 178 179install-exec-local: ld-new$(EXEEXT) 180 $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(tooldir)/bin 181 n=`echo $(installed_linker) | sed '$(transform)'`; \ 182 $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(bindir)/$${n}$(EXEEXT); \ 183 if test "$(bindir)" != "$(tooldir)/bin"; then \ 184 rm -f $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT); \ 185 ln $(DESTDIR)$(bindir)/$${n}$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT) >/dev/null 2>/dev/null \ 186 || $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT); \ 187 fi; \ 188 if test "x$(install_as_default)" = "xyes"; then \ 189 ld=`echo ld | sed '$(transform)'`; \ 190 rm -f $(DESTDIR)$(bindir)/$${ld}$(EXEEXT); \ 191 ln $(DESTDIR)$(bindir)/$${n}$(EXEEXT) $(DESTDIR)$(bindir)/$${ld}$(EXEEXT) >/dev/null 2>/dev/null \ 192 || $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(bindir)/$${ld}$(EXEEXT); \ 193 if test "$(bindir)" != "$(tooldir)/bin"; then \ 194 rm -f $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \ 195 ln $(DESTDIR)$(bindir)/$${n}$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT) >/dev/null 2>/dev/null \ 196 || $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \ 197 fi; \ 198 fi 199 200# We want install to imply install-info as per GNU standards, despite 201# the cygnus option. 202install-data-local: install-info 203 204POTFILES= $(CCFILES) $(HFILES) $(TARGETSOURCES) 205 206po/POTFILES.in: @MAINT@ Makefile 207 for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \ 208 && mv tmp $(srcdir)/po/POTFILES.in 209 210# Bootstrap test support. We use ld-new to build ld1, then use ld1 to 211# build ld2. ld1 and ld2 should be identical. ld-new need not be 212# identical to ld1, since it was linked with the host linker. 213 214if GCC 215if NATIVE_LINKER 216 217gcctestdir1/ld: ld-new 218 test -d gcctestdir1 || mkdir -p gcctestdir1 219 rm -f gcctestdir1/ld 220 (cd gcctestdir1 && $(LN_S) ../ld-new ld) 221 222ld1_SOURCES = $(sources_var) 223ld1_DEPENDENCIES = $(deps_var) gcctestdir1/ld 224ld1_LDADD = $(ldadd_var) 225ld1_LDFLAGS = -Bgcctestdir1/ 226 227gcctestdir2/ld: ld1 228 test -d gcctestdir2 || mkdir -p gcctestdir2 229 rm -f gcctestdir2/ld 230 (cd gcctestdir2 && $(LN_S) ../ld1 ld) 231 232ld2_SOURCES = $(sources_var) 233ld2_DEPENDENCIES = $(deps_var) gcctestdir2/ld 234ld2_LDADD = $(ldadd_var) 235ld2_LDFLAGS = -Bgcctestdir2/ 236 237bootstrap-test: ld2 238 rm -f $@ 239 echo "#!/bin/sh" > $@ 240 echo "cmp ld1 ld2" > $@ 241 chmod +x $@ 242 243libgold-1-r.o: gcctestdir1/ld libgold.a 244 gcctestdir1/ld -o $@ -r --whole-archive libgold.a 245 246ld1_r_SOURCES = $(sources_var) 247ld1_r_DEPENDENCIES = libgold-1-r.o $(deps_var) gcctestdir1/ld 248ld1_r_LDADD = libgold-1-r.o $(ldadd_var) 249ld1_r_LDFLAGS = -Bgcctestdir1/ 250 251gcctestdir2-r/ld: ld1-r 252 test -d gcctestdir2-r || mkdir -p gcctestdir2-r 253 rm -f gcctestdir2-r/ld 254 (cd gcctestdir2-r && $(LN_S) ../ld1-r ld) 255 256libgold-2-r.o: gcctestdir2-r/ld libgold.a 257 gcctestdir2-r/ld -o $@ -r --whole-archive libgold.a 258 259ld2_r_SOURCES = $(sources_var) 260ld2_r_DEPENDENCIES = libgold-2-r.o $(deps_var) gcctestdir2-r/ld 261ld2_r_LDADD = libgold-2-r.o $(ldadd_var) 262ld2_r_LDFLAGS = -Bgcctestdir2-r/ 263 264bootstrap-test-r: ld2-r 265 rm -f $@ 266 echo "#!/bin/sh" > $@ 267 echo "cmp ld1-r ld2-r" > $@ 268 chmod +x $@ 269 270check_PROGRAMS = ld1 ld2 ld1-r ld2-r 271TESTS = bootstrap-test bootstrap-test-r 272 273endif 274endif 275