home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / gnu / djgpp / src / binutils.2 / ld / makefile.in < prev    next >
Encoding:
Makefile  |  1993-10-16  |  19.2 KB  |  618 lines

  1. # Makefile for the GNU linker ld (version 2)
  2. # Copyright (C) 1989-1992 Free Software Foundation, Inc.
  3.  
  4. # This file is part of GNU ld..
  5.  
  6. # This program is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 2 of the License, or
  9. # (at your option) any later version.
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. # GNU General Public License for more details.
  14. # You should have received a copy of the GNU General Public License
  15. # along with this program; if not, write to the Free Software
  16. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17.  
  18.  
  19. srcdir = .
  20.  
  21. prefix = /usr/local
  22.  
  23. program_transform_name =
  24. exec_prefix = $(prefix)
  25. bindir = $(exec_prefix)/bin
  26. libdir = $(exec_prefix)/lib
  27. tooldir = $(exec_prefix)/$(target_alias)
  28. datadir = $(prefix)/lib
  29. mandir = $(prefix)/man
  30. man1dir = $(mandir)/man1
  31. man2dir = $(mandir)/man2
  32. man3dir = $(mandir)/man3
  33. man4dir = $(mandir)/man4
  34. man5dir = $(mandir)/man5
  35. man6dir = $(mandir)/man6
  36. man7dir = $(mandir)/man7
  37. man8dir = $(mandir)/man8
  38. man9dir = $(mandir)/man9
  39. infodir = $(prefix)/info
  40. includedir = $(prefix)/include
  41. docdir = $(datadir)/doc
  42.  
  43. gcclibdir = $(libdir)/gcc/$(target_alias)
  44.  
  45. SHELL = /bin/sh
  46.  
  47. INSTALL = install -c
  48. INSTALL_PROGRAM = $(INSTALL)
  49. INSTALL_DATA = $(INSTALL)
  50. AR = ar
  51. AR_FLAGS = qv
  52. CFLAGS = -g
  53. MAKEINFO = makeinfo
  54. TEXI2DVI = texi2dvi
  55. RANLIB = ranlib
  56. CC_FOR_BUILD=$(CC)
  57. BISON = `if [ -f ../bison/bison ] ; then echo ../bison/bison -y -L../bison/bison ; else echo bison -y ; fi`
  58. LEX = `if [ -f ../flex/flex ] ; then echo ../flex/flex ;  else echo flex ; fi`
  59.  
  60. #version=/`./../gcc/gcc -dumpversion`
  61. version=
  62.  
  63. # Seach path to override the default search path for -lfoo libraries.
  64. # If LIB_PATH is empty, the ones in the script (if any) are left alone.
  65. # (The default is usually /lib:usr/lib:/usr/local/lib, unless building
  66. # a cross-linker, in which case the default is empty.  See genscripts.sh.)
  67. # Otherwise, they are replaced with the ones given in LIB_PATH,
  68. # which may have the form: LIB_PATH=/lib:/usr/local/lib
  69. LIB_PATH =
  70.  
  71. BASEDIR    = ../..
  72. INCLUDE    = $(srcdir)/../include
  73. INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../bfd -I$(INCLUDE) 
  74.  
  75. # What version of the manual to build
  76. DOCVER = gen
  77.  
  78. # Where to find texinfo.tex to format docn with TeX
  79. TEXIDIR = $(srcdir)/../texinfo/fsf
  80.  
  81. # Whether to get roff to put indexing entries on stderr
  82. TEXI2OPT =
  83. # You neeed this to generate ld-index.ms (or .mm or .me)
  84. # TEXI2OPT = -i
  85.  
  86. TEXI2ROFF=texi2roff
  87.  
  88. # Which roff program to use to generate index for texi2roff'd doc
  89. ROFF = groff
  90.  
  91. #stuff for self hosting (can be overridden in config file).
  92. HOSTING_CRT0=/lib/crt0.o
  93. HOSTING_LIBS=`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else echo $(libdir)/libgcc.a; fi`  -lc
  94. HOSTING_EMU=LDEMULATION=$(EMUL); export LDEMULATION
  95.  
  96. C++ = g++ -fgnu-linker
  97.  
  98. ### Host, target, and site specific Makefile fragments come in here.
  99. ###
  100.  
  101. LINTFLAGS =  $(INCLUDES) $(EXTRA_DEF) 
  102.  
  103. .SUFFIXES: .y .x .xr .xu .xn .xbn .sc .scu .scr .scn $(SUFFIXES) .cc
  104.  
  105. .c.o:
  106.     $(CC) -c $(CFLAGS) $(INCLUDES) $(HDEFINES) $(TDEFINES) $(CDEFINES) $<
  107.  
  108. .cc.o:
  109.     $(C++) -c $(CFLAGS) -I$(srcdir) $<
  110.  
  111. # go directly to ld.new in case this ld isn't capable of
  112. # linking native object on this host.  It can be renamed on
  113. # install.
  114. LD_PROG    = ld.new
  115.  
  116. # for self hosting
  117. BFDLIB=./../bfd/libbfd.a
  118. LIBIBERTY=./../libiberty/libiberty.a
  119.  
  120. ALL_EMULATIONS=em_lnk960.o em_sun3.o em_i386aout.o em_go32.o \
  121.     em_m88kbcs.o em_a29k.o em_news.o em_hp300bsd.o em_hp3hpux.o \
  122.     em_h8300hms.o em_ebmon29k.o em_sun4.o em_gld960.o \
  123.     em_m68kcoff.o em_st2000.o em_sa29200.o \
  124.     em_vanilla.o em_i386coff.o em_z8ksim.o em_mipslit.o em_i386bsd.o \
  125.     em_mipsbig.o em_mipsbsd.o em_mipsidt.o em_vax.o em_h8500hms.o \
  126.     em_hppaosf.o
  127.  
  128. # start-sanitize-sh
  129. OTHER_EMULATIONS=em_sh.o
  130. # end-sanitize-sh
  131.  
  132. #EMULATION_OFILES=${ALL_EMULATIONS}
  133. EMULATION_OFILES=${ALL_EMULATIONS} ${OTHER_EMULATIONS}
  134.  
  135. OFILES= ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o ldindr.o \
  136.     ldwarn.o ldwrite.o ldexp.o  ldemul.o ldver.o ldmisc.o ldsym.o \
  137.     ldfile.o relax.o  lderror.o ${EMULATION_OFILES}
  138.  
  139. HEADERS=config.h ldmain.h ldmain.h ldwarn.h ldmisc.h ldindr.h \
  140.     ldsym.h ldctor.h ldlang.h ldexp.h \
  141.     ldlex.h ldwrite.h ldver.h ldemul.h ldfile.h ldgram.h ld.h
  142.  
  143. MANSOURCES=ld.tex
  144.  
  145. LDCSOURCES=ldlang.c lexsup.c ldctor.c mri.c ldindr.c ldmain.c ldwrite.c ldwarn.c ldlnk960.c \
  146.     em_gld.c em_sun3.c em_go32.c em_m88k.c em_ebmon29k.c em_hppaosf.c \
  147.     ldgld960.c ldemul.c ldver.c ldmisc.c ldexp.c ldsym.c ldfile.c \
  148.     relax.c lderror.c
  149.  
  150. GENERATED_SOURCES=ldgram.c ldlex.c em_*.c ldemul-list.h
  151. GENERATED_HEADERS=ldgram.h ldemul-list.h
  152.  
  153. LDSOURCES=$(LDCSOURCES) ldgram.y ldlex.l ldgram.h
  154.  
  155. BFDSOURCES=../../bfd/common/*.c
  156.  
  157. SOURCES= $(LDSOURCES) $(BFDSOURCES)
  158. LINTSOURCES=   $(LDCSOURCES) $(BFDSOURCES) $(GENERATED_SOURCES)
  159.  
  160. STAGESTUFF = *.x *.x[runN] *.sc[runN] $(GENERATED_SOURCES) $(GENERATED_HEADERS) $(OFILES) mkscript
  161.  
  162. all: $(LD_PROG)
  163.  
  164. check: bootstrap check-cdtest
  165. installcheck:
  166. info: ld.info
  167.  
  168. ldgram.h ldgram.c: ldgram.y
  169.     $(BISON) $(BISONFLAGS) -d $(srcdir)/ldgram.y
  170.     mv -f y.tab.c ldgram.c
  171.     mv -f y.tab.h ldgram.h
  172.  
  173.  
  174. DEF_EMUL = ` if [ -z "$(EMUL)" ] ; then \
  175.            echo "you must set a default emulation" 1>&2 ; \
  176.            exit 1 ; \
  177.          else \
  178.            echo -DDEFAULT_EMULATION='"$(EMUL)"' ; \
  179.              fi`
  180.  
  181. ldmain.o: ldmain.c
  182.     $(CC) $(CFLAGS) $(INCLUDES) $(HDEFINES) $(TDEFINES) $(CDEFINES) $(DEF_EMUL) -c $<
  183.  
  184. ldemul-list.h:  
  185.     (echo "/* This file is automatically generated.  DO NOT EDIT! */";\
  186.     for f in `echo " " ${EMULATION_OFILES} "" \
  187.      | sed -e 's/em_/ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \
  188.         echo "extern ld_emulation_xfer_type ld_$${f}_emulation;"; \
  189.     done;\
  190.     echo "";\
  191.     echo "#define EMULATION_LIST \\";\
  192.     for f in `echo " " ${EMULATION_OFILES} "" \
  193.      | sed -e 's/em_/ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \
  194.         echo "  &ld_$${f}_emulation, \\"; \
  195.     done;\
  196.     echo "  0") >ldemul-list.h
  197.  
  198. ldemul.o: ldemul-list.h
  199.  
  200. ldlex.c: ldlex.l ldgram.h
  201.     $(LEX) -I -Cem $(srcdir)/ldlex.l
  202.     mv lex.yy.c ldlex.c
  203.  
  204. # These all start with em_ so 'make clean' can find them.
  205.  
  206. GENSCRIPTS=sh $(srcdir)/genscripts.sh ${srcdir} ${host_alias} ${target_alias}
  207. GEN_DEPENDS=mkscript $(srcdir)/genscripts.sh
  208.  
  209. em_sun4.c: $(srcdir)/sun4.sh \
  210.   $(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
  211.     ${GENSCRIPTS} sun4.sh
  212. em_sun3.c: $(srcdir)/sun3.sh \
  213.   $(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
  214.     ${GENSCRIPTS} sun3.sh
  215. em_go32.c: $(srcdir)/go32.sh \
  216.   $(srcdir)/generic.em $(srcdir)/go32.sc-sh ${GEN_DEPENDS}
  217.     ${GENSCRIPTS} go32.sh
  218. em_news.c: $(srcdir)/news.sh \
  219.   $(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
  220.     ${GENSCRIPTS} news.sh
  221. em_vax.c: $(srcdir)/vax.sh \
  222.   $(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
  223.     ${GENSCRIPTS} vax.sh
  224. em_hp300bsd.c: $(srcdir)/hp300bsd.sh \
  225.   $(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
  226.     ${GENSCRIPTS} hp300bsd.sh
  227. em_hp3hpux.c: $(srcdir)/hp3hpux.sh \
  228.   $(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
  229.     ${GENSCRIPTS} hp3hpux.sh
  230. em_hppaosf.c: $(srcdir)/hppaosf.sh \
  231.   $(srcdir)/hppaosf.em $(srcdir)/hppaosf.sc-sh ${GEN_DEPENDS}
  232.     ${GENSCRIPTS} hppaosf.sh
  233. em_i386aout.c: $(srcdir)/i386aout.sh \
  234.   $(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
  235.     ${GENSCRIPTS} i386aout.sh
  236. em_ebmon29k.c: $(srcdir)/ebmon29k.sh \
  237.   $(srcdir)/generic.em $(srcdir)/ebmon29k.sc-sh ${GEN_DEPENDS}
  238.     ${GENSCRIPTS} ebmon29k.sh
  239. em_sa29200.c: $(srcdir)/sa29200.sh \
  240.   $(srcdir)/generic.em $(srcdir)/sa29200.sc-sh ${GEN_DEPENDS}
  241.     ${GENSCRIPTS} sa29200.sh
  242. em_a29k.c: $(srcdir)/a29k.sh \
  243.   $(srcdir)/generic.em $(srcdir)/a29k.sc-sh ${GEN_DEPENDS}
  244.     ${GENSCRIPTS} a29k.sh
  245. em_m88kbcs.c: $(srcdir)/m88kbcs.sh \
  246.   $(srcdir)/generic.em $(srcdir)/h8300hms.sc-sh ${GEN_DEPENDS}
  247.     ${GENSCRIPTS} m88kbcs.sh
  248. em_h8300hms.c: $(srcdir)/h8300hms.sh \
  249.   $(srcdir)/h8300hms.em $(srcdir)/h8300hms.sc-sh ${GEN_DEPENDS}
  250.     ${GENSCRIPTS} h8300hms.sh
  251. em_h8500hms.c: $(srcdir)/h8500hms.sh \
  252.   $(srcdir)/h8500hms.em $(srcdir)/h8500hms.sc-sh ${GEN_DEPENDS}
  253.     ${GENSCRIPTS} h8500hms.sh
  254. # start-sanitize-sh
  255. em_sh.c: $(srcdir)/sh.sh \
  256.   $(srcdir)/sh.em $(srcdir)/sh.sc-sh ${GEN_DEPENDS}
  257.     ${GENSCRIPTS} sh.sh
  258. # end-sanitize-sh
  259. em_st2000.c: $(srcdir)/st2000.sh \
  260.   $(srcdir)/st2000.em $(srcdir)/st2000.sc-sh ${GEN_DEPENDS}
  261.     ${GENSCRIPTS} st2000.sh
  262. em_z8ksim.c: $(srcdir)/z8ksim.sh \
  263.   $(srcdir)/z8ksim.em $(srcdir)/z8ksim.sc-sh ${GEN_DEPENDS}
  264.     ${GENSCRIPTS} z8ksim.sh
  265. em_vanilla.c: $(srcdir)/vanilla.sh \
  266.   $(srcdir)/vanilla.em $(srcdir)/vanilla.sc-sh ${GEN_DEPENDS}
  267.     ${GENSCRIPTS} vanilla.sh
  268. em_lnk960.c: $(srcdir)/lnk960.sh \
  269.   $(srcdir)/lnk960.em $(srcdir)/i960.sc-sh ${GEN_DEPENDS}
  270.     ${GENSCRIPTS} lnk960.sh
  271. em_gld960.c: $(srcdir)/gld960.sh \
  272.   $(srcdir)/gld960.em $(srcdir)/i960.sc-sh ${GEN_DEPENDS}
  273.     ${GENSCRIPTS} gld960.sh
  274. em_m68kcoff.c: $(srcdir)/m68kcoff.sh \
  275.   $(srcdir)/generic.em $(srcdir)/m68kcoff.sc-sh ${GEN_DEPENDS}
  276.     ${GENSCRIPTS} m68kcoff.sh
  277. em_i386coff.c: $(srcdir)/i386coff.sh \
  278.   $(srcdir)/generic.em $(srcdir)/i386coff.sc-sh ${GEN_DEPENDS}
  279.     ${GENSCRIPTS} i386coff.sh
  280. em_mipslit.c:  $(srcdir)/mipslit.sh \
  281.   $(srcdir)/generic.em $(srcdir)/mips.sc-sh ${GEN_DEPENDS}
  282.     ${GENSCRIPTS} mipslit.sh
  283. em_i386bsd.c: $(srcdir)/i386bsd.sh \
  284.   $(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
  285.     ${GENSCRIPTS} i386bsd.sh
  286. em_mipsbig.c:  $(srcdir)/mipsbig.sh \
  287.   $(srcdir)/generic.em $(srcdir)/mips.sc-sh ${GEN_DEPENDS}
  288.     ${GENSCRIPTS} mipsbig.sh
  289. em_mipsbsd.c: $(srcdir)/mipsbsd.sh \
  290.   $(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
  291.     ${GENSCRIPTS} mipsbsd.sh
  292. em_mipsidt.c: $(srcdir)/mipsidt.sh \
  293.   $(srcdir)/generic.em $(srcdir)/mips.sc-sh ${GEN_DEPENDS}
  294.     ${GENSCRIPTS} mipsidt.sh
  295.  
  296. $(LD_PROG): $(OFILES) $(BFDLIB) $(LIBIBERTY)
  297.     $(CC) $(CFLAGS) $(INCLUDES) $(HDEFINES) $(TDEFINES) $(CDEFINES) $(LDFLAGS) -o $(LD_PROG) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(LOADLIBES)
  298.  
  299. # Rules for testing by relinking ld itself.
  300.  
  301. ld-partial.o: ld.new
  302.     $(HOSTING_EMU); ./ld.new -o ld-partial.o -r $(OFILES)
  303. ld1: ld-partial.o
  304.     $(HOSTING_EMU); ./ld.new -o ld1 $(HOSTING_CRT0) ld-partial.o $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS)
  305.  
  306. ld1-full: ld.new
  307.     $(HOSTING_EMU); ./ld.new -o ld1-full $(HOSTING_CRT0) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS)
  308.  
  309. ld2: ld1
  310.     $(HOSTING_EMU); ./ld1 -o ld2 $(HOSTING_CRT0) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS)
  311.  
  312. ld3: ld2
  313.     $(HOSTING_EMU); ./ld2 -o ld3 $(HOSTING_CRT0) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS)
  314.  
  315. bootstrap: ld3
  316.     cmp ld2 ld3
  317.  
  318. cdtest: cdtest-main.o cdtest-func.o cdtest-foo.o ld.new
  319.     $(HOSTING_EMU); ./ld.new -o cdtest $(HOSTING_CRT0) \
  320.       cdtest-main.o cdtest-func.o cdtest-foo.o $(HOSTING_LIBS)
  321.  
  322. check-cdtest: cdtest $(srcdir)/cdtest.exp
  323.     ./cdtest >cdtest.out
  324.     diff $(srcdir)/cdtest.exp cdtest.out
  325.  
  326. ######################################################################
  327. # DOCUMENTATION TARGETS
  328. # Manual configuration file; not usually attached to normal configuration,
  329. # because almost all configs use "gen" version of manual.
  330. #  Set DOCVER above to change.
  331. configdoc.texi:    ${DOCVER}-doc.texi
  332.     ln -s ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi || \
  333.     ln ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi || \
  334.     cp ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi
  335.  
  336. # TeX output
  337. dvi: ld.dvi
  338. ld.dvi: $(srcdir)/ld.texinfo
  339.     $(TEXI2DVI) $(srcdir)/ld.texinfo
  340.  
  341. ldint.dvi: $(srcdir)/ldint.texinfo
  342.     $(TEXI2DVI) $(srcdir)/ldint.texinfo
  343.  
  344. # info file for online browsing
  345. ld.info: $(srcdir)/ld.texinfo configdoc.texi
  346.     $(MAKEINFO) -o ld.info $(srcdir)/ld.texinfo
  347.  
  348. ldint.info: $(srcdir)/ldint.texinfo
  349.     $(MAKEINFO) -o ldint.info $(srcdir)/ldint.texinfo
  350.  
  351. #separate targets for "ms", "me", and "mm" forms of roff doc
  352. # Try to use a recent texi2roff.  v2 was put on prep in jan91.
  353. # If you want an index, see texi2roff doc for postprocessing 
  354. # and add -i to texi2roff invocations below.
  355. # Workarounds for texi2roff-2 (probably fixed in later texi2roff's, delete
  356. #    correspondint -e lines when later texi2roff's are current)
  357. # + @ifinfo's deleted explicitly due to texi2roff-2 bug w nested constructs.
  358. # + @c's deleted explicitly because texi2roff sees texinfo commands in them
  359. # + @   (that's at-BLANK) not recognized by texi2roff, turned into blank
  360. # + @alphaenumerate is ridiculously new, turned into @enumerate
  361.  
  362. ld.ms: $(srcdir)/ld.texinfo
  363.     sed -e '/\\input texinfo/d' \
  364.         -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \
  365.         -e '/^@ifinfo/,/^@end ifinfo/d' \
  366.         -e '/^@c/d' \
  367.         -e 's/{.*,,/{/' \
  368.         -e 's/@ / /g' \
  369.         -e 's/^@alphaenumerate/@enumerate/g' \
  370.         -e 's/^@end alphaenumerate/@end enumerate/g' \
  371.         $(srcdir)/ld.texinfo | \
  372.     $(TEXI2ROFF) $(TEXI2OPT) -ms | \
  373.     sed -e 's/---/\\(em/g' \
  374.         >>ld.ms 
  375.  
  376. # index for roff output
  377. ld-index.ms: ld.ms
  378.     $(ROFF) -ms ld.ms 2>&1 1>/dev/null | \
  379.         sed -e '/: warning:/d' | \
  380.         texi2index >ld-index.ms
  381.  
  382. # roff output (-mm)
  383. ld.mm: $(srcdir)/ld.texinfo
  384.     sed -e '/\\input texinfo/d' \
  385.         -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \
  386.         -e '/^@ifinfo/,/^@end ifinfo/d' \
  387.         -e '/^@c/d' \
  388.         -e 's/{.*,,/{/' \
  389.         -e '/@noindent/d' \
  390.         -e 's/@ / /g' \
  391.         -e 's/^@alphaenumerate/@enumerate/g' \
  392.         -e 's/^@end alphaenumerate/@end enumerate/g' \
  393.         $(srcdir)/ld.texinfo | \
  394.     $(TEXI2ROFF) $(TEXI2OPT) -mm | \
  395.     sed -e 's/---/\\(em/g' \
  396.     >ld.mm 
  397.  
  398. # index for roff output
  399. ld-index.mm: ld.mm
  400.     $(ROFF) -mm ld.mm 2>&1 1>/dev/null | \
  401.         sed -e '/: warning:/d' | \
  402.         texi2index >ld-index.mm
  403.  
  404. # roff output (-me)
  405. ld.me: $(srcdir)/ld.texinfo
  406.     sed -e '/\\input texinfo/d' \
  407.         -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \
  408.         -e '/^@ifinfo/,/^@end ifinfo/d' \
  409.         -e '/^@c/d' \
  410.         -e 's/{.*,,/{/' \
  411.         -e 's/@ / /g' \
  412.         -e 's/^@alphaenumerate/@enumerate/g' \
  413.         -e 's/^@end alphaenumerate/@end enumerate/g' \
  414.         $(srcdir)/ld.texinfo | \
  415.     $(TEXI2ROFF) $(TEXI2OPT) -me | \
  416.     sed -e 's/---/\\(em/g' \
  417.         >>ld.me 
  418.  
  419. # index for roff output
  420. ld-index.me: ld.me
  421.     $(ROFF) -me ld.me 2>&1 1>/dev/null | \
  422.         sed -e '/: warning:/d' | \
  423.         texi2index >ld-index.me
  424.  
  425.  
  426. ######################################################################
  427.  
  428. mkscript.o: $(srcdir)/mkscript.c
  429.     $(CC_FOR_BUILD) -c $(srcdir)/mkscript.c
  430.  
  431. mkscript: mkscript.o
  432.     $(CC_FOR_BUILD) -o mkscript mkscript.o
  433.  
  434. ldlex.o: ldlex.c ldgram.h
  435. ldgram.o: ldgram.c
  436. ldgram.c: ldgram.y
  437. ldexp.o: ldexp.c ldgram.h
  438. ldctor.o: ldctor.c ldgram.h
  439. ldlang.o: ldlang.c ldgram.h
  440. ldmain.o: ldmain.c ldgram.h
  441. ldwrite.o: ldwrite.c ldgram.h
  442. lexsup.o: lexsup.c ldgram.h
  443. mri.o: mri.c ldgram.h
  444. relax.o: relax.c ldgram.h
  445.  
  446. h8300hms.o: h8300hms.c
  447. h8300xray.o: h8300xray.c
  448. st2000.o: st2000.c
  449. z8ksim.o: z8ksim.c
  450.  
  451. stage1:    force
  452.     -mkdir stage1
  453.     -mv -f $(STAGESTUFF) $(LD_PROG) stage1
  454.     -(cd stage1 ; ln -s $(LD_PROG) ld)
  455.  
  456. stage2:    force
  457.     -mkdir stage2
  458.     -mv -f $(STAGESTUFF) $(LD_PROG) stage2
  459.     -(cd stage2 ; ln -s $(LD_PROG) ld)
  460.  
  461. stage3:    force
  462.     -mkdir stage3
  463.     -mv -f $(STAGESTUFF) $(LD_PROG) stage3
  464.     -(cd stage3 ; ln -s $(LD_PROG) ld)
  465.  
  466. against=stage2
  467.  
  468. comparison: force
  469.     for i in $(STAGESTUFF) $(LD_PROG) ; do cmp $$i $(against)/$$i ; done
  470.  
  471. de-stage1: force
  472.     -(cd stage1 ; mv -f * ..)
  473.     -rm ld
  474.     -rmdir stage1
  475.  
  476. de-stage2: force
  477.     -(cd stage2 ; mv -f * ..)
  478.     -rm ld
  479.     -rmdir stage2
  480.  
  481. de-stage3: force
  482.     -(cd stage3 ; mv -f * ..)
  483.     -rm ld
  484.     -rmdir stage3
  485.  
  486. # Stuff that should be included in a distribution:
  487. LDDISTSTUFF=ldgram.c ldgram.h ldlex.c
  488. diststuff: $(LDDISTSTUFF)
  489.  
  490. mostlyclean:
  491.     -rm -f $(STAGESTUFF) ld.?? ld.??? ldlex.[qp]
  492.     -rm -f ld ld1 ld2 ld3 *.o y.output cdtest cdtest.out
  493. clean: mostlyclean
  494.     -rm -f $(LD_PROG)
  495. distclean: clean
  496.     -rm -f Makefile config.status TAGS sysdep.h
  497. realclean: distclean
  498.     -rm -f $(LDDISTSTUFF)
  499.  
  500. lintlog: $(SOURCES) Makefile
  501.     $(LINT) -abhxzn  $(LINTFLAGS)  $(LINTSOURCES) \
  502. | grep -v "pointer casts may be troublesome" \
  503. | grep -v "possible pointer alignment problem" \
  504. | grep -v "ignore" \
  505. | grep -v "conversion from long may lose accuracy" \
  506. | grep -v "warning: constant argument to NOT" \
  507. | grep -v "enumeration type clash, operator CAST" \
  508. | grep -v "warning: constant in conditional context"\
  509. | grep -v "archive\.c"
  510.  
  511.  
  512. tags TAGS: $(SOURCES) $(HEADERS)
  513.     etags -t $?
  514.  
  515.  
  516. objdump: objdump.c 
  517.  
  518. .PHONY: install
  519. install: $(LD_PROG)
  520.     -parent=`echo $(bindir)|sed -e 's@/[^/]*$$@@'`; \
  521.     if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi
  522.     -if [ -d $(bindir) ] ; then true ; else mkdir $(bindir) ; fi
  523.     -parent=`echo $(man1dir)|sed -e 's@/[^/]*$$@@'`; \
  524.     if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi
  525.     -if [ -d $(man1dir) ] ; then true ; else mkdir $(man1dir) ; fi
  526.     -n=`t='$(program_transform_name)'; echo ld | sed -e "" $$t`; \
  527.     rm -f $(bindir)/$$n; \
  528.     $(INSTALL_PROGRAM) ld.new $(bindir)/$$n; \
  529.     $(INSTALL_DATA) $(srcdir)/ld.1 $(man1dir)/$$n.1; \
  530.     if [ -d $(tooldir) ]; then \
  531.       if [ -d $(tooldir)/bin ] ; then true ; else mkdir $(tooldir)/bin ; fi; \
  532.       rm -f $(tooldir)/bin/ld; \
  533.       ln $(bindir)/$$n $(tooldir)/bin/ld \
  534.        || $(INSTALL_PROGRAM) ld.new $(tooldir)/bin/ld; \
  535.       rm -f $(tooldir)/bin/gld; \
  536.       ln $(tooldir)/bin/ld $(tooldir)/bin/gld; \
  537.     else true; fi
  538.  
  539. install-info: info
  540.     -parent=`echo $(infodir)|sed -e 's@/[^/]*$$@@'`; \
  541.     if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi
  542.     -if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; fi
  543.     for i in ld.info* ; do \
  544.         $(INSTALL_DATA) $$i $(infodir)/$$i ; \
  545.     done
  546.  
  547. clean-info:
  548.     -rm -rf *.info*
  549.  
  550. #-----------------------------------------------------------------------------
  551. #        'STANDARD' GNU/960 TARGETS BELOW THIS POINT
  552. #
  553. # 'VERSION' file must be present and contain a string of the form "x.y"
  554. #-----------------------------------------------------------------------------
  555.  
  556. ver960.c: FORCE
  557.     rm -f ver960.c
  558.     echo "char ${TARG}_ver[]= \"${TARG} `cat VERSION`, `date`\";" > ver960.c
  559.  
  560.  
  561. # This target should be invoked before building a new release.
  562. # 'VERSION' file must be present and contain a string of the form "x.y"
  563. #
  564. roll:
  565.     @V=`cat VERSION`        ; \
  566.     MAJ=`sed 's/\..*//' VERSION`    ; \
  567.     MIN=`sed 's/.*\.//' VERSION`    ; \
  568.     V=$$MAJ.`expr $$MIN + 1`    ; \
  569.     rm -f VERSION            ; \
  570.     echo $$V >VERSION        ; \
  571.     echo Version $$V
  572.  
  573.  
  574. dep: $(LDSOURCES)
  575.     mkdep $(CFLAGS) $?
  576.  
  577. # Dummy target to force execution of dependent targets.
  578. #
  579. force:
  580.  
  581. # Target to uncomment host-specific lines in this makefile.  Such lines must
  582. # have the following string beginning in column 1: #__<hostname>__#
  583. # Original Makefile is backed up as 'Makefile.old'.
  584. #
  585. # Invoke with:  make make HOST=xxx
  586. #
  587. make:
  588.     -@if test $(HOST)x = x ; then \
  589.         echo 'Specify "make make HOST=???"'; \
  590.         exit 1; \
  591.     fi ; \
  592.     grep -s "^#The next line was generated by 'make make'" Makefile; \
  593.     if test $$? = 0 ; then    \
  594.         echo "Makefile has already been processed with 'make make'";\
  595.         exit 1; \
  596.     fi ; \
  597.     mv -f Makefile Makefile.old; \
  598.     echo "#The next line was generated by 'make make'"     >Makefile ; \
  599.     echo "HOST=$(HOST)"                    >>Makefile ; \
  600.     echo                            >>Makefile ; \
  601.     sed "s/^#__$(HOST)__#//" < Makefile.old            >>Makefile
  602.  
  603. #
  604.  
  605. Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)
  606.     $(SHELL) ./config.status
  607.  
  608. ### mode:fundamental ***
  609. ### Local Variables: ***
  610. ### page-delimiter: "^# " ***
  611. ### End: ***
  612. ### end of file
  613.  
  614.  
  615. # IF YOU PUT ANYTHING HERE IT WILL GO AWAY
  616.