NEWLIB_CFLAGS = `if [ -d ${objroot}/newlib ]; then echo -I${objroot}/newlib/targ-include -I${srcroot}/newlib/libc/include; fi`
NEWLIB_LDFLAGS = `if [ -d ${objroot}/newlib ]; then echo -B${objroot}/newlib/; fi`

INCLUDES = -I.
# Note that when building the library, ${MULTILIB} is not the way multilib
# options are passed; they're passed in $(CFLAGS).
CFLAGS_FOR_TARGET = -O2 -g ${MULTILIB} ${INCLUDES} ${NEWLIB_CFLAGS}
LDFLAGS_FOR_TARGET = ${MULTILIB} ${NEWLIB_LDFLAGS}
ARFLAGS_FOR_TARGET = qc

# find the tools used to build libgloss. As this is a DOS build in a
# 3way cross, we have to specify the name as it lives prebuilt in Unix
# land. The freshly built tools are for the wrong architecture.
CC_FOR_TARGET = `t='$(program_transform_name)'; echo gcc | sed -e $$t`

AS_FOR_TARGET = `t='$(program_transform_name)'; echo as | sed -e $$t`

AR_FOR_TARGET = `t='$(program_transform_name)'; echo ar | sed -e $$t`

LD_FOR_TARGET = `t='$(program_transform_name)'; echo ld | sed -e $$t`

RANLIB_FOR_TARGET = `t='$(program_transform_name)'; echo ranlib | sed -e $$t`

OBJDUMP_FOR_TARGET = `t='$(program_transform_name)'; echo objdump | sed -e $$t`

OBJCOPY_FOR_TARGET = `t='$(program_transform_name)'; echo objcopy | sed -e $$t`


# Using CFLAGS here may be confusing if the user has given a special
# CFLAGS intended for use on the host, since we are passing it to the
# cross-compiler; I'm not sure what to do about this.  INCLUDES is
# from the top level Makefile.
# FIXME: But isn't CFLAGS what is used to pass multilib options when
# building the library?

.c.o:
	rootme=`pwd` ; \
	echo CC_FOR_TARGET is ${CC_FOR_TARGET} ; \
	$(CC_FOR_TARGET) $(CFLAGS_FOR_TARGET) $(INCLUDES) -c $<

.c.s:
	rootme=`pwd` ; \
	echo CC_FOR_TARGET is ${CC_FOR_TARGET} ; \
	$(CC_FOR_TARGET) $(CFLAGS_FOR_TARGET) -S $(INCLUDES) $<

.S.o:
	rootme=`pwd` ; \
	echo CC_FOR_TARGET is ${CC_FOR_TARGET} ; \
	$(CC_FOR_TARGET) $(CFLAGS_FOR_TARGET) $(INCLUDES) -c $<

.s.o:
	rootme=`pwd` ; \
	echo AS_FOR_TARGET is ${AS_FOR_TARGET} ; \
	$(AS_FOR_TARGET) $(ASFLAGS_FOR_TARGET) $(INCLUDES) -o $*.o $<



