# Makefile for the GNU linker ld (version 2)
-# Copyright (C) 1989,1990,1991,1992,1993 Free Software Foundation, Inc.
+# Copyright (C) 1989, 90, 91, 92, 93, 1994 Free Software Foundation, Inc.
-# This file is part of GNU ld..
+# 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
ROFF = groff
#stuff for self hosting (can be overridden in config file).
-HOSTING_CRT0=/lib/crt0.o
-HOSTING_LIBS=`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc
-HOSTING_EMU=-m $(EMUL)
+HOSTING_CRT0 = /lib/crt0.o
+HOSTING_LIBS = `if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc
+HOSTING_EMU = -m $(EMUL)
CXX = `if [ -f ../gcc/xgcc ] ; then \
echo ../gcc/xgcc -B../gcc/; \
CXXFLAGS = -fgnu-linker
# FIX_ME: using ../gcc/xgcc breaks the cdtest.
-CXX= g++
+CXX = g++
# Setup the testing framework, if you have one
RUNTEST = runtest
-RUNTEST_FLAGS =
+RUNTESTFLAGS =
RUNTEST_CC = `if [ -f ../gcc/xgcc ] ; then \
echo ../gcc/xgcc -B../gcc/; \
else echo gcc; \
### Host, target, and site specific Makefile fragments come in here.
####
-LINTFLAGS = $(INCLUDES) $(EXTRA_DEF)
+LINTFLAGS = $(INCLUDES) $(EXTRA_DEF)
# The .cc suffix is used by `make check'.
.cc.o:
$(CXX) -c -I$(srcdir) $(CXXFLAGS) $(CFLAGS) $<
-ALL_CFLAGS=$(INCLUDES) $(HDEFINES) $(TDEFINES) $(CDEFINES) $(CFLAGS)
+ALL_CFLAGS = $(INCLUDES) $(HDEFINES) $(TDEFINES) $(CDEFINES) $(CFLAGS)
.c.o:
$(CC) -c $(ALL_CFLAGS) $<
BFDLIB = ../bfd/libbfd.a
LIBIBERTY = ../libiberty/libiberty.a
-ALL_EMULATIONS=em_lnk960.o em_sun3.o em_i386aout.o em_go32.o em_vsta.o \
+ALL_EMULATIONS = em_lnk960.o em_sun3.o em_i386aout.o em_go32.o em_vsta.o \
em_m88kbcs.o em_a29k.o em_news.o em_hp300bsd.o em_hp3hpux.o \
em_h8300.o em_h8300h.o em_ebmon29k.o em_sun4.o em_gld960.o \
em_m68kcoff.o em_st2000.o em_sa29200.o em_i386mach.o \
em_vanilla.o em_i386coff.o em_z8ksim.o em_mipslit.o em_i386bsd.o \
em_mipsbig.o em_mipsbsd.o em_mipsidt.o em_vax.o em_h8500.o \
- em_hppaosf.o em_mipsidtl.o em_sh.o em_elf_i386.o em_alpha.o \
+ em_h8500b.o em_h8500s.o em_h8500c.o em_h8500m.o \
+ em_hppaelf.o em_mipsidtl.o em_sh.o em_elf_i386.o em_alpha.o \
em_i386lynx.o em_m68klynx.o em_sparclynx.o em_coff_sparc.o \
- em_delta68.o \
+ em_delta68.o em_elf32ppc.o \
$(OTHER_EMULATIONS)
# This is now set by configure.in.
-#EMULATION_OFILES=${ALL_EMULATIONS}
+#EMULATION_OFILES = ${ALL_EMULATIONS}
-CFILES= ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \
+CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \
ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c \
mri.c
-HFILES= config.h ld.h ldctor.h ldemul.h ldexp.h ldfile.h \
+
+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
+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 \
+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 ${EMULATION_OFILES}
-LINTSOURCES= $(CFILES) $(GENERATED_CFILES) em_*.c
+LINTSOURCES = $(CFILES) $(GENERATED_CFILES) em_*.c
STAGESTUFF = *.o ldscripts/* em_*.c $(GENERATED_CFILES) $(GENERATED_HFILES)
$(LEX) -I -Cem $(srcdir)/ldlex.l
-sed -e '/^int.*free();/d' \
-e '/^char.*malloc();/d' \
- -e 's/malloc/ldmalloc/g' \
+ -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 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
+GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} ${host_alias} ${target_alias} ${EMUL} "$(NATIVE_LIB_DIRS)"
+GEN_DEPENDS = $(srcdir)/genscripts.sh
em_sun4.c: $(srcdir)/emulparams/sun4.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
em_hp3hpux.c: $(srcdir)/emulparams/hp3hpux.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} hp3hpux
-em_hppaosf.c: $(srcdir)/emulparams/hppaosf.sh \
- $(srcdir)/emultempl/hppaosf.em $(srcdir)/scripttempl/hppaosf.sc ${GEN_DEPENDS}
- ${GENSCRIPTS} hppaosf
+em_hppaelf.c: $(srcdir)/emulparams/hppaelf.sh \
+ $(srcdir)/emultempl/hppaelf.em $(srcdir)/scripttempl/hppaelf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} hppaelf
em_i386aout.c: $(srcdir)/emulparams/i386aout.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} i386aout
em_h8500.c: $(srcdir)/emulparams/h8500.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8500.sc ${GEN_DEPENDS}
${GENSCRIPTS} h8500
+em_h8500b.c: $(srcdir)/emulparams/h8500b.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8500b.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} h8500b
+em_h8500c.c: $(srcdir)/emulparams/h8500c.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8500c.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} h8500c
+em_h8500m.c: $(srcdir)/emulparams/h8500m.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8500m.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} h8500m
+em_h8500s.c: $(srcdir)/emulparams/h8500s.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8500s.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} h8500s
em_sh.c: $(srcdir)/emulparams/sh.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sh.sc ${GEN_DEPENDS}
${GENSCRIPTS} sh
em_coff_sparc.c: $(srcdir)/emulparams/coff_sparc.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sparccoff.sc ${GEN_DEPENDS}
${GENSCRIPTS} coff_sparc
+em_elf32ppc.c: $(srcdir)/emulparams/elf32ppc.sh \
+ $(srcdir)/emultempl/ppc.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} elf32ppc
$(LD_PROG): $(OFILES) $(BFDLIB) $(LIBIBERTY)
- $(CC) $(INCLUDES) $(HDEFINES) $(TDEFINES) $(CDEFINES) $(CFLAGS) $(LDFLAGS) -o $(LD_PROG) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(LOADLIBES)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $(LD_PROG) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(EXTRALIBS)
# The generated emulation files mostly have the same dependencies.
$(EMULATION_OFILES): ../bfd/bfd.h ../bfd/sysdep.h $(INCDIR)/bfdlink.h \
- ld.h ldmain.h ldemul.h ldfile.h ldmisc.h ldexp.h ldlang.h config.h ldctor.h
+ ld.h ldmain.h ldemul.h ldfile.h ldmisc.h ldexp.h ldlang.h config.h \
+ ldctor.h ldexp.h ldlang.h
# These targets are for the dejagnu testsuites. The file site.exp
# contains global variables that all the testsuites will use.
-@rm -f ./tmp?
check: ld.new site.exp
- $(RUNTEST) --tool ld \
- --srcdir $(srcdir)/testsuite $(RUNTEST_FLAGS) \
- CC="$(RUNTEST_CC)" CFLAGS="$(RUNTEST_CFLAGS)" \
- CXX="$(RUNTEST_CXX)" CXXFLAGS="$(RUNTEST_CXXFLAGS)"
+ @if [ $(host_canonical) = $(target_canonical) ]; then \
+ $(RUNTEST) --tool ld \
+ --srcdir $(srcdir)/testsuite $(RUNTESTFLAGS) \
+ CC="$(RUNTEST_CC)" CFLAGS="$(RUNTEST_CFLAGS)" \
+ CXX="$(RUNTEST_CXX)" CXXFLAGS="$(RUNTEST_CXXFLAGS)" ;\
+ if [ $$? != 0 ]; then exit 1; else true; fi ;\
+ else \
+ echo No cross-linker tests yet. ;\
+ fi
installcheck:
.PHONY: check installcheck
# TeX output
dvi: ld.dvi
-ld.dvi: $(srcdir)/ld.texinfo $(srcdir)/configdoc.texi $(BFDDIR)/doc/bfdsumm.texi
+ld.dvi: $(srcdir)/ld.texinfo configdoc.texi $(BFDDIR)/doc/bfdsumm.texi
TEXINPUTS=$(BFDDIR)/doc:$$TEXINPUTS $(TEXI2DVI) $(srcdir)/ld.texinfo
ldint.dvi: $(srcdir)/ldint.texinfo
-mv -f $(STAGESTUFF) $(LD_PROG) stage3
-(cd stage3 ; ln -s $(LD_PROG) ld)
-against=stage2
+against = stage2
comparison: force
for i in $(STAGESTUFF) $(LD_PROG) ; do cmp $$i $(against)/$$i ; done
.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
+LDDISTSTUFF = ldgram.c ldgram.h ldlex.c
diststuff: $(LDDISTSTUFF)
mostlyclean:
ln $(bindir)/$$n $(tooldir)/bin/ld \
|| $(INSTALL_PROGRAM) ld.new $(tooldir)/bin/ld
-install-info:
- for i in ld.info* ; do \
+install-info: ld.info
+ for i in $<* ; do \
$(INSTALL_DATA) $$i $(infodir)/$$i ; \
done
ldgram.h ldlang.h
ldfile.o : ldfile.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
$(INCDIR)/obstack.h ../bfd/sysdep.h $(INCDIR)/fopen-same.h \
- ld.h ldmisc.h ldexp.h ldlang.h ldfile.h ldmain.h ldlex.h
+ ld.h ldmisc.h ldexp.h ldlang.h ldfile.h ldmain.h ldgram.h \
+ ldlex.h
ldlang.o : ldlang.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
$(INCDIR)/obstack.h ../bfd/sysdep.h $(INCDIR)/fopen-same.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)/libiberty.h $(INCDIR)/bfdlink.h ld.h ldmain.h \
+ ldgram.h ldexp.h ldlang.h ldemul.h ldlex.h ldmisc.h \
+ ldctor.h ldfile.h
ldmain.o : ldmain.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
$(INCDIR)/obstack.h ../bfd/sysdep.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/bfdlink.h config.h ld.h ldmain.h ldmisc.h \
- ldwrite.h ldgram.h ldexp.h ldlang.h ldemul.h ldlex.h \
- ldfile.h ldctor.h
+ $(INCDIR)/libiberty.h $(INCDIR)/bfdlink.h config.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 \
$(INCDIR)/obstack.h ../bfd/sysdep.h $(INCDIR)/fopen-same.h \
- ld.h ldmisc.h ldexp.h ldlang.h ldlex.h ldmain.h ldfile.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 \
$(INCDIR)/obstack.h ../bfd/sysdep.h $(INCDIR)/fopen-same.h \
ld.h ldver.h ldemul.h ldmain.h
ldmisc.h ldgram.h ldmain.h
lexsup.o : lexsup.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
$(INCDIR)/obstack.h ../bfd/sysdep.h $(INCDIR)/fopen-same.h \
- ldlex.h ld.h ldexp.h ldgram.h ldmisc.h
+ $(INCDIR)/getopt.h $(INCDIR)/bfdlink.h config.h ld.h \
+ ldmain.h ldmisc.h ldexp.h ldlang.h ldgram.h ldlex.h \
+ ldfile.h ldver.h
mri.o : mri.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/obstack.h \
../bfd/sysdep.h $(INCDIR)/fopen-same.h ld.h ldexp.h \
ldlang.h ldmisc.h mri.h ldgram.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 $(INCDIR)/obstack.h \
- ld.h ldgram.h ldmisc.h ldexp.h ldlang.h ldfile.h ldlex.h
+ ../bfd/sysdep.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