From 49c009b56f4633058ff247ec765b3fff85dacec1 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Sat, 9 Aug 1997 04:54:28 +0000 Subject: [PATCH] * Makefile.am: New file, based on old Makefile.in. * acinclude.m4: New file, from old aclocal.m4. * configure.in: Call AM_INIT_AUTOMAKE and AM_PROG_LIBTOOL. Remove shared library handling; now handled by libtool. Replace AC_CONFIG_HEADER with AM_CONFIG_HEADER. Call AC_PROG_YACC, AC_PROG_LEX, and AC_DECL_YYTEXT. Call AM_MAINTAINER_MODE, AM_CYGWIN32, and AM_EXEEXT. Don't call CY_CYGWIN32 or CY_EXEEXT. * configure.host: Don't set HLDFLAGS, HLDENV, or RPATH_ENVVAR. * acconfig.h: Mention PACKAGE and VERSION. * stamp-h.in: New file. * ldver.c (ld_program_vresion): Set ld_program_version from VERSION. * ldgram.y, ldlex.l: Replace VERSION with VERSIONK. * Makefile.in: Now built with automake. * aclocal.m4: Now built with aclocal. * configure, config.in: Rebuild. --- ld/.Sanitize | 11 +- ld/ChangeLog | 19 ++ ld/Makefile.am | 755 +++++++++++++++++++++++++++++++++++++++++++ ld/Makefile.in | 972 ++++++++++++++++++++++++++++++++------------------------ ld/acconfig.h | 6 + ld/acinclude.m4 | 1 + ld/configure.in | 64 +--- ld/stamp-h.in | 1 + 8 files changed, 1354 insertions(+), 475 deletions(-) create mode 100644 ld/Makefile.am create mode 100644 ld/acinclude.m4 create mode 100644 ld/stamp-h.in diff --git a/ld/.Sanitize b/ld/.Sanitize index 1ed601f..074c298 100644 --- a/ld/.Sanitize +++ b/ld/.Sanitize @@ -24,12 +24,14 @@ Do-first: Things-to-keep: ChangeLog +Makefile.am Makefile.in NEWS README TODO acconfig.h aclocal.m4 +acinclude.m4 config.in configure configure.bat @@ -79,6 +81,7 @@ mpw-make.sed mri.c mri.h scripttempl +stamp-h.in sysdep.h testsuite @@ -86,7 +89,7 @@ Things-to-lose: Do-last: -arc_files="ChangeLog configure.tgt Makefile.in" +arc_files="ChangeLog configure.tgt Makefile.am Makefile.in" if ( echo $* | grep keep\-arc > /dev/null ) ; then for i in $arc_files ; do @@ -115,7 +118,7 @@ else done fi -v850_files="ChangeLog configure.tgt Makefile.in" +v850_files="ChangeLog configure.tgt Makefile.am Makefile.in" if ( echo $* | grep keep\-v850 > /dev/null ) ; then for i in $v850_files ; do @@ -173,7 +176,7 @@ else done fi -tic80_files="ChangeLog configure.tgt Makefile.in" +tic80_files="ChangeLog configure.tgt Makefile.am Makefile.in" if ( echo $* | grep keep\-tic80 > /dev/null ) ; then for i in $tic80_files ; do @@ -202,7 +205,7 @@ else done fi -d30v_files="ChangeLog configure.tgt Makefile.in" +d30v_files="ChangeLog configure.tgt Makefile.am Makefile.in" if ( echo $* | grep keep\-d30v > /dev/null ) ; then for i in $d30v_files ; do diff --git a/ld/ChangeLog b/ld/ChangeLog index d9c3c1c..ec0a84b 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,22 @@ +Sat Aug 9 00:42:27 1997 Ian Lance Taylor + + * Makefile.am: New file, based on old Makefile.in. + * acinclude.m4: New file, from old aclocal.m4. + * configure.in: Call AM_INIT_AUTOMAKE and AM_PROG_LIBTOOL. Remove + shared library handling; now handled by libtool. Replace + AC_CONFIG_HEADER with AM_CONFIG_HEADER. Call AC_PROG_YACC, + AC_PROG_LEX, and AC_DECL_YYTEXT. Call AM_MAINTAINER_MODE, + AM_CYGWIN32, and AM_EXEEXT. Don't call CY_CYGWIN32 or CY_EXEEXT. + * configure.host: Don't set HLDFLAGS, HLDENV, or RPATH_ENVVAR. + * acconfig.h: Mention PACKAGE and VERSION. + * stamp-h.in: New file. + * ldver.c (ld_program_vresion): Set ld_program_version from + VERSION. + * ldgram.y, ldlex.l: Replace VERSION with VERSIONK. + * Makefile.in: Now built with automake. + * aclocal.m4: Now built with aclocal. + * configure, config.in: Rebuild. + Mon Jul 28 19:04:50 1997 Rob Savoye * configure.in: Use CYGWIN and EXEEXT autoconf macro to look for diff --git a/ld/Makefile.am b/ld/Makefile.am new file mode 100644 index 0000000..aad4d29 --- /dev/null +++ b/ld/Makefile.am @@ -0,0 +1,755 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = dejagnu + +tooldir = $(exec_prefix)/$(target_alias) + +YACC = `if [ -f ../bison/bison ] ; then echo ../bison/bison -y -L../bison/bison ; else echo bison -y ; fi` +YFLAGS = -d +LEX = `if [ -f ../flex/flex ] ; then echo ../flex/flex ; else echo flex ; fi` + +# We put the scripts in the directory $(scriptdir)/ldscripts. +# We can't put the scripts in $(datadir) because the SEARCH_DIR +# directives need to be different for native and cross linkers. +scriptdir = $(tooldir)/lib + +EMUL = @EMUL@ +EMULATION_OFILES = @EMULATION_OFILES@ + +# Search path to override the default search path for -lfoo libraries. +# If LIB_PATH is empty, the ones in the script (if any) are left alone. +# (The default is usually /lib:/usr/lib:/usr/local/lib, unless building +# a cross-linker, in which case the default is empty. See genscripts.sh.) +# Otherwise, they are replaced with the ones given in LIB_PATH, +# which may have the form: LIB_PATH=/lib:/usr/local/lib +LIB_PATH = + +BASEDIR = $(srcdir)/.. +BFDDIR = $(BASEDIR)/bfd +INCDIR = $(BASEDIR)/include +DEP = mkdep + +# What version of the manual to build +DOCVER = gen + +#stuff for self hosting (can be overridden in config file). +HOSTING_CRT0 = @HOSTING_CRT0@ +HOSTING_LIBS = @HOSTING_LIBS@ +HOSTING_EMU = -m $(EMUL) + +# Setup the testing framework, if you have one +EXPECT = `if [ -f $$r/../expect/expect ] ; \ + then echo $$r/../expect/expect ; \ + else echo expect ; fi` + +RUNTEST = `if [ -f $${srcroot}/../dejagnu/runtest ] ; \ + then echo $${srcroot}/../dejagnu/runtest ; \ + else echo runtest ; fi` + +RUNTESTFLAGS = + +CC_FOR_TARGET = ` \ + if [ -f $$r/../gcc/xgcc ] ; then \ + if [ -f $$r/../newlib/Makefile ] ; then \ + echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \ + else \ + echo $$r/../gcc/xgcc -B$$r/../gcc/; \ + fi; \ + else \ + if [ "@host@" = "@target@" ] ; then \ + echo $(CC); \ + else \ + echo gcc | sed '$(program_transform_name)'; \ + fi; \ + fi` + +CXX = gcc +CXX_FOR_TARGET = ` \ + if [ -f $$r/../gcc/xgcc ] ; then \ + if [ -f $$r/../newlib/Makefile ] ; then \ + echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \ + else \ + echo $$r/../gcc/xgcc -B$$r/../gcc/; \ + fi; \ + else \ + if [ "@host@" = "@target@" ] ; then \ + echo $(CXX); \ + else \ + echo gcc | sed '$(program_transform_name)'; \ + fi; \ + fi` + +noinst_PROGRAMS = ld-new +info_TEXINFOS = ld.texinfo +noinst_TEXINFOS = ldint.texinfo +man_MANS = ld.1 + +INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) $(HDEFINES) $(CFLAGS) + +BFDLIB = ../bfd/libbfd.la +LIBIBERTY = ../libiberty/libiberty.a + +ALL_EMULATIONS = \ + ea29k.o \ + eaixppc.o \ + eaixrs6.o \ + ealpha.o \ + earmaoutb.o \ + earmaoutl.o \ + earmcoff.o \ + earmpe.o \ + ecoff_sparc.o \ + edelta68.o \ + eebmon29k.o \ + eelf32_sparc.o \ + eelf32b4300.o \ + eelf32bmip.o \ + eelf32ebmip.o \ + eelf32elmip.o \ + eelf32l4300.o \ + eelf32lmip.o \ + eelf32lppc.o \ + eelf32ppc.o \ + eelf64_sparc.o \ + eelf_i386.o \ + egld960.o \ + egld960coff.o \ + ego32.o \ + eh8300.o \ + eh8300h.o \ + eh8300s.o \ + eh8500.o \ + eh8500b.o \ + eh8500c.o \ + eh8500m.o \ + eh8500s.o \ + ehp300bsd.o \ + ehp3hpux.o \ + ehppaelf.o \ + ei386aout.o \ + ei386bsd.o \ + ei386coff.o \ + ei386go32.o \ + ei386linux.o \ + ei386lynx.o \ + ei386mach.o \ + ei386moss.o \ + ei386msdos.o \ + ei386nbsd.o \ + ei386nw.o \ + ei386pe.o \ + elnk960.o \ + em68k4knbsd.o \ + em68kaout.o \ + em68kaux.o \ + em68kcoff.o \ + em68kelf.o \ + em68klinux.o \ + em68klynx.o \ + em68knbsd.o \ + em68kpsos.o \ + em88kbcs.o \ + emipsbig.o \ + emipsbsd.o \ + emipsidt.o \ + emipsidtl.o \ + emipslit.o \ + emipslnews.o \ + enews.o \ + ens32knbsd.o \ + epc532macha.o \ + eppcmacos.o \ + eppcnw.o \ + eppcpe.o \ + eriscix.o \ + esa29200.o \ + esh.o \ + eshelf.o \ + eshlelf.o \ + eshl.o \ + esparcaout.o \ + esparclinux.o \ + esparclynx.o \ + esparcnbsd.o \ + est2000.o \ + esun3.o \ + esun4.o \ + evanilla.o \ + evax.o \ + evsta.o \ + ew65.o \ + ez8001.o \ + ez8002.o + +ALL_64_EMULATIONS = \ + eelf64alpha.o + +CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \ + ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c \ + mri.c ldcref.c + +HFILES = config.h ld.h ldctor.h ldemul.h ldexp.h ldfile.h \ + ldlang.h ldlex.h ldmain.h ldmisc.h ldver.h \ + ldwrite.h mri.h + +GENERATED_CFILES = ldgram.c ldlex.c +GENERATED_HFILES = ldgram.h ldemul-list.h + +OFILES = ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o \ + ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o \ + ldfile.o ldcref.o ${EMULATION_OFILES} + +STAGESTUFF = *.o ldscripts/* e*.c + +ldmain.o: ldmain.c config.status + $(COMPILE) -c -DDEFAULT_EMULATION='"$(EMUL)"' -DSCRIPTDIR='"$(scriptdir)"' -DTARGET='"@target@"' $(srcdir)/ldmain.c + +ldemul-list.h: Makefile + (echo "/* This file is automatically generated. DO NOT EDIT! */";\ + for f in `echo " " ${EMULATION_OFILES} "" \ + | sed -e 's/ e/ ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \ + echo "extern ld_emulation_xfer_type ld_$${f}_emulation;"; \ + done;\ + echo "";\ + echo "#define EMULATION_LIST \\";\ + for f in `echo " " ${EMULATION_OFILES} "" \ + | sed -e 's/ e/ ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \ + echo " &ld_$${f}_emulation, \\"; \ + done;\ + echo " 0") >ldemul-tmp.h + mv ldemul-tmp.h ldemul-list.h + +# These all start with e so 'make clean' can find them. + +GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} @host@ @target@ @target_alias@ ${EMUL} "@NATIVE_LIB_DIRS@" +GEN_DEPENDS = $(srcdir)/genscripts.sh $(srcdir)/emultempl/stringify.sed +@TDIRS@ + +ea29k.c: $(srcdir)/emulparams/a29k.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/a29k.sc ${GEN_DEPENDS} + ${GENSCRIPTS} a29k "$(tdir_a29k)" +eaixppc.c: $(srcdir)/emulparams/aixppc.sh \ + $(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS} + ${GENSCRIPTS} aixppc "$(tdir_aixppc)" +eaixrs6.c: $(srcdir)/emulparams/aixrs6.sh \ + $(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS} + ${GENSCRIPTS} aixrs6 "$(tdir_aixrs6)" +ealpha.c: $(srcdir)/emulparams/alpha.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/alpha.sc ${GEN_DEPENDS} + ${GENSCRIPTS} alpha "$(tdir_alpha)" +start-sanitize-arc: +earcelf.c: $(srcdir)/emulparams/arcelf.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} arcelf "$(tdir_arcelf)" +end-sanitize-arc: +earmaoutb.c: $(srcdir)/emulparams/armaoutb.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/armaout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armaoutb "$(tdir_armaoutb)" +earmaoutl.c: $(srcdir)/emulparams/armaoutl.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/armaout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armaoutl "$(tdir_armaoutl)" +earmcoff.c: $(srcdir)/emulparams/armcoff.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/armcoff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armcoff "$(tdir_armcoff)" +earmpe.c: $(srcdir)/emulparams/armpe.sh \ + $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armpe "$(tdir_armpe)" +ecoff_sparc.c: $(srcdir)/emulparams/coff_sparc.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sparccoff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} coff_sparc "$(tdir_coff_sparc)" +ed10velf.c: $(srcdir)/emulparams/d10velf.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd10v.sc ${GEN_DEPENDS} + ${GENSCRIPTS} d10velf "$(tdir_d10v)" +start-sanitize-d30v: +ed30velf.c: $(srcdir)/emulparams/d30velf.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} + ${GENSCRIPTS} d30velf "$(tdir_d30v)" +end-sanitize-d30v: +edelta68.c: $(srcdir)/emulparams/delta68.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/delta68.sc ${GEN_DEPENDS} + ${GENSCRIPTS} delta68 "$(tdir_delta68)" +eebmon29k.c: $(srcdir)/emulparams/ebmon29k.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/ebmon29k.sc ${GEN_DEPENDS} + ${GENSCRIPTS} ebmon29k "$(tdir_ebmon29k)" +em32relf.c: $(srcdir)/emulparams/m32relf.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m32relf "$(tdir_m32r)" +eelf32_sparc.c: $(srcdir)/emulparams/elf32_sparc.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_sparc "$(tdir_elf32_sparc)" +eelf32b4300.c: $(srcdir)/emulparams/elf32b4300.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32b4300 "$(tdir_elf32b4300)" +eelf32bmip.c: $(srcdir)/emulparams/elf32bmip.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32bmip "$(tdir_elf32bmip)" +eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ebmip "$(tdir_elf32ebmip)" +eelf32elmip.c: $(srcdir)/emulparams/elf32elmip.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32elmip "$(tdir_elf32elmip)" +eelf32l4300.c: $(srcdir)/emulparams/elf32l4300.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32l4300 "$(tdir_elf32l4300)" +eelf32lmip.c: $(srcdir)/emulparams/elf32lmip.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32lmip "$(tdir_elf32lmip)" +eelf32lppc.c: $(srcdir)/emulparams/elf32lppc.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfppc.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32lppc "$(tdir_elf32lppc)" +eelf32ppc.c: $(srcdir)/emulparams/elf32ppc.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfppc.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ppc "$(tdir_elf32ppc)" +eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64alpha "$(tdir_elf64alpha)" +eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_sparc "$(tdir_elf64_sparc)" +eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)" +egld960.c: $(srcdir)/emulparams/gld960.sh \ + $(srcdir)/emultempl/gld960.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS} + ${GENSCRIPTS} gld960 "$(tdir_gld960)" +egld960coff.c: $(srcdir)/emulparams/gld960coff.sh \ + $(srcdir)/emultempl/gld960c.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS} + ${GENSCRIPTS} gld960coff "$(tdir_gld960coff)" +ego32.c: $(srcdir)/emulparams/go32.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} go32 "$(tdir_go32)" +eh8300.c: $(srcdir)/emulparams/h8300.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300 "$(tdir_h8300)" +eh8300h.c: $(srcdir)/emulparams/h8300h.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300h.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300h "$(tdir_h8300h)" +eh8300s.c: $(srcdir)/emulparams/h8300s.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300s.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300s "$(tdir_h8300s)" +eh8500.c: $(srcdir)/emulparams/h8500.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8500.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8500 "$(tdir_h8500)" +eh8500b.c: $(srcdir)/emulparams/h8500b.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8500b.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8500b "$(tdir_h8500b)" +eh8500c.c: $(srcdir)/emulparams/h8500c.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8500c.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8500c "$(tdir_h8500c)" +eh8500m.c: $(srcdir)/emulparams/h8500m.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8500m.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8500m "$(tdir_h8500m)" +eh8500s.c: $(srcdir)/emulparams/h8500s.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8500s.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8500s "$(tdir_h8500s)" +ehp300bsd.c: $(srcdir)/emulparams/hp300bsd.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} hp300bsd "$(tdir_hp300bsd)" +ehp3hpux.c: $(srcdir)/emulparams/hp3hpux.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} hp3hpux "$(tdir_hp3hpux)" +ehppaelf.c: $(srcdir)/emulparams/hppaelf.sh \ + $(srcdir)/emultempl/hppaelf.em $(srcdir)/scripttempl/hppaelf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} hppaelf "$(tdir_hppaelf)" +ei386aout.c: $(srcdir)/emulparams/i386aout.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386aout "$(tdir_i386aout)" +ei386bsd.c: $(srcdir)/emulparams/i386bsd.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386bsd "$(tdir_i386bsd)" +ei386coff.c: $(srcdir)/emulparams/i386coff.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i386coff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386coff "$(tdir_i386coff)" +ei386go32.c: $(srcdir)/emulparams/i386go32.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i386go32.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386go32 "$(tdir_i386go32)" +ei386linux.c: $(srcdir)/emulparams/i386linux.sh \ + $(srcdir)/emultempl/linux.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386linux "$(tdir_i386linux)" +ei386lynx.c: $(srcdir)/emulparams/i386lynx.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i386lynx.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386lynx "$(tdir_i386lynx)" +ei386mach.c: $(srcdir)/emulparams/i386mach.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386mach "$(tdir_i386mach)" +ei386moss.c: $(srcdir)/emulparams/i386moss.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386moss "$(tdir_i386moss)" +ei386msdos.c: $(srcdir)/emulparams/i386msdos.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i386msdos.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386msdos "$(tdir_i386msdos)" +ei386nbsd.c: $(srcdir)/emulparams/i386nbsd.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386nbsd "$(tdir_i386nbsd)" +ei386nw.c: $(srcdir)/emulparams/i386nw.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386nw "$(tdir_i386nw)" +ei386pe.c: $(srcdir)/emulparams/i386pe.sh \ + $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386pe "$(tdir_i386pe)" +elnk960.c: $(srcdir)/emulparams/lnk960.sh \ + $(srcdir)/emultempl/lnk960.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS} + ${GENSCRIPTS} lnk960 "$(tdir_lnk960)" +em68k4knbsd.c: $(srcdir)/emulparams/m68k4knbsd.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m68k4knbsd "$(tdir_m68k4knbsd)" +em68kaout.c: $(srcdir)/emulparams/m68kaout.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m68kaout "$(tdir_m68kaout)" +em68kaux.c: $(srcdir)/emulparams/m68kaux.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/m68kaux.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m68kaux "$(tdir_m68kaux)" +em68kcoff.c: $(srcdir)/emulparams/m68kcoff.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/m68kcoff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m68kcoff "$(tdir_m68kcoff)" +em68kelf.c: $(srcdir)/emulparams/m68kelf.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m68kelf "$(tdir_m68kelf)" +em68klinux.c: $(srcdir)/emulparams/m68klinux.sh \ + $(srcdir)/emultempl/linux.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m68klinux "$(tdir_m68klinux)" +em68klynx.c: $(srcdir)/emulparams/m68klynx.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/m68klynx.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m68klynx "$(tdir_m68klynx)" +em68knbsd.c: $(srcdir)/emulparams/m68knbsd.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m68knbsd "$(tdir_m68knbsd)" +em68kpsos.c: $(srcdir)/emulparams/m68kpsos.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/psos.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m68kpsos "$(tdir_m68kpsos)" +em88kbcs.c: $(srcdir)/emulparams/m88kbcs.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/m88kbcs.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m88kbcs "$(tdir_m88kbcs)" +emipsbig.c: $(srcdir)/emulparams/mipsbig.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mipsbig +emipsbsd.c: $(srcdir)/emulparams/mipsbsd.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/mipsbsd.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mipsbsd +emipsidt.c: $(srcdir)/emulparams/mipsidt.sh \ + $(srcdir)/emultempl/mipsecoff.em $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mipsidt "$(tdir_mipsidt)" +emipsidtl.c: $(srcdir)/emulparams/mipsidtl.sh \ + $(srcdir)/emultempl/mipsecoff.em $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mipsidtl "$(tdir_mipsidtl)" +emipslit.c: $(srcdir)/emulparams/mipslit.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mipslit "$(tdir_mipslit)" +emipslnews.c: $(srcdir)/emulparams/mipslnews.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mipslnews +emn10300.c: $(srcdir)/emulparams/mn10300.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mn10300 "$(tdir_mn10300)" +emn10200.c: $(srcdir)/emulparams/mn10200.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mn10200 "$(tdir_mn10200)" +enews.c: $(srcdir)/emulparams/news.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} news "$(tdir_news)" +ens32knbsd.c: $(srcdir)/emulparams/ns32knbsd.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} ns32knbsd "$(tdir_ns32knbsd)" +epc532macha.c: $(srcdir)/emulparams/pc532macha.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} pc532macha "$(tdir_pc532macha)" +eppcmacos.c: $(srcdir)/emulparams/ppcmacos.sh \ + $(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS} + ${GENSCRIPTS} ppcmacos "$(tdir_ppcmacos)" +eppcnw.c: $(srcdir)/emulparams/ppcnw.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS} + ${GENSCRIPTS} ppcnw "$(tdir_ppcnw)" +eppcpe.c: $(srcdir)/emulparams/ppcpe.sh \ + $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/ppcpe.sc ${GEN_DEPENDS} + ${GENSCRIPTS} ppcpe "$(tdir_ppcpe)" +eriscix.c: $(srcdir)/emulparams/riscix.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} riscix "$(tdir_riscix)" +esa29200.c: $(srcdir)/emulparams/sa29200.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sa29200.sc ${GEN_DEPENDS} + ${GENSCRIPTS} sa29200 "$(tdir_sa29200)" +esh.c: $(srcdir)/emulparams/sh.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sh.sc ${GEN_DEPENDS} + ${GENSCRIPTS} sh "$(tdir_sh)" +eshelf.c: $(srcdir)/emulparams/shelf.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf "$(tdir_shelf)" +eshlelf.c: $(srcdir)/emulparams/shlelf.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf "$(tdir_shlelf)" +eshl.c: $(srcdir)/emulparams/shl.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sh.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shl "$(tdir_shl)" +esparcaout.c: $(srcdir)/emulparams/sparcaout.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} sparcaout "$(tdir_sparcaout)" +esparclinux.c: $(srcdir)/emulparams/sparclinux.sh \ + $(srcdir)/emultempl/linux.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} sparclinux "$(tdir_sparclinux)" +esparclynx.c: $(srcdir)/emulparams/sparclynx.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sparclynx.sc ${GEN_DEPENDS} + ${GENSCRIPTS} sparclynx "$(tdir_sparclynx)" +esparcnbsd.c: $(srcdir)/emulparams/sparcnbsd.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} sparcnbsd "$(tdir_sparcnbsd)" +est2000.c: $(srcdir)/emulparams/st2000.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/st2000.sc ${GEN_DEPENDS} + ${GENSCRIPTS} st2000 "$(tdir_st2000)" +esun3.c: $(srcdir)/emulparams/sun3.sh \ + $(srcdir)/emultempl/sunos.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} sun3 "$(tdir_sun3)" +esun4.c: $(srcdir)/emulparams/sun4.sh \ + $(srcdir)/emultempl/sunos.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} sun4 "$(tdir_sun4)" +start-sanitize-tic80: +etic80coff.c: $(srcdir)/emulparams/tic80coff.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/tic80coff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} tic80coff "$(tdir_tic80coff)" +end-sanitize-tic80: +evanilla.c: $(srcdir)/emulparams/vanilla.sh \ + $(srcdir)/emultempl/vanilla.em $(srcdir)/scripttempl/vanilla.sc ${GEN_DEPENDS} + ${GENSCRIPTS} vanilla "$(tdir_vanilla)" +evax.c: $(srcdir)/emulparams/vax.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} vax "$(tdir_vax)" +evsta.c: $(srcdir)/emulparams/vsta.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} vsta "$(tdir_vsta)" +start-sanitize-v850: +ev850.c: $(srcdir)/emulparams/v850.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/v850.sc ${GEN_DEPENDS} + ${GENSCRIPTS} v850 "$(tdir_v850)" +end-sanitize-v850: +ew65.c: $(srcdir)/emulparams/w65.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/w65.sc ${GEN_DEPENDS} + ${GENSCRIPTS} w65 "$(tdir_w65)" +ez8001.c: $(srcdir)/emulparams/z8001.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/z8000.sc ${GEN_DEPENDS} + ${GENSCRIPTS} z8001 "$(tdir_z8001)" +ez8002.c: $(srcdir)/emulparams/z8002.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/z8000.sc ${GEN_DEPENDS} + ${GENSCRIPTS} z8002 "$(tdir_z8002)" + +ld_new_SOURCES = ldgram.y ldlex.l lexsup.c ldlang.c mri.c ldctor.c ldmain.c \ + ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c +ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(BFDLIB) $(LIBIBERTY) @LEXLIB@ +ld_new_LDADD = $(EMULATION_OFILES) $(BFDLIB) $(LIBIBERTY) @LEXLIB@ + +# The generated emulation files mostly have the same dependencies. +$(EMULATION_OFILES): ../bfd/bfd.h sysdep.h config.h $(INCDIR)/bfdlink.h \ + ld.h ldmain.h ldemul.h ldfile.h ldmisc.h ldexp.h ldlang.h \ + ldctor.h ldexp.h ldlang.h ldgram.h + +# This is the real libbfd.a created by libtool. +TESTBFDLIB = ../bfd/.libs/libbfd.a + +check-DEJAGNU: site.exp + srcroot=`cd $(srcdir) && pwd`; export srcroot; \ + r=`pwd`; export r; \ + EXPECT=$(EXPECT); export EXPECT; \ + if [ -f $(top_builddir)/../expect/expect ]; then \ + TCL_LIBRARY=`cd $(top_srcdir)/../tcl/library && pwd`; \ + export TCL_LIBRARY; \ + fi; \ + runtest=$(RUNTEST); \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + $$runtest --tool $(DEJATOOL) --srcdir $${srcroot}/testsuite \ + CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS)" \ + CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS)" \ + CC_FOR_HOST="$(CC)" CFLAGS_FOR_HOST="$(CFLAGS)" \ + OFILES="$(OFILES)" BFDLIB="$(TESTBFDLIB)" \ + LIBIBERTY="$(LIBIBERTY)" HOSTING_EMU="$(HOSTING_EMU)" \ + HOSTING_CRT0="$(HOSTING_CRT0)" HOSTING_LIBS="$(HOSTING_LIBS)" \ + $(RUNTESTFLAGS); \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi + +# Rules for testing by relinking ld itself. +# A similar test is in the testsuite. This target is for ease of use +# when porting ld. + +ld-partial.o: ld-new$(EXEEXT) + ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld-partial.o -r $(OFILES) +ld1$(EXEEXT): ld-partial.o + ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1$(EXEEXT) $(HOSTING_CRT0) ld-partial.o $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) + +ld1-full$(EXEEXT): ld-new + ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1-full$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) + +ld2$(EXEEXT): ld1$(EXEEXT) + ./ld1$(EXEEXT) $(HOSTING_EMU) -o ld2$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) + +ld3$(EXEEXT): ld2$(EXEEXT) + ./ld2$(EXEEXT) $(HOSTING_EMU) -o ld3$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) + +bootstrap: ld3$(EXEEXT) + cmp ld2$(EXEEXT) ld3$(EXEEXT) + +.PHONY: bootstrap + +# A test program for C++ constructors and destructors. +# This test is now in the testsuite. +# +#cdtest: cdtest-main.o cdtest-bar.o cdtest-foo.o ld.new +# ./ld.new $(HOSTING_EMU) -o cdtest $(HOSTING_CRT0) \ +# cdtest-main.o cdtest-bar.o cdtest-foo.o $(HOSTING_LIBS) +# +#cdtest.out: cdtest +# ./cdtest > cdtest.tmp +# mv cdtest.tmp cdtest.out +# +#cdtest-ur.o: cdtest-main.o cdtest-bar.o cdtest-foo.o ld.new +# ./ld.new $(HOSTING_EMU) -o cdtest-ur.o -Ur cdtest-main.o \ +# cdtest-bar.o cdtest-foo.o +# +#cdtest-ur: cdtest-ur.o +# ./ld.new $(HOSTING_EMU) -o cdtest-ur $(HOSTING_CRT0) cdtest-ur.o \ +# $(HOSTING_LIBS) +# +#cdtest-ur.out: cdtest-ur +# ./cdtest-ur > cdtest-ur.tmp +# mv cdtest-ur.tmp cdtest-ur.out +# +#check-cdtest: cdtest.out cdtest-ur.out $(srcdir)/cdtest.exp +# diff $(srcdir)/cdtest.exp cdtest.out +# diff $(srcdir)/cdtest.exp cdtest-ur.out +# +#.PHONY: check-cdtest + +# END OF CHECK TARGETS + +# DOCUMENTATION TARGETS +# Manual configuration file; not usually attached to normal configuration, +# because almost all configs use "gen" version of manual. +# Set DOCVER above to change. +configdoc.texi: ${DOCVER}-doc.texi + ln -s ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi >/dev/null 2>&1 \ + || ln ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi >/dev/null 2>&1 \ + || cp ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi + +ld.info: $(srcdir)/ld.texinfo configdoc.texi $(BFDDIR)/doc/bfdsumm.texi +ld.dvi: $(srcdir)/ld.texinfo configdoc.texi $(BFDDIR)/doc/bfdsumm.texi + +MOSTCLEANFILES = $(STAGESTUFF) ld1$(EXEEXT) ld2$(EXEEXT) ld3$(EXEEXT) \ + ldemul-list.h tmpdir crtbegin.o crtend.o +CLEANFILES = dep.sed .dep .dep1 +DISTCLEANFILES = ldscripts + +.PHONY: install-exec-local install-data-local + +install-exec-local: ld-new$(EXEEXT) + $(mkinstalldirs) $(bindir) $(tooldir)/bin + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/-new//'|sed '$(transform)'`"; \ + $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/-new//'|sed '$(transform)'`; \ + else :; fi; \ + done + rm -f $(tooldir)/bin/ld$(EXEEXT) + n=`echo ld | sed '$(transform)'`; \ + ln $(bindir)/$$n$(EXEEXT) $(tooldir)/bin/ld$(EXEEXT) >/dev/null 2>/dev/null \ + || $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(tooldir)/bin/ld$(EXEEXT) + +install-data-local: + $(mkinstalldirs) $(scriptdir) + for f in ldscripts/*; do \ + $(INSTALL_DATA) $$f $(scriptdir)/$$f ; \ + done + +# Targets to rebuild dependencies in this Makefile. +# Have to get rid of .dep1 here so that "$?" later includes all of $(CFILES). +.dep: dep.sed $(CFILES) $(HFILES) $(GENERATED_CFILES) $(GENERATED_HFILES) config.h + rm -f .dep1 + $(MAKE) DEP=$(DEP) .dep1 + sed -f dep.sed <.dep1 >.dep + +# This rule really wants a mkdep that runs "gcc -MM". +.dep1: $(CFILES) $(GENERATED_CFILES) + rm -f .dep2 + echo '# DO NOT DELETE THIS LINE -- mkdep uses it.' > .dep2 + $(DEP) -f .dep2 $(INCLUDES) $? + $(srcdir)/../move-if-change .dep2 .dep1 + +dep.sed: dep-in.sed config.status + sed <$(srcdir)/dep-in.sed >dep.sed \ + -e 's!@INCDIR@!$(INCDIR)!' \ + -e 's!@SRCDIR@!$(srcdir)!' + +dep: .dep + sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < Makefile > tmp-Makefile + cat .dep >> tmp-Makefile + $(srcdir)/../move-if-change tmp-Makefile Makefile + +dep-in: .dep + sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.in > tmp-Makefile.in + cat .dep >> tmp-Makefile.in + $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in + +dep-am: .dep + sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.am > tmp-Makefile.am + cat .dep >> tmp-Makefile.am + $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am + +.PHONY: dep dep-in dep-am + +# What appears below is generated by a hacked mkdep using gcc -MM. + +# DO NOT DELETE THIS LINE -- mkdep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + +ldctor.o: ldctor.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \ + ld.h ldexp.h ldlang.h ldmisc.h ldgram.h ldmain.h ldctor.h +ldemul.o: ldemul.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + sysdep.h config.h $(INCDIR)/fopen-same.h ld.h ldemul.h \ + ldmisc.h ldexp.h ldlang.h ldfile.h ldmain.h ldemul-list.h +ldexp.o: ldexp.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \ + ld.h ldmain.h ldmisc.h ldexp.h ldgram.h ldlang.h +ldfile.o: ldfile.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \ + ld.h ldmisc.h ldexp.h ldlang.h ldfile.h ldmain.h ldgram.h \ + ldlex.h ldemul.h +ldlang.o: ldlang.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \ + $(INCDIR)/obstack.h $(INCDIR)/bfdlink.h ld.h ldmain.h \ + ldgram.h ldexp.h ldlang.h ldemul.h ldlex.h ldmisc.h \ + ldctor.h ldfile.h $(INCDIR)/fnmatch.h +ldmain.o: ldmain.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \ + $(INCDIR)/progress.h $(INCDIR)/bfdlink.h ld.h ldmain.h \ + ldmisc.h ldwrite.h ldgram.h ldexp.h ldlang.h ldemul.h \ + ldlex.h ldfile.h ldctor.h +ldmisc.o: ldmisc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \ + $(INCDIR)/demangle.h ld.h ldmisc.h ldexp.h ldlang.h \ + ldgram.h ldlex.h ldmain.h ldfile.h +ldver.o: ldver.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + sysdep.h config.h $(INCDIR)/fopen-same.h ld.h ldver.h \ + ldemul.h ldmain.h +ldwrite.o: ldwrite.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \ + $(INCDIR)/libiberty.h ld.h ldexp.h ldlang.h ldwrite.h \ + ldmisc.h ldgram.h ldmain.h +lexsup.o: lexsup.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \ + $(INCDIR)/getopt.h $(INCDIR)/bfdlink.h ld.h ldmain.h \ + ldmisc.h ldexp.h ldlang.h ldgram.h ldlex.h ldfile.h \ + ldver.h ldemul.h +mri.o: mri.c ../bfd/bfd.h $(INCDIR)/ansidecl.h sysdep.h \ + config.h $(INCDIR)/fopen-same.h ld.h ldexp.h ldlang.h \ + ldmisc.h mri.h ldgram.h $(INCDIR)/libiberty.h +ldcref.o: ldcref.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \ + $(INCDIR)/libiberty.h ld.h ldmain.h ldmisc.h ldexp.h \ + ldlang.h +ldgram.o: ldgram.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \ + ld.h ldexp.h ldver.h ldlang.h ldemul.h ldfile.h ldmisc.h \ + ldmain.h mri.h ldlex.h +ldlex.o: ldlex.c ../bfd/bfd.h sysdep.h config.h $(INCDIR)/fopen-same.h \ + ld.h ldgram.h ldmisc.h ldexp.h ldlang.h ldfile.h ldlex.h \ + ldmain.h + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/ld/Makefile.in b/ld/Makefile.in index 226a582..e198b03 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -1,75 +1,86 @@ -# Makefile for the GNU linker ld (version 2) -# Copyright (C) 1989, 90, 91, 92, 93, 94, 95, 96, 1997 -# Free Software Foundation, Inc. - -# This file is part of GNU ld. - -# This program 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 2 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; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Makefile.in generated automatically by automake 1.2 from Makefile.am +# Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. -VPATH = @srcdir@ -srcdir = @srcdir@ -objdir = . -target_alias = @target_alias@ -prefix = @prefix@ +SHELL = /bin/sh -program_transform_name = @program_transform_name@ +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ exec_prefix = @exec_prefix@ + bindir = @bindir@ -libdir = @libdir@ -tooldir = $(exec_prefix)/$(target_alias) +sbindir = @sbindir@ +libexecdir = @libexecdir@ datadir = @datadir@ -mandir = @mandir@ -man1dir = $(mandir)/man1 -man2dir = $(mandir)/man2 -man3dir = $(mandir)/man3 -man4dir = $(mandir)/man4 -man5dir = $(mandir)/man5 -man6dir = $(mandir)/man6 -man7dir = $(mandir)/man7 -man8dir = $(mandir)/man8 -man9dir = $(mandir)/man9 +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ infodir = @infodir@ +mandir = @mandir@ includedir = @includedir@ +oldincludedir = /usr/include -# We put the scripts in the directory $(scriptdir)/ldscripts. -# We can't put the scripts in $(datadir) because the SEARCH_DIR -# directives need to be different for native and cross linkers. -scriptdir = $(tooldir)/lib +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ -SHELL = /bin/sh +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ - -AR = ar -AR_FLAGS = qv +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = true +PRE_INSTALL = true +POST_INSTALL = true +NORMAL_UNINSTALL = true +PRE_UNINSTALL = true +POST_UNINSTALL = true +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ CC = @CC@ EXEEXT = @EXEEXT@ -CFLAGS = @CFLAGS@ -LDFLAGS = @LDFLAGS@ -HLDFLAGS = @HLDFLAGS@ -HLDENV = @HLDENV@ -RPATH_ENVVAR = @RPATH_ENVVAR@ -MAKEINFO = makeinfo -TEXI2DVI = texi2dvi -RANLIB = ranlib -BISON = `if [ -f ../bison/bison ] ; then echo ../bison/bison -y -L../bison/bison ; else echo bison -y ; fi` -LEX = `if [ -f ../flex/flex ] ; then echo ../flex/flex ; else echo flex ; fi` +HDEFINES = @HDEFINES@ +LD = @LD@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NATIVE_LIB_DIRS = @NATIVE_LIB_DIRS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +TDIRS = @TDIRS@ +VERSION = @VERSION@ + +AUTOMAKE_OPTIONS = dejagnu + +tooldir = $(exec_prefix)/$(target_alias) + +YACC = `if [ -f ../bison/bison ] ; then echo ../bison/bison -y -L../bison/bison ; else echo bison -y ; fi` +YFLAGS = -d +LEX = `if [ -f ../flex/flex ] ; then echo ../flex/flex ; else echo flex ; fi` + +# We put the scripts in the directory $(scriptdir)/ldscripts. +# We can't put the scripts in $(datadir) because the SEARCH_DIR +# directives need to be different for native and cross linkers. +scriptdir = $(tooldir)/lib EMUL = @EMUL@ EMULATION_OFILES = @EMULATION_OFILES@ @@ -85,44 +96,16 @@ LIB_PATH = BASEDIR = $(srcdir)/.. BFDDIR = $(BASEDIR)/bfd INCDIR = $(BASEDIR)/include -INCLUDES = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) DEP = mkdep # What version of the manual to build DOCVER = gen -# Where to find texinfo.tex to format docn with TeX -TEXIDIR = $(srcdir)/../texinfo - -# Where to find other docs needed to format with TeX -TEXINPUTS = $(TEXIDIR):$(BFDDIR)/doc:$(srcdir) - -# Whether to get roff to put indexing entries on stderr -TEXI2OPT = -# You neeed this to generate ld-index.ms (or .mm or .me) -# TEXI2OPT = -i - -TEXI2ROFF=texi2roff - -# Which roff program to use to generate index for texi2roff'd doc -ROFF = groff - #stuff for self hosting (can be overridden in config file). HOSTING_CRT0 = @HOSTING_CRT0@ HOSTING_LIBS = @HOSTING_LIBS@ HOSTING_EMU = -m $(EMUL) -# These were used by `make check-cdtest' -# -#CXX = `if [ -f ../gcc/xgcc ] ; then \ -# echo ../gcc/xgcc -B../gcc/; \ -# else echo gcc; \ -# fi` -#CXXFLAGS = -fgnu-linker -# -# FIX_ME: using ../gcc/xgcc breaks the cdtest. -#CXX = g++ - # Setup the testing framework, if you have one EXPECT = `if [ -f $$r/../expect/expect ] ; \ then echo $$r/../expect/expect ; \ @@ -165,33 +148,14 @@ CXX_FOR_TARGET = ` \ fi; \ fi` -# go directly to ld.new in case this ld isn't capable of -# linking native object on this host. It can be renamed on -# install. -LD_PROG = ld.new$(EXEEXT) - -all: $(LD_PROG) -.PHONY: all - -LINTFLAGS = $(INCLUDES) $(EXTRA_DEF) - -# The .cc suffix was used by `make check-cdtest'. - -.SUFFIXES: .y $(SUFFIXES) .cc - -# Suppress smart makes who think they know how to automake Yacc files -.y.c: - -# This rule was used for the check-cdtest target. -#.cc.o: -# $(CXX) -c -I$(srcdir) $(CXXFLAGS) $(CFLAGS) $< +noinst_PROGRAMS = ld-new +info_TEXINFOS = ld.texinfo +noinst_TEXINFOS = ldint.texinfo +man_MANS = ld.1 -ALL_CFLAGS = -D_GNU_SOURCE $(INCLUDES) @HDEFINES@ $(CFLAGS) -.c.o: - $(CC) -c $(ALL_CFLAGS) $< +INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) $(HDEFINES) $(CFLAGS) -BFDDEP = ../bfd/libbfd.a -BFDLIB = @BFDLIB@ +BFDLIB = ../bfd/libbfd.la LIBIBERTY = ../libiberty/libiberty.a ALL_EMULATIONS = \ @@ -304,24 +268,419 @@ OFILES = ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o \ ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o \ ldfile.o ldcref.o ${EMULATION_OFILES} -LINTSOURCES = $(CFILES) $(GENERATED_CFILES) e*.c - STAGESTUFF = *.o ldscripts/* e*.c -info: ld.info -.PHONY: info +# These all start with e so 'make clean' can find them. + +GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} @host@ @target@ @target_alias@ ${EMUL} "@NATIVE_LIB_DIRS@" +GEN_DEPENDS = $(srcdir)/genscripts.sh $(srcdir)/emultempl/stringify.sed + +ld_new_SOURCES = ldgram.y ldlex.l lexsup.c ldlang.c mri.c ldctor.c ldmain.c \ + ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c +ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(BFDLIB) $(LIBIBERTY) @LEXLIB@ +ld_new_LDADD = $(EMULATION_OFILES) $(BFDLIB) $(LIBIBERTY) @LEXLIB@ + +# This is the real libbfd.a created by libtool. +TESTBFDLIB = ../bfd/.libs/libbfd.a + +MOSTCLEANFILES = $(STAGESTUFF) ld1$(EXEEXT) ld2$(EXEEXT) ld3$(EXEEXT) \ + ldemul-list.h tmpdir crtbegin.o crtend.o +CLEANFILES = dep.sed .dep .dep1 +DISTCLEANFILES = ldscripts +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +noinst_PROGRAMS = ld-new$(EXEEXT) +PROGRAMS = $(noinst_PROGRAMS) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +ld_new_OBJECTS = ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o \ +ldmain.o ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o ldfile.o ldcref.o +ld_new_LDFLAGS = +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LEXLIB = @LEXLIB@ +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +TEXI2DVI = `if test -f $(top_srcdir)/../texinfo/util/texi2dvi; then echo $(top_srcdir)/../texinfo/util/texi2dvi; else echo texi2dvi; fi` +TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex +INFO_DEPS = ld.info +DVIS = ld.dvi +TEXINFOS = ld.texinfo +MANS = ld.1 + +NROFF = nroff +DIST_COMMON = README ChangeLog Makefile.am Makefile.in NEWS TODO \ +acconfig.h acinclude.m4 aclocal.m4 config.in configure configure.in \ +ldgram.c ldlex.c stamp-h.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(ld_new_SOURCES) +OBJECTS = $(ld_new_OBJECTS) + +default: all + +.SUFFIXES: +.SUFFIXES: .c .dvi .h .info .l .lo .o .ps .texi .texinfo .y +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in acinclude.m4 + cd $(srcdir) && $(ACLOCAL) + +config.status: $(srcdir)/configure + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +config.h: stamp-h ; @true +stamp-h: $(srcdir)/config.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES= CONFIG_HEADERS=config.h:config.in \ + $(SHELL) ./config.status + @echo timestamp > stamp-h +$(srcdir)/config.in: @MAINT@$(srcdir)/stamp-h.in +$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h + cd $(top_srcdir) && $(AUTOHEADER) + @echo timestamp > $(srcdir)/stamp-h.in + +mostlyclean-hdr: + +clean-hdr: + +distclean-hdr: + rm -f config.h + +maintainer-clean-hdr: + +mostlyclean-noinstPROGRAMS: + +clean-noinstPROGRAMS: + test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) + +distclean-noinstPROGRAMS: + +maintainer-clean-noinstPROGRAMS: + +.c.o: + $(COMPILE) -c $< + +mostlyclean-compile: + rm -f *.o core + +clean-compile: + +distclean-compile: + rm -f *.tab.c + +maintainer-clean-compile: + +.c.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +mostlyclean-libtool: + rm -f *.lo + +clean-libtool: + rm -rf .libs + +distclean-libtool: + +maintainer-clean-libtool: + +ld-new$(EXEEXT): $(ld_new_OBJECTS) $(ld_new_DEPENDENCIES) + @rm -f ld-new$(EXEEXT) + $(LINK) $(ld_new_LDFLAGS) $(ld_new_OBJECTS) $(ld_new_LDADD) $(LIBS) +.y.c: + $(YACC) $(YFLAGS) $< && mv y.tab.c $@ + if test -f y.tab.h; then \ + if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \ + else :; fi +.y.h: + $(YACC) $(YFLAGS) $< && mv y.tab.c $@ + if test -f y.tab.h; then \ + if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \ + else :; fi +.l.c: + $(LEX) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@ + +ld.info: ld.texinfo +ld.dvi: ld.texinfo + + +DVIPS = dvips + +.texi.info: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.texi.dvi: + TEXINPUTS=$(top_srcdir)/../texinfo:$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.texi: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.texinfo.info: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.texinfo: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.texinfo.dvi: + TEXINPUTS=$(top_srcdir)/../texinfo:$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< +.dvi.ps: + $(DVIPS) $< -o $@ + +install-info-am: $(INFO_DEPS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(infodir) + @for file in $(INFO_DEPS); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \ + if test -f $$d/$$ifile; then \ + echo " $(INSTALL_DATA) $$d/$$ifile $(infodir)/$$ifile"; \ + $(INSTALL_DATA) $$d/$$ifile $(infodir)/$$ifile; \ + else : ; fi; \ + done; \ + done + @$(POST_INSTALL) + @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ + for file in $(INFO_DEPS); do \ + echo " install-info --info-dir=$(infodir) $(infodir)/$$file";\ + install-info --info-dir=$(infodir) $(infodir)/$$file || :;\ + done; \ + else : ; fi + +uninstall-info: + $(PRE_UNINSTALL) + @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ + ii=yes; \ + else ii=; fi; \ + for file in $(INFO_DEPS); do \ + test -z $ii || install-info --info-dir=$(infodir) --remove $$file; \ + done + $(NORMAL_UNINSTALL) + for file in $(INFO_DEPS); do \ + (cd $(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \ + done + +dist-info: $(INFO_DEPS) + for base in $(INFO_DEPS); do \ + if test -f $$base; then d=.; else d=$(srcdir); fi; \ + for file in `cd $$d && eval echo $$base*`; do \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done; \ + done + +mostlyclean-aminfo: + rm -f ld.aux ld.cp ld.cps ld.dvi ld.fn ld.fns ld.ky ld.log ld.pg ld.toc \ + ld.tp ld.tps ld.vr ld.vrs ld.op ld.tr ld.cv + +clean-aminfo: + +distclean-aminfo: + +maintainer-clean-aminfo: + for i in $(INFO_DEPS); do rm -f `eval echo $$i*`; done +clean-info: mostlyclean-aminfo +install-man: $(MANS) + $(NORMAL_INSTALL) + $(mkinstalldirs) $(mandir)/man1 + @sect=1; \ + inst=`echo "ld" | sed '$(transform)'`.1; \ + if test -f $(srcdir)/ld.1; then file=$(srcdir)/ld.1; \ + else file=ld.1; fi; \ + echo " $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst"; \ + $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst + +uninstall-man: + $(NORMAL_UNINSTALL) + inst=`echo "ld" | sed '$(transform)'`.1; \ + rm -f $(mandir)/man1/$$inst + + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) + here=`pwd` && cd $(srcdir) && mkid -f$$here/ID $(SOURCES) $(HEADERS) + +TAGS: $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) + tags=; \ + here=`pwd`; \ + test -z "$(ETAGS_ARGS)config.in$(SOURCES)$(HEADERS)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.in $(SOURCES) $(HEADERS) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) \ + && $(MAKE) dvi \ + && $(MAKE) check \ + && $(MAKE) install \ + && $(MAKE) installcheck \ + && $(MAKE) dist + rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + rm -rf $(distdir) +distdir: $(DISTFILES) + rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done + $(MAKE) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info + +DEJATOOL = $(PACKAGE) +site.exp: Makefile + @echo 'Making a new site.exp file...' + -@rm -f site.bak + @echo '## these variables are automatically generated by make ##' > $@-t + @echo '# Do not edit here. If you wish to override these values' >> $@-t + @echo '# edit the last section' >> $@-t + @echo 'set tool $(DEJATOOL)' >> $@-t + @echo 'set srcdir $(srcdir)' >> $@-t + @echo 'set objdir' `pwd` >> $@-t + @echo 'set host_alias $(host_alias)' >> $@-t + @echo 'set host_triplet $(host_triplet)' >> $@-t + @echo 'set target_alias $(target_alias)' >> $@-t + @echo 'set target_triplet $(target_triplet)' >> $@-t + @echo 'set build_alias $(build_alias)' >> $@-t + @echo 'set build_triplet $(build_triplet)' >> $@-t + @echo '## All variables above are generated by configure. Do Not Edit ##' >> $@-t + -@sed '1,/^## All variables above are.*##/ d' site.bak >> $@-t + -@mv site.exp site.bak + @mv $@-t site.exp +info: $(INFO_DEPS) +dvi: $(DVIS) +check: all + $(MAKE) check-DEJAGNU +installcheck: +install-info: install-info-am +install-exec: install-exec-local + @$(NORMAL_INSTALL) + +install-data: install-man install-data-local + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: uninstall-man + +all: Makefile $(PROGRAMS) $(MANS) config.h + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + $(mkinstalldirs) $(mandir)/man1 + -ldgram.c: ldgram.y - $(BISON) $(BISONFLAGS) -d $(srcdir)/ldgram.y - mv -f y.tab.c ldgram.c - mv -f y.tab.h ldgram.h +mostlyclean-generic: + test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + rm -f Makefile $(DISTCLEANFILES) + rm -f config.cache config.log stamp-h stamp-h[0-9]* + test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-hdr mostlyclean-noinstPROGRAMS \ + mostlyclean-compile mostlyclean-libtool \ + mostlyclean-aminfo mostlyclean-tags mostlyclean-generic + +clean: clean-hdr clean-noinstPROGRAMS clean-compile clean-libtool \ + clean-aminfo clean-tags clean-generic mostlyclean + +distclean: distclean-hdr distclean-noinstPROGRAMS distclean-compile \ + distclean-libtool distclean-aminfo distclean-tags \ + distclean-generic clean + rm -f config.status + rm -f libtool + +maintainer-clean: maintainer-clean-hdr maintainer-clean-noinstPROGRAMS \ + maintainer-clean-compile maintainer-clean-libtool \ + maintainer-clean-aminfo maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f config.status + +.PHONY: default mostlyclean-hdr distclean-hdr clean-hdr \ +maintainer-clean-hdr mostlyclean-noinstPROGRAMS \ +distclean-noinstPROGRAMS clean-noinstPROGRAMS \ +maintainer-clean-noinstPROGRAMS mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile mostlyclean-libtool \ +distclean-libtool clean-libtool maintainer-clean-libtool \ +install-info-am uninstall-info mostlyclean-aminfo distclean-aminfo \ +clean-aminfo maintainer-clean-aminfo install-man uninstall-man tags \ +mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \ +distdir check-DEJAGNU info dvi installcheck install-info install-exec \ +install-data install uninstall all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean -# Separate from ldgram.c so that a parallel make doesn't try to build -# both ldgram.c and ldgram.h simultaneously. -ldgram.h: ldgram.c ldmain.o: ldmain.c config.status - $(CC) -c -DDEFAULT_EMULATION='"$(EMUL)"' -DSCRIPTDIR='"$(scriptdir)"' -DTARGET='"@target@"' $(ALL_CFLAGS) $< + $(COMPILE) -c -DDEFAULT_EMULATION='"$(EMUL)"' -DSCRIPTDIR='"$(scriptdir)"' -DTARGET='"@target@"' $(srcdir)/ldmain.c ldemul-list.h: Makefile (echo "/* This file is automatically generated. DO NOT EDIT! */";\ @@ -337,20 +696,6 @@ ldemul-list.h: Makefile done;\ echo " 0") >ldemul-tmp.h mv ldemul-tmp.h ldemul-list.h - -ldlex.c: ldlex.l - $(LEX) $(srcdir)/ldlex.l - -sed -e '/^int.*free();/d' \ - -e '/^char.*malloc();/d' \ - -e 's/malloc/xmalloc/g' \ - < lex.yy.c > ldlex.c.new - -rm lex.yy.c - mv ldlex.c.new ./ldlex.c - -# These all start with e so 'make clean' can find them. - -GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} @host@ @target@ @target_alias@ ${EMUL} "@NATIVE_LIB_DIRS@" -GEN_DEPENDS = $(srcdir)/genscripts.sh $(srcdir)/emultempl/stringify.sed @TDIRS@ ea29k.c: $(srcdir)/emulparams/a29k.sh \ @@ -365,11 +710,11 @@ eaixrs6.c: $(srcdir)/emulparams/aixrs6.sh \ ealpha.c: $(srcdir)/emulparams/alpha.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/alpha.sc ${GEN_DEPENDS} ${GENSCRIPTS} alpha "$(tdir_alpha)" -# start-sanitize-arc +start-sanitize-arc: earcelf.c: $(srcdir)/emulparams/arcelf.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} arcelf "$(tdir_arcelf)" -# end-sanitize-arc +end-sanitize-arc: earmaoutb.c: $(srcdir)/emulparams/armaoutb.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/armaout.sc ${GEN_DEPENDS} ${GENSCRIPTS} armaoutb "$(tdir_armaoutb)" @@ -388,11 +733,11 @@ ecoff_sparc.c: $(srcdir)/emulparams/coff_sparc.sh \ ed10velf.c: $(srcdir)/emulparams/d10velf.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd10v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d10velf "$(tdir_d10v)" -# start-sanitize-d30v +start-sanitize-d30v: ed30velf.c: $(srcdir)/emulparams/d30velf.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d30velf "$(tdir_d30v)" -# end-sanitize-d30v +end-sanitize-d30v: edelta68.c: $(srcdir)/emulparams/delta68.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/delta68.sc ${GEN_DEPENDS} ${GENSCRIPTS} delta68 "$(tdir_delta68)" @@ -630,11 +975,11 @@ esun3.c: $(srcdir)/emulparams/sun3.sh \ esun4.c: $(srcdir)/emulparams/sun4.sh \ $(srcdir)/emultempl/sunos.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} sun4 "$(tdir_sun4)" -# start-sanitize-tic80 +start-sanitize-tic80: etic80coff.c: $(srcdir)/emulparams/tic80coff.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/tic80coff.sc ${GEN_DEPENDS} ${GENSCRIPTS} tic80coff "$(tdir_tic80coff)" -# end-sanitize-tic80 +end-sanitize-tic80: evanilla.c: $(srcdir)/emulparams/vanilla.sh \ $(srcdir)/emultempl/vanilla.em $(srcdir)/scripttempl/vanilla.sc ${GEN_DEPENDS} ${GENSCRIPTS} vanilla "$(tdir_vanilla)" @@ -644,11 +989,11 @@ evax.c: $(srcdir)/emulparams/vax.sh \ evsta.c: $(srcdir)/emulparams/vsta.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} vsta "$(tdir_vsta)" -# start-sanitize-v850 +start-sanitize-v850: ev850.c: $(srcdir)/emulparams/v850.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/v850.sc ${GEN_DEPENDS} ${GENSCRIPTS} v850 "$(tdir_v850)" -# end-sanitize-v850 +end-sanitize-v850: ew65.c: $(srcdir)/emulparams/w65.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/w65.sc ${GEN_DEPENDS} ${GENSCRIPTS} w65 "$(tdir_w65)" @@ -659,91 +1004,52 @@ ez8002.c: $(srcdir)/emulparams/z8002.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/z8000.sc ${GEN_DEPENDS} ${GENSCRIPTS} z8002 "$(tdir_z8002)" -$(LD_PROG): $(OFILES) $(BFDDEP) $(LIBIBERTY) - $(HLDENV) $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(LD_PROG) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(EXTRALIBS) - # The generated emulation files mostly have the same dependencies. $(EMULATION_OFILES): ../bfd/bfd.h sysdep.h config.h $(INCDIR)/bfdlink.h \ ld.h ldmain.h ldemul.h ldfile.h ldmisc.h ldexp.h ldlang.h \ ldctor.h ldexp.h ldlang.h ldgram.h -# These targets are for the dejagnu testsuites. The file site.exp -# contains global variables that all the testsuites will use. - -site.exp: ./config.status Makefile - @echo "Making a new config file..." - @rm -f ./tmp? - @touch site.exp - @mv site.exp site.bak - @echo "## variables are automatically generated by make ##" > ./tmp0 - @echo "# Do not edit here. If you wish to override these" >> ./tmp0 - @echo "# values, add them to the last section" >> ./tmp0 - @echo "# HOST AND TARGET INFO" >> ./tmp0 - @echo "set host_os @host_os@" >> ./tmp0 - @echo "set host_alias @host_alias@" >> ./tmp0 - @echo "set host_cpu @host_cpu@" >> ./tmp0 - @echo "set host_vendor @host_vendor@" >> ./tmp0 - @echo "set target_os @target_os@" >> ./tmp0 - @echo "set target_alias @target_alias@" >> ./tmp0 - @echo "set target_cpu @target_cpu@" >> ./tmp0 - @echo "set target_vendor @target_vendor@" >> ./tmp0 - @echo "set host_triplet @host@" >> ./tmp0 - @echo "set target_triplet @target@" >> ./tmp0 - @echo "# DIRECTORY INFO" >> ./tmp0 - @echo "set objdir `pwd`" >> ./tmp0 - @echo "" >> ./tmp0 - @echo "# LD DEPENDENCIES" >> ./tmp0 - @echo "set OFILES \"$(OFILES)\"" >> ./tmp0 - @echo "set BFDLIB \"$(BFDLIB)\"" >> ./tmp0 - @echo "set LIBIBERTY \"$(LIBIBERTY)\"" >> ./tmp0 - @echo "set HOSTING_EMU \"$(HOSTING_EMU)\"" >> ./tmp0 - @echo "set HOSTING_CRT0 \"$(HOSTING_CRT0)\"" >> ./tmp0 - @echo "set HOSTING_LIBS \"$(HOSTING_LIBS)\"" >> ./tmp0 - @echo "" >> ./tmp0 - @echo "## Variables generated by configure. Do Not Edit ##" >> ./tmp0 - @cat ./tmp0 > site.exp - @cat site.bak | sed \ - -e '1,/^## Variables generated by.*##/ d' >> site.exp - -@rm -f ./tmp? - -check: site.exp +check-DEJAGNU: site.exp + srcroot=`cd $(srcdir) && pwd`; export srcroot; \ r=`pwd`; export r; \ - srcroot=`cd ${srcdir}; pwd` ; export srcroot ; \ - EXPECT=${EXPECT} ; export EXPECT ; \ - $(RPATH_ENVVAR)=$$r/../bfd:$$r/../opcodes:$$$(RPATH_ENVVAR); \ - export $(RPATH_ENVVAR); \ - if [ -f $$r/../expect/expect ] ; then \ - TCL_LIBRARY=$${srcroot}/../tcl/library ; \ - export TCL_LIBRARY ; \ - else true ; fi ; \ - $(RUNTEST) --tool ld --srcdir $(srcdir)/testsuite $(RUNTESTFLAGS) \ - CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS)" \ - CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS)" \ - CC_FOR_HOST="$(CC)" CFLAGS_FOR_HOST="$(CFLAGS)" - -installcheck: -.PHONY: check installcheck + EXPECT=$(EXPECT); export EXPECT; \ + if [ -f $(top_builddir)/../expect/expect ]; then \ + TCL_LIBRARY=`cd $(top_srcdir)/../tcl/library && pwd`; \ + export TCL_LIBRARY; \ + fi; \ + runtest=$(RUNTEST); \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + $$runtest --tool $(DEJATOOL) --srcdir $${srcroot}/testsuite \ + CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS)" \ + CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS)" \ + CC_FOR_HOST="$(CC)" CFLAGS_FOR_HOST="$(CFLAGS)" \ + OFILES="$(OFILES)" BFDLIB="$(TESTBFDLIB)" \ + LIBIBERTY="$(LIBIBERTY)" HOSTING_EMU="$(HOSTING_EMU)" \ + HOSTING_CRT0="$(HOSTING_CRT0)" HOSTING_LIBS="$(HOSTING_LIBS)" \ + $(RUNTESTFLAGS); \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi # Rules for testing by relinking ld itself. # A similar test is in the testsuite. This target is for ease of use # when porting ld. -ld-partial.o: ld.new - ./ld.new $(HOSTING_EMU) -o ld-partial.o -r $(OFILES) -ld1: ld-partial.o - ./ld.new $(HOSTING_EMU) -o ld1 $(HOSTING_CRT0) ld-partial.o $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) +ld-partial.o: ld-new$(EXEEXT) + ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld-partial.o -r $(OFILES) +ld1$(EXEEXT): ld-partial.o + ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1$(EXEEXT) $(HOSTING_CRT0) ld-partial.o $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) -ld1-full: ld.new - ./ld.new $(HOSTING_EMU) -o ld1-full $(HOSTING_CRT0) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) +ld1-full$(EXEEXT): ld-new + ./ld-new$(EXEEXT) $(HOSTING_EMU) -o ld1-full$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) -ld2: ld1 - ./ld1 $(HOSTING_EMU) -o ld2 $(HOSTING_CRT0) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) +ld2$(EXEEXT): ld1$(EXEEXT) + ./ld1$(EXEEXT) $(HOSTING_EMU) -o ld2$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) -ld3: ld2 - ./ld2 $(HOSTING_EMU) -o ld3 $(HOSTING_CRT0) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) +ld3$(EXEEXT): ld2$(EXEEXT) + ./ld2$(EXEEXT) $(HOSTING_EMU) -o ld3$(EXEEXT) $(HOSTING_CRT0) $(OFILES) $(TESTBFDLIB) $(LIBIBERTY) $(HOSTING_LIBS) -bootstrap: ld3 - cmp ld2 ld3 +bootstrap: ld3$(EXEEXT) + cmp ld2$(EXEEXT) ld3$(EXEEXT) .PHONY: bootstrap @@ -783,209 +1089,34 @@ bootstrap: ld3 # because almost all configs use "gen" version of manual. # Set DOCVER above to change. configdoc.texi: ${DOCVER}-doc.texi - ln -s ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi || \ - ln ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi || \ - cp ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi + ln -s ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi >/dev/null 2>&1 \ + || ln ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi >/dev/null 2>&1 \ + || cp ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi -# TeX output -dvi: ld.dvi +ld.info: $(srcdir)/ld.texinfo configdoc.texi $(BFDDIR)/doc/bfdsumm.texi ld.dvi: $(srcdir)/ld.texinfo configdoc.texi $(BFDDIR)/doc/bfdsumm.texi - TEXINPUTS=$(BFDDIR)/doc:$$TEXINPUTS MAKEINFO='$(MAKEINFO) -I$(BFDDIR)/doc -I$(srcdir)' \ - $(TEXI2DVI) $(srcdir)/ld.texinfo -ldint.dvi: $(srcdir)/ldint.texinfo - $(TEXI2DVI) $(srcdir)/ldint.texinfo +.PHONY: install-exec-local install-data-local -# info file for online browsing -ld.info: $(srcdir)/ld.texinfo configdoc.texi $(BFDDIR)/doc/bfdsumm.texi - $(MAKEINFO) -I$(BFDDIR)/doc -I$(srcdir) -o ld.info $(srcdir)/ld.texinfo - -ldint.info: $(srcdir)/ldint.texinfo - $(MAKEINFO) -o ldint.info $(srcdir)/ldint.texinfo - -.PHONY: dvi - -#separate targets for "ms", "me", and "mm" forms of roff doc -# Try to use a recent texi2roff. v2 was put on prep in jan91. -# If you want an index, see texi2roff doc for postprocessing -# and add -i to texi2roff invocations below. -# Workarounds for texi2roff-2 (probably fixed in later texi2roff's, delete -# correspondint -e lines when later texi2roff's are current) -# + @ifinfo's deleted explicitly due to texi2roff-2 bug w nested constructs. -# + @c's deleted explicitly because texi2roff sees texinfo commands in them -# + @ (that's at-BLANK) not recognized by texi2roff, turned into blank -# + @alphaenumerate is ridiculously new, turned into @enumerate - -ld.ms: $(srcdir)/ld.texinfo - sed -e '/\\input texinfo/d' \ - -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \ - -e '/^@ifinfo/,/^@end ifinfo/d' \ - -e '/^@c/d' \ - -e 's/{.*,,/{/' \ - -e 's/@ / /g' \ - -e 's/^@alphaenumerate/@enumerate/g' \ - -e 's/^@end alphaenumerate/@end enumerate/g' \ - $(srcdir)/ld.texinfo | \ - $(TEXI2ROFF) $(TEXI2OPT) -ms | \ - sed -e 's/---/\\(em/g' \ - >>ld.ms - -# index for roff output -ld-index.ms: ld.ms - $(ROFF) -ms ld.ms 2>&1 1>/dev/null | \ - sed -e '/: warning:/d' | \ - texi2index >ld-index.ms - -# roff output (-mm) -ld.mm: $(srcdir)/ld.texinfo - sed -e '/\\input texinfo/d' \ - -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \ - -e '/^@ifinfo/,/^@end ifinfo/d' \ - -e '/^@c/d' \ - -e 's/{.*,,/{/' \ - -e '/@noindent/d' \ - -e 's/@ / /g' \ - -e 's/^@alphaenumerate/@enumerate/g' \ - -e 's/^@end alphaenumerate/@end enumerate/g' \ - $(srcdir)/ld.texinfo | \ - $(TEXI2ROFF) $(TEXI2OPT) -mm | \ - sed -e 's/---/\\(em/g' \ - >ld.mm - -# index for roff output -ld-index.mm: ld.mm - $(ROFF) -mm ld.mm 2>&1 1>/dev/null | \ - sed -e '/: warning:/d' | \ - texi2index >ld-index.mm - -# roff output (-me) -ld.me: $(srcdir)/ld.texinfo - sed -e '/\\input texinfo/d' \ - -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \ - -e '/^@ifinfo/,/^@end ifinfo/d' \ - -e '/^@c/d' \ - -e 's/{.*,,/{/' \ - -e 's/@ / /g' \ - -e 's/^@alphaenumerate/@enumerate/g' \ - -e 's/^@end alphaenumerate/@end enumerate/g' \ - $(srcdir)/ld.texinfo | \ - $(TEXI2ROFF) $(TEXI2OPT) -me | \ - sed -e 's/---/\\(em/g' \ - >>ld.me - -# index for roff output -ld-index.me: ld.me - $(ROFF) -me ld.me 2>&1 1>/dev/null | \ - sed -e '/: warning:/d' | \ - texi2index >ld-index.me - -stage1: force - -mkdir stage1 - -mv -f $(STAGESTUFF) $(LD_PROG) stage1 - -(cd stage1 ; ln -s $(LD_PROG) ld) - -stage2: force - -mkdir stage2 - -mv -f $(STAGESTUFF) $(LD_PROG) stage2 - -(cd stage2 ; ln -s $(LD_PROG) ld) - -stage3: force - -mkdir stage3 - -mv -f $(STAGESTUFF) $(LD_PROG) stage3 - -(cd stage3 ; ln -s $(LD_PROG) ld) - -against = stage2 - -comparison: force - for i in $(STAGESTUFF) $(LD_PROG) ; do cmp $$i $(against)/$$i ; done - -de-stage1: force - -(cd stage1 ; mv -f * ..) - -rm ld - -rmdir stage1 - -de-stage2: force - -(cd stage2 ; mv -f * ..) - -rm ld - -rmdir stage2 - -de-stage3: force - -(cd stage3 ; mv -f * ..) - -rm ld - -rmdir stage3 - -.PHONY: stage1 stage2 stage3 comparison de-stage1 de-stage2 de-stage3 - -# Stuff that should be included in a distribution: -LDDISTSTUFF = ldgram.c ldgram.h ldlex.c -diststuff: $(LDDISTSTUFF) info - -mostlyclean: - -rm -f $(STAGESTUFF) ld.?? ld.??? ldlex.[qp] - -rm -f ld ld1 ld2 ld3 *.o y.output cdtest cdtest.out cdtest.tmp - -rm -f cdtest-ur cdtest-ur.out cdtest-ur.tmp crtbegin.o crtend.o - -rm -f ldemul-list.h - -rm -fr tmpdir -clean: mostlyclean - -rm -f $(LD_PROG) -distclean: clean - -rm -f Makefile config.status TAGS site.exp site.bak config.cache - -rm -f config.h stamp-h config.log - -rm -rf ldscripts -maintainer-clean realclean: clean distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -rm -f $(GENERATED_CFILES) $(GENERATED_HFILES) - -rm -f $(LDDISTSTUFF) *.info* configdoc.texi - -.PHONY: diststuff mostlyclean clean distclean realclean - -lintlog:$(LINTSOURCES) Makefile - $(LINT) -abhxzn $(LINTFLAGS) $(LINTSOURCES) \ -| grep -v "pointer casts may be troublesome" \ -| grep -v "possible pointer alignment problem" \ -| grep -v "ignore" \ -| grep -v "conversion from long may lose accuracy" \ -| grep -v "warning: constant argument to NOT" \ -| grep -v "enumeration type clash, operator CAST" \ -| grep -v "warning: constant in conditional context"\ -| grep -v "archive\.c" - - -TAGS: - etags -t $(srcdir)/*.[chly] *.[chly] - - -install: ld.new$(EXEEXT) installdirs - n=`echo ld | sed '$(program_transform_name)'`; \ - $(INSTALL_PROGRAM) ld.new$(EXEEXT) $(bindir)/$$n$(EXEEXT); \ - $(INSTALL_DATA) $(srcdir)/ld.1 $(man1dir)/$$n.1; \ - rm -f $(tooldir)/bin/ld$(EXEEXT); \ - ln $(bindir)/$$n $(tooldir)/bin/ld$(EXEEXT) >/dev/null 2>/dev/null \ - || $(INSTALL_PROGRAM) ld.new$(EXEEXT) $(tooldir)/bin/ld$(EXEEXT) - for f in ldscripts/*; do \ - $(INSTALL_DATA) $$f $(scriptdir)/$$f ; \ +install-exec-local: ld-new$(EXEEXT) + $(mkinstalldirs) $(bindir) $(tooldir)/bin + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/-new//'|sed '$(transform)'`"; \ + $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/-new//'|sed '$(transform)'`; \ + else :; fi; \ done + rm -f $(tooldir)/bin/ld$(EXEEXT) + n=`echo ld | sed '$(transform)'`; \ + ln $(bindir)/$$n$(EXEEXT) $(tooldir)/bin/ld$(EXEEXT) >/dev/null 2>/dev/null \ + || $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(tooldir)/bin/ld$(EXEEXT) -installdirs: - $(SHELL) $(srcdir)/../mkinstalldirs $(bindir) $(man1dir) $(scriptdir)/ldscripts $(tooldir)/bin - -install-info: ld.info - $(SHELL) $(srcdir)/../mkinstalldirs $(infodir) - if [ -r ld.info ]; then \ - dir=. ; \ - else \ - dir=$(srcdir) ; \ - fi ; \ - for i in `cd $$dir ; echo ld.info*` ; do \ - $(INSTALL_DATA) $$dir/$$i $(infodir)/$$i ; \ +install-data-local: + $(mkinstalldirs) $(scriptdir) + for f in ldscripts/*; do \ + $(INSTALL_DATA) $$f $(scriptdir)/$$f ; \ done -clean-info: - -rm -rf *.info* - -.PHONY: install installdirs install-info clean-info - # Targets to rebuild dependencies in this Makefile. # Have to get rid of .dep1 here so that "$?" later includes all of $(CFILES). .dep: dep.sed $(CFILES) $(HFILES) $(GENERATED_CFILES) $(GENERATED_HFILES) config.h @@ -997,7 +1128,7 @@ clean-info: .dep1: $(CFILES) $(GENERATED_CFILES) rm -f .dep2 echo '# DO NOT DELETE THIS LINE -- mkdep uses it.' > .dep2 - $(DEP) -f .dep2 $(ALL_CFLAGS) $? + $(DEP) -f .dep2 $(INCLUDES) $? $(srcdir)/../move-if-change .dep2 .dep1 dep.sed: dep-in.sed config.status @@ -1015,23 +1146,12 @@ dep-in: .dep cat .dep >> tmp-Makefile.in $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in -.PHONY: dep dep-in - -# Dummy target to force execution of dependent targets. -# -force: +dep-am: .dep + sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.am > tmp-Makefile.am + cat .dep >> tmp-Makefile.am + $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am -.PHONY: force - -Makefile: Makefile.in config.status - CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status - -config.h: stamp-h ; @true -stamp-h: config.in config.status - CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status - -config.status: configure configure.host configure.tgt - $(SHELL) ./config.status --recheck +.PHONY: dep dep-in dep-am # What appears below is generated by a hacked mkdep using gcc -MM. @@ -1093,3 +1213,7 @@ ldlex.o: ldlex.c ../bfd/bfd.h sysdep.h config.h $(INCDIR)/fopen-same.h \ ldmain.h # IF YOU PUT ANYTHING HERE IT WILL GO AWAY + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ld/acconfig.h b/ld/acconfig.h index 6034cad..c627d7f 100644 --- a/ld/acconfig.h +++ b/ld/acconfig.h @@ -1,4 +1,10 @@ +/* Name of package. */ +#undef PACKAGE + +/* Version of package. */ +#undef VERSION + /* Whether strstr must be declared even if is included. */ #undef NEED_DECLARATION_STRSTR diff --git a/ld/acinclude.m4 b/ld/acinclude.m4 new file mode 100644 index 0000000..71b09b9 --- /dev/null +++ b/ld/acinclude.m4 @@ -0,0 +1 @@ +sinclude(../bfd/acinclude.m4) diff --git a/ld/configure.in b/ld/configure.in index 2443dbc..6d5d896 100644 --- a/ld/configure.in +++ b/ld/configure.in @@ -3,6 +3,12 @@ dnl AC_PREREG(2.5) AC_INIT(ldmain.c) +AC_CANONICAL_SYSTEM + +AM_INIT_AUTOMAKE(ld, 2.8.2) + +AM_PROG_LIBTOOL + AC_ARG_ENABLE(targets, [ --enable-targets alternative target configurations], [case "${enableval}" in @@ -11,14 +17,6 @@ AC_ARG_ENABLE(targets, no) enable_targets= ;; *) enable_targets=$enableval ;; esac])dnl -AC_ARG_ENABLE(shared, -[ --enable-shared build shared BFD library], -[case "${enableval}" in - yes) shared=true ;; - no) shared=false ;; - *bfd*) shared=true ;; - *) shared=false ;; -esac])dnl AC_ARG_ENABLE(64-bit-bfd, [ --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)], [case "${enableval}" in @@ -27,62 +25,35 @@ AC_ARG_ENABLE(64-bit-bfd, *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;; esac],[want64=false])dnl -AC_CONFIG_HEADER(config.h:config.in) +AM_CONFIG_HEADER(config.h:config.in) -AC_CONFIG_AUX_DIR(`cd $srcdir/..; pwd`) -AC_CANONICAL_SYSTEM if test -z "$target" ; then AC_MSG_ERROR(Unrecognized target system type; please check config.sub.) fi if test -z "$host" ; then AC_MSG_ERROR(Unrecognized host system type; please check config.sub.) fi -AC_ARG_PROGRAM # host-specific stuff: AC_PROG_CC -AC_PROG_INSTALL -CY_CYGWIN32 -CY_EXEEXT +AM_PROG_INSTALL +AM_CYGWIN32 +AM_EXEEXT + +AC_PROG_YACC +AC_PROG_LEX +AC_DECL_YYTEXT + +AM_MAINTAINER_MODE . ${srcdir}/configure.host -AC_SUBST(HLDFLAGS) -AC_SUBST(HLDENV) -AC_SUBST(RPATH_ENVVAR) AC_SUBST(HDEFINES) AC_SUBST(HOSTING_CRT0) AC_SUBST(HOSTING_LIBS) AC_SUBST(NATIVE_LIB_DIRS) -# For most hosts we can use a simple definition to pick up the BFD and -# opcodes libraries. However, if we are building shared libraries, we -# need to handle some hosts specially. -BFDLIB='-L../bfd -lbfd' -case "${host}" in -*-*-sunos*) - # On SunOS, we must link against the name we are going to install, - # not -lbfd, since SunOS does not support SONAME. - if test "${shared}" = "true"; then - BFDLIB='-L../bfd -l`echo bfd | sed '"'"'$(program_transform_name)'"'"'`' - fi - ;; -alpha*-*-osf*) - # On Alpha OSF/1, the native linker searches all the -L - # directories for any LIB.so files, and only then searches for any - # LIB.a files. That means that if there is an installed - # libbfd.so, but this build is not done with --enable-shared, the - # link will wind up being against the install libbfd.so rather - # than the newly built libbfd. To avoid this, we must explicitly - # link against libbfd.a when --enable-shared is not used. - if test "${shared}" != "true"; then - BFDLIB='../bfd/libbfd.a' - fi - ;; -esac -AC_SUBST(BFDLIB) - AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h) AC_CHECK_FUNCS(sbrk) AC_HEADER_DIRENT @@ -152,5 +123,4 @@ else fi AC_SUBST(EMULATION_OFILES) -AC_OUTPUT(Makefile, -[case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac]) +AC_OUTPUT(Makefile) diff --git a/ld/stamp-h.in b/ld/stamp-h.in new file mode 100644 index 0000000..9788f70 --- /dev/null +++ b/ld/stamp-h.in @@ -0,0 +1 @@ +timestamp -- 2.7.4