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

# Use this when flex is working correctly.
: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
#:ldlex.c \Option-f  "{s}"mpw-ldlex.c
#	Catenate "{s}"mpw-ldlex.c >: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  all install-only

install-only \Option-f
	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

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