1# Process this file with automake to generate Makefile.in 2 3AUTOMAKE_OPTIONS = 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 14INCLUDES = \ 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 THREADS 23THREADSLIB = -lpthread 24endif 25 26AM_YFLAGS = -d 27 28noinst_PROGRAMS = ld-new 29noinst_LIBRARIES = libgold.a 30 31CCFILES = \ 32 archive.cc \ 33 binary.cc \ 34 common.cc \ 35 compressed_output.cc \ 36 copy-relocs.cc \ 37 cref.cc \ 38 defstd.cc \ 39 descriptors.cc \ 40 dirsearch.cc \ 41 dynobj.cc \ 42 dwarf_reader.cc \ 43 ehframe.cc \ 44 errors.cc \ 45 expression.cc \ 46 fileread.cc \ 47 gold.cc \ 48 gold-threads.cc \ 49 layout.cc \ 50 mapfile.cc \ 51 merge.cc \ 52 object.cc \ 53 options.cc \ 54 output.cc \ 55 parameters.cc \ 56 readsyms.cc \ 57 reduced_debug_output.cc \ 58 reloc.cc \ 59 resolve.cc \ 60 script-sections.cc \ 61 script.cc \ 62 stringpool.cc \ 63 symtab.cc \ 64 target-select.cc \ 65 version.cc \ 66 workqueue.cc \ 67 workqueue-threads.cc 68 69HFILES = \ 70 archive.h \ 71 binary.h \ 72 common.h \ 73 compressed_output.h \ 74 copy-relocs.h \ 75 cref.h \ 76 defstd.h \ 77 dirsearch.h \ 78 descriptors.h \ 79 dynobj.h \ 80 dwarf_reader.h \ 81 ehframe.h \ 82 errors.h \ 83 fileread.h \ 84 gold.h \ 85 gold-threads.h \ 86 layout.h \ 87 mapfile.h \ 88 merge.h \ 89 object.h \ 90 options.h \ 91 output.h \ 92 parameters.h \ 93 readsyms.h \ 94 reduced_debug_output.h \ 95 reloc.h \ 96 reloc-types.h \ 97 script-c.h \ 98 script-sections.h \ 99 script.h \ 100 stringpool.h \ 101 symtab.h \ 102 target.h \ 103 target-reloc.h \ 104 target-select.h \ 105 tls.h \ 106 token.h \ 107 workqueue.h \ 108 workqueue-internal.h 109 110YFILES = \ 111 yyscript.y 112 113EXTRA_DIST = yyscript.c yyscript.h 114 115TARGETSOURCES = \ 116 i386.cc x86_64.cc sparc.cc powerpc.cc 117 118ALL_TARGETOBJS = \ 119 i386.$(OBJEXT) x86_64.$(OBJEXT) sparc.$(OBJEXT) powerpc.$(OBJEXT) 120 121libgold_a_SOURCES = $(CCFILES) $(HFILES) $(YFILES) 122 123sources_var = main.cc 124deps_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL_DEP) 125ldadd_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL) $(THREADSLIB) 126 127ld_new_SOURCES = $(sources_var) 128ld_new_DEPENDENCIES = $(deps_var) $(LIBOBJS) 129ld_new_LDADD = $(ldadd_var) $(LIBOBJS) 130 131EXTRA_ld_new_SOURCES = $(TARGETSOURCES) 132 133# Use an explicit dependency for the bison generated header file. 134expression.$(OBJEXT): yyscript.h 135script-sections.$(OBJEXT): yyscript.h 136script.$(OBJEXT): yyscript.h 137 138# We have to build libgold.a before we run the tests. 139check: libgold.a 140 141.PHONY: install-exec-local 142 143install-exec-local: ld-new$(EXEEXT) 144 $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(tooldir)/bin 145 n=`echo ld | sed '$(transform)'`; \ 146 $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(bindir)/$${n}$(EXEEXT); \ 147 if test "$(bindir)" != "$(tooldir)/bin"; then \ 148 rm -f $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \ 149 ln $(DESTDIR)$(bindir)/$${n}$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT) >/dev/null 2>/dev/null \ 150 || $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \ 151 fi 152 153# We want install to imply install-info as per GNU standards, despite 154# the cygnus option. 155install-data-local: install-info 156 157POTFILES= $(CCFILES) $(HFILES) $(TARGETSOURCES) 158 159po/POTFILES.in: @MAINT@ Makefile 160 for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \ 161 && mv tmp $(srcdir)/po/POTFILES.in 162 163# Bootstrap test support. We use ld-new to build ld1, then use ld1 to 164# build ld2. ld1 and ld2 should be identical. ld-new need not be 165# identical to ld1, since it was linked with the host linker. 166 167if GCC 168if NATIVE_LINKER 169 170gcctestdir1/ld: ld-new 171 test -d gcctestdir1 || mkdir -p gcctestdir1 172 rm -f gcctestdir1/ld 173 (cd gcctestdir1 && $(LN_S) ../ld-new ld) 174 175ld1_SOURCES = $(sources_var) 176ld1_DEPENDENCIES = $(deps_var) gcctestdir1/ld 177ld1_LDADD = $(ldadd_var) 178ld1_LDFLAGS = -Bgcctestdir1/ 179 180gcctestdir2/ld: ld1 181 test -d gcctestdir2 || mkdir -p gcctestdir2 182 rm -f gcctestdir2/ld 183 (cd gcctestdir2 && $(LN_S) ../ld1 ld) 184 185ld2_SOURCES = $(sources_var) 186ld2_DEPENDENCIES = $(deps_var) gcctestdir2/ld 187ld2_LDADD = $(ldadd_var) 188ld2_LDFLAGS = -Bgcctestdir2/ 189 190bootstrap-test: ld2 191 rm -f $@ 192 echo "#!/bin/sh" > $@ 193 echo "cmp ld1 ld2" > $@ 194 chmod +x $@ 195 196libgold-1-r.o: gcctestdir1/ld libgold.a 197 gcctestdir1/ld -o $@ -r --whole-archive libgold.a 198 199ld1_r_SOURCES = $(sources_var) 200ld1_r_DEPENDENCIES = libgold-1-r.o $(deps_var) gcctestdir1/ld 201ld1_r_LDADD = libgold-1-r.o $(ldadd_var) 202ld1_r_LDFLAGS = -Bgcctestdir1/ 203 204gcctestdir2-r/ld: ld1-r 205 test -d gcctestdir2-r || mkdir -p gcctestdir2-r 206 rm -f gcctestdir2-r/ld 207 (cd gcctestdir2-r && $(LN_S) ../ld1-r ld) 208 209libgold-2-r.o: gcctestdir2-r/ld libgold.a 210 gcctestdir2-r/ld -o $@ -r --whole-archive libgold.a 211 212ld2_r_SOURCES = $(sources_var) 213ld2_r_DEPENDENCIES = libgold-2-r.o $(deps_var) gcctestdir2-r/ld 214ld2_r_LDADD = libgold-2-r.o $(ldadd_var) 215ld2_r_LDFLAGS = -Bgcctestdir2-r/ 216 217bootstrap-test-r: ld2-r 218 rm -f $@ 219 echo "#!/bin/sh" > $@ 220 echo "cmp ld1-r ld2-r" > $@ 221 chmod +x $@ 222 223check_PROGRAMS = ld1 ld2 ld1-r ld2-r 224TESTS = bootstrap-test bootstrap-test-r 225 226endif 227endif 228