Conversion to autoconf:

* acconfig.h, aclocal.m4: New files.
* configure.in: Rewritten (except for some target-specific code) for autoconf.
* conf.in, configure: New files, generated from the above.
* Makefile.in: Changed magic sequence indicating insertion of makefile
fragments.
(VPATH, srcdir, CC, LIBS, OBJS dependencies): Use @-substitutions from
configure.
(LINKED_HEADERS): Deleted a.out.gnu.h, a.out.h, and host.h.
(config.status, configure): Rewrite rules.
(config-stamp): Depend on conf.  Skip variables that configure is now
substituting itself.
(*.o dependencies): Deleted host.h.
(distclean, realclean): Don't delete host.h.
* as.c: Don't include stdio.h, string.h, sys/types.h.  Include signal.h after
as.h.
* as.h: Include alloca-conf.h first.  Include ctype.h, string.h, strings.h,
stdlib.h, unistd.h, sys/types.h, fopen-bin.h, fopen-same.h, as suggested by
autoconf test results.
[BROKEN_ASSERT]: Don't include assert.h.
(strdup): Declare.
(volatile, const): Define if not __STDC__ and not already defined.
(malloc, realloc) [NEED_MALLOC_DECLARATION]: Declare.
(free) [NEED_FREE_DECLARATION]: Declare.
* gasp.c: Include config.h, stdlib.h (if HAVE_STDLIB_H).  Don't include host.h.
(malloc) [NEED_MALLOC_DECLARATION]: Declare.
* messages.c: Include as.h first.  Include errno.h only if HAVE_ERRNO_H.  If
HAVE_VARARGS_H and not __STDC__, undefine HAVE_STDARG_H.  Set NO_STDARG and
NO_VARARGS as appropriate.
* doc/Makefile.in (srcdir, INSTALL, INSTALL_PROGRAM, INSTALL_DATA): Use
autoconf @-substitutions.
This commit is contained in:
Ken Raeburn 1994-08-28 07:59:06 +00:00
parent 27bf48ecfe
commit b11fb93989
10 changed files with 2525 additions and 234 deletions

View File

@ -1,5 +1,39 @@
Sat Aug 27 20:26:12 1994 Ken Raeburn (raeburn@kr-laptop.cygnus.com)
Conversion to autoconf:
* acconfig.h, aclocal.m4: New files.
* configure.in: Rewritten (except for some target-specific code)
for autoconf.
* conf.in, configure: New files, generated from the above.
* Makefile.in: Changed magic sequence indicating insertion of
makefile fragments.
(VPATH, srcdir, CC, LIBS, OBJS dependencies): Use @-substitutions
from configure.
(LINKED_HEADERS): Deleted a.out.gnu.h, a.out.h, and host.h.
(config.status, configure): Rewrite rules.
(config-stamp): Depend on conf. Skip variables that configure is
now substituting itself.
(*.o dependencies): Deleted host.h.
(distclean, realclean): Don't delete host.h.
* as.c: Don't include stdio.h, string.h, sys/types.h. Include
signal.h after as.h.
* as.h: Include alloca-conf.h first. Include ctype.h, string.h,
strings.h, stdlib.h, unistd.h, sys/types.h, fopen-bin.h,
fopen-same.h, as suggested by autoconf test results.
[BROKEN_ASSERT]: Don't include assert.h.
(strdup): Declare.
(volatile, const): Define if not __STDC__ and not already defined.
(malloc, realloc) [NEED_MALLOC_DECLARATION]: Declare.
(free) [NEED_FREE_DECLARATION]: Declare.
* gasp.c: Include config.h, stdlib.h (if HAVE_STDLIB_H). Don't
include host.h.
(malloc) [NEED_MALLOC_DECLARATION]: Declare.
* messages.c: Include as.h first. Include errno.h only if
HAVE_ERRNO_H. If HAVE_VARARGS_H and not __STDC__, undefine
HAVE_STDARG_H. Set NO_STDARG and NO_VARARGS as appropriate.
* doc/Makefile.in (srcdir, INSTALL, INSTALL_PROGRAM,
INSTALL_DATA): Use autoconf @-substitutions.
* input-file.c: Don't include assert.h here, 'cause as.h already
includes it.

View File

