binutils-gdb/ld/Makefile.in
K. Richard Pixley e7218a07c7 Correct the rule for mkscript. The explicit rule failed in subdirs.
The default rule works just fine.
1991-07-16 15:35:37 +00:00

285 lines
7.4 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# Makefile for ld version 2
#
# $Id$
#
srcdir = .
destdir = /usr/local
version=`$(srcdir)/../gcc$(subdir)/gcc -dumpversion`
prefix = $(destdir)
bindir = $(prefix)/bin
libdir = $(prefix)/lib
libsubdir = $(libdir)/gcc/$(target)/$(version)
INSTALL = install -c
INSTALL_PROGRAM = $(INSTALL)
INSTALL_FILE = $(INSTALL)
BASEDIR = ../..
INCLUDE = $(srcdir)/../include
INCLUDES = -I. -I$(srcdir) -I$(INCLUDE)
DEBUG = -g
BISON = bison
BISONFLAGS = -v
SCRIPTS = ldgld68k.script ldgld68kUr.script ldgld68kr.script \
ldgld.script ldgldUr.script ldgldr.script ldlnk960.script \
ldlnk960r.script ldgld960.script \
ldgldm88kbcs.script ldgldm88kbcsUr.script ldgldm88kbcsr.script \
ldglda29k.script ldglda29kUr.script ldglda29kr.script
PROCESSED_SCRIPTS = ldgld68k.x ldgld68kUr.x ldgld68kr.x ldgld.x \
ldgldUr.x ldgldr.x ldlnk960.x ldlnk960r.x ldgld960.x \
ldgldm88kbcs.x ldgldm88kbcsUr.x ldgldm88kbcsr.x \
ldglda29k.x ldglda29kUr.x ldglda29kr.x
#### target and host dependent Makefile fragments come in here.
###
CFLAGS = $(INCLUDES) $(DEBUG) $(HDEFINES) $(TDEFINES) $(CDEFINES)
LINTFLAGS = $(INCLUDES) $(EXTRA_DEF)
.SUFFIXES: .y .x .script $(SUFFIXES)
# 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
.script.x:
mkscript < $< >$*.x
# for self hosting
GNUTARGET=a.out-sunos-big
LDEMULATION=gld
BFDLIB=$(srcdir)/../bfd$(subdir)/libbfd.a
LIBIBERTY=$(srcdir)/../libiberty$(subdir)/libiberty.a
OFILES= ldgram.o ldlex.o ldlang.o ldmain.o ldwrite.o ldexp.o ldlnk960.o ldgld68k.o \
ldgldm88kbcs.o ldglda29k.o \
ldgld.o ldgld960.o ldemul.o ldver.o ldmisc.o ldsym.o ldvanilla.o ldfile.o
HEADERS=config.h ldmain.h ldmain.h ldmisc.h ldsym.h ldlang.h ldexp.h \
ldlex.h ldwrite.h ldver.h ldemul.h ldfile.h ldgram.h ld.h
MANSOURCES=ld.tex
LDCSOURCES=ldlang.c ldmain.c ldwrite.c ldlnk960.c ldgld.c ldgld68k.c \
ldgldm88kbcs.c ldgld29k.c \
ldgld960.c ldemul.c ldver.c ldmisc.c ldexp.c ldsym.c ldfile.c ldvanilla.c
GENERATED_SOURCES=ldgram.c ldlex.c ldgram.h
GENERATED_HEADERS=ldgram.h
LDSOURCES=$(LDCSOURCES) ldgram.y ldlex.l ldgram.h
BFDSOURCES=../../bfd/common/*.c
SOURCES= $(LDSOURCES) $(BFDSOURCES)
LINTSOURCES= $(LDCSOURCES) $(BFDSOURCES) $(GENERATED_SOURCES)
STAGESTUFF = $(GENERATED_SOURCES) $(GENERATED_HEADERS) $(PROCESSED_SCRIPTS) $(OFILES) $(LD_PROG) mkscript
all: Makefile $(PROCESSED_SCRIPTS) $(LD_PROG)
$(PROCESSED_SCRIPTS): mkscript $(SCRIPTS)
ldgram.c:ldgram.y
$(BISON) $(BISONFLAGS) -d $(VPATH)/ldgram.y -o ldgram.c
# mv y.tab.c ldgram.c
# mv y.tab.h ldgram.h
ldlex.c:ldlex.l
lex -t $(VPATH)/ldlex.l >ldlex.c
#$(BFDLIB): $(BFDSOURCES)
# (cd ../bfd; make)
$(LD_PROG): $(OFILES) $(BFDLIB) $(LIBIBERTY)
$(CC) $(CFLAGS) $(LDFLAGS) -o $(LD_PROG) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(LOADLIBES)
# (cd ../bfd; make)
# LDEMULATION=gld; export LDEMULATION; GNUTARGET=a.out-sunos-big;./ldok -format a.out-sunos-big -o ld /lib/crt0.o $(OFILES) $(BFDLIB) $(LIBIBERTY) -lc /usr/local/lib/gcc/sparc/1.91/gnulib
# gld -o ld /lib/crt0.o $(OFILES) $(BFDLIB) $(LIBIBERTY) -lc /usr/local/lib/gcc/sparc/1.91/gnulib
# $(CC) -Bstatic -o ld.new $(OFILES) $(BFDLIB) $(LIBIBERTY)
ld1: ld.new
$(HOSTING_EMU); ./ld.new -o ld1 $(HOSTING_CRT0) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS)
ld2: ld1
$(HOSTING_EMU); ./ld1 -o ld2 $(HOSTING_CRT0) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS)
ld3: ld2
$(HOSTING_EMU); ./ld2 -o ld3 $(HOSTING_CRT0) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS)
ld.dvi:ld.tex
tex ld.tex
mkscript: mkscript.c
ldgld.o: $(PROCESSED_SCRIPTS) ldgld.c
ldlex.c: ldlex.l ldgram.h
ldlex.o: ldlex.c ldgram.h
ldgram.o: ldgram.c
ldgram.c:ldgram.y
ldgld68k.x :ldgld68k.script
ldgld68kUr.x :ldgld68kUr.script
ldgld68kr.x :ldgld68kr.script
ldgld.x :ldgld.script
ldgldUr.x :ldgldUr.script
ldgldr.x :ldgldr.script
ldlnk960.x :ldlnk960.script
ldlnk960r.x :ldlnk960r.script
ldgld960.x :ldgld960.script
ldgldm88kbcs.x :ldgldm88kbcs.script
ldgldm88kbcsUr.x :ldgldm88kbcsUr.script
ldgldm88kbcsr.x:ldgldm88kbcsr.script
ldgld68k.x:ldgld68k.script
ldglda29k.x :ldglda29k.script
ldglda29kr.x :ldglda29kr.script
ldglda29kUr.x :ldglda29kUr.script
stage1: force
- mkdir stage1
- mv -f $(STAGESTUFF) stage1
- (cd stage1 ; ln -s $(LD_PROG) ld)
stage2: force
- mkdir stage2
- mv -f $(STAGESTUFF) stage2
- (cd stage2 ; ln -s $(LD_PROG) ld)
stage3: force
- mkdir stage3
- mv -f $(STAGESTUFF) stage3
- (cd stage3 ; ln -s $(LD_PROG) ld)
against=stage2
comparison: force
for i in $(STAGESTUFF) ; do cmp $$i $(against)/$$i ; done
de-stage1: force
- (cd stage1 ; mv -f * ..)
- rm ld
- rmdir stage1
de-stage2: force
- (cd stage2 ; mv -f * ..)
- rm ld
- rmdir stage2
de-stage3: force
- (cd stage3 ; mv -f * ..)
- rm ld
- rmdir stage3
clean:
- rm -f TAGS $(OFILES) $(GENERATED_SOURCES) $(GENERATED_HEADERS)
- rm -f $(PROCESSED_SCRIPTS)
- rm -f ld ld1 ld2 ld3 ld.new mkscript *.o y.output
lintlog:$(SOURCES) Makefile
$(LINT) -abhxzn $(LINTFLAGS) $(LINTSOURCES) \
| grep -v "pointer casts may be troublesome" \
| grep -v "possible pointer alignment problem" \
| grep -v "ignore" \
| grep -v "conversion from long may lose accuracy" \
| grep -v "warning: constant argument to NOT" \
| grep -v "enumeration type clash, operator CAST" \
| grep -v "warning: constant in conditional context"\
| grep -v "archive\.c"
tags TAGS:$(SOURCES) $(HEADERS)
etags -t $?
release:
(cd /4/steve/ld; tar cf - $(LDSOURCES) $(HEADERS) $(MANSOURCES)) | tar xf -
objdump:objdump.c
install: $(LD_PROG)
$(INSTALL_PROGRAM) ld.new $(libsubdir)/ld
#-----------------------------------------------------------------------------
# 'STANDARD' GNU/960 TARGETS BELOW THIS POINT
#
# 'VERSION' file must be present and contain a string of the form "x.y"
#-----------------------------------------------------------------------------
ver960.c: FORCE
rm -f ver960.c
echo "char ${TARG}_ver[]= \"${TARG} `cat VERSION`, `date`\";" > ver960.c
# This target should be invoked before building a new release.
# 'VERSION' file must be present and contain a string of the form "x.y"
#
roll:
@V=`cat VERSION` ; \
MAJ=`sed 's/\..*//' VERSION` ; \
MIN=`sed 's/.*\.//' VERSION` ; \
V=$$MAJ.`expr $$MIN + 1` ; \
rm -f VERSION ; \
echo $$V >VERSION ; \
echo Version $$V
dep: $(LDSOURCES) $(PROCESSED_SCRIPTS)
mkdep $(CFLAGS) $?
# Dummy target to force execution of dependent targets.
#
force:
# Target to uncomment host-specific lines in this makefile. Such lines must
# have the following string beginning in column 1: #__<hostname>__#
# Original Makefile is backed up as 'Makefile.old'.
#
# Invoke with: make make HOST=xxx
#
make:
-@if test $(HOST)x = x ; then \
echo 'Specify "make make HOST=???"'; \
exit 1; \
fi ; \
grep -s "^#The next line was generated by 'make make'" Makefile; \
if test $$? = 0 ; then \
echo "Makefile has already been processed with 'make make'";\
exit 1; \
fi ; \
mv -f Makefile Makefile.old; \
echo "#The next line was generated by 'make make'" >Makefile ; \
echo "HOST=$(HOST)" >>Makefile ; \
echo >>Makefile ; \
sed "s/^#__$(HOST)__#//" < Makefile.old >>Makefile
#
Makefile: $(srcdir)/Makefile.in $(srcdir)/configure
(cd $(srcdir) ; \
./configure +destdir=$(destdir) \
+norecurse \
`if [ "$(srcdir)" != "." ] ; then echo +f; fi` \
$(host) +target=$(target))
### Local Variables: ***
### mode:fundamental ***
### page-delimiter: "^# " ***
### End: ***
### end of file
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY