# Makefile additions for the NCR3000 as host system.

# Using -O with the AT&T compiler fails, with a message about a missing
# /usr/ccs/lib/optim pass.  So override the default in Makefile.in

CCLIBFLAGS=

## Supposedly not needed now that xm-sysv4.h includes alloc.h for Metaware.
### NCR3000 ships with a MetaWare compiler installed as CC, which chokes and
### dies all over the place on GCC source.  However, the AT&T compiler,
### crusty as it is, can be used to bootstrap GCC.  It can be found in
### /usr/ccs/ATT/cc.  It is also used to compile the things that should
### not be compiled with GCC.
##
##CC = /usr/ccs/ATT/cc
##OLDCC = /usr/ccs/ATT/cc

# The rest is just x-i386v4.

# We used to build all stages *without* shared libraries because that may make
# debugging the compiler easier (until there is a GDB which supports
# both Dwarf *and* svr4 shared libraries).

# But james@bigtex.cactus.org says that redefining GCC_CFLAGS causes trouble,
# and that it is easy enough to debug using shared libraries.
# CCLIBFLAGS=-Bstatic -dn -g
# GCC_CFLAGS=-static -g -O2 -B./
