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

数学计算

开发平台:

Unix_Linux

  1. ## Process this file with automake to generate Makefile.in
  2. # Copyright 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
  3. #
  4. # This file is part of the GNU MP Library.
  5. #
  6. # The GNU MP Library is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU Lesser General Public License as published by
  8. # the Free Software Foundation; either version 3 of the License, or (at your
  9. # option) any later version.
  10. #
  11. # The GNU MP Library is distributed in the hope that it will be useful, but
  12. # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  13. # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
  14. # License for more details.
  15. #
  16. # You should have received a copy of the GNU Lesser General Public License
  17. # along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.
  18. INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/tests
  19. EXTRA_DIST = alpha.asm pentium.asm sparcv9.asm hppa.asm hppa2.asm hppa2w.asm 
  20.   ia64.asm powerpc.asm powerpc64.asm x86_64.asm many.pl
  21. noinst_HEADERS = speed.h
  22. # Prefer -static on the speed and tune programs, since that can avoid
  23. # overheads of shared library linkages on some systems.  Libtool tends to
  24. # botch -static if configured with --disable-static, perhaps reasonably
  25. # enough.  In any event under --disable-static the only choice is a dynamic
  26. # link so there's no point in -static.
  27. #
  28. if ENABLE_STATIC
  29. STATIC = -static
  30. else
  31. STATIC =
  32. endif
  33. EXTRA_LTLIBRARIES = libspeed.la
  34. libspeed_la_SOURCES =
  35.   common.c divrem1div.c divrem1inv.c divrem2div.c divrem2inv.c
  36.   freq.c
  37.   gcdext_single.c gcdext_double.c gcdextod.c gcdextos.c
  38.   jacbase1.c jacbase2.c jacbase3.c
  39.   mod_1_div.c mod_1_inv.c modlinv.c
  40.   noop.c powm_mod.c powm_redc.c pre_divrem_1.c
  41.   set_strb.c set_strs.c set_strp.c time.c
  42. libspeed_la_DEPENDENCIES = $(SPEED_CYCLECOUNTER_OBJ) 
  43.   $(top_builddir)/tests/libtests.la $(top_builddir)/libgmp.la
  44. libspeed_la_LIBADD = $(libspeed_la_DEPENDENCIES) $(LIBM)
  45. libspeed_la_LDFLAGS = $(STATIC)
  46. $(top_builddir)/tests/libtests.la:
  47. cd $(top_builddir)/tests; $(MAKE) $(AM_MAKEFLAGS) libtests.la
  48. # The library code is faster static than shared on some systems, so do
  49. # tuning and measuring with static, since users who care about maximizing
  50. # speed will be using that.  speed-dynamic exists to show the difference.
  51. #
  52. # On Solaris 8, gcc 2.95.2 -static is somehow broken (it creates executables
  53. # that immediately seg fault), so -all-static is not used.  The only thing
  54. # -all-static does is make libc static linked as well as libgmp, and that
  55. # makes a difference only when measuring malloc and friends in the speed
  56. # program.  This can always be forced with "make speed_LDFLAGS=-all-static
  57. # ..." if desired, see tune/README.
  58. EXTRA_PROGRAMS = speed speed-dynamic speed-ext tuneup
  59. DEPENDENCIES = libspeed.la
  60. LDADD = $(DEPENDENCIES)
  61. speed_SOURCES = speed.c
  62. speed_LDFLAGS = $(STATIC)
  63. speed_dynamic_SOURCES = speed.c
  64. speed_ext_SOURCES = speed-ext.c
  65. speed_ext_LDFLAGS = $(STATIC)
  66. tuneup_SOURCES = tuneup.c
  67. nodist_tuneup_SOURCES = sqr_basecase.c $(TUNE_MPN_SRCS)
  68. tuneup_DEPENDENCIES = $(TUNE_SQR_OBJ) libspeed.la
  69. tuneup_LDADD = $(tuneup_DEPENDENCIES)
  70. tuneup_LDFLAGS = $(STATIC)
  71. tune:
  72. $(MAKE) $(AM_MAKEFLAGS) tuneup$(EXEEXT)
  73. ./tuneup
  74. allprogs: $(EXTRA_PROGRAMS)
  75. # $(MANY_CLEAN) and $(MANY_DISTCLEAN) are hooks for many.pl
  76. CLEANFILES = $(EXTRA_PROGRAMS) $(EXTRA_LTLIBRARIES) 
  77. $(TUNE_MPN_SRCS) sqr_asm.asm 
  78. stg.gnuplot stg.data 
  79. mtg.gnuplot mtg.data 
  80. fibg.gnuplot fibg.data 
  81. graph.gnuplot graph.data 
  82. $(MANY_CLEAN)
  83. DISTCLEANFILES = sqr_basecase.c  $(MANY_DISTCLEAN)
  84. # Generating these little files at build time seems better than including
  85. # them in the distribution, since the list can be changed more easily.
  86. #
  87. # mpn/generic/tdiv_qr.c uses mpn_divrem_1 and mpn_divrem_2, but only for 1
  88. # and 2 limb divisors, which are never used during tuning, so it doesn't
  89. # matter whether it picks up a tuned or untuned version of those.
  90. #
  91. # divrem_1 and mod_1 are recompiled renamed to "_tune" to avoid a linking
  92. # problem.  If a native divrem_1 provides an mpn_divrem_1c entrypoint then
  93. # common.c will want that, but the generic divrem_1 doesn't provide it,
  94. # likewise for mod_1.  The simplest way around this is to have the tune
  95. # build versions renamed suitably.
  96. #
  97. # FIXME: Would like say mul_n.c to depend on $(top_builddir)/mul_n.c so the
  98. # recompiled object will be rebuilt if that file changes.
  99. TUNE_MPN_SRCS = $(TUNE_MPN_SRCS_BASIC) divrem_1.c mod_1.c
  100. TUNE_MPN_SRCS_BASIC = bdiv_q.c bdiv_qr.c
  101.   dcpi1_div_qr.c dcpi1_divappr_q.c dcpi1_bdiv_qr.c dcpi1_bdiv_q.c
  102.   invertappr.c invert.c binvert.c divrem_2.c gcd.c gcdext.c
  103.   get_str.c set_str.c matrix22_mul.c hgcd.c mul_n.c sqr.c
  104.   mullo_n.c mul_fft.c mul.c tdiv_qr.c mulmod_bnm1.c sqrmod_bnm1.c
  105.   nussbaumer_mul.c toom6h_mul.c toom8h_mul.c toom6_sqr.c toom8_sqr.c
  106.   toom22_mul.c toom2_sqr.c toom33_mul.c toom3_sqr.c toom44_mul.c toom4_sqr.c
  107. $(TUNE_MPN_SRCS_BASIC):
  108. for i in $(TUNE_MPN_SRCS_BASIC); do 
  109.   echo "#define TUNE_PROGRAM_BUILD 1" >$$i; 
  110.   echo "#include "mpn/generic/$$i"" >>$$i; 
  111. done
  112. divrem_1.c:
  113. echo "#define TUNE_PROGRAM_BUILD 1"                >divrem_1.c
  114. echo "#define __gmpn_divrem_1  mpn_divrem_1_tune" >>divrem_1.c
  115. echo "#include "mpn/generic/divrem_1.c""        >>divrem_1.c
  116. mod_1.c:
  117. echo "#define TUNE_PROGRAM_BUILD 1"          >mod_1.c
  118. echo "#define __gmpn_mod_1  mpn_mod_1_tune" >>mod_1.c
  119. echo "#include "mpn/generic/mod_1.c""     >>mod_1.c
  120. sqr_asm.asm: $(top_builddir)/mpn/sqr_basecase.asm
  121. echo 'define(SQR_TOOM2_THRESHOLD_OVERRIDE,SQR_TOOM2_THRESHOLD_MAX)' >sqr_asm.asm
  122. echo 'include(../mpn/sqr_basecase.asm)' >>sqr_asm.asm
  123. include ../mpn/Makeasm.am