@ -24,7 +24,8 @@
# Variables that exist for you to override.
# See below for how to change them for certain systems.
srcdir = .
VPATH = @srcdir@
srcdir = @srcdir@
srcroot = $(srcdir)/..
prefix = /usr/local
@ -66,6 +67,7 @@ BISON = bison
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
RANLIB = ranlib
CC = @CC@
CFLAGS = -g
MAKEOVERRIDES=
@ -189,9 +191,6 @@ REAL_HEADERS = \
$(srcdir)/ecoff.h
LINKED_HEADERS = \
a.out.gnu.h \
a.out.h \
host.h \
targ-env.h \
targ-cpu.h \
obj-format.h \
@ -199,7 +198,7 @@ LINKED_HEADERS = \
HEADERS = $(LINKED_HEADERS) $(REAL_HEADERS)
#### host, target, and site specific Makefile frags come in here.
# @target_frag@
OBJS = \
targ-cpu.o \
@ -262,8 +261,7 @@ 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
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,
@ -283,11 +281,13 @@ SUBDIR_INCLUDES = -I.. -I$(srcdir) -I$(srcdir)/config
# Files to be copied away after each stage in building.
STAGESTUFF = *.o as.new gasp.new
$(OBJS): $(ALL_OBJ_DEPS)
$(OBJS): @ALL_OBJ_DEPS@
as.new: $(OBJS) $(LIBS)
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o as.new $(OBJS) $(LIBS) $(LOADLIBES)
$(OBJS): config.h
gasp.new: gasp.o
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o gasp.new gasp.o $(LIBS) $(LOADLIBES)
@ -298,122 +298,126 @@ check:
@(here=`pwd` ; export here ; \
cd testsuite ; $(MAKE) $(FLAGS_TO_PASS) $(CHECKFLAGS) check)
config.status:
@echo You must configure gas. Look at the INSTALL file for details.
@false
config.status: configure
if [ -r config.status ]; then \
sh $(srcdir)/config.status --recheck ; \
else \
echo You must configure gas. Look at the INSTALL file for details. ; \
exit 1 ; \
fi
configure: configure.in aclocal.m4 acconfig.h
(cd ${srcdir} && \
autoheader configure.in > conf-in.h && \
../move-if-change conf-in.h conf.in)
(cd ${srcdir} && autoconf )
config.h: config-stamp ; @true
config-stamp: Makefile
config-stamp: Makefile conf
-rm -f config.new config-stamp
echo '#ifndef TARGET_CPU' > config.new
echo '#define TARGET_CPU "$(target_cpu)"' >> config.new
echo '#define TARGET_ALIAS "$(target_alias)"' >> config.new
echo '#define TARGET_CANONICAL "$(target_canonical)"' >> config.new
echo '#define GAS_VERSION "$(VERSION)"' >> config.new
if [ "$(defs)" != "" ]; then \
for d in $(defs) ; do \
echo "#define $$d" >> config.new ; \
done ; \
else true; fi
echo '#endif /* TARGET_CPU */' >> 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.
gasp.o : gasp.c
app.o : app.c as.h host.h targ-env.h obj-format.h \
app.o : app.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
as.o : as.c as.h host.h targ-env.h obj-format.h output-file.h \
as.o : as.c as.h targ-env.h obj-format.h output-file.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h subsegs.h \
tc.h obj.h config.h
atof-generic.o : atof-generic.c as.h host.h targ-env.h obj-format.h \
atof-generic.o : atof-generic.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
bignum-copy.o : bignum-copy.c as.h host.h \
bignum-copy.o : bignum-copy.c as.h \
targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
cond.o : cond.c as.h host.h targ-env.h obj-format.h \
cond.o : cond.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
debug.o : debug.c as.h host.h targ-env.h obj-format.h \
debug.o : debug.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
subsegs.h
expr.o : expr.c as.h host.h targ-env.h obj-format.h \
expr.o : expr.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
flonum-konst.o : flonum-konst.c flonum.h bignum.h
flonum-copy.o : flonum-copy.c as.h host.h targ-env.h obj-format.h \
flonum-copy.o : flonum-copy.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
flonum-mult.o : flonum-mult.c flonum.h bignum.h
frags.o : frags.c as.h host.h targ-env.h obj-format.h \
frags.o : frags.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
subsegs.h
hash.o : hash.c as.h host.h targ-env.h obj-format.h \
hash.o : hash.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
hex-value.o : hex-value.c
input-file.o : input-file.c as.h host.h \
input-file.o : input-file.c as.h \
targ-env.h obj-format.h targ-cpu.h \
struc-symbol.h write.h flonum.h bignum.h expr.h \
frags.h hash.h read.h symbols.h tc.h obj.h input-file.h
input-scrub.o : input-scrub.c /usr/include/errno.h /usr/include/sys/errno.h \
as.h host.h targ-env.h obj-format.h \
as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
input-file.h
listing.o : listing.c as.h host.h targ-env.h flonum.h bignum.h \
listing.o : listing.c as.h targ-env.h flonum.h bignum.h \
listing.h obj-format.h targ-cpu.h struc-symbol.h write.h expr.h \
frags.h hash.h read.h symbols.h tc.h obj.h input-file.h subsegs.h
literal.o : literal.c subsegs.h as.h host.h targ-env.h obj-format.h \
literal.o : literal.c subsegs.h as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
messages.o : messages.c as.h host.h targ-env.h obj-format.h \
messages.o : messages.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
output-file.o : output-file.c as.h host.h targ-env.h obj-format.h \
output-file.o : output-file.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
output-file.h
read.o : read.c as.h host.h targ-env.h obj-format.h \
read.o : read.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
subsegs.o : subsegs.c as.h host.h targ-env.h obj-format.h \
subsegs.o : subsegs.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
subsegs.h
symbols.o : symbols.c as.h host.h targ-env.h obj-format.h \
symbols.o : symbols.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
subsegs.h
write.o : write.c as.h host.h targ-env.h obj-format.h \
write.o : write.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
subsegs.h output-file.h
ecoff.o : ecoff.c as.h host.h targ-env.h obj-format.h \
ecoff.o : ecoff.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
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 as.h host.h targ-env.h obj-format.h \
stabs.o : stabs.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
subsegs.h $(srcdir)/../include/aout/stab_gnu.h
xmalloc.o : xmalloc.c
atof-targ.o : atof-targ.c as.h host.h targ-env.h obj-format.h \
atof-targ.o : atof-targ.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h \
symbols.h tc.h obj.h
obj-format.o : obj-format.c as.h host.h targ-env.h obj-format.h \
obj-format.o : obj-format.c as.h targ-env.h obj-format.h \
targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h \
subsegs.h symbols.h tc.h obj.h
@ -444,7 +448,7 @@ distclean realclean: clean-here
@if [ -d testsuite ] ; then \
cd testsuite ; $(MAKE) $(FLAGS_TO_PASS) $@ ; \
else true; fi
-rm -f config.status Makefile host.h targ-env.h targ-cpu.h \
-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

