From b5b2c886499ed688cf7a87faad7088ade34958ef Mon Sep 17 00:00:00 2001 From: Stan Shebs Date: Wed, 26 Jan 1994 04:17:05 +0000 Subject: [PATCH] Tue Jan 25 19:54:19 1994 Stan Shebs (shebs@andros.cygnus.com) * mpw-config.in: New file, MPW configuration fragment. * mpw-build.in: New file, MPW build script fragment. * mpw-make.in: New file, MPW makefile fragment. (This file is semi-automatically generated from Makefile.in.) * ldfile.c (slash): If MPW, set to `:'. * ldlex.l (TRUE_FALSE_ALREADY_DEFINED): If MPW, set this to prevent redefinition errors. --- ld/ChangeLog.mpw | 10 + ld/ldfile.c | 36 ++- ld/ldlex.l | 20 +- ld/mpw-build.in | 48 ++++ ld/mpw-config.in | 1 + ld/mpw-make.in | 708 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 810 insertions(+), 13 deletions(-) create mode 100644 ld/ChangeLog.mpw create mode 100644 ld/mpw-build.in create mode 100644 ld/mpw-config.in create mode 100644 ld/mpw-make.in diff --git a/ld/ChangeLog.mpw b/ld/ChangeLog.mpw new file mode 100644 index 0000000..b2e64f3 --- /dev/null +++ b/ld/ChangeLog.mpw @@ -0,0 +1,10 @@ +Tue Jan 25 19:54:19 1994 Stan Shebs (shebs@andros.cygnus.com) + + * mpw-config.in: New file, MPW configuration fragment. + * mpw-build.in: New file, MPW build script fragment. + * mpw-make.in: New file, MPW makefile fragment. + (This file is semi-automatically generated from Makefile.in.) + * ldfile.c (slash): If MPW, set to `:'. + * ldlex.l (TRUE_FALSE_ALREADY_DEFINED): If MPW, set this to + prevent redefinition errors. + diff --git a/ld/ldfile.c b/ld/ldfile.c index 4c4af01..6bcca03 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c @@ -31,22 +31,30 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "ldexp.h" #include "ldlang.h" #include "ldfile.h" -#include "ldsym.h" #include "ldmain.h" #include "ldlex.h" #include char *ldfile_input_filename; -CONST char * ldfile_output_machine_name =""; +const char *ldfile_output_machine_name = ""; unsigned long ldfile_output_machine; enum bfd_architecture ldfile_output_architecture; +/* start-sanitize-mpw */ +#ifndef MPW +/* end-sanitize-mpw */ #ifdef VMS char *slash = ""; #else char *slash = "/"; #endif +/* start-sanitize-mpw */ +#else /* MPW */ +/* The MPW path char is a colon. */ +char *slash = ":"; +#endif /* MPW */ +/* end-sanitize-mpw */ @@ -70,7 +78,11 @@ typedef struct search_arch static search_arch_type *search_arch_head; static search_arch_type **search_arch_tail_ptr = &search_arch_head; - +static bfd *cached_bfd_openr PARAMS ((const char *attempt, + lang_input_statement_type *entry)); +static bfd *open_a PARAMS ((char *arch, lang_input_statement_type *entry, + char *lib, char *suffix)); +static FILE *try_open PARAMS ((char *name, char *exten)); void ldfile_add_library_path(name) @@ -85,10 +97,10 @@ char *name; } -static bfd* +static bfd * cached_bfd_openr(attempt,entry) -char *attempt; -lang_input_statement_type *entry; + const char *attempt; + lang_input_statement_type *entry; { entry->the_bfd = bfd_openr(attempt, entry->target); if (trace_file_tries == true ) { @@ -100,10 +112,10 @@ lang_input_statement_type *entry; static bfd * open_a(arch, entry, lib, suffix) -char *arch; -lang_input_statement_type *entry; -char *lib; -char *suffix; + char *arch; + lang_input_statement_type *entry; + char *lib; + char *suffix; { bfd*desc; search_dirs_type *search ; @@ -187,8 +199,8 @@ lang_input_statement_type *entry; static FILE * try_open(name, exten) -char *name; -char *exten; + char *name; + char *exten; { FILE *result; char buff[1000]; diff --git a/ld/ldlex.l b/ld/ldlex.l index cdc4249..7955ac7 100644 --- a/ld/ldlex.l +++ b/ld/ldlex.l @@ -26,6 +26,12 @@ This was written by steve chamberlain #include #include +/* start-sanitize-mpw */ +#ifdef MPW +/* Prevent enum redefinition problems. */ +#define TRUE_FALSE_ALREADY_DEFINED +#endif /* MPW */ +/* end-sanitize-mpw */ #include "bfd.h" #include "sysdep.h" #include "ld.h" @@ -121,6 +127,10 @@ NOCFILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\$\:\[\]\\\~] "-o" { return OPTION_o; } "-g" { return OPTION_g; } "-e" { return OPTION_e; } +"-e"{FILENAME} { + yylval.name = buystring(yytext+2); + return OPTION_esymbol; + } "-b" { return OPTION_b; } "-dc" { return OPTION_dc; } "-dp" { return OPTION_dp; } @@ -137,6 +147,10 @@ NOCFILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\$\:\[\]\\\~] "-c" { return OPTION_c; } "-R" { return OPTION_R; } "-u" { return OPTION_u; } +"-u"{FILENAME} { + yylval.name = buystring(yytext+2); + return OPTION_usymbol; + } "-s" { return OPTION_s; } "-S" { return OPTION_S; } "-Bstat" { return OPTION_Bstatic; } @@ -187,9 +201,13 @@ NOCFILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\$\:\[\]\\\~] return OPTION_F; } +"-y" { + return OPTION_y; + } + "-y"{FILENAME} { yylval.name = buystring(yytext+2); - return OPTION_y; + return OPTION_ysymbol; } "-A"{FILENAME} { diff --git a/ld/mpw-build.in b/ld/mpw-build.in new file mode 100644 index 0000000..45a5f32 --- /dev/null +++ b/ld/mpw-build.in @@ -0,0 +1,48 @@ +# Script fragment to build MPW GAS. + +Set BuildTarget "none" + +Loop + Break If {#} == 0 + If "{1}" =~ /--srcdir/ + Set srcdir "{2}" + Shift 1 + Else If "{1}" =~ /--topdir/ + Set topsrcdir "{2}" + Shift 1 + Else If "{1}" =~ /--prefix/ + Set prefix "{2}" + Shift 1 + Else If "{1}" =~ /-v/ + Set verify 1 + Set verifystr "-v" + Shift 1 + Else + If "{BuildTarget}" =~ /none/ + Set BuildTarget "{1}" + Else + Echo Only one build target allowed, ignoring "{1}" + End If + End If + Shift 1 +End Loop + +Set libsubdir "{libdir}"gcc-lib:"{target_canonical}":"{version}": + +If "{BuildTarget}" =~ /all/ + Echo "Set Echo 1" >all.makeout + Make >>all.makeout + all.makeout + Delete all.makeout +Else If "{BuildTarget}" =~ /install/ + If "`Exists "{prefix}"`" == "" + Echo "{prefix}" does not exist, cannot install anything + Exit 1 + End If + If "`Exists "{bindir}"`" == "" + NewFolder "{bindir}" + End If + Duplicate -y :ld.new "{bindir}"ld +Else + Echo {BuildTarget} not a valid build target +End If diff --git a/ld/mpw-config.in b/ld/mpw-config.in new file mode 100644 index 0000000..ed90274 --- /dev/null +++ b/ld/mpw-config.in @@ -0,0 +1 @@ +# Configuration fragment for LD. diff --git a/ld/mpw-make.in b/ld/mpw-make.in new file mode 100644 index 0000000..f4fb1d6 --- /dev/null +++ b/ld/mpw-make.in @@ -0,0 +1,708 @@ + +s = "{srcdir}" + +o = : + +# File in object dir can come from either the current dir or srcdir. + +"{o}" \Option-f : "{s}" + +# Default rule that puts each file into separate segment. + +.c.o \Option-f .c + {CC} {DepDir}{Default}.c {ALL_CFLAGS} {SymOptions} -s {Default} -o {TargDir}{Default}.c.o + +# Makefile for the GNU linker ld (version 2) +# Copyright (C) 1989, 90, 91, 92, 93, 1994 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., 675 Mass Ave, Cambridge, MA 02139, USA. + + +# srcdir = : +objdir = : + +prefix = :usr:local + +program_transform_name = +exec_prefix = {prefix} +bindir = {exec_prefix}:bin +libdir = {exec_prefix}:lib +tooldir = {exec_prefix}:{target_alias} +datadir = {prefix}:lib +mandir = {prefix}:man +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 +infodir = {prefix}:info +includedir = {prefix}:include +docdir = {datadir}:doc +# 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 + +SHELL = :bin:sh + +INSTALL = `cd {srcdir}; pwd`:::install.sh -c +INSTALL_PROGRAM = {INSTALL} +INSTALL_DATA = {INSTALL} +INSTALL_XFORM = {INSTALL} -t='{program_transform_name}' +INSTALL_XFORM1 = {INSTALL_XFORM} -b=.1 + +AR = ar +AR_FLAGS = qv +#CFLAGS = -g +MAKEINFO = makeinfo +TEXI2DVI = texi2dvi +RANLIB = ranlib +CC_FOR_BUILD={CC} +BISON = bison -y +LEX = flex + +# Seach 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 \Option-f usr:lib \Option-f :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 \Option-f LIB_PATH=:lib \Option-f :usr:local:lib +LIB_PATH = + +# Additional libraries which are used when ld is built native. This +# is set by some host makefile fragments. +NATIVE_LIB_DIRS = + +BASEDIR = "{srcroot}" +BFDDIR = {BASEDIR}bfd +INCDIR = {BASEDIR}include +INCLUDES = -i : -i {srcdir} -i ::bfd: -i {BFDDIR} -i {INCDIR} -i ::extra-include -i "{INCDIR}":mpw: +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} \Option-f {BFDDIR}:doc \Option-f {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 = "{o}":lib:crt0.c.o +HOSTING_LIBS = `if [ -f ::gcc:libgcc.o ] ; then echo ::gcc:libgcc.o ; else gcc -print-libgcc-file-name; fi` -lc +HOSTING_EMU = -m {EMUL} + +CXX = `if [ -f ::gcc:xgcc ] ; then \Option-d + echo ::gcc:xgcc -B::gcc:; \Option-d + else echo gcc; \Option-d + fi` +CXXFLAGS = -fgnu-linker + +# FIX_ME \Option-f using ::gcc:xgcc breaks the cdtest. +CXX = g++ + +# Setup the testing framework, if you have one +RUNTEST = runtest +RUNTEST_FLAGS = +RUNTEST_CC = `if [ -f ::gcc:xgcc ] ; then \Option-d + echo ::gcc:xgcc -B::gcc:; \Option-d + else echo gcc; \Option-d + fi` +RUNTEST_CFLAGS = {CFLAGS} +RUNTEST_CXX = `if [ -f ::gcc:xgcc ] ; then \Option-d + echo ::gcc:xgcc -B::gcc:; \Option-d + else echo gcc; \Option-d + fi` +# FIX_ME \Option-f using ::gcc:xgcc breaks the cdtest. +RUNTEST_CXX = {CXX} +RUNTEST_CXXFLAGS = {CXXFLAGS} + +# 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 + +all \Option-f {LD_PROG} +# .PHONY \Option-f all + +### Host, target, and site specific Makefile fragments come in here. +#### + +LINTFLAGS = {INCLUDES} {EXTRA_DEF} + +# The "{s}".cc suffix is used by `make check'. + +# .SUFFIXES \Option-f "{s}".y {SUFFIXES} "{s}".cc + +# Suppress smart makes who think they know how to automake Yacc files +# .y.c \Option-f + +# This rule is used for the check-cdtest target. +"{o}".cc.c.o \Option-f + {CXX} -c -i {srcdir} {CXXFLAGS} {CFLAGS} $< + +ALL_CFLAGS={INCLUDES} {HDEFINES} {TDEFINES} {CDEFINES} {CFLAGS} +"{o}".c.c.o \Option-f + {CC} -c {ALL_CFLAGS} $< + +# for self hosting +BFDLIB = ::bfd:libbfd.o +LIBIBERTY = ::libiberty:libiberty.o + +ALL_EMULATIONS = "{o}"em_lnk960.c.o "{o}"em_sun3.c.o "{o}"em_i386aout.c.o "{o}"em_go32.c.o "{o}"em_vsta.c.o \Option-d + "{o}"em_m88kbcs.c.o "{o}"em_a29k.c.o "{o}"em_news.c.o "{o}"em_hp300bsd.c.o "{o}"em_hp3hpux.c.o \Option-d + "{o}"em_h8300.c.o "{o}"em_h8300h.c.o "{o}"em_ebmon29k.c.o "{o}"em_sun4.c.o "{o}"em_gld960.c.o \Option-d + "{o}"em_m68kcoff.c.o "{o}"em_st2000.c.o "{o}"em_sa29200.c.o "{o}"em_i386mach.c.o \Option-d + "{o}"em_vanilla.c.o "{o}"em_i386coff.c.o "{o}"em_z8ksim.c.o "{o}"em_mipslit.c.o "{o}"em_i386bsd.c.o \Option-d + "{o}"em_mipsbig.c.o "{o}"em_mipsbsd.c.o "{o}"em_mipsidt.c.o "{o}"em_vax.c.o "{o}"em_h8500.c.o \Option-d + "{o}"em_hppaosf.c.o "{o}"em_mipsidtl.c.o "{o}"em_sh.c.o "{o}"em_elf_i386.c.o "{o}"em_alpha.c.o \Option-d + "{o}"em_i386lynx.c.o "{o}"em_m68klynx.c.o "{o}"em_sparclynx.c.o "{o}"em_coff_sparc.c.o \Option-d + "{o}"em_delta68.c.o \Option-d + {OTHER_EMULATIONS} + +# This is now set by configure.in. +EMULATION_OFILES = "{o}"em_mipsidt.c.o + +CFILES = "{s}"ldctor.c "{s}"ldemul.c "{s}"ldexp.c "{s}"ldfile.c "{s}"ldlang.c \Option-d + ldmain.c "{s}"ldmisc.c "{s}"ldver.c "{s}"ldwrite.c "{s}"lexsup.c \Option-d + mri.c + + +HFILES = "{s}"config.h "{s}"ld.h "{s}"ldctor.h "{s}"ldemul.h "{s}"ldexp.h "{s}"ldfile.h \Option-d + ldlang.h "{s}"ldlex.h "{s}"ldmain.h "{s}"ldmisc.h "{s}"ldver.h \Option-d + ldwrite.h "{s}"mri.h + +GENERATED_CFILES = :ldgram.c :ldlex.c +GENERATED_HFILES = :ldgram.h :ldemul-list.h + +OFILES = "{o}"ldgram.c.o "{o}"ldlex.c.o "{o}"lexsup.c.o "{o}"ldlang.c.o "{o}"mri.c.o "{o}"ldctor.c.o "{o}"ldmain.c.o \Option-d + "{o}"ldwrite.c.o "{o}"ldexp.c.o "{o}"ldemul.c.o "{o}"ldver.c.o "{o}"ldmisc.c.o \Option-d + "{o}"ldfile.c.o {EMULATION_OFILES} + +LINTSOURCES = {CFILES} {GENERATED_CFILES} em_\Option-x.c + +STAGESTUFF = "{o}"\Option-x.c.o ldscripts:\Option-x em_\Option-x.c {GENERATED_CFILES} {GENERATED_HFILES} + +info \Option-f ld.info +# .PHONY \Option-f info + +:ldgram.h :ldgram.c \Option-f "{s}"ldgram.y + {BISON} {BISONFLAGS} -d "{srcdir}"ldgram.y + Rename -y y.tab.c :ldgram.c + Rename -y y.tab.h :ldgram.h + +# EMUL is the name of a file in the emulparams subdir, without the .sh. +"{o}"ldmain.c.o \Option-f "{s}"ldmain.c config.status + {CC} {INCLUDES} {HDEFINES} {TDEFINES} {CDEFINES} -d DEFAULT_EMULATION=\Option-d"{EMUL}\Option-d" -d SCRIPTDIR=\Option-d"{scriptdir}\Option-d" {CFLAGS} "{s}"ldmain.c -o "{o}"ldmain.c.o + fi + + +:ldlex.c \Option-f "{s}"ldlex.l + {LEX} -i -Cem "{srcdir}"ldlex.l + Catenate :lex.yy.c >:ldlex.c.new + Delete -y :lex.yy.c + Rename -y :ldlex.c.new :ldlex.c + +# These all start with em_ so 'make clean' can find them. + +GENSCRIPTS = {SHELL} "{srcdir}"genscripts.sh {srcdir} {libdir} {host_alias} {target_alias} {EMUL} "{NATIVE_LIB_DIRS}" +GEN_DEPENDS = "{srcdir}"genscripts.sh + +em_sun4.c \Option-f "{srcdir}"emulparams:sun4.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS} + {GENSCRIPTS} sun4 +em_sun3.c \Option-f "{srcdir}"emulparams:sun3.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS} + {GENSCRIPTS} sun3 +em_vsta.c \Option-f "{srcdir}"emulparams:vsta.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS} + {GENSCRIPTS} vsta +em_go32.c \Option-f "{srcdir}"emulparams:go32.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS} + {GENSCRIPTS} go32 +em_news.c \Option-f "{srcdir}"emulparams:news.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS} + {GENSCRIPTS} news +em_vax.c \Option-f "{srcdir}"emulparams:vax.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS} + {GENSCRIPTS} vax +em_hp300bsd.c \Option-f "{srcdir}"emulparams:hp300bsd.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS} + {GENSCRIPTS} hp300bsd +em_hp3hpux.c \Option-f "{srcdir}"emulparams:hp3hpux.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS} + {GENSCRIPTS} hp3hpux +em_hppaosf.c \Option-f "{srcdir}"emulparams:hppaosf.sh \Option-d + "{srcdir}"emultempl:hppaosf.em "{srcdir}"scripttempl:hppaosf.sc {GEN_DEPENDS} + {GENSCRIPTS} hppaosf +em_i386aout.c \Option-f "{srcdir}"emulparams:i386aout.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS} + {GENSCRIPTS} i386aout +em_i386mach.c \Option-f "{srcdir}"emulparams:i386mach.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS} + {GENSCRIPTS} i386mach +em_ebmon29k.c \Option-f "{srcdir}"emulparams:ebmon29k.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:ebmon29k.sc {GEN_DEPENDS} + {GENSCRIPTS} ebmon29k +em_sa29200.c \Option-f "{srcdir}"emulparams:sa29200.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:sa29200.sc {GEN_DEPENDS} + {GENSCRIPTS} sa29200 +em_a29k.c \Option-f "{srcdir}"emulparams:a29k.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:a29k.sc {GEN_DEPENDS} + {GENSCRIPTS} a29k +em_m88kbcs.c \Option-f "{srcdir}"emulparams:m88kbcs.sh \Option-d + "{srcdir}"emultempl:m88kbcs.em "{srcdir}"scripttempl:m88kbcs.sc {GEN_DEPENDS} + {GENSCRIPTS} m88kbcs +em_h8300.c \Option-f "{srcdir}"emulparams:h8300.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:h8300.sc {GEN_DEPENDS} + {GENSCRIPTS} h8300 +em_h8300h.c \Option-f "{srcdir}"emulparams:h8300h.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:h8300h.sc {GEN_DEPENDS} + {GENSCRIPTS} h8300h +em_h8500.c \Option-f "{srcdir}"emulparams:h8500.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:h8500.sc {GEN_DEPENDS} + {GENSCRIPTS} h8500 +em_sh.c \Option-f "{srcdir}"emulparams:sh.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:sh.sc {GEN_DEPENDS} + {GENSCRIPTS} sh +em_st2000.c \Option-f "{srcdir}"emulparams:st2000.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:st2000.sc {GEN_DEPENDS} + {GENSCRIPTS} st2000 +em_z8ksim.c \Option-f "{srcdir}"emulparams:z8ksim.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:z8ksim.sc {GEN_DEPENDS} + {GENSCRIPTS} z8ksim +em_vanilla.c \Option-f "{srcdir}"emulparams:vanilla.sh \Option-d + "{srcdir}"emultempl:vanilla.em "{srcdir}"scripttempl:vanilla.sc {GEN_DEPENDS} + {GENSCRIPTS} vanilla +em_lnk960.c \Option-f "{srcdir}"emulparams:lnk960.sh \Option-d + "{srcdir}"emultempl:lnk960.em "{srcdir}"scripttempl:i960.sc {GEN_DEPENDS} + {GENSCRIPTS} lnk960 +em_gld960.c \Option-f "{srcdir}"emulparams:gld960.sh \Option-d + "{srcdir}"emultempl:gld960.em "{srcdir}"scripttempl:i960.sc {GEN_DEPENDS} + {GENSCRIPTS} gld960 +em_m68kcoff.c \Option-f "{srcdir}"emulparams:m68kcoff.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:m68kcoff.sc {GEN_DEPENDS} + {GENSCRIPTS} m68kcoff +em_delta68.c \Option-f "{srcdir}"emulparams:delta68.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:delta68.sc {GEN_DEPENDS} + {GENSCRIPTS} delta68 +em_m68klynx.c \Option-f "{srcdir}"emulparams:m68klynx.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:m68kcoff.sc {GEN_DEPENDS} + {GENSCRIPTS} m68klynx +em_i386coff.c \Option-f "{srcdir}"emulparams:i386coff.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:i386coff.sc {GEN_DEPENDS} + {GENSCRIPTS} i386coff +em_i386lynx.c \Option-f "{srcdir}"emulparams:i386lynx.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:i386coff.sc {GEN_DEPENDS} + {GENSCRIPTS} i386lynx +em_sparclynx.c \Option-f "{srcdir}"emulparams:sparclynx.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:sparccoff.sc {GEN_DEPENDS} + {GENSCRIPTS} sparclynx +em_mipslit.c \Option-f "{srcdir}"emulparams:mipslit.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:mips.sc {GEN_DEPENDS} + {GENSCRIPTS} mipslit +em_i386bsd.c \Option-f "{srcdir}"emulparams:i386bsd.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS} + {GENSCRIPTS} i386bsd +em_mipsbig.c \Option-f "{srcdir}"emulparams:mipsbig.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:mips.sc {GEN_DEPENDS} + {GENSCRIPTS} mipsbig +em_mipsbsd.c \Option-f "{srcdir}"emulparams:mipsbsd.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS} + {GENSCRIPTS} mipsbsd +em_mipsidt.c \Option-f "{srcdir}"emulparams:mipsidt.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:mips.sc {GEN_DEPENDS} + {GENSCRIPTS} mipsidt +em_mipsidtl.c \Option-f "{srcdir}"emulparams:mipsidtl.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:mips.sc {GEN_DEPENDS} + {GENSCRIPTS} mipsidtl +em_elf_i386.c \Option-f "{srcdir}"emulparams:elf_i386.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:elf.sc {GEN_DEPENDS} + {GENSCRIPTS} elf_i386 +em_elf32mipb.c \Option-f "{srcdir}"emulparams:elf32mipb.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:elf.sc {GEN_DEPENDS} + {GENSCRIPTS} elf32mipb +em_alpha.c \Option-f "{srcdir}"emulparams:alpha.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:alpha.sc {GEN_DEPENDS} + {GENSCRIPTS} alpha +em_coff_sparc.c \Option-f "{srcdir}"emulparams:coff_sparc.sh \Option-d + "{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:sparccoff.sc {GEN_DEPENDS} + {GENSCRIPTS} coff_sparc + +{LD_PROG} \Option-f {OFILES} {BFDLIB} {LIBIBERTY} + Link {LDFLAGS} -o {LD_PROG} {OFILES} {BFDLIB} {LIBIBERTY} {EXTRALIBS} + +# The generated emulation files mostly have the same dependencies. +{EMULATION_OFILES} \Option-f ::bfd:bfd.h ::bfd:sysdep.h "{INCDIR}":bfdlink.h \Option-d + "{s}"ld.h "{s}"ldmain.h "{s}"ldemul.h "{s}"ldfile.h "{s}"ldmisc.h "{s}"ldexp.h "{s}"ldlang.h "{s}"config.h "{s}"ldctor.h + +# These targets are for the dejagnu testsuites. The file site.exp +# contains global variables that all the testsuites will use. +# There is a current debate as to how and where to generate test +# outputs. Rob feels each test should be built in {objdir} with +# a unique name. Cassidy feels that we should create a directory +# called {objdir}:tmpdir and do the work there. This way, there +# is no potential conflict with existing objects, ie \Option-f as there +# was in the past with "{o}"loop.c.o and "{o}"flow.c.o, and, there is no chance +# of filling :tmp, which would cause other problems. Lastly, this +# allow retention of the testcase name making debugging easier. +# +testdir = {objdir}:tmpdir + +site.exp \Option-f :config.status Makefile + @if [ -d {testdir} ]; then true; else mkdir {testdir}; fi + @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_canonical}" >> :tmp0 + @echo "set target_triplet {target_canonical}" >> :tmp0 + @echo "# DIRECTORY INFO" >> :tmp0 + @echo "set objdir `pwd`" >> :tmp0 + @echo "set tmpdir `cd {testdir}; pwd`" >> :tmp0 + @echo "" >> :tmp0 + @echo "# LD DEPENDANCIES" >> :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 \Option-d + e '1,:^## Variables generated by.\Option-x##: d' >> site.exp + @rm -f :tmp? + +check \Option-f ld.new site.exp + {RUNTEST} --tool ld \Option-d + -srcdir "{srcdir}"testsuite {RUNTEST_FLAGS} \Option-d + CC="{RUNTEST_CC}" CFLAGS="{RUNTEST_CFLAGS}" \Option-d + CXX="{RUNTEST_CXX}" CXXFLAGS="{RUNTEST_CXXFLAGS}" + +installcheck \Option-f +# .PHONY \Option-f check installcheck + +# Rules for testing by relinking ld itself. + +"{o}"ld-partial.c.o \Option-f ld.new + :ld.new {HOSTING_EMU} -o "{o}"ld-partial.c.o -r {OFILES} +ld1 \Option-f "{o}"ld-partial.c.o + :ld.new {HOSTING_EMU} -o ld1 {HOSTING_CRT0} "{o}"ld-partial.c.o {BFDLIB} {LIBIBERTY} {HOSTING_LIBS} + +ld1-full \Option-f ld.new + :ld.new {HOSTING_EMU} -o ld1-full {HOSTING_CRT0} {OFILES} {BFDLIB} {LIBIBERTY} {HOSTING_LIBS} + +ld2 \Option-f ld1 + :ld1 {HOSTING_EMU} -o ld2 {HOSTING_CRT0} {OFILES} {BFDLIB} {LIBIBERTY} {HOSTING_LIBS} + +ld3 \Option-f ld2 + :ld2 {HOSTING_EMU} -o ld3 {HOSTING_CRT0} {OFILES} {BFDLIB} {LIBIBERTY} {HOSTING_LIBS} + +bootstrap \Option-f ld3 + cmp ld2 ld3 + +# .PHONY \Option-f bootstrap + +# A test program for C++ constructors and destructors. + +cdtest \Option-f "{o}"cdtest-main.c.o "{o}"cdtest-func.c.o "{o}"cdtest-foo.c.o ld.new + :ld.new {HOSTING_EMU} -o cdtest {HOSTING_CRT0} \Option-d + "{o}"cdtest-main.c.o "{o}"cdtest-func.c.o "{o}"cdtest-foo.c.o {HOSTING_LIBS} + +check-cdtest \Option-f cdtest "{srcdir}"cdtest.exp + :cdtest "{o}">cdtest.c.out + diff "{srcdir}"cdtest.exp "{o}"cdtest.c.out + +# .PHONY \Option-f 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 \Option-f {DOCVER}-doc.texi + # ln -s "{srcdir}"{DOCVER}-doc.texi :configdoc.texi || \Option-d + # ln "{srcdir}"{DOCVER}-doc.texi :configdoc.texi || \Option-d + Duplicate -d -y "{srcdir}"{DOCVER}-doc.texi :configdoc.texi + +# TeX output +dvi \Option-f ld.dvi +ld.dvi \Option-f "{srcdir}"ld.texinfo "{srcdir}"configdoc.texi {BFDDIR}:doc:bfdsumm.texi + TEXINPUTS={BFDDIR}:doc \Option-f $$TEXINPUTS {TEXI2DVI} "{srcdir}"ld.texinfo + +ldint.dvi \Option-f "{srcdir}"ldint.texinfo + {TEXI2DVI} "{srcdir}"ldint.texinfo + +# info file for online browsing +ld.info \Option-f "{srcdir}"ld.texinfo configdoc.texi {BFDDIR}:doc:bfdsumm.texi + {MAKEINFO} -i {BFDDIR}:doc -o ld.info "{srcdir}"ld.texinfo + +ldint.info \Option-f "{srcdir}"ldint.texinfo + {MAKEINFO} -o ldint.info "{srcdir}"ldint.texinfo + +# .PHONY \Option-f 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 \Option-f "{srcdir}"ld.texinfo + sed -e ':\\input texinfo:d' \Option-d + e ':@c TEXI2ROFF-KILL:,:@c END TEXI2ROFF-KILL:d' \Option-d + e ':^end ifinfo:d' \Option-d + e ':^@c:d' \Option-d + e 's:{.\Option-x,,:{:' \Option-d + e 's:@ : :g' \Option-d + e 's:^enumerate:g' \Option-d + e 's:^@end alphaenumerate:@end enumerate:g' \Option-d + "{srcdir}"ld.texinfo | \Option-d + {TEXI2ROFF} {TEXI2OPT} -ms | \Option-d + sed -e 's:---:\\(em:g' \Option-d + >>ld.ms + +# index for roff output +ld-index.ms \Option-f ld.ms + {ROFF} -ms ld.ms 2>&1 1>:dev:null | \Option-d + sed -e ': \Option-f warning \Option-f :d' | \Option-d + texi2index >ld-index.ms + +# roff output (-mm) +ld.mm \Option-f "{srcdir}"ld.texinfo + sed -e ':\\input texinfo:d' \Option-d + e ':@c TEXI2ROFF-KILL:,:@c END TEXI2ROFF-KILL:d' \Option-d + e ':^end ifinfo:d' \Option-d + e ':^@c:d' \Option-d + e 's:{.\Option-x,,:{:' \Option-d + e ':@noindent:d' \Option-d + e 's:@ : :g' \Option-d + e 's:^enumerate:g' \Option-d + e 's:^@end alphaenumerate:@end enumerate:g' \Option-d + "{srcdir}"ld.texinfo | \Option-d + {TEXI2ROFF} {TEXI2OPT} -mm | \Option-d + sed -e 's:---:\\(em:g' \Option-d + >ld.mm + +# index for roff output +ld-index.mm \Option-f ld.mm + {ROFF} -mm ld.mm 2>&1 1>:dev:null | \Option-d + sed -e ': \Option-f warning \Option-f :d' | \Option-d + texi2index >ld-index.mm + +# roff output (-me) +ld.me \Option-f "{srcdir}"ld.texinfo + sed -e ':\\input texinfo:d' \Option-d + e ':@c TEXI2ROFF-KILL:,:@c END TEXI2ROFF-KILL:d' \Option-d + e ':^end ifinfo:d' \Option-d + e ':^@c:d' \Option-d + e 's:{.\Option-x,,:{:' \Option-d + e 's:@ : :g' \Option-d + e 's:^enumerate:g' \Option-d + e 's:^@end alphaenumerate:@end enumerate:g' \Option-d + "{srcdir}"ld.texinfo | \Option-d + {TEXI2ROFF} {TEXI2OPT} -me | \Option-d + sed -e 's:---:\\(em:g' \Option-d + >>ld.me + +# index for roff output +ld-index.me \Option-f ld.me + {ROFF} -me ld.me 2>&1 1>:dev:null | \Option-d + sed -e ': \Option-f warning \Option-f :d' | \Option-d + texi2index >ld-index.me + +stage1 \Option-f force + mkdir stage1 + Rename -y {STAGESTUFF} {LD_PROG} stage1 + (cd stage1 ; ln -s {LD_PROG} ld) + +stage2 \Option-f force + mkdir stage2 + Rename -y {STAGESTUFF} {LD_PROG} stage2 + (cd stage2 ; ln -s {LD_PROG} ld) + +stage3 \Option-f force + mkdir stage3 + Rename -y {STAGESTUFF} {LD_PROG} stage3 + (cd stage3 ; ln -s {LD_PROG} ld) + +against = stage2 + +comparison \Option-f force + for i in {STAGESTUFF} {LD_PROG} ; do cmp $$i {against}:$$i ; done + +de-stage1 \Option-f force + (cd stage1 ; mv -f \Option-x ..) + Delete -y ld + rmdir stage1 + +de-stage2 \Option-f force + (cd stage2 ; mv -f \Option-x ..) + Delete -y ld + rmdir stage2 + +de-stage3 \Option-f force + (cd stage3 ; mv -f \Option-x ..) + Delete -y ld + rmdir stage3 + +# .PHONY \Option-f stage1 stage2 stage3 comparison de-stage1 de-stage2 de-stage3 + +# Stuff that should be included in a distribution \Option-f +LDDISTSTUFF = :ldgram.c :ldgram.h :ldlex.c +diststuff \Option-f {LDDISTSTUFF} + +mostlyclean \Option-f + Delete -y {STAGESTUFF} ld.?? ld.??? ldlex.[qp] + Delete -y ld ld1 ld2 ld3 "{o}"\Option-x.c.o "{o}"y.c.output cdtest "{o}"cdtest.c.out +clean \Option-f mostlyclean + Delete -y {LD_PROG} +distclean \Option-f + Delete -yr Makefile config.status TAGS "{s}"sysdep.h ldscripts site.exp \Option-d + {STAGESTUFF} ld.?? ld.??s ld.toc ld.aux "{s}"ld.log ldlex.[qp] \Option-d + {LD_PROG} ld ld1 ld2 ld3 "{o}"\Option-x.c.o "{o}"y.c.output cdtest "{o}"cdtest.c.out +realclean \Option-f clean distclean + Delete -y {LDDISTSTUFF} + +# .PHONY \Option-f diststuff mostlyclean clean distclean realclean + + + +TAGS \Option-f + etags -t "{srcdir}"\Option-x.[chly] \Option-x.[chly] + + +install \Option-f + {INSTALL_XFORM} ld.new {bindir}:ld + {INSTALL_XFORM1} "{srcdir}"ld.1 {man1dir}:ld.1 + for f in ldscripts:\Option-x; do \Option-d + {INSTALL_DATA} $$f {scriptdir}:$$f ; \Option-d + done + n=`t='{program_transform_name}'; echo ld | sed -e "" $$t`; \Option-d + Delete -y {tooldir}:bin:ld; \Option-d + # ln {bindir}:$$n {tooldir}:bin:ld \Option-d + || {INSTALL_PROGRAM} ld.new {tooldir}:bin:ld + +install-info \Option-f + for i in ld.info\Option-x ; do \Option-d + {INSTALL_DATA} $$i {infodir}:$$i ; \Option-d + done + +clean-info \Option-f + Delete -y -rf \Option-x.info\Option-x + +# .PHONY \Option-f install 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}. + +# Dummy target to force execution of dependent targets. +# +force \Option-f + +# .PHONY \Option-f force + +Makefile \Option-f "{srcdir}"Makefile.in {host_makefile_frag} {target_makefile_frag} + {SHELL} :config.status + +# 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. + +"{o}"ldctor.c.o \Option-f "{s}"ldctor.c ::bfd:bfd.h "{INCDIR}":ansidecl.h \Option-d + "{INCDIR}":obstack.h ::bfd:sysdep.h "{INCDIR}":fopen-same.h \Option-d + "{INCDIR}":bfdlink.h "{s}"ld.h "{s}"ldexp.h "{s}"ldlang.h "{s}"ldmisc.h \Option-d + :ldgram.h "{s}"ldctor.h +"{o}"ldemul.c.o \Option-f "{s}"ldemul.c ::bfd:bfd.h "{INCDIR}":ansidecl.h \Option-d + "{INCDIR}":obstack.h ::bfd:sysdep.h "{INCDIR}":fopen-same.h \Option-d + "{s}"config.h "{s}"ld.h "{s}"ldemul.h "{s}"ldmisc.h "{s}"ldfile.h "{s}"ldmain.h :ldemul-list.h +"{o}"ldexp.c.o \Option-f "{s}"ldexp.c ::bfd:bfd.h "{INCDIR}":ansidecl.h \Option-d + "{INCDIR}":obstack.h ::bfd:sysdep.h "{INCDIR}":fopen-same.h \Option-d + "{INCDIR}":bfdlink.h "{s}"ld.h "{s}"ldmain.h "{s}"ldmisc.h "{s}"ldexp.h \Option-d + :ldgram.h "{s}"ldlang.h +"{o}"ldfile.c.o \Option-f "{s}"ldfile.c ::bfd:bfd.h "{INCDIR}":ansidecl.h \Option-d + "{INCDIR}":obstack.h ::bfd:sysdep.h "{INCDIR}":fopen-same.h \Option-d + "{s}"ld.h "{s}"ldmisc.h "{s}"ldexp.h "{s}"ldlang.h "{s}"ldfile.h "{s}"ldmain.h "{s}"ldlex.h +"{o}"ldlang.c.o \Option-f "{s}"ldlang.c ::bfd:bfd.h "{INCDIR}":ansidecl.h \Option-d + "{INCDIR}":obstack.h ::bfd:sysdep.h "{INCDIR}":fopen-same.h \Option-d + "{INCDIR}":bfdlink.h "{s}"ld.h "{s}"ldmain.h :ldgram.h "{s}"ldexp.h \Option-d + "{s}"ldlang.h "{s}"ldemul.h "{s}"ldlex.h "{s}"ldmisc.h "{s}"ldctor.h "{s}"ldfile.h +"{o}"ldmain.c.o \Option-f "{s}"ldmain.c ::bfd:bfd.h "{INCDIR}":ansidecl.h \Option-d + "{INCDIR}":obstack.h ::bfd:sysdep.h "{INCDIR}":fopen-same.h \Option-d + "{INCDIR}":bfdlink.h "{s}"config.h "{s}"ld.h "{s}"ldmain.h "{s}"ldmisc.h \Option-d + "{s}"ldwrite.h :ldgram.h "{s}"ldexp.h "{s}"ldlang.h "{s}"ldemul.h "{s}"ldlex.h \Option-d + "{s}"ldfile.h "{s}"ldctor.h +"{o}"ldmisc.c.o \Option-f "{s}"ldmisc.c ::bfd:bfd.h "{INCDIR}":ansidecl.h \Option-d + "{INCDIR}":obstack.h ::bfd:sysdep.h "{INCDIR}":fopen-same.h \Option-d + "{s}"ld.h "{s}"ldmisc.h "{s}"ldexp.h "{s}"ldlang.h "{s}"ldlex.h "{s}"ldmain.h "{s}"ldfile.h +"{o}"ldver.c.o \Option-f "{s}"ldver.c ::bfd:bfd.h "{INCDIR}":ansidecl.h \Option-d + "{INCDIR}":obstack.h ::bfd:sysdep.h "{INCDIR}":fopen-same.h \Option-d + "{s}"ld.h "{s}"ldver.h "{s}"ldemul.h "{s}"ldmain.h +"{o}"ldwrite.c.o \Option-f "{s}"ldwrite.c ::bfd:bfd.h "{INCDIR}":ansidecl.h \Option-d + "{INCDIR}":obstack.h ::bfd:sysdep.h "{INCDIR}":fopen-same.h \Option-d + "{INCDIR}":bfdlink.h "{s}"ld.h "{s}"ldexp.h "{s}"ldlang.h "{s}"ldwrite.h \Option-d + "{s}"ldmisc.h :ldgram.h "{s}"ldmain.h +"{o}"lexsup.c.o \Option-f "{s}"lexsup.c ::bfd:bfd.h "{INCDIR}":ansidecl.h \Option-d + "{INCDIR}":obstack.h ::bfd:sysdep.h "{INCDIR}":fopen-same.h \Option-d + "{s}"ldlex.h "{s}"ld.h "{s}"ldexp.h :ldgram.h "{s}"ldmisc.h +"{o}"mri.c.o \Option-f "{s}"mri.c ::bfd:bfd.h "{INCDIR}":ansidecl.h "{INCDIR}":obstack.h \Option-d + ::bfd:sysdep.h "{INCDIR}":fopen-same.h "{s}"ld.h "{s}"ldexp.h \Option-d + "{s}"ldlang.h "{s}"ldmisc.h "{s}"mri.h :ldgram.h +"{o}"ldgram.c.o \Option-f :ldgram.c ::bfd:bfd.h "{INCDIR}":ansidecl.h \Option-d + "{INCDIR}":obstack.h ::bfd:sysdep.h "{INCDIR}":fopen-same.h \Option-d + "{INCDIR}":bfdlink.h "{s}"ld.h "{s}"ldexp.h "{s}"ldver.h "{s}"ldlang.h "{s}"ldemul.h \Option-d + "{s}"ldfile.h "{s}"ldmisc.h "{s}"ldmain.h "{s}"mri.h "{s}"ldlex.h +"{o}"ldlex.c.o \Option-f :ldlex.c ::bfd:bfd.h "{INCDIR}":obstack.h \Option-d + "{s}"ld.h :ldgram.h "{s}"ldmisc.h "{s}"ldexp.h "{s}"ldlang.h "{s}"ldfile.h "{s}"ldlex.h + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY -- 2.7.4