binutils-gdb/gas/Makefile.in
Ian Lance Taylor a1c7c0f3ac * config/m68k-parse.y: New file: bison grammar for m68k operands,
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.
1995-08-08 02:36:10 +00:00

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