# Define CC and OLDCC as the same, so that the tests:
#	if [ x"$(OLDCC)" = x"$(CC)" ] ...
#
# will succeed (if OLDCC != CC, it is assumed that GCC is
# being used in secondary stage builds).  We need to pass
# the -Wf,-XNg1500 option so the compiler can compile the
# G++ file cp-parse.c.  Otherwise it complains about
# too many case statements.  -Olimit is so the user
# can use -O2.  Down with fixed size tables!
# The -cckr is to turn off strict ANSI checking.

# These definitions are commented out because they cause trouble with
# autoconf.  It is believed that they aren't needed anymore.
#CC		= $(OLDCC)
#OPT		= -O1
#OLDCC		= cc -Wf,-XNh2000,-XNg1500 -Olimit 3000 -cckr $(OPT)

# The bison output files are machine-indep,
# so different flags for a particular machine are not useful.
#BISONFLAGS	= -l

# -lmld is so we can link collect2 running native.
# -lmalloc is supposed to be faster than the normal malloc
CLIB		= -lmld -lmalloc

# Show we need to use the C version of ALLOCA
ALLOCA		= alloca.o

# Find all of the declarations from the header files
FIXPROTO_DEFINES= -D__EXTENSIONS__ -D_SGI_SOURCE -D_LANGUAGE_C_PLUS_PLUS

