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