43
gas/acconfig.h Normal file
View File

@ -0,0 +1,43 @@
/* Should gas use high-level BFD interfaces? */
#undef BFD_ASSEMBLER
/* Some assert/preprocessor combinations are incapable of handling
certain kinds of constructs in the argument of assert. For example,
quoted strings (if requoting isn't done right) or newlines. */
#undef BROKEN_ASSERT
/* If we aren't doing cross-assembling, some operations can be optimized,
since byte orders and value sizes don't need to be adjusted. */
#undef CROSS_COMPILE
/* Some IBM compilers can't handle some of the (rather basic) constructs
used in the 68k support code. */
#undef IBM_COMPILER_SUX
/* Some gas code wants to know these parameters. */
#undef TARGET_ALIAS
#undef TARGET_CPU
#undef TARGET_CANONICAL
#undef TARGET_OS
#undef TARGET_VENDOR
/* Some operating systems, for example DOS, require the use of "wb" mode when
opening a binary file for writing. If only "w" is used, the file will not
be correct. However, some other systems reject such a mode. This indicates
which ../include/fopen-*.h header file we want to include, so that we can
get macros that'll do the right thing for this system. */
#undef WANT_FOPEN_BIN
/* Sometimes the system header files don't declare malloc and realloc. */
#undef NEED_MALLOC_DECLARATION
/* Sometimes the system header files don't declare free. */
#undef NEED_FREE_DECLARATION
/* Sometimes errno.h doesn't declare errno itself. */
#undef NEED_ERRNO_DECLARATION
#undef MANY_SEGMENTS
/* Needed only for sparc configuration */
#undef sparcv9

69
gas/aclocal.m4 vendored Normal file
View File

