home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gcc-2.7.2.1-src.tgz / tar.out / fsf / gcc / config / m68k / t-amigaos < prev    next >
Text File  |  1996-09-28  |  12KB  |  292 lines

  1. # Makefile fragment for AmigaOS target.
  2.  
  3. # We generate three additional things:
  4. #
  5. # libb/libgcc.a
  6. #    A base relative version of libgcc.a which is used when compiling and
  7. #    linking with the '-resident' option.
  8. #
  9. # libb/libm020/libgcc.a
  10. #    An accelerated base relative version of libgcc.a which is used when
  11. #    compiling and linking with the '-mc68020' & '-resident' options.
  12. #
  13. # libm020/libgcc.a
  14. #    An accelerated version of libgcc.a which is used when compiling and
  15. #    linking with the '-mc68020' option.
  16. #
  17.  
  18. XGCC = xgcc $(PIPE)
  19. GCC_FOR_TARGET = ./$(XGCC) -B./
  20.  
  21. # The standard additional target flags for the compiler.
  22.  
  23. T_CFLAGS =
  24.  
  25. # Each compilation environment (Manx, Dice, GCC, SAS/C, etc) provides its
  26. # own equivalent of the UNIX /usr/include tree.  For gcc, the standard headers
  27. # are in /ade/include and system specific headers are in /ade/os-include.
  28. # Use these paths for fixincludes.
  29.  
  30. SYSTEM_HEADER_DIR = /ade/include
  31. OTHER_FIXINCLUDES_DIRS = /ade/os-include
  32.  
  33. # We don't need a libgcc1, it's all in ixemul.library
  34.  
  35. LIBGCC1 = libgcc1.null
  36. CROSS_LIBGCC1 = libgcc1.null
  37.  
  38. # Flags to use when compiling the base relative version of libgcc.a.
  39. # Explicitly force -resident in the compilation flags.
  40.  
  41. LIBBGCC2_CFLAGS = $(LIBGCC2_CFLAGS) -resident
  42.  
  43. # Flags to use when compiling the 68020 versions of libgcc.a.
  44. # Explicitly force -mc68020 in the compilation flags.
  45.  
  46. LIBM020GCC2_CFLAGS = $(LIBGCC2_CFLAGS) -mc68020
  47.  
  48. # Flags to use when compiling the base relative 68020 versions of libgcc.a.
  49. # Explicitly force -mc68020 & -resident in the compilation flags.
  50.  
  51. LIBBM020GCC2_CFLAGS = $(LIBGCC2_CFLAGS) -resident -mc68020
  52.  
  53. # Additional target dependent options for compiling libgcc.a.  This just
  54. # ensures that we don't compile libgcc* with anything other than a
  55. # fixed stack.
  56.  
  57. TARGET_LIBGCC2_CFLAGS = -mfixedstack
  58.  
  59. # Build the base relative library and accelerated libraries.
  60. # It is later copied into /ade/lib/gcc-lib/amigaos/<version>/libb/libgcc.a, whereas
  61. # libgcc.a is copied into /ade/lib/gcc-lib/amigaos/<version>/libgcc.a.
  62. # Accelerated libraries are copied into same directories, with an extra dir level
  63. # libm020, thus libb/libm020. It doesn't work very well to define one of the
  64. # EXTRA_* macros to contain libb/libgcc.a, particularly for doing "make stageN"
  65. # or "make install".
  66.  
  67. GCC_PARTS=$(GCC_PASSES) libgcc.a libb/libgcc.a libm020/libgcc.a \
  68.         libb/libm020/libgcc.a $(EXTRA_PROGRAMS) $(USE_COLLECT2) $(EXTRA_PARTS)
  69.  
  70. # Add install_libbgcc to normal define of INSTALL_LIBGCC.
  71.  
  72. INSTALL_LIBGCC = install-libgcc install-libbgcc install-libm020gcc install-libbm020gcc
  73.  
  74. # This includes the knowledge that target amigaos doesn't need libgcc1.a
  75.  
  76. libb/libgcc.a: libgcc1.null libgcc2.c libgcc2.ready $(CONFIG_H) \
  77.    $(LIB2FUNCS_EXTRA) machmode.h longlong.h gbl-ctors.h config.status
  78. # Actually build it in tmplibbgcc.a, then rename at end,
  79. # so that libb/libgcc.a itself remains nonexistent if compilation is aborted.
  80.     -rm -f tmplibbgcc.a
  81. # -e causes any failing command to make this rule fail.
  82. # -e doesn't work in certain shells, so we test $$? as well.
  83.     set -e; \
  84.     for name in $(LIB2FUNCS); \
  85.     do \
  86.       echo $${name}; \
  87.       $(GCC_FOR_TARGET) $(LIBBGCC2_CFLAGS) $(INCLUDES) -c -DL$${name} \
  88.           $(srcdir)/libgcc2.c -o $${name}.o; \
  89.       if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
  90.       $(AR) $(AR_FLAGS) tmplibbgcc.a $${name}.o; \
  91.       rm -f $${name}.o; \
  92.     done
  93. # Some shells crash when a loop has no items.
  94. # So make sure there is always at least one--`..'.
  95. # Then ignore it.
  96. # We don't use -e here because there are if statements
  97. # that should not make the command give up when the if condition is false.
  98. # Instead, we test for failure after each command where it matters.
  99.     -for file in .. $(LIB2FUNCS_EXTRA); \
  100.     do \
  101.       if [ x$${file} != x.. ]; then \
  102.         name=`echo $${file} | sed -e 's/[.]c$$//' -e 's/[.]asm$$//'`; \
  103.         echo $${name}; \
  104.         if [ $${name}.asm = $${file} ]; then \
  105.           cp $${file} $${name}.s || exit 1; file=$${name}.s; \
  106.         else true; fi; \
  107.         $(GCC_FOR_TARGET) $(LIBBGCC2_CFLAGS) $(INCLUDES) -c $${file}; \
  108.         if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
  109.         $(AR) $(AR_FLAGS) tmplibbgcc.a $${name}.o; \
  110.         rm -f $${name}.[so]; \
  111.       else true; \
  112.       fi; \
  113.     done
  114.     -if $(RANLIB_TEST) ; then $(RANLIB) tmplibbgcc.a; else true; fi
  115.     -if [ -d libb ] ; then true ; else mkdir libb ; fi
  116.     mv tmplibbgcc.a libb/libgcc.a
  117.  
  118.  
  119. install-libbgcc: libb/libgcc.a install-dir
  120.     -if [ -d $(libsubdir)/libb ] ; then true ; else mkdir $(libsubdir)/libb ; fi
  121.     -if [ -f libb/libgcc.a ] ; then \
  122.       rm -f $(libsubdir)/libb/libgcc.a; \
  123.       $(INSTALL_DATA) libb/libgcc.a $(libsubdir)/libb/libgcc.a; \
  124.       if $(RANLIB_TEST) ; then \
  125.         (cd $(libsubdir)/libb; $(RANLIB) libgcc.a); else true; fi; \
  126.       chmod a-x $(libsubdir)/libb/libgcc.a; \
  127.     else true; fi
  128.  
  129. libm020/libgcc.a: libgcc1.null libgcc2.c libgcc2.ready $(CONFIG_H) \
  130.    $(LIB2FUNCS_EXTRA) machmode.h longlong.h gbl-ctors.h config.status
  131. # Actually build it in tmplibm020gcc.a, then rename at end,
  132. # so that libm020/libgcc.a itself remains nonexistent if compilation is aborted.
  133.     -rm -f tmplibm020gcc.a
  134. # -e causes any failing command to make this rule fail.
  135. # -e doesn't work in certain shells, so we test $$? as well.
  136.     set -e; \
  137.     for name in $(LIB2FUNCS); \
  138.     do \
  139.       echo $${name}; \
  140.       $(GCC_FOR_TARGET) $(LIBM020GCC2_CFLAGS) $(INCLUDES) -c -DL$${name} \
  141.           $(srcdir)/libgcc2.c -o $${name}.o; \
  142.       if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
  143.       $(AR) $(AR_FLAGS) tmplibm020gcc.a $${name}.o; \
  144.       rm -f $${name}.o; \
  145.     done
  146. # Some shells crash when a loop has no items.
  147. # So make sure there is always at least one--`..'.
  148. # Then ignore it.
  149. # We don't use -e here because there are if statements
  150. # that should not make the command give up when the if condition is false.
  151. # Instead, we test for failure after each command where it matters.
  152.     -for file in .. $(LIB2FUNCS_EXTRA); \
  153.     do \
  154.       if [ x$${file} != x.. ]; then \
  155.         name=`echo $${file} | sed -e 's/[.]c$$//' -e 's/[.]asm$$//'`; \
  156.         echo $${name}; \
  157.         if [ $${name}.asm = $${file} ]; then \
  158.           cp $${file} $${name}.s || exit 1; file=$${name}.s; \
  159.         else true; fi; \
  160.         $(GCC_FOR_TARGET) $(LIBBGCC2_CFLAGS) $(INCLUDES) -c $${file}; \
  161.         if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
  162.         $(AR) $(AR_FLAGS) tmplibm020gcc.a $${name}.o; \
  163.         rm -f $${name}.[so]; \
  164.       else true; \
  165.       fi; \
  166.     done
  167.     -if $(RANLIB_TEST) ; then $(RANLIB) tmplibm020gcc.a; else true; fi
  168.     -if [ -d libm020 ] ; then true ; else mkdir libm020 ; fi
  169.     mv tmplibm020gcc.a libm020/libgcc.a
  170.  
  171.  
  172. install-libm020gcc: libm020/libgcc.a install-dir
  173.     -if [ -d $(libsubdir)/libm020 ] ; then true ; else mkdir $(libsubdir)/libm020 ; fi
  174.     -if [ -f libm020/libgcc.a ] ; then \
  175.       rm -f $(libsubdir)/libm020/libgcc.a; \
  176.       $(INSTALL_DATA) libm020/libgcc.a $(libsubdir)/libm020/libgcc.a; \
  177.       if $(RANLIB_TEST) ; then \
  178.         (cd $(libsubdir)/libm020; $(RANLIB) libgcc.a); else true; fi; \
  179.       chmod a-x $(libsubdir)/libm020/libgcc.a; \
  180.     else true; fi
  181.  
  182. libb/libm020/libgcc.a: libgcc1.null libgcc2.c libgcc2.ready $(CONFIG_H) \
  183.    $(LIB2FUNCS_EXTRA) machmode.h longlong.h gbl-ctors.h config.status
  184. # Actually build it in tmplibbm020gcc.a, then rename at end,
  185. # so that libb/libm020/libgcc.a itself remains nonexistent if compilation is aborted.
  186.     -rm -f tmplibbm020gcc.a
  187. # -e causes any failing command to make this rule fail.
  188. # -e doesn't work in certain shells, so we test $$? as well.
  189.     set -e; \
  190.     for name in $(LIB2FUNCS); \
  191.     do \
  192.       echo $${name}; \
  193.       $(GCC_FOR_TARGET) $(LIBBM020GCC2_CFLAGS) $(INCLUDES) -c -DL$${name} \
  194.           $(srcdir)/libgcc2.c -o $${name}.o; \
  195.       if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
  196.       $(AR) $(AR_FLAGS) tmplibbm020gcc.a $${name}.o; \
  197.       rm -f $${name}.o; \
  198.     done
  199. # Some shells crash when a loop has no items.
  200. # So make sure there is always at least one--`..'.
  201. # Then ignore it.
  202. # We don't use -e here because there are if statements
  203. # that should not make the command give up when the if condition is false.
  204. # Instead, we test for failure after each command where it matters.
  205.     -for file in .. $(LIB2FUNCS_EXTRA); \
  206.     do \
  207.       if [ x$${file} != x.. ]; then \
  208.         name=`echo $${file} | sed -e 's/[.]c$$//' -e 's/[.]asm$$//'`; \
  209.         echo $${name}; \
  210.         if [ $${name}.asm = $${file} ]; then \
  211.           cp $${file} $${name}.s || exit 1; file=$${name}.s; \
  212.         else true; fi; \
  213.         $(GCC_FOR_TARGET) $(LIBBGCC2_CFLAGS) $(INCLUDES) -c $${file}; \
  214.         if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
  215.         $(AR) $(AR_FLAGS) tmplibbm020gcc.a $${name}.o; \
  216.         rm -f $${name}.[so]; \
  217.       else true; \
  218.       fi; \
  219.     done
  220.     -if $(RANLIB_TEST) ; then $(RANLIB) tmplibbm020gcc.a; else true; fi
  221.     -if [ -d libb ] ; then true ; else mkdir libb ; fi
  222.     -if [ -d libb/libm020 ] ; then true ; else mkdir libb/libm020 ; fi
  223.     mv tmplibbm020gcc.a libb/libm020/libgcc.a
  224.  
  225.  
  226. install-libbm020gcc: libb/libm020/libgcc.a install-dir
  227.     -if [ -d $(libsubdir)/libb/libm020 ] ; then true ; else mkdir $(libsubdir)/libb/libm020 ; fi
  228.     -if [ -f libb/libm020/libgcc.a ] ; then \
  229.       rm -f $(libsubdir)/libb/libm020/libgcc.a; \
  230.       $(INSTALL_DATA) libb/libm020/libgcc.a $(libsubdir)/libb/libm020/libgcc.a; \
  231.       if $(RANLIB_TEST) ; then \
  232.         (cd $(libsubdir)/libb/libm020; $(RANLIB) libgcc.a); else true; fi; \
  233.       chmod a-x $(libsubdir)/libb/libm020/libgcc.a; \
  234.     else true; fi
  235.  
  236. # When making one of the stage<N> dirs, we need to make subdirs for
  237. # additional libraries, and copy them there. base-relative libraries
  238. # and accelerated libraries are preserved through stages.
  239.  
  240. EXTRA_STAGE1_TARGETS = stage1-libamiga
  241. EXTRA_STAGE2_TARGETS = stage2-libamiga
  242. EXTRA_STAGE3_TARGETS = stage3-libamiga
  243. EXTRA_STAGE4_TARGETW = stage4-libamiga
  244.  
  245. stage1-libamiga:
  246.     -if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
  247.     -if [ -d stage1/libb ] ; then true ; else mkdir stage1/libb ; fi
  248.     -if [ -d stage1/libb/libm020 ] ; then true ; else mkdir stage1/libb/libm020 ; fi
  249.     -if [ -d stage1/libm020 ] ; then true ; else mkdir stage1/libm020 ; fi
  250.     -cp libb/libgcc.a stage1/libb/libgcc.a
  251.     -cp libb/libm020/libgcc.a stage1/libb/libm020/libgcc.a
  252.     -cp libm020/libgcc.a stage1/libm020/libgcc.a
  253.     -if $(RANLIB_TEST) ; then $(RANLIB) stage1/libb/libgcc.i; else true; fi
  254.     -if $(RANLIB_TEST) ; then $(RANLIB) stage1/libb/libm020/libgcc.a; else true; fi
  255.     -if $(RANLIB_TEST) ; then $(RANLIB) stage1/libm020/libgcc.a; else true; fi
  256.  
  257. stage2-libamiga:
  258.     -if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi
  259.     -if [ -d stage2/libb ] ; then true ; else mkdir stage2/libb ; fi
  260.     -if [ -d stage2/libb/libm020 ] ; then true ; else mkdir stage2/libb/libm020 ; fi
  261.     -if [ -d stage2/libm020 ] ; then true ; else mkdir stage2/libm020 ; fi
  262.     -cp libb/libgcc.a stage2/libb/libgcc.a
  263.     -cp libb/libm020/libgcc.a stage2/libb/libm020/libgcc.a
  264.     -cp libm020/libgcc.a stage2/libm020/libgcc.a
  265.     -if $(RANLIB_TEST) ; then $(RANLIB) stage2/libb/libgcc.a; else true; fi
  266.     -if $(RANLIB_TEST) ; then $(RANLIB) stage2/libb/libm020/libgcc.a; else true; fi
  267.     -if $(RANLIB_TEST) ; then $(RANLIB) stage2/libm020/libgcc.a; else true; fi
  268.  
  269. stage3-libamiga:
  270.     -if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi
  271.     -if [ -d stage3/libb ] ; then true ; else mkdir stage3/libb ; fi
  272.     -if [ -d stage3/libb/libm020 ] ; then true ; else mkdir stage3/libb/libm020 ; fi
  273.     -if [ -d stage3/libm020 ] ; then true ; else mkdir stage3/libm020 ; fi
  274.     -cp libb/libgcc.a stage3/libb/libgcc.a
  275.     -cp libb/libm020/libgcc.a stage3/libb/libm020/libgcc.a
  276.     -cp libm020/libgcc.a stage3/libm020/libgcc.a
  277.     -if $(RANLIB_TEST) ; then $(RANLIB) stage3/libb/libgcc.a; else true; fi
  278.     -if $(RANLIB_TEST) ; then $(RANLIB) stage3/libb/libm020/libgcc.a; else true; fi
  279.     -if $(RANLIB_TEST) ; then $(RANLIB) stage3/libm020/libgcc.a; else true; fi
  280.  
  281. stage4-libamiga:
  282.     -if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi
  283.     -if [ -d stage4/libb ] ; then true ; else mkdir stage4/libb ; fi
  284.     -if [ -d stage4/libb/libm020 ] ; then true ; else mkdir stage4/libb/libm020 ; fi
  285.     -if [ -d stage4/libm020 ] ; then true ; else mkdir stage4/libm020 ; fi
  286.     -cp libb/libgcc.a stage4/libb/libgcc.a
  287.     -cp libb/libm020/libgcc.a stage4/libb/libm020/libgcc.a
  288.     -cp libm020/libgcc.a stage4/libm020/libgcc.a
  289.     -if $(RANLIB_TEST) ; then $(RANLIB) stage4/libb/libgcc.a; else true; fi
  290.     -if $(RANLIB_TEST) ; then $(RANLIB) stage4/libb/libm020/libgcc.a; else true; fi
  291.     -if $(RANLIB_TEST) ; then $(RANLIB) stage4/libm020/libgcc.a; else true; fi
  292.