RANLIB_FOR_TARGET = ` \
  if [ -f $(objdir)/../binutils/ranlib ] ; then \
    echo $(objdir)/../binutils/ranlib ; \
  else \
    if [ "$(host_canonical)" = "$(target)" ] ; then \
      echo ranlib; \
    else \
       if [ -f $(bindir)/$(target_alias)-ranlib ] ; then \
	  echo $(bindir)/$(target_alias)-ranlib ; \
       else \
          t='$(program_transform_cross_name)'; echo ranlib | sed -e $$t ; \
       fi; \
    fi; \
  fi`

T_CPPFLAGS = -DUSE_GAS

LIB1ASMSRC = m68hc11/larith.asm
LIB1ASMFUNCS = _mulsi3 \
	_mulqi3 _ashlsi3 _ashrsi3 _lshrsi3 \
	_divmodhi4 _mulhi3 _mulhi32 \
	_memcpy _memset _negsi2 _one_cmplsi2 \
	_regs_min _regs_frame _regs_d1_2 \
	_regs_d3_4 _regs_d5_6 _regs_d7_8 _regs_d9_16 _regs_d17_32 \
	_premain __exit _abort _cleanup \
	_adddi3 _subdi3 _notdi2 \
	_ashrhi3 _lshrhi3 _lshlhi3 _ashrqi3 _lshlqi3 _map_data _init_bss \
	_ctor _dtor

TARGET_LIBGCC2_CFLAGS = -DUSE_GAS -DIN_GCC

# C implementation of 32-bit div/mod.
LIB2FUNCS_EXTRA = $(srcdir)/config/udivmodsi4.c \
	$(srcdir)/config/divmod.c $(srcdir)/config/udivmod.c

# Don't compile with -g1 this reduces the size of some sections (.eh_frame).
LIBGCC2_DEBUG_CFLAGS =
LIBGCC2_CFLAGS = -Os $(LIBGCC2_INCLUDES) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2

MULTILIB_OPTIONS  = m68hc11/m68hc12 mshort fshort-double
MULTILIB_DIRNAMES =
MULTILIB_MATCHES  = m68hc11=m6811 m68hc12=m6812
MULTILIB_EXCEPTIONS = -mnoshort -mno68hc11

LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib

# We want fine grained libraries, so use the new code to build the
# floating point emulation libraries.
FPBIT = fp-bit.c
DPBIT = dp-bit.c

dp-bit.c: $(srcdir)/config/fp-bit.c
	echo '#define SMALL_MACHINE' >> dp-bit.c
	echo '#define CMPtype HItype' >> dp-bit.c
	echo '#ifdef __LITTLE_ENDIAN__' > dp-bit.c
	echo '#define FLOAT_BIT_ORDER_MISMATCH' >>dp-bit.c
	echo '#endif' 		>> dp-bit.c
	cat $(srcdir)/config/fp-bit.c >> dp-bit.c

fp-bit.c: $(srcdir)/config/fp-bit.c
	echo '#define FLOAT' > fp-bit.c
	echo '#define CMPtype HItype' >> fp-bit.c
	echo '#define SMALL_MACHINE' >> fp-bit.c
	echo '#ifdef __LITTLE_ENDIAN__' >> fp-bit.c
	echo '#define FLOAT_BIT_ORDER_MISMATCH' >>fp-bit.c
	echo '#endif' 		>> fp-bit.c
	cat $(srcdir)/config/fp-bit.c >> fp-bit.c

CRT0_S = $(srcdir)/config/m68hc11/m68hc11-crt0.S
MCRT0_S= $(srcdir)/config/m68hc11/m68hc11-crt0.S

CRT0STUFF_T_CFLAGS =

# Assemble startup files.
$(T)crt1.o: $(CRT0_S) $(GCC_PASSES)
	$(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crt1.o -x assembler-with-cpp $(CRT0_S)

EXTRA_MULTILIB_PARTS = crt1.o