@ -0,0 +1,69 @@
dnl
dnl The autoconf 1.107 version of this doesn't substitute variables
dnl in the names of the links or their targets. This is a problem...
dnl
undefine([AC_OUTPUT_LINKS])dnl
define(AC_OUTPUT_LINKS,
[EOF
cat >> ${CONFIG_STATUS} <<EOF
ac_links="$1"
ac_files="$2"
EOF
cat >> ${CONFIG_STATUS} <<\EOF
while test -n "${ac_files}"; do
set ${ac_links}; ac_link=[$]1; shift; ac_links=[$]*
set ${ac_files}; ac_file=[$]1; shift; ac_files=[$]*
echo "linking ${ac_link} to ${srcdir}/${ac_file}"
if test ! -r ${srcdir}/${ac_file}; then
AC_MSG_ERROR(${srcdir}/${ac_file}: File not found)
fi
rm -f ${ac_link}
# Make a symlink if possible; otherwise try a hard link.
if ln -s ${srcdir}/${ac_file} ${ac_link} 2>/dev/null ||
ln ${srcdir}/${ac_file} ${ac_link}; then :
else
AC_MSG_ERROR(can not link ${ac_link} to ${srcdir}/${ac_file})
fi
done
])dnl
dnl
dnl This ugly hack is needed because the Cygnus configure script won't
dnl tell us what CC is going to be, and "cc" isn't always right. (The
dnl top-level Makefile will always override anything we choose here, so
dnl the usual gcc/cc selection is useless.)
dnl
dnl It knows where it is in the tree; don't try using it elsewhere.
dnl
undefine([AC_PROG_CC])dnl
define(AC_PROG_CC,
[AC_BEFORE([$0], [AC_PROG_CPP])dnl
AC_PROVIDE([$0])dnl
dnl
dnl The ugly bit...
dnl
AC_MSG_CHECKING([for CC])
dnl Don't bother with cache.
test -z "$CC" && CC=`egrep '^CC *=' ../Makefile | tail -1 | sed 's/^CC *= *//'`
test -z "$CC" && CC=cc
AC_MSG_RESULT(setting CC to $CC)
AC_SUBST(CC)
dnl
dnl
# Find out if we are using GNU C, under whatever name.
cat > conftest.c <<EOF
#ifdef __GNUC__
yes
#endif
EOF
${CC-cc} -E conftest.c > conftest.out 2>&1
if egrep yes conftest.out >/dev/null 2>&1; then
GCC=yes
else
GCC=
fi
rm -f conftest*
])dnl

View File

@ -35,20 +35,14 @@
#include "ansidecl.h"
#include "libiberty.h"
#include <stdio.h>
#include <string.h>
#ifdef _POSIX_SOURCE
#include <sys/types.h> /* For pid_t in signal.h */
#endif
#include <signal.h>
#define COMMON
#include "as.h"
#include "subsegs.h"
#include "output-file.h"
#include <signal.h>
#ifndef SIGTY
#ifdef __STDC__
#define SIGTY void

View File

@ -37,11 +37,38 @@
/* These #defines are for parameters of entire assembler. */
/* These #includes are for type definitions etc. */
/* For some systems, this is required to be first. */
#include "../libiberty/alloca-conf.h"
/* Now, tend to the rest of the configuration. */
#include "config.h"
/* System include files first... */
#include <stdio.h>
#include <ctype.h>
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_SYS_TYPES_H
/* for size_t, pid_t */
#include <sys/types.h>
#endif
/* Some systems do declare this, but this seems to be the universal
declaration, though the parameter type varies. (It ought to use
`const' but many systems prototype it without.) Include it here
for systems that don't declare it. If conflicts arise, just add
another autoconf test... */
extern char *strdup (/* const char * */);
#include <getopt.h>
/* The first getopt value for machine-independent long options.
150 isn't special; it's just an arbitrary non-ASCII char value. */
@ -53,14 +80,55 @@
#ifdef DEBUG
#undef NDEBUG
#endif
/* Handle lossage with assert.h. */
#ifndef BROKEN_ASSERT
#include <assert.h>
#else /* BROKEN_ASSERT */
#ifndef NDEBUG
#define assert(p) ((p) ? 0 : (abort(), 0))
#else
#define assert(p) ((p), 0)
#endif
#endif /* BROKEN_ASSERT */
/* Now GNU header files... */
#include <ansidecl.h>
#ifdef BFD_ASSEMBLER
#include <bfd.h>
#endif
#include "host.h"
#include "flonum.h"
#ifdef WANT_FOPEN_BIN
#include "fopen-bin.h"
#else
#include "fopen-same.h"
#endif
/* This doesn't get taken care of by ansidecl.h. */
#if !defined (__STDC__) && !defined (volatile)
#define volatile
#endif
/* This doesn't get taken care of anywhere. */
#if !defined (__GNUC__) && !defined (inline)
#define inline
#endif
/* Other stuff from config.h. */
#ifdef NEED_MALLOC_DECLARATION
extern PTR malloc ();
extern PTR realloc ();
#endif
#ifdef NEED_FREE_DECLARATION
extern void free ();
#endif
#ifdef BFD_ASSEMBLER
/* This one doesn't get declared, but we're using it anyways. This
should be fixed -- either it's part of the external interface or
it's not. */
extern PTR bfd_alloc_by_size_t PARAMS ((bfd *abfd, size_t sz));
#endif
/* Make Saber happier on obstack.h. */
#ifdef SABER
@ -92,8 +160,12 @@
#endif
#ifndef FOPEN_WB
#ifdef GO32
#include "fopen-bin.h"
#else
#include "fopen-same.h"
#endif
#endif
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free xfree
@ -111,6 +183,7 @@
system, just delete it. */
extern char *strstr ();
#include "flonum.h"
/* These are assembler-wide concepts */
@ -142,15 +215,6 @@ typedef addressT valueT;
#else
#define know(p) /* know() checks are no-op.ed */
#endif
#if defined (BROKEN_ASSERT) && !defined (NDEBUG)
/* Used on machines where the "assert" macro is buggy. (For example, on the
RS/6000, Reiser-cpp substitution is done to put the condition into a
string, so if the condition contains a string, parse errors result.) If
the condition fails, just drop core file. */
#undef assert
#define assert(p) ((p) ? 0 : (abort (), 0))
#endif
/* input_scrub.c */
@ -224,8 +288,8 @@ extern int section_alignment[];
extern segT reg_section, expr_section;
/* Shouldn't these be eliminated someday? */
extern segT text_section, data_section, bss_section;
#define absolute_section (&bfd_abs_section)
#define undefined_section (&bfd_und_section)
#define absolute_section bfd_abs_section_ptr
#define undefined_section bfd_und_section_ptr
#else
#define reg_section SEG_REGISTER
#define expr_section SEG_EXPR
@ -463,10 +527,11 @@ struct symbol;
valueT add_to_literal_pool PARAMS ((struct symbol *, valueT, segT, int));
#endif
#include "expr.h" /* Before targ-*.h */
/* this one starts the chain of target dependant headers */
#include "targ-env.h"
#include "expr.h"
#include "struc-symbol.h"
#include "write.h"
#include "frags.h"

