# Build libgcc1.a for a cross-compiler.
# By default this expects the user to provide libgcc1.a,
# and gives up immediately if the user has not done so.
LIBGCC1 = $(CROSS_LIBGCC1)

# Specify tools and options for manipulating libraries for the target machine.
AR = $(AR_FOR_TARGET)
AR_FLAGS = $(AR_FOR_TARGET_FLAGS)
OLDAR = $(AR_FOR_TARGET)
OLDAR_FLAGS = $(AR_FOR_TARGET_FLAGS)
RANLIB = $(RANLIB_FOR_TARGET)
RANLIB_TEST = $(RANLIB_TEST_FOR_TARGET)

# Dir to search for system headers.  Normally /usr/include.
SYSTEM_HEADER_DIR = $(tooldir)/include

# Don't try to compile the things we can't compile.
ALL = all.cross

# Use cross-compiler version of float.h.
FLOAT_H = $(CROSS_FLOAT_H)

# Don't install assert.h in /usr/local/include.
assertdir = $(tooldir)/include
