a1c7c0f3ac
including support for Motorola syntax. * config/m68k-parse.h: New file; definitions shared between m68k-parse.y and tc-m68k.c. * config/tc-m68k.c: Include m68k-parse.h. (enum operand_type): Move to m68k-parse.h, where it is named m68k_operand_type. Rename all uses. Rearrange somewhat. Add FPREG. Rename AOFF to DISP. Rename AINDX to BASE. Rename APODX to POST. Rename APRDX to PRE. Remove AMIND. Rename MSCR to CONTROL. Remove DINDR. (struct m68k_exp): Move to m68k-parse.h. Remove e_beg, e_end and e_seg fields. Rename e_exp to exp. Rename e_siz to size, and change type to enum m68k_size. Change all uses. (enum _register): Move to m68k-parse.h, where it is named m68k_register. Rename all uses. Add ZDATA0-7 and ZADDR0-7. (struct m68k_op): Move to m68k-parse.h. Change all fields. (seg): Don't define. (add_exp): Remove. (FAIL, OK): Remove. (m68k_reg_parse): Move to m68k-parse.y, and rewrite. (SKIP_WHITE, SKIP_W): Remove. (try_moto_index, try_index): Remove. (m68k_ip_op): Move to m68k-parse.y, and rewrite to use grammar. (main): Remove obsolete test function. (m68k_ip): Extensive changes to use new grammar. (get_regs): Remove. (crack_operand): m68k_ip_op now returns 0 on success. (init_table): Add ssp, zd0-7 and za0-7. (md_assemble): Make er const. Correct loop over operands when looking for error message. (md_begin): Set alt_notend_table for '(' and '@'. (get_num): Expression is already parsed. Don't set seg. * configure.in: If cpu_type is m68k, put m68k-parse.o in extra-objects. * configure: Rebuild. * Makefile.in (DISTSTUFF): Add m68k-parse.c. (BISON): Use ../bison/bison if it exists. (BISONFLAGS): Define as empty. (TARG_CPU_DEP_m68k): Depend upon $(srcdir)/config/m68k-parse.h. (m68k-parse.c, m68k-parse.o): New targets.
508 lines
14 KiB
Makefile
508 lines
14 KiB
Makefile
# Makefile for GNU Assembler
|
|
# Copyright (C) 1987-1992, 1993 Free Software Foundation, Inc.
|
|
|
|
# This file is part of GNU GAS.
|
|
|
|
# GNU GAS 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, or (at your option)
|
|
# any later version.
|
|
|
|
# GNU GAS 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 GNU GAS; see the file COPYING. If not, write to
|
|
# the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
# The targets for external use include:
|
|
# all, doc, proto, install, uninstall, includes, TAGS,
|
|
# clean, mostlyclean, distclean, realclean, stage1, stage2, stage3, stage4.
|
|
|
|
# Variables that exist for you to override.
|
|
# See below for how to change them for certain systems.
|
|
|
|
VPATH = @srcdir@
|
|
srcdir = @srcdir@
|
|
srcroot = $(srcdir)/..
|
|
|
|
target_alias = @target_alias@
|
|
prefix = @prefix@
|
|
|
|
program_transform_name = @program_transform_name@
|
|
exec_prefix = @exec_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
|
|
|
|
VERSION=cygnus-2.5.3
|
|
|
|
SHELL = /bin/sh
|
|
|
|
INSTALL = $${srcroot}/install.sh -c
|
|
INSTALL_PROGRAM = $(INSTALL)
|
|
INSTALL_DATA = $(INSTALL)
|
|
INSTALL_XFORM = $(INSTALL) -t='-e $(program_transform_name)'
|
|
INSTALL_XFORM1= $(INSTALL_XFORM) -b=.1
|
|
|
|
DISTSTUFF= make-gas.com m68k-parse.c
|
|
|
|
AR = ar
|
|
AR_FLAGS = qv
|
|
BISON = `if [ -f ../bison/bison ] ; then echo ../bison/bison -y -L../bison/bison ; else echo bison -y ; fi`
|
|
BISONFLAGS =
|
|
MAKEINFO = makeinfo
|
|
TEXI2DVI = texi2dvi
|
|
RANLIB = ranlib
|
|
CC = @CC@
|
|
CFLAGS = -g
|
|
|
|
MAKEOVERRIDES=
|
|
|
|
FLAGS_TO_PASS = \
|
|
"prefix=$(prefix)" \
|
|
"exec_prefix=$(exec_prefix)" \
|
|
"tooldir=$(tooldir)" \
|
|
"AR=$(AR)" \
|
|
"AR_FLAGS=$(AR_FLAGS)" \
|
|
"CC=$(CC)" \
|
|
"CFLAGS=$(CFLAGS)" \
|
|
"RANLIB=$(RANLIB)" \
|
|
"LOADLIBES=$(LOADLIBES)" \
|
|
"LDFLAGS=$(LDFLAGS)" \
|
|
"BISON=$(BISON)" \
|
|
"LEX=$(LEX)" \
|
|
"MAKEINFO=$(MAKEINFO)" \
|
|
"INSTALL=$(INSTALL)" \
|
|
"INSTALL_DATA=$(INSTALL_DATA)" \
|
|
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)"
|
|
|
|
RUNTEST = `if [ -f ${srcdir}/../dejagnu/runtest ] ; then \
|
|
echo ${srcdir}/../dejagnu/runtest ; else echo runtest; \
|
|
fi`
|
|
RUNTESTFLAGS=
|
|
CHECKFLAGS= \
|
|
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
|
|
"RUNTEST=$(RUNTEST)"
|
|
|
|
# Lists of files for various purposes.
|
|
|
|
REAL_SOURCES = \
|
|
$(srcdir)/app.c \
|
|
$(srcdir)/as.c \
|
|
$(srcdir)/atof-generic.c \
|
|
$(srcdir)/bignum-copy.c \
|
|
$(srcdir)/cond.c \
|
|
$(srcdir)/expr.c \
|
|
$(srcdir)/flonum-konst.c \
|
|
$(srcdir)/flonum-copy.c \
|
|
$(srcdir)/flonum-mult.c \
|
|
$(srcdir)/frags.c \
|
|
$(srcdir)/hash.c \
|
|
$(srcdir)/input-file.c \
|
|
$(srcdir)/input-scrub.c \
|
|
$(srcdir)/literal.c \
|
|
$(srcdir)/messages.c \
|
|
$(srcdir)/output-file.c \
|
|
$(srcdir)/read.c \
|
|
$(srcdir)/subsegs.c \
|
|
$(srcdir)/symbols.c \
|
|
$(srcdir)/write.c \
|
|
$(srcdir)/listing.c \
|
|
$(srcdir)/ecoff.c \
|
|
$(srcdir)/stabs.c
|
|
|
|
# in an expedient order
|
|
LINKED_SOURCES = \
|
|
targ-cpu.c \
|
|
obj-format.c \
|
|
atof-targ.c
|
|
|
|
SOURCES = $(LINKED_SOURCES) $(REAL_SOURCES)
|
|
|
|
REAL_HEADERS = \
|
|
$(srcdir)/as.h \
|
|
$(srcdir)/bignum.h \
|
|
$(srcdir)/expr.h \
|
|
$(srcdir)/flonum.h \
|
|
$(srcdir)/frags.h \
|
|
$(srcdir)/hash.h \
|
|
$(srcdir)/input-file.h \
|
|
$(srcdir)/listing.h \
|
|
$(srcdir)/tc.h \
|
|
$(srcdir)/obj.h \
|
|
$(srcdir)/read.h \
|
|
$(srcdir)/struc-symbol.h \
|
|
$(srcdir)/subsegs.h \
|
|
$(srcdir)/symbols.h \
|
|
$(srcdir)/write.h \
|
|
$(srcdir)/ecoff.h
|
|
|
|
LINKED_HEADERS = \
|
|
targ-env.h \
|
|
targ-cpu.h \
|
|
obj-format.h \
|
|
atof-targ.h
|
|
|
|
HEADERS = $(LINKED_HEADERS) $(REAL_HEADERS)
|
|
|
|
# @target_frag@
|
|
|
|
OBJS = \
|
|
targ-cpu.o \
|
|
obj-format.o \
|
|
atof-targ.o \
|
|
app.o \
|
|
as.o \
|
|
atof-generic.o \
|
|
bignum-copy.o \
|
|
cond.o \
|
|
expr.o \
|
|
flonum-konst.o \
|
|
flonum-copy.o \
|
|
flonum-mult.o \
|
|
frags.o \
|
|
hash.o \
|
|
input-file.o \
|
|
input-scrub.o \
|
|
literal.o \
|
|
messages.o \
|
|
output-file.o \
|
|
read.o \
|
|
subsegs.o \
|
|
symbols.o \
|
|
write.o \
|
|
listing.o \
|
|
ecoff.o \
|
|
stabs.o \
|
|
@extra_objects@ \
|
|
$(TE_OBJS)
|
|
|
|
all: .gdbinit as.new gasp.new
|
|
@srcroot=`cd $(srcroot); pwd`; export srcroot; \
|
|
(cd doc ; $(MAKE) $(FLAGS_TO_PASS) all)
|
|
|
|
dvi info install-info clean-info:
|
|
@srcroot=`cd $(srcroot); pwd`; export srcroot; \
|
|
(cd doc ; $(MAKE) $(FLAGS_TO_PASS) $@)
|
|
|
|
make-gas.com: stamp-mk.com
|
|
stamp-mk.com: vmsconf.sh Makefile
|
|
sh $(srcdir)/vmsconf.sh $(OBJS) > new-make.com
|
|
$(srcdir)/../move-if-change new-make.com $(srcdir)/make-gas.com
|
|
touch stamp-mk.com
|
|
|
|
# Now figure out from those variables how to compile and link.
|
|
|
|
# This is the variable actually used when we compile.
|
|
ALL_CFLAGS = $(INTERNAL_CFLAGS) $(CROSS) $(CFLAGS) $(HDEFINES) $(TDEFINES)
|
|
|
|
# How to link with both our special library facilities
|
|
# and the system's installed libraries.
|
|
|
|
LIBS = @OPCODES_LIB@ @BFDLIB@ $(LOCAL_LOADLIBES) ../libiberty/libiberty.a
|
|
|
|
# Specify the directories to be searched for header files.
|
|
# Both . and srcdir are used, in that order,
|
|
# so that tm.h and config.h will be found in the compilation
|
|
# subdirectory rather than in the source directory.
|
|
INCLUDES = -I. -I$(srcdir) -I../bfd -I$(srcdir)/config -I$(srcdir)/../include -I$(srcdir)/.. -I$(srcdir)/../bfd
|
|
|
|
# Always use -I$(srcdir)/config when compiling.
|
|
.c.o:
|
|
$(CC) -c $(ALL_CFLAGS) $(CPPFLAGS) $(INCLUDES) $<
|
|
|
|
# This tells GNU make version 3 not to export all the variables
|
|
# defined in this file into the environment.
|
|
.NOEXPORT:
|
|
|
|
# Files to be copied away after each stage in building.
|
|
STAGESTUFF = *.o as.new gasp.new
|
|
|
|
$(OBJS): @ALL_OBJ_DEPS@
|
|
|
|
as.new: $(OBJS) $(LIBS)
|
|
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o as.new $(OBJS) $(LIBS) $(LOADLIBES)
|
|
|
|
$(OBJS): config.h as.h targ-env.h obj-format.h targ-cpu.h flonum.h expr.h \
|
|
struc-symbol.h write.h frags.h hash.h read.h symbols.h tc.h obj.h \
|
|
listing.h bignum.h
|
|
|
|
gasp.new: gasp.o
|
|
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o gasp.new gasp.o $(LIBS) $(LOADLIBES)
|
|
|
|
installcheck:
|
|
@echo No installcheck target is available yet for the GNU assembler.
|
|
|
|
check:
|
|
@(here=`pwd` ; export here ; \
|
|
cd testsuite ; $(MAKE) $(FLAGS_TO_PASS) $(CHECKFLAGS) check)
|
|
|
|
config.status: configure
|
|
if [ -r config.status ]; then \
|
|
sh ./config.status --recheck ; \
|
|
else \
|
|
echo You must configure gas. Look at the INSTALL file for details. ; \
|
|
exit 1 ; \
|
|
fi
|
|
|
|
config.h: config-stamp ; @true
|
|
config-stamp: Makefile conf
|
|
-rm -f config.new config-stamp
|
|
echo '/* config.h. Generated automatically by make. */' > config.new
|
|
echo '#ifndef GAS_VERSION' >> config.new
|
|
echo '#define GAS_VERSION "$(VERSION)"' >> config.new
|
|
echo '' >> config.new
|
|
cat conf >> config.new
|
|
echo '#endif /* GAS_VERSION */' >> config.new
|
|
$(srcdir)/../move-if-change config.new config.h
|
|
touch config-stamp
|
|
|
|
# Compiling object files from source files.
|
|
|
|
TARG_CPU_DEP_a29k =
|
|
TARG_CPU_DEP_alpha =
|
|
# start-sanitize-arc
|
|
TARG_CPU_DEP_arc = $(srcdir)/../include/opcode/arc.h
|
|
# end-sanitize-arc
|
|
TARG_CPU_DEP_arm =
|
|
TARG_CPU_DEP_generic =
|
|
TARG_CPU_DEP_h8300 = $(srcdir)/../include/opcode/h8300.h
|
|
TARG_CPU_DEP_h8500 = $(srcdir)/../opcodes/h8500-opc.h
|
|
TARG_CPU_DEP_hppa =
|
|
TARG_CPU_DEP_i386 = $(srcdir)/../include/opcode/i386.h
|
|
TARG_CPU_DEP_i860 =
|
|
TARG_CPU_DEP_i960 =
|
|
TARG_CPU_DEP_m68k = $(srcdir)/../include/opcode/m68k.h \
|
|
$(srcdir)/config/m68k-parse.h
|
|
TARG_CPU_DEP_m88k = $(srcdir)/config/m88k-opcode.h
|
|
TARG_CPU_DEP_mips = $(srcdir)/../include/opcode/mips.h
|
|
TARG_CPU_DEP_ns32k =
|
|
TARG_CPU_DEP_ppc =
|
|
# start-sanitize-rce
|
|
TARG_CPU_DEP_rce = $(srcdir)/../opcodes/rce-opc.h
|
|
# end-sanitize-rce
|
|
TARG_CPU_DEP_sh = $(srcdir)/../opcodes/sh-opc.h
|
|
TARG_CPU_DEP_sparc =
|
|
TARG_CPU_DEP_tahoe =
|
|
TARG_CPU_DEP_vax =
|
|
TARG_CPU_DEP_w65 = $(srcdir)/../opcodes/w65-opc.h
|
|
TARG_CPU_DEP_z8k = $(srcdir)/../opcodes/z8k-opc.h
|
|
|
|
gasp.o : gasp.c config.h
|
|
app.o : app.c write.h
|
|
as.o : as.c output-file.h write.h subsegs.h
|
|
atof-generic.o : atof-generic.c
|
|
bignum-copy.o : bignum-copy.c
|
|
cond.o : cond.c
|
|
debug.o : debug.c subsegs.h
|
|
expr.o : expr.c
|
|
flonum-konst.o : flonum-konst.c
|
|
flonum-copy.o : flonum-copy.c
|
|
flonum-mult.o : flonum-mult.c
|
|
frags.o : frags.c subsegs.h
|
|
hash.o : hash.c
|
|
input-file.o : input-file.c input-file.h
|
|
input-scrub.o : input-scrub.c input-file.h
|
|
listing.o : listing.c input-file.h subsegs.h
|
|
literal.o : literal.c subsegs.h
|
|
messages.o : messages.c
|
|
output-file.o : output-file.c output-file.h
|
|
read.o : read.c
|
|
subsegs.o : subsegs.c subsegs.h
|
|
symbols.o : symbols.c subsegs.h
|
|
write.o : write.c subsegs.h output-file.h
|
|
ecoff.o : ecoff.c ecoff.h \
|
|
$(srcdir)/../include/coff/internal.h $(srcdir)/../include/coff/sym.h \
|
|
$(srcdir)/../include/coff/ecoff.h \
|
|
$(srcdir)/../include/coff/symconst.h \
|
|
$(srcdir)/../include/aout/stab_gnu.h
|
|
stabs.o : stabs.c subsegs.h $(srcdir)/../include/aout/stab_gnu.h
|
|
atof-targ.o : atof-targ.c
|
|
obj-format.o : obj-format.c
|
|
targ-cpu.o : targ-cpu.c $(TARG_CPU_DEP_@cpu_type@)
|
|
|
|
obj-elf.o : $(srcdir)/config/obj-elf.c
|
|
$(CC) -c $(ALL_CFLAGS) $(CPPFLAGS) $(INCLUDES) $(srcdir)/config/obj-elf.c
|
|
obj-ecoff.o : $(srcdir)/config/obj-ecoff.c
|
|
$(CC) -c $(ALL_CFLAGS) $(CPPFLAGS) $(INCLUDES) $(srcdir)/config/obj-ecoff.c
|
|
|
|
e-mipself.o : $(srcdir)/config/e-mipself.c
|
|
$(CC) -c $(ALL_CFLAGS) $(CPPFLAGS) $(INCLUDES) $(srcdir)/config/e-mipself.c
|
|
e-mipsecoff.o : $(srcdir)/config/e-mipsecoff.c
|
|
$(CC) -c $(ALL_CFLAGS) $(CPPFLAGS) $(INCLUDES) $(srcdir)/config/e-mipsecoff.c
|
|
|
|
# The m68k operand parser.
|
|
|
|
m68k-parse.c: $(srcdir)/config/m68k-parse.y
|
|
$(BISON) $(BISONFLAGS) $(srcdir)/config/m68k-parse.y
|
|
mv -f y.tab.c m68k-parse.c
|
|
m68k-parse.o: m68k-parse.c $(srcdir)/config/m68k-parse.y
|
|
|
|
# Remake the info files.
|
|
|
|
doc: $(srcdir)/as.info
|
|
|
|
$(srcdir)/as.info: $(srcdir)/doc/as.texinfo
|
|
@(cd doc; $(MAKE) $(FLAGS_TO_PASS) as.info; mv as.info $srcdir)
|
|
|
|
diststuff: $(DISTSTUFF)
|
|
|
|
clean-here:
|
|
-rm -f $(STAGESTUFF) core stamp-mk.com
|
|
|
|
clean mostlyclean: clean-here
|
|
@cd doc ; $(MAKE) $(FLAGS_TO_PASS) $@
|
|
@if [ -d testsuite ] ; then \
|
|
cd testsuite ; $(MAKE) $(FLAGS_TO_PASS) $@ ; \
|
|
else true; fi
|
|
|
|
# Like clean but also delete the links made to configure gas.
|
|
distclean: clean-here
|
|
@cd doc ; $(MAKE) $(FLAGS_TO_PASS) $@
|
|
@if [ -d testsuite ] ; then \
|
|
cd testsuite ; $(MAKE) $(FLAGS_TO_PASS) $@ ; \
|
|
else true; fi
|
|
-rm -f config.status Makefile targ-env.h targ-cpu.h \
|
|
targ-cpu.c obj-format.h obj-format.c atof-targ.c TAGS \
|
|
config-stamp config.h conf config.log config.cache .gdbinit
|
|
realclean: clean distclean
|
|
-rm -rf $(DISTSTUFF)
|
|
|
|
# Entry points `install', `includes' and `uninstall'.
|
|
|
|
# Copy the files into directories where they will be run.
|
|
install:
|
|
srcroot=`cd $(srcroot); pwd`; export srcroot; \
|
|
$(INSTALL_XFORM) as.new $(bindir)/as; \
|
|
$(INSTALL_XFORM1) $(srcdir)/doc/as.1 $(man1dir)/as.1; \
|
|
n=`echo as | sed '$(program_transform_name)'`; \
|
|
if [ -d $(tooldir) ]; then \
|
|
if [ -d $(tooldir)/bin ] ; then true ; else mkdir $(tooldir)/bin ; fi; \
|
|
rm -f $(tooldir)/bin/as; \
|
|
ln $(bindir)/$$n $(tooldir)/bin/as >/dev/null 2>/dev/null \
|
|
|| $(INSTALL_PROGRAM) as.new $(tooldir)/bin/as; \
|
|
else true; fi
|
|
srcroot=`cd $(srcroot); pwd`; export srcroot; \
|
|
$(INSTALL_XFORM) gasp.new $(bindir)/gasp; \
|
|
n=`echo gasp | sed '$(program_transform_name)' `; \
|
|
if [ -d $(tooldir) ]; then \
|
|
if [ -d $(tooldir)/bin ] ; then true ; else mkdir $(tooldir)/bin ; fi; \
|
|
rm -f $(tooldir)/bin/gasp; \
|
|
ln $(bindir)/$$n $(tooldir)/bin/gasp >/dev/null 2>/dev/null \
|
|
|| $(INSTALL_PROGRAM) gasp.new $(tooldir)/bin/gasp; \
|
|
else true; fi
|
|
|
|
# Cancel installation by deleting the installed files.
|
|
uninstall:
|
|
-n=`t='$(program_transform_name)'; echo as | sed $$t`; \
|
|
rm -f $(bindir)/$$n; \
|
|
rm -f $(mandir)/$$n.1
|
|
-n=`t='$(program_transform_name)'; echo gasp | sed $$t`; \
|
|
rm -f $(bindir)/$$n; \
|
|
|
|
# These exist for maintenance purposes.
|
|
|
|
tags TAGS: force
|
|
etags $(REAL_HEADERS) $(REAL_SOURCES) $(srcdir)/config/*.[hc] $(srcdir)/README $(srcdir)/Makefile.in
|
|
|
|
bootstrap: as.new force
|
|
$(MAKE) stage1
|
|
rm -f stage && ln -s stage1 stage
|
|
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as.new gasp.new
|
|
$(MAKE) stage2
|
|
rm -f stage && ln -s stage2 stage
|
|
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as.new gasp.new
|
|
$(MAKE) comparison against=stage2
|
|
|
|
bootstrap2: force
|
|
rm -f stage && ln -s stage1 stage
|
|
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as.new gasp.new
|
|
$(MAKE) stage2
|
|
rm -f stage && ln -s stage2 stage
|
|
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as.new gasp.new
|
|
$(MAKE) comparison against=stage2
|
|
|
|
bootstrap3: force
|
|
rm -f stage && ln -s stage2 stage
|
|
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as.new gasp.new
|
|
$(MAKE) comparison against=stage2
|
|
|
|
# Copy the object files from a particular stage into a subdirectory.
|
|
stage1: force
|
|
-mkdir stage1
|
|
-mv $(STAGESTUFF) stage1
|
|
if [ -f stage1/as.new -a ! -f stage1/as ] ; then (cd stage1 ; ln -s as.new as) ; fi
|
|
|
|
stage2: force
|
|
-mkdir stage2
|
|
-mv $(STAGESTUFF) stage2
|
|
if [ -f stage2/as.new -a ! -f stage2/as ] ; then (cd stage2 ; ln -s as.new as) ; fi
|
|
|
|
stage3: force
|
|
-mkdir stage3
|
|
-mv $(STAGESTUFF) stage3
|
|
if [ -f stage3/as.new -a ! -f stage3/as ] ; then (cd stage3 ; ln -s as.new as) ; fi
|
|
|
|
against=stage2
|
|
|
|
# This rule is derived from corresponding code in the Makefile.in for gcc.
|
|
# The "tail +16c" is to bypass headers which may include timestamps or
|
|
# temporary assembly file names.
|
|
comparison: force
|
|
x=0 ; \
|
|
for file in $(STAGESTUFF) ; do \
|
|
tail +16c ./$$file > tmp-foo1; \
|
|
if tail +16c ${against}/$$file > tmp-foo2 2>/dev/null ; then \
|
|
if cmp tmp-foo1 tmp-foo2 ; then \
|
|
true ; \
|
|
else \
|
|
echo $$file differs ; \
|
|
x=1 ; \
|
|
fi ; \
|
|
else true; fi ; \
|
|
done ; \
|
|
exit $$x
|
|
-rm -f tmp-foo*
|
|
|
|
de-stage1: force
|
|
- (cd stage1 ; rm -f as ; mv -f * ..)
|
|
- rmdir stage1
|
|
|
|
de-stage2: force
|
|
- (cd stage2 ; rm -f as ; mv -f * ..)
|
|
- rmdir stage2
|
|
|
|
de-stage3: force
|
|
- (cd stage3 ; rm -f as ; mv -f * ..)
|
|
- rmdir stage3
|
|
|
|
#In GNU Make, ignore whether `stage*' exists.
|
|
.PHONY: stage1 stage2 stage3 stage4 clean mostlyclean realclean distclean
|
|
.PHONY: TAGS bootstrap
|
|
|
|
force:
|
|
|
|
Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag) \
|
|
$(srcdir)/configure.in config.status conf.in
|
|
$(SHELL) ./config.status
|
|
.gdbinit: $(srcdir)/gdbinit.in config.status
|
|
$(SHELL) ./config.status
|