# We have to use the cross-compiler we just built to compile it.
CC = gcc -b $(host)

# Need those to compile binaries running on host machine.
# It is configured by
#
# configure --host=target_cpu-target_os \
#	--target=host=target_cpu-target_os --build=host_cpu-host_os
#
# That HOST stuff has to be taken care of very carefully.
HOST_PREFIX=l-
HOST_PREFIX_1=$(HOST_PREFIX)
HOST_CC=$(CC) -b $(build)
HOST_CFLAGS=$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS) $(XCFLAGS)
HOST_CLIB=
HOST_LDFLAGS=$(LDFLAGS)
HOST_CPPFLAGS=$(ALL_CPPFLAGS)
HOST_ALLOCA=$(ALLOCA)
HOST_MALLOC=$(MALLOC)
HOST_OBSTACK=$(OBSTACK)

# To build the native compiler with the cross compiler, the headers 
# for the target are already fixed. And /usr/include is for host, not
# target.
FIXINCLUDES=Makefile.in

# Don't run fixproto either
STMP_FIXPROTO =

# Cause installation using install-build. We do nothing here.
#INSTALL_TARGET = install-build

# Don't try to compile the things we can't compile or we have made
# while making gcc with the cross-compiler.
#ALL = all.build
