Makeasm.am
上传用户:qaz666999
上传日期:2022-08-06
资源大小:2570k
文件大小:4k
源码类别:

数学计算

开发平台:

Unix_Linux

  1. ## Automake asm file rules.
  2. # Copyright 1996, 1998, 1999, 2000, 2001, 2002 Free Software Foundation,
  3. # Inc.
  4. #
  5. # This file is part of the GNU MP Library.
  6. #
  7. # The GNU MP Library is free software; you can redistribute it and/or modify
  8. # it under the terms of the GNU Lesser General Public License as published by
  9. # the Free Software Foundation; either version 3 of the License, or (at your
  10. # option) any later version.
  11. #
  12. # The GNU MP Library is distributed in the hope that it will be useful, but
  13. # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  14. # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
  15. # License for more details.
  16. #
  17. # You should have received a copy of the GNU Lesser General Public License
  18. # along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.
  19. # COMPILE minus CC.
  20. #
  21. COMPILE_FLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
  22. $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(ASMFLAGS)
  23. # Flags used for preprocessing (in ansi2knr rules).
  24. #
  25. PREPROCESS_FLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
  26. $(CPPFLAGS)
  27. # Recent versions of automake (1.5 and up for instance) append automake
  28. # generated suffixes to this $(SUFFIXES) list.  This is essential for us,
  29. # since .c must come after .s, .S and .asm.  If .c is before .s, for
  30. # instance, then in the mpn directory "make" will see add_n.c mentioned in
  31. # an explicit rule (the ansi2knr stuff) and decide it must have add_n.c,
  32. # even if add_n.c doesn't exist but add_n.s does.  See GNU make
  33. # documentation "(make)Implicit Rule Search", part 5c.
  34. #
  35. # On IRIX 6 native make this doesn't work properly though.  Somehow .c
  36. # remains ahead of .s, perhaps because .c.s is a builtin rule.  .asm works
  37. # fine though, and mpn/mips3 uses this.
  38. #
  39. SUFFIXES = .s .S .asm
  40. # .s assembler, no preprocessing.
  41. #
  42. .s.o:
  43. $(CCAS) $(COMPILE_FLAGS) `test -f '$<' || echo '$(srcdir)/'`$<
  44. .s.obj:
  45. $(CCAS) $(COMPILE_FLAGS) `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
  46. .s.lo:
  47. $(LIBTOOL) --mode=compile --tag=CC $(CCAS) $(COMPILE_FLAGS) `test -f '$<' || echo '$(srcdir)/'`$<
  48. # can be overridden during development, eg. "make RM_TMP=: mul_1.lo"
  49. RM_TMP = rm -f
  50. # .S assembler, preprocessed with cpp.
  51. #
  52. # It's necessary to run $(CPP) separately, since it seems not all compilers
  53. # recognise .S files, in particular "cc" on HP-UX 10 and 11 doesn't (and
  54. # will silently do nothing if given a .S).
  55. #
  56. # For .lo we need a helper script, as described below for .asm.lo.
  57. #
  58. .S.o:
  59. $(CPP) $(PREPROCESS_FLAGS) `test -f '$<' || echo '$(srcdir)/'`$< | grep -v '^#' >tmp-$*.s
  60. $(CCAS) $(COMPILE_FLAGS) tmp-$*.s -o $@
  61. $(RM_TMP) tmp-$*.s
  62. .S.obj:
  63. $(CPP) $(PREPROCESS_FLAGS) `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` | grep -v '^#' >tmp-$*.s
  64. $(CCAS) $(COMPILE_FLAGS) tmp-$*.s -o $@
  65. $(RM_TMP) tmp-$*.s
  66. .S.lo:
  67. $(LIBTOOL) --mode=compile --tag=CC $(top_srcdir)/mpn/cpp-ccas --cpp="$(CPP) $(PREPROCESS_FLAGS)" $(CCAS) $(COMPILE_FLAGS) `test -f '$<' || echo '$(srcdir)/'`$<
  68. # .asm assembler, preprocessed with m4.
  69. #
  70. # .o and .obj are non-PIC and just need m4 followed by a compile.
  71. #
  72. # .lo is a bit tricky.  Libtool (as of version 1.5) has foo.lo as a little
  73. # text file, and .libs/foo.o and foo.o as the PIC and non-PIC objects,
  74. # respectively.  It'd be asking for lots of trouble to try to create foo.lo
  75. # ourselves, so instead arrange to invoke libtool like a --mode=compile, but
  76. # with a special m4-ccas script which first m4 preprocesses, then compiles.
  77. # --tag=CC is necessary since foo.asm is otherwise unknown to libtool.
  78. #
  79. # Libtool adds -DPIC when building a shared object and the .asm files look
  80. # for that.  But it should be noted that the other PIC flags are on occasion
  81. # important too, in particular FreeBSD 2.2.8 gas 1.92.3 requires -k before
  82. # it accepts PIC constructs like @GOT, and gcc adds that flag only under
  83. # -fPIC.  (Later versions of gas are happy to accept PIC stuff any time.)
  84. #
  85. .asm.o:
  86. $(M4) -DOPERATION_$* `test -f '$<' || echo '$(srcdir)/'`$< >tmp-$*.s
  87. $(CCAS) $(COMPILE_FLAGS) tmp-$*.s -o $@
  88. $(RM_TMP) tmp-$*.s
  89. .asm.obj:
  90. $(M4) -DOPERATION_$* `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` >tmp-$*.s
  91. $(CCAS) $(COMPILE_FLAGS) tmp-$*.s -o $@
  92. $(RM_TMP) tmp-$*.s
  93. .asm.lo:
  94. $(LIBTOOL) --mode=compile --tag=CC $(top_srcdir)/mpn/m4-ccas --m4="$(M4)" $(CCAS) $(COMPILE_FLAGS) `test -f '$<' || echo '$(srcdir)/'`$<