mirror of
https://github.com/cahirwpz/amigaos-gcc-2.95.3.git
synced 2025-12-08 14:58:59 +00:00
77 lines
3.0 KiB
Plaintext
77 lines
3.0 KiB
Plaintext
# Makefile fragment for AmigaOS target.
|
|
|
|
# Extra object file linked to the cc1* executables.
|
|
amigaos.o: $(srcdir)/config/m68k/amigaos.c $(CONFIG_H)
|
|
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
|
|
|
|
# We don't need a libgcc1, it's all in ixemul.library and LibNIX
|
|
|
|
LIBGCC1 = libgcc1.null
|
|
CROSS_LIBGCC1 = libgcc1.null
|
|
|
|
# Additional target dependent options for compiling libgcc.a.
|
|
# 1) Ensure that we don't compile libgcc* with anything other than a fixed
|
|
# stack.
|
|
# 2) Do not require C standard library headers to compile libgcc.a
|
|
TARGET_LIBGCC2_CFLAGS = -mfixedstack -Dinhibit_libc
|
|
|
|
MULTILIB_OPTIONS = resident/resident32 m68000/m68020
|
|
MULTILIB_DIRNAMES = libb libb32 . libm020
|
|
MULTILIB_EXCEPTIONS = m68000 resident32 resident*/m68000
|
|
|
|
# Support for building multiple version of libgcc.
|
|
# Note: this is taken from the toplevel Makefile.in multilib support.
|
|
LIBGCC = stmp-libgcc-multi
|
|
INSTALL_LIBGCC = install-libgcc-multi
|
|
|
|
LIBGCC_MULTI = ".;" \
|
|
"libb;@resident" \
|
|
"libm020;@m68020" \
|
|
"libb/libm020;@resident@m68020" \
|
|
"libb32/libm020;@resident32@m68020"
|
|
|
|
# Build multiple copies of libgcc.a, one for each target switch.
|
|
stmp-libgcc-multi: $(LIBGCC1) libgcc2.c libgcc2.ready $(CONFIG_H) \
|
|
frame.h \
|
|
$(LIB2ADD) machmode.h longlong.h gbl-ctors.h config.status
|
|
# We need the following explicit mkdir, since the toplevel
|
|
# Makefile.in attempts to create only the last directory
|
|
# of a path.
|
|
if [ -d libb32 ]; then true; else mkdir libb32; fi
|
|
for i in $(LIBGCC_MULTI); do \
|
|
dir=`echo $$i | sed -e 's/;.*$$//'`; \
|
|
flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
|
|
$(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \
|
|
AR_FOR_TARGET="$(AR_FOR_TARGET)" \
|
|
AR_FLAGS_FOR_TARGET="$(AR_FLAGS_FOR_TARGET)" \
|
|
CC="$(CC)" CFLAGS="$(CFLAGS)" \
|
|
RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)" \
|
|
RANLIB_TEST_FOR_TARGET="$(RANLIB_TEST_FOR_TARGET)" \
|
|
LANGUAGES="$(LANGUAGES)" \
|
|
HOST_PREFIX="$(HOST_PREFIX)" HOST_PREFIX_1="$(HOST_PREFIX_1)" \
|
|
LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS) $${flags}" \
|
|
MULTILIB_CFLAGS="$${flags}" \
|
|
LIBGCC1="$(LIBGCC1)" LIBGCC2="$(LIBGCC2)" \
|
|
dir="$${dir}" stmp-multilib-sub; \
|
|
if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
|
|
done
|
|
touch stmp-libgcc-multi
|
|
|
|
# Install multiple versions of libgcc.a.
|
|
install-libgcc-multi: stmp-libgcc-multi installdirs
|
|
# We need the following explicit mkdir, since below we attempt to
|
|
# create only the last directory of a path.
|
|
if [ -d $(libsubdir)/libb32 ]; then true; else mkdir $(libsubdir)/libb32; fi
|
|
for i in $(LIBGCC_MULTI); do \
|
|
dir=`echo $$i | sed -e 's/;.*$$//'`; \
|
|
if [ -d $(libsubdir)/$${dir} ]; then true; else mkdir $(libsubdir)/$${dir}; fi; \
|
|
for f in libgcc.a $(EXTRA_MULTILIB_PARTS); do \
|
|
rm -f $(libsubdir)/$${dir}/$${f}; \
|
|
$(INSTALL_DATA) $${dir}/$${f} $(libsubdir)/$${dir}/$${f}; \
|
|
done; \
|
|
if $(RANLIB_TEST_FOR_TARGET); then \
|
|
(cd $(libsubdir)/$${dir}; $(RANLIB_FOR_TARGET) libgcc.a); \
|
|
else true; fi; \
|
|
chmod a-x $(libsubdir)/$${dir}/libgcc.a; \
|
|
done
|