97
gas/conf.in Normal file
View File

@ -0,0 +1,97 @@
/* conf.in. Generated automatically from configure.in by autoheader. */
/* Define if using alloca.c. */
#undef C_ALLOCA
/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
This function is required for alloca.c support on those systems. */
#undef CRAY_STACKSEG_END
/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
#undef HAVE_ALLOCA_H
/* Define as __inline if that's what the C compiler calls it. */
#undef inline
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown
*/
#undef STACK_DIRECTION
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Should gas use high-level BFD interfaces? */
#undef BFD_ASSEMBLER
/* Some assert/preprocessor combinations are incapable of handling
certain kinds of constructs in the argument of assert. For example,
quoted strings (if requoting isn't done right) or newlines. */
#undef BROKEN_ASSERT
/* If we aren't doing cross-assembling, some operations can be optimized,
since byte orders and value sizes don't need to be adjusted. */
#undef CROSS_COMPILE
/* Some IBM compilers can't handle some of the (rather basic) constructs
used in the 68k support code. */
#undef IBM_COMPILER_SUX
/* Some gas code wants to know these parameters. */
#undef TARGET_ALIAS
#undef TARGET_CPU
#undef TARGET_CANONICAL
#undef TARGET_OS
#undef TARGET_VENDOR
/* Some operating systems, for example DOS, require the use of "wb" mode when
opening a binary file for writing. If only "w" is used, the file will not
be correct. However, some other systems reject such a mode. This indicates
which ../include/fopen-*.h header file we want to include, so that we can
get macros that'll do the right thing for this system. */
#undef WANT_FOPEN_BIN
/* Sometimes the system header files don't declare malloc and realloc. */
#undef NEED_MALLOC_DECLARATION
/* Sometimes the system header files don't declare free. */
#undef NEED_FREE_DECLARATION
/* Sometimes errno.h doesn't declare errno itself. */
#undef NEED_ERRNO_DECLARATION
#undef MANY_SEGMENTS
/* Needed only for sparc configuration */
#undef sparcv9
/* Define if you have the <errno.h> header file. */
#undef HAVE_ERRNO_H
/* Define if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define if you have the <stdarg.h> header file. */
#undef HAVE_STDARG_H
/* Define if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if you have the <varargs.h> header file. */
#undef HAVE_VARARGS_H

1963
gas/configure vendored Executable file

File diff suppressed because it is too large Load Diff

View File

@ -1,124 +1,47 @@
# This file is configure.in
#
# Copyright (C) 1987-1992,1993,1994 Free Software Foundation, Inc.
#
# This file is part of GAS, the GNU Assembler.
#
# 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.
#
# 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 GAS; see the file COPYING. If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#
dnl Process this file with autoconf to produce a configure script.
dnl
dnl And be careful when changing it! If you must add tests with square
dnl brackets, be sure changequote invocations surround it.
dnl
dnl Remember to use "dnl" in each line before the AC_INIT call...
dnl
dnl
AC_INIT(as.h)
dnl
AC_ARG_ENABLE(bfd-assembler,
[ bfd-assembler use BFD back end for writing object files],
[case "${enableval}" in
yes) need_bfd=yes bfd_gas=yes ;;
no) ;;
*) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
esac])dnl
# This file was written, and is maintained by K. Richard Pixley
# <rich@cygnus.com>.
# Generate a header file -- gets more post-processing by Makefile later.
AC_CONFIG_HEADER(conf)
# This file is a shell script that supplies the information necessary
# to tailor a template configure script into the configure script
# appropriate for this directory. For more information, check any
# existing configure script.
dnl For recursion to work right, this must be an absolute pathname.
AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
AC_CANONICAL_SYSTEM
srctrigger=as.c
srcname="gas"
need_bfd=no
bfd_gas=no
configdirs="doc testsuite"
# per-host:
gas_host=generic
case "${host}" in
a29k-*-*) gas_host=a29k ;;
alpha-*-osf*) gas_host=ansi ;;
hppa*-*-hpux*) gas_host=hpux ;;
hppa*-*-bsd*) gas_host=hppabsd ;;
hppa*-*-osf*) gas_host=hppaosf ;;
hppa*-*-hiux*) gas_host=hpux ;;
i[345]86-ibm-aix*) gas_host=i386aix ;;
i[345]86-*-isc*) gas_host=sysv ;;
i[345]86-sun-sunos*) gas_host=sun386 ;;
i[345]86-*-mach*) gas_host=mach3 ;;
i[345]86-*-go32) host_makefile_frag=config/go32.mh
gas_host=go32 ;;
m68k-sun-sunos*) gas_host=sun3 ;;
m68*-*-hpux) gas_host=hpux ;;
mips*-dec-ultrix*) gas_host=decstatn ;;
mips*-*-bsd*) gas_host=mipsbsd ;;
mips*-sgi-irix*) gas_host=irix ;;
rs6000-*-*) gas_host=rs6000 ;;
sparc-sun-sunos*) gas_host=sun4 ;;
sparc-sun-solaris2*) gas_host=sysv ;;
vax-*-vms*) gas_host=vms ;;
vax-*-bsd*) gas_host=vax ;;
vax-*-ultrix*) gas_host=vax ;;
*-*-sysv4* | *-*-unixware) gas_host=sysv ;;
*-*-ansi | *-*-hpux | *-*-sysv)
gas_host=${host_os} ;;
esac
if [ ! -r ${srcdir}/config/ho-${gas_host}.h ]; then
echo '*** GAS does not support host' ${host} 1>&2
exit 1
fi
# per-target:
case ${with_bfd_assembler} in
yes)
echo "*** Warning: GAS BFD configuration option not yet fully supported" 1>&2
need_bfd=yes
bfd_gas=yes
;;
no | "")
;;
*)
echo "*** Bad value \"${with_bfd_assembler}\" for --with-bfd-assembler option" 1>&2
exit 1
;;
esac
# assign cpu type
emulation=generic
# default is big
endian=big
# assign cpu type
# check for architecture variants
case ${target_cpu} in
# Actually we've only got support for the 1.1, so we shouldn't generalize,
# but this is what the support files are named...
hppa*) cpu_type=hppa ;;
changequote(,)dnl
i[45]86) cpu_type=i386 ;;
m680[012346]0) cpu_type=m68k ;;
m68008) cpu_type=m68k ;;
m683??) cpu_type=m68k ;;
changequote([,])dnl
m8*) cpu_type=m88k ;;
mips*el) cpu_type=mips endian=little;;
mips*) cpu_type=mips ;;
mips*) cpu_type=mips endian=big ;;
powerpc*) cpu_type=ppc ;;
rs6000*) cpu_type=ppc ;;
sparc64) cpu_type=sparc obj_format=elf extra_def=sparcv9 ;;
sparc64) cpu_type=sparc obj_format=elf AC_DEFINE(sparcv9) ;;
sparclite*) cpu_type=sparc ;;
*) cpu_type=${target_cpu} ;;
esac
@ -126,12 +49,12 @@ esac
# do we need the opcodes library?
case ${cpu_type} in
alpha | vax)
opcodes=
;;
*)
opcodes="../opcodes/libopcodes.a"
OPCODES_LIB="../opcodes/libopcodes.a"
;;
esac
AC_SUBST(OPCODES_LIB)
gas_target=${cpu_type}
generic_target=${cpu_type}-${target_vendor}-${target_os}
@ -198,11 +121,10 @@ case ${generic_target} in
mips-*-bsd*) bfd_gas=yes obj_format=aout gas_target=mips-lit ;;
mips-*-ultrix*) obj_format=ecoff gas_target=mips-lit ;;
mips-*-ecoff*) obj_format=ecoff
if [ $endian = big ] ; then
gas_target=mips-big
else
gas_target=mips-lit
fi
case "$endian" in
big) gas_target=mips-big ;;
*) gas_target=mips-lit ;;
esac
;;
mips-*-ecoff*) obj_format=ecoff gas_target=mips-big ;;
mips-*-irix5*) obj_format=elf gas_target=mips-big ;;
@ -210,13 +132,11 @@ case ${generic_target} in
mips-*-riscos*) obj_format=ecoff gas_target=mips-big ;;
mips-*-sysv*) obj_format=ecoff gas_target=mips-big ;;
mips-*-elf*) obj_format=elf
if [ $endian = big ] ; then
gas_target=mips-big
else
gas_target=mips-lit
fi
case "$endian" in
big) gas_target=mips-big ;;
*) gas_target=mips-lit ;;
esac
;;
ppc-*-aix*) obj_format=coff bfd_gas=yes ;;
ppc-*-elf*) obj_format=elf bfd_gas=yes ;;
ppc-*-netware*) obj_format=elf emulation=ppcnw ;;
@ -253,7 +173,7 @@ case ${generic_target} in
*-*-xray | *-*-hms) obj_format=coff ;;
*-*-sim) obj_format=coff ;;
*-*-elf | *-*-sysv4* | *-*-solaris*)
echo '*** Warning: GAS support for ELF format is incomplete' 1>&2
AC_MSG_WARN(GAS support for ELF format is incomplete)
obj_format=elf dev=yes ;;
*-*-vxworks) obj_format=aout ;;
*-*-netware) obj_format=elf ;;
@ -267,30 +187,35 @@ case ${target_cpu} in
*) atof=ieee ;;
esac
if [ ! -r ${srcdir}/config/tc-${cpu_type}.c ]; then
echo '*** GAS does not support target CPU' ${cpu_type} 1>&2
exit 1
fi
case "${obj_format}" in
"")
echo "*** GAS doesn't know what format to use for target" ${target} 1>&2
exit 1
;;
"") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
esac
if [ ! -r ${srcdir}/config/obj-${obj_format}.c ]; then
echo '*** GAS does not have support for object file format' ${obj_format} 1>&2
exit 1
dnl
dnl Make sure the desired support files exist.
dnl
changequote(<<<,>>>)dnl
if [ ! -r ${srcdir}/config/tc-${cpu_type}.c ]; then
AC_MSG_ERROR(GAS does not support target CPU ${cpu_type})
fi
if [ ! -r ${srcdir}/config/obj-${obj_format}.c ]; then
AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
fi
changequote([,])dnl
# and target makefile frag
target_makefile_frag=config/${gas_target}.mt
target_frag=${srcdir}/config/${gas_target}.mt
AC_SUBST_FILE(target_frag)
case ${bfd_gas}-${obj_format} in
yes-coff) need_bfd=yes ;;
no-coff) need_bfd=yes extra_def="MANY_SEGMENTS" ;;
no-coff) need_bfd=yes
AC_DEFINE(MANY_SEGMENTS) ;;
*-elf) bfd_gas=yes ;;
*-ecoff) bfd_gas=yes ;;
*-som) bfd_gas=yes ;;
@ -302,8 +227,7 @@ case ${with_bfd_assembler}-${bfd_gas} in
# We didn't override user's choice.
;;
no-yes)
echo '*** Use of BFD is required for ${target}; overriding config options'\
1>&2
AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
;;
no-preferred)
bfd_gas=no
@ -320,44 +244,134 @@ reject_dev_configs=yes
case ${reject_dev_configs}-${dev} in
yes-yes) # Oops.
echo "*** GAS does not support the ${generic_target} configuration" 1>&2
exit 1
AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
;;
esac
files="config/ho-${gas_host}.h config/tc-${cpu_type}.c \
config/tc-${cpu_type}.h config/te-${emulation}.h \
dnl Looks like the AC_MAKE_LINKS string is taken literally and put into the
dnl config.status file. So the necessary variables also have to be
dnl exported.
AC_SUBST(cpu_type) AC_SUBST(obj_format) AC_SUBST(emulation) AC_SUBST(atof)
AC_LINK_FILES(targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c,
config/tc-${cpu_type}.c config/tc-${cpu_type}.h \
config/obj-${obj_format}.h config/obj-${obj_format}.c \
config/atof-${atof}.c"
config/te-${emulation}.h config/atof-${atof}.c)
links="host.h targ-cpu.c targ-cpu.h targ-env.h obj-format.h obj-format.c atof-targ.c"
# post-target:
case ${bfd_gas} in
yes) extra_def="$extra_def BFD_ASSEMBLER" need_bfd=yes ;;
case "${bfd_gas}" in
yes) AC_DEFINE(BFD_ASSEMBLER)
need_bfd=yes ;;
esac
case ${need_bfd} in
yes) bfdlib="BFDLIB=../bfd/libbfd.a"
all_obj_deps="$all_obj_deps ../bfd/bfd.h"
;;
*) bfdlib=""
case "${need_bfd}" in
yes) BFDLIB=../bfd/libbfd.a
ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
;;
esac
AC_SUBST(BFDLIB)
AC_SUBST(ALL_OBJ_DEPS)
case "x${host}" in
"x${target}") cross="" ;;
*) cross="CROSS=-DCROSS_COMPILE" ;;
case "x${host_canon}" in
x${target_canon}) ;;
*) AC_DEFINE(CROSS_COMPILE);;
esac
rm -f Makefile.tem
echo $cross > Makefile.tem
echo ALL_OBJ_DEPS=$all_obj_deps >> Makefile.tem
echo defs=$extra_def >> Makefile.tem
echo $bfdlib >> Makefile.tem
echo "OPCODES_LIB=$opcodes" >> Makefile.tem
cat Makefile >> Makefile.tem
mv -f Makefile.tem Makefile
AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}")
AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}")
AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}")
AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}")
AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}")
# end of gas/configure.in
case ${host} in
rs6000-*-*)
# The IBM compiler mis-compiles some expressions used in gas.
# This will tell gas to work around this lossage.
AC_DEFINE(IBM_COMPILER_SUX) ;;
i386-*-go32)
# Using fopen(..., "w") for a binary file breaks under DOS.
AC_DEFINE(WANT_FOPEN_BIN) ;;
esac
AC_PROG_CC
AC_PROG_INSTALL
AC_HEADER_STDC
AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
dnl ansidecl.h will deal with const
dnl AC_CONST
AC_FUNC_ALLOCA
AC_C_INLINE
# Some non-ANSI preprocessors botch requoting inside strings. That's bad
# enough, but on some of those systems, the assert macro relies on requoting
# working properly!
AC_CHECKING([for working assert macro])
AC_TRY_LINK([#include <assert.h>
#include <stdio.h>], [
/* check for requoting problems */
static int a, b, c, d;
static char *s;
assert (!strcmp(s, "foo bar baz quux"));
/* check for newline handling */
assert (a == b
|| c == d);
], , AC_DEFINE(BROKEN_ASSERT))
# On some systems, the system header files may not declare malloc, realloc,
# and free. There are places where gas needs these functions to have been
# declared -- such as when taking their addresses.
AC_CHECKING([whether malloc declaration is required])
AC_TRY_LINK([
#ifdef HAVE_MEMORY_H
#include <memory.h>
#endif
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
], [
char *(*f) ();
f = (char *(*)()) malloc;
], , AC_DEFINE(NEED_MALLOC_DECLARATION))
AC_CHECKING([free declaration required])
AC_TRY_LINK([
#ifdef HAVE_MEMORY_H
#include <memory.h>
#endif
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
], [
int (*f) ();
f = (int (*)()) free;
], , AC_DEFINE(NEED_FREE_DECLARATION))
# Does errno.h declare errno, or do we have to add a separate declaration
# for it?
AC_CHECKING([errno declaration required])
AC_TRY_LINK([
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
], [
int x;
x = errno;
], , AC_DEFINE(NEED_ERRNO_DECLARATION))
AC_CONFIG_SUBDIRS(testsuite)
dnl This must come last.
dnl Apparently symlinks are checked for in the directory containing
dnl the last Makefile. Thus the order used here...
AC_OUTPUT(doc/Makefile Makefile)

View File

@ -50,8 +50,16 @@ suitable for gas to consume.
#include <stdio.h>
#include <getopt.h>
#include <ctype.h>
#include "config.h"
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef NEED_MALLOC_DECLARATION
extern char *malloc ();
#endif
#include "host.h"
#include "libiberty.h"
char *program_version = "1.2";