Upload Tizen:Base source
[external/gmp.git] / Makefile.am
1 ## Process this file with automake to generate Makefile.in
2
3
4 # Copyright 1991, 1993, 1994, 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004,
5 # 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
6 #
7 # This file is part of the GNU MP Library.
8 #
9 # The GNU MP Library is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU Lesser General Public License as published by
11 # the Free Software Foundation; either version 3 of the License, or (at your
12 # option) any later version.
13 #
14 # The GNU MP Library is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
17 # License for more details.
18 #
19 # You should have received a copy of the GNU Lesser General Public License
20 # along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.
21
22
23 # The following options are the same as AM_INIT_AUTOMAKE in configure.in,
24 # except no $(top_builddir) on ansi2knr.  That directory is wanted for the
25 # Makefiles in subdirectories, but here we must omit it so automake gives
26 # the actual ansi2knr build rule, not "cd $(top_builddir) && make ansi2knr".
27 #
28 AUTOMAKE_OPTIONS = 1.8 gnu no-dependencies ansi2knr
29
30
31 # Libtool -version-info for libgmp.la and libmp.la.  See "Versioning" in the
32 # libtool manual.
33 #
34 #       CURRENT:REVISION:AGE
35 #
36 # 1. No interfaces changed, only implementations (good): Increment REVISION.
37 #
38 # 2. Interfaces added, none removed (good): Increment CURRENT, increment
39 #    AGE, set REVISION to 0.
40 #
41 # 3. Interfaces removed (BAD, breaks upward compatibility): Increment
42 #    CURRENT, set AGE and REVISION to 0.
43 #
44 # Do this separately for libgmp, libgmpxx and libmp, and only for releases.
45 #
46 #         GMP      -version-info
47 #       release   libgmp  libgmpxx libmp
48 #        2.0.x      -        -       -
49 #        3.0      3:0:0      -     3:0:0
50 #        3.0.1    3:1:0      -     3:0:0
51 #        3.1      4:0:1      -     4:0:1
52 #        3.1.1    4:1:1      -     4:1:1
53 #        4.0      5:0:2    3:0:0   4:2:1
54 #        4.0.1    5:1:2    3:1:0   4:3:1
55 #        4.1      6:0:3    3:2:0   4:4:1
56 #        4.1.1    6:1:3    3:3:0   4:5:1
57 #        4.1.2    6:2:3    3:4:0   4:6:1
58 #        4.1.3    6:3:3    3:5:0   4:7:1
59 #        4.1.4    6:3:3    3:5:0   4:7:1        WRONG, same as 4.1.3!
60 #        4.2      6:0:3    3:2:0   4:4:1        REALLY WRONG, same as 4.1!
61 #        4.2.1    7:1:4    4:1:1   4:10:1       WRONG for libgmpxx
62 #        4.2.2    7:2:4    4:2:0   4:11:1
63 #        4.2.3    7:3:4    4:3:0   4:12:1
64 #        4.2.4    7:4:4    4:4:0   4:13:1
65 #        4.3.0    8:0:5    5:0:1   4:14:1
66 #        4.3.1    8:1:5    5:1:1   4:15:1       WRONG Really used same as 4.3.0
67 #        4.3.2    8:2:5    5:2:1   4:16:1
68 #        5.0.0    9:0:6    6:0:2   4:20:1       Should have been 10:0:0
69 #        5.0.1   10:1:0    6:1:2   4:21:1
70 #
71 # Starting at 3:0:0 is a slight abuse of the versioning system, but it
72 # ensures we're past soname libgmp.so.2, which was used on Debian GNU/Linux
73 # packages of gmp 2.  Pretend gmp 2 was 2:0:0, so the interface changes for
74 # gmp 3 mean 3:0:0 is right.
75 #
76 # We interpret "implementation changed" in item "1." above as meaning any
77 # release, ie. the REVISION is incremented every time (if nothing else).
78 # Even if we thought the code generated will be identical on all systems,
79 # it's still good to get the shared library filename (like
80 # libgmpxx.so.3.0.4) incrementing, to make it clear which GMP it's from.
81
82 LIBGMP_LT_CURRENT =  10
83 LIBGMP_LT_REVISION = 1
84 LIBGMP_LT_AGE =      0
85
86 LIBGMPXX_LT_CURRENT =  6
87 LIBGMPXX_LT_REVISION = 1
88 LIBGMPXX_LT_AGE =      2
89
90 LIBMP_LT_CURRENT =  4
91 LIBMP_LT_REVISION = 21
92 LIBMP_LT_AGE =      1
93
94
95 SUBDIRS = tests mpn mpz mpq mpf printf scanf cxx mpbsd demos tune doc
96
97 EXTRA_DIST = configfsf.guess configfsf.sub .gdbinit INSTALL.autoconf
98
99 if WANT_CXX
100 GMPXX_HEADERS_OPTION = gmpxx.h
101 endif
102 EXTRA_DIST += gmpxx.h
103
104 # gmp.h and mp.h are architecture dependent, mainly since they encode the
105 # limb size used in libgmp.  For that reason they belong under $exec_prefix
106 # not $prefix, strictly speaking.
107 #
108 # $exec_prefix/include is not in the default include path for gcc built to
109 # the same $prefix and $exec_prefix, which might mean gmp.h is not found,
110 # but anyone knowledgeable enough to be playing with exec_prefix will be able
111 # to address that.
112 #
113 includeexecdir = $(exec_prefix)/include
114 include_HEADERS = $(GMPXX_HEADERS_OPTION)
115 nodist_includeexec_HEADERS = gmp.h $(MPBSD_HEADERS_OPTION)
116 lib_LTLIBRARIES = libgmp.la $(GMPXX_LTLIBRARIES_OPTION) $(MPBSD_LTLIBRARIES_OPTION)
117
118 BUILT_SOURCES = gmp.h
119
120 DISTCLEANFILES = $(BUILT_SOURCES) config.m4 @gmp_srclinks@
121
122 # Tell gmp.h it's building gmp, not an application, used by windows DLL stuff.
123 INCLUDES=-D__GMP_WITHIN_GMP
124
125
126 MPF_OBJECTS = mpf/init$U.lo mpf/init2$U.lo mpf/inits$U.lo mpf/set$U.lo      \
127   mpf/set_ui$U.lo mpf/set_si$U.lo mpf/set_str$U.lo mpf/set_d$U.lo           \
128   mpf/set_z$U.lo mpf/iset$U.lo mpf/iset_ui$U.lo mpf/iset_si$U.lo            \
129   mpf/iset_str$U.lo mpf/iset_d$U.lo mpf/clear$U.lo mpf/clears$U.lo          \
130   mpf/get_str$U.lo mpf/dump$U.lo mpf/size$U.lo mpf/eq$U.lo mpf/reldiff$U.lo \
131   mpf/sqrt$U.lo mpf/random2$U.lo mpf/inp_str$U.lo mpf/out_str$U.lo          \
132   mpf/add$U.lo mpf/add_ui$U.lo mpf/sub$U.lo mpf/sub_ui$U.lo mpf/ui_sub$U.lo \
133   mpf/mul$U.lo mpf/mul_ui$U.lo mpf/div$U.lo mpf/div_ui$U.lo                 \
134   mpf/cmp$U.lo mpf/cmp_d$U.lo mpf/cmp_ui$U.lo mpf/cmp_si$U.lo               \
135   mpf/mul_2exp$U.lo mpf/div_2exp$U.lo mpf/abs$U.lo mpf/neg$U.lo             \
136   mpf/set_q$U.lo mpf/get_d$U.lo mpf/get_d_2exp$U.lo mpf/set_dfl_prec$U.lo   \
137   mpf/set_prc$U.lo mpf/set_prc_raw$U.lo mpf/get_dfl_prec$U.lo               \
138   mpf/get_prc$U.lo mpf/ui_div$U.lo mpf/sqrt_ui$U.lo                         \
139   mpf/ceilfloor$U.lo mpf/trunc$U.lo mpf/pow_ui$U.lo                         \
140   mpf/urandomb$U.lo mpf/swap$U.lo                                           \
141   mpf/fits_sint$U.lo mpf/fits_slong$U.lo mpf/fits_sshort$U.lo               \
142   mpf/fits_uint$U.lo mpf/fits_ulong$U.lo mpf/fits_ushort$U.lo               \
143   mpf/get_si$U.lo mpf/get_ui$U.lo                                           \
144   mpf/int_p$U.lo
145
146 MPZ_OBJECTS = mpz/abs$U.lo mpz/add$U.lo mpz/add_ui$U.lo                 \
147   mpz/aorsmul$U.lo mpz/aorsmul_i$U.lo mpz/and$U.lo mpz/array_init$U.lo  \
148   mpz/bin_ui$U.lo mpz/bin_uiui$U.lo                                     \
149   mpz/cdiv_q$U.lo mpz/cdiv_q_ui$U.lo                                    \
150   mpz/cdiv_qr$U.lo mpz/cdiv_qr_ui$U.lo                                  \
151   mpz/cdiv_r$U.lo mpz/cdiv_r_ui$U.lo mpz/cdiv_ui$U.lo                   \
152   mpz/cfdiv_q_2exp$U.lo mpz/cfdiv_r_2exp$U.lo                           \
153   mpz/clear$U.lo mpz/clears$U.lo mpz/clrbit$U.lo                        \
154   mpz/cmp$U.lo mpz/cmp_d$U.lo mpz/cmp_si$U.lo mpz/cmp_ui$U.lo           \
155   mpz/cmpabs$U.lo mpz/cmpabs_d$U.lo mpz/cmpabs_ui$U.lo                  \
156   mpz/com$U.lo mpz/combit$U.lo                                          \
157   mpz/cong$U.lo mpz/cong_2exp$U.lo mpz/cong_ui$U.lo                     \
158   mpz/divexact$U.lo mpz/divegcd$U.lo mpz/dive_ui$U.lo                   \
159   mpz/divis$U.lo mpz/divis_ui$U.lo mpz/divis_2exp$U.lo mpz/dump$U.lo    \
160   mpz/export$U.lo mpz/fac_ui$U.lo mpz/fdiv_q$U.lo                       \
161   mpz/fdiv_q_ui$U.lo mpz/fdiv_qr$U.lo mpz/fdiv_qr_ui$U.lo               \
162   mpz/fdiv_r$U.lo mpz/fdiv_r_ui$U.lo                                    \
163   mpz/fdiv_ui$U.lo mpz/fib_ui$U.lo mpz/fib2_ui$U.lo mpz/fits_sint$U.lo  \
164   mpz/fits_slong$U.lo mpz/fits_sshort$U.lo mpz/fits_uint$U.lo           \
165   mpz/fits_ulong$U.lo mpz/fits_ushort$U.lo mpz/gcd$U.lo                 \
166   mpz/gcd_ui$U.lo mpz/gcdext$U.lo mpz/get_d$U.lo mpz/get_d_2exp$U.lo    \
167   mpz/get_si$U.lo mpz/get_str$U.lo mpz/get_ui$U.lo mpz/getlimbn$U.lo    \
168   mpz/hamdist$U.lo                                                      \
169   mpz/import$U.lo mpz/init$U.lo mpz/init2$U.lo mpz/inits$U.lo           \
170   mpz/inp_raw$U.lo mpz/inp_str$U.lo mpz/invert$U.lo                     \
171   mpz/ior$U.lo mpz/iset$U.lo mpz/iset_d$U.lo mpz/iset_si$U.lo           \
172   mpz/iset_str$U.lo mpz/iset_ui$U.lo mpz/jacobi$U.lo mpz/kronsz$U.lo    \
173   mpz/kronuz$U.lo mpz/kronzs$U.lo mpz/kronzu$U.lo                       \
174   mpz/lcm$U.lo mpz/lcm_ui$U.lo mpz/lucnum_ui$U.lo mpz/lucnum2_ui$U.lo   \
175   mpz/millerrabin$U.lo mpz/mod$U.lo mpz/mul$U.lo mpz/mul_2exp$U.lo      \
176   mpz/mul_si$U.lo mpz/mul_ui$U.lo                                       \
177   mpz/n_pow_ui$U.lo mpz/neg$U.lo mpz/nextprime$U.lo                     \
178   mpz/out_raw$U.lo mpz/out_str$U.lo mpz/perfpow$U.lo mpz/perfsqr$U.lo   \
179   mpz/popcount$U.lo mpz/pow_ui$U.lo mpz/powm$U.lo mpz/powm_sec$U.lo     \
180   mpz/powm_ui$U.lo mpz/pprime_p$U.lo mpz/random$U.lo mpz/random2$U.lo   \
181   mpz/realloc$U.lo mpz/realloc2$U.lo mpz/remove$U.lo                    \
182   mpz/root$U.lo mpz/rootrem$U.lo mpz/rrandomb$U.lo mpz/scan0$U.lo       \
183   mpz/scan1$U.lo mpz/set$U.lo mpz/set_d$U.lo mpz/set_f$U.lo             \
184   mpz/set_q$U.lo mpz/set_si$U.lo mpz/set_str$U.lo mpz/set_ui$U.lo       \
185   mpz/setbit$U.lo                                                       \
186   mpz/size$U.lo mpz/sizeinbase$U.lo mpz/sqrt$U.lo                       \
187   mpz/sqrtrem$U.lo mpz/sub$U.lo mpz/sub_ui$U.lo mpz/swap$U.lo           \
188   mpz/tdiv_ui$U.lo mpz/tdiv_q$U.lo mpz/tdiv_q_2exp$U.lo                 \
189   mpz/tdiv_q_ui$U.lo mpz/tdiv_qr$U.lo mpz/tdiv_qr_ui$U.lo               \
190   mpz/tdiv_r$U.lo mpz/tdiv_r_2exp$U.lo mpz/tdiv_r_ui$U.lo               \
191   mpz/tstbit$U.lo mpz/ui_pow_ui$U.lo mpz/ui_sub$U.lo mpz/urandomb$U.lo  \
192   mpz/urandomm$U.lo mpz/xor$U.lo
193
194 MPQ_OBJECTS = mpq/abs$U.lo mpq/aors$U.lo                                \
195   mpq/canonicalize$U.lo mpq/clear$U.lo mpq/clears$U.lo                  \
196   mpq/cmp$U.lo mpq/cmp_si$U.lo mpq/cmp_ui$U.lo mpq/div$U.lo             \
197   mpq/get_d$U.lo mpq/get_den$U.lo mpq/get_num$U.lo mpq/get_str$U.lo     \
198   mpq/init$U.lo mpq/inits$U.lo mpq/inp_str$U.lo mpq/inv$U.lo            \
199   mpq/md_2exp$U.lo mpq/mul$U.lo mpq/neg$U.lo mpq/out_str$U.lo           \
200   mpq/set$U.lo mpq/set_den$U.lo mpq/set_num$U.lo                        \
201   mpq/set_si$U.lo mpq/set_str$U.lo mpq/set_ui$U.lo                      \
202   mpq/equal$U.lo mpq/set_z$U.lo mpq/set_d$U.lo                          \
203   mpq/set_f$U.lo mpq/swap$U.lo
204
205 MPN_OBJECTS = mpn/fib_table$U.lo mpn/mp_bases$U.lo
206
207 PRINTF_OBJECTS =                                                        \
208   printf/asprintf$U.lo printf/asprntffuns$U.lo                          \
209   printf/doprnt$U.lo printf/doprntf$U.lo printf/doprnti$U.lo            \
210   printf/fprintf$U.lo                                                   \
211   printf/obprintf$U.lo printf/obvprintf$U.lo printf/obprntffuns$U.lo    \
212   printf/printf$U.lo printf/printffuns$U.lo                             \
213   printf/snprintf$U.lo printf/snprntffuns$U.lo                          \
214   printf/sprintf$U.lo printf/sprintffuns$U.lo                           \
215   printf/vasprintf$U.lo printf/vfprintf$U.lo printf/vprintf$U.lo        \
216   printf/vsnprintf$U.lo printf/vsprintf$U.lo                            \
217   printf/repl-vsnprintf$U.lo
218
219 SCANF_OBJECTS =                                                 \
220   scanf/doscan$U.lo scanf/fscanf$U.lo scanf/fscanffuns$U.lo     \
221   scanf/scanf$U.lo scanf/sscanf$U.lo scanf/sscanffuns$U.lo      \
222   scanf/vfscanf$U.lo scanf/vscanf$U.lo scanf/vsscanf$U.lo
223
224 # no $U for C++ files
225 CXX_OBJECTS =                                                           \
226   cxx/isfuns.lo cxx/ismpf.lo cxx/ismpq.lo cxx/ismpz.lo cxx/ismpznw.lo   \
227   cxx/osdoprnti.lo cxx/osfuns.lo                                        \
228   cxx/osmpf.lo cxx/osmpq.lo cxx/osmpz.lo
229
230 MPBSD_OBJECTS = mpbsd/add$U.lo mpbsd/tdiv_qr$U.lo mpbsd/set$U.lo        \
231   mpbsd/powm$U.lo mpbsd/sub$U.lo mpbsd/cmp$U.lo mpbsd/mfree$U.lo        \
232   mpbsd/mtox$U.lo mpbsd/realloc$U.lo mpbsd/gcd$U.lo mpbsd/itom$U.lo     \
233   mpbsd/min$U.lo mpbsd/mul$U.lo mpbsd/mout$U.lo mpbsd/rpow$U.lo         \
234   mpbsd/sdiv$U.lo mpbsd/sqrtrem$U.lo mpbsd/xtom$U.lo
235
236
237 # In libtool 1.5 it doesn't work to build libgmp.la from the convenience
238 # libraries like mpz/libmpz.la.  Or rather it works, but it ends up putting
239 # PIC objects into libgmp.a if shared and static are both built.  (The PIC
240 # objects go into mpz/.libs/libmpz.a, and thence into .libs/libgmp.a.)
241 #
242 # For now the big lists of objects above are used.  Something like mpz/*.lo
243 # would probably work, but might risk missing something out or getting
244 # something extra.  The source files for each .lo are listed in the
245 # Makefile.am's in the subdirectories.
246 #
247 # Currently, for libgmp, unlike libmp below, we're not using
248 # -export-symbols, since the tune and speed programs, and perhaps some of
249 # the test programs, want to access undocumented symbols.
250
251 libgmp_la_SOURCES = gmp-impl.h longlong.h randmt.h                      \
252   assert.c compat.c errno.c extract-dbl.c invalid.c memory.c            \
253   mp_bpl.c mp_clz_tab.c mp_dv_tab.c mp_minv_tab.c mp_get_fns.c mp_set_fns.c \
254   rand.c randclr.c randdef.c randiset.c randlc2s.c randlc2x.c randmt.c  \
255   randmts.c rands.c randsd.c randsdui.c randbui.c randmui.c version.c   \
256   nextprime.c
257 EXTRA_libgmp_la_SOURCES = tal-debug.c tal-notreent.c tal-reent.c
258 libgmp_la_DEPENDENCIES = @TAL_OBJECT@           \
259   $(MPF_OBJECTS) $(MPZ_OBJECTS) $(MPQ_OBJECTS)  \
260   $(MPN_OBJECTS) @mpn_objs_in_libgmp@           \
261   $(PRINTF_OBJECTS)  $(SCANF_OBJECTS)
262 libgmp_la_LIBADD = $(libgmp_la_DEPENDENCIES)
263 libgmp_la_LDFLAGS = $(GMP_LDFLAGS) $(LIBGMP_LDFLAGS) \
264   -version-info $(LIBGMP_LT_CURRENT):$(LIBGMP_LT_REVISION):$(LIBGMP_LT_AGE)
265
266
267 # We need at least one .cc file in $(libgmpxx_la_SOURCES) so automake will
268 # use $(CXXLINK) rather than the plain C $(LINK).  cxx/dummy.cc is that
269 # file.
270
271 if WANT_CXX
272 GMPXX_LTLIBRARIES_OPTION = libgmpxx.la
273 endif
274 libgmpxx_la_SOURCES = cxx/dummy.cc
275 libgmpxx_la_DEPENDENCIES = $(CXX_OBJECTS) libgmp.la
276 libgmpxx_la_LIBADD = $(libgmpxx_la_DEPENDENCIES)
277 libgmpxx_la_LDFLAGS = $(GMP_LDFLAGS) $(LIBGMPXX_LDFLAGS) \
278   -version-info $(LIBGMPXX_LT_CURRENT):$(LIBGMPXX_LT_REVISION):$(LIBGMPXX_LT_AGE)
279
280
281 # The selected mpz objects here support mpz/powm.c (built as mpbsd/powm.lo)
282 # and can probably be removed when that switches to an mpn implementation.
283 # (Apart from mpz/n_pow_ui$U.lo, which supports mpbsd/rpow.c)
284
285 if WANT_MPBSD
286 MPBSD_HEADERS_OPTION = mp.h
287 MPBSD_LTLIBRARIES_OPTION = libmp.la
288 endif
289 BUILT_SOURCES += mp.h
290 libmp_la_SOURCES = assert.c errno.c memory.c mp_bpl.c mp_clz_tab.c      \
291   mp_dv_tab.c mp_minv_tab.c mp_get_fns.c mp_set_fns.c nextprime.c
292 libmp_la_DEPENDENCIES = $(srcdir)/libmp.sym                             \
293   @TAL_OBJECT@ $(MPBSD_OBJECTS) $(MPN_OBJECTS) @mpn_objs_in_libmp@      \
294   mpz/add$U.lo mpz/gcdext$U.lo mpz/invert$U.lo mpz/mul$U.lo             \
295   mpz/n_pow_ui$U.lo mpz/realloc$U.lo mpz/set$U.lo mpz/sub$U.lo          \
296   mpz/tdiv_q$U.lo
297 libmp_la_LIBADD = $(libmp_la_DEPENDENCIES)
298 libmp_la_LDFLAGS = $(GMP_LDFLAGS) \
299   -version-info $(LIBMP_LT_CURRENT):$(LIBMP_LT_REVISION):$(LIBMP_LT_AGE) \
300   -export-symbols $(srcdir)/libmp.sym
301 EXTRA_DIST += libmp.sym
302
303
304 install-data-hook:
305         @echo ''
306         @echo '+-------------------------------------------------------------+'
307         @echo '| CAUTION:                                                    |'
308         @echo '|                                                             |'
309         @echo '| If you have not already run "make check", then we strongly  |'
310         @echo '| recommend you do so.                                        |'
311         @echo '|                                                             |'
312         @echo '| GMP has been carefully tested by its authors, but compilers |'
313         @echo '| are all too often released with serious bugs.  GMP tends to |'
314         @echo '| explore interesting corners in compilers and has hit bugs   |'
315         @echo '| on quite a few occasions.                                   |'
316         @echo '|                                                             |'
317         @echo '+-------------------------------------------------------------+'
318         @echo ''
319
320
321 # The ansi2knr setups for the build programs are the same as the normal
322 # automake ansi2knr rules, but using $(CC_FOR_BUILD) instead of $(CC).
323 #
324 # The "test -f" support for srcdir!=builddir is similar to the automake .c.o
325 # etc rules, but with each foo.c explicitly, since $< is not portable
326 # outside an inference rule.
327 #
328 # A quoted 'foo.c' is used with the "test -f"'s to avoid Sun make rewriting
329 # it as part of its VPATH support.  See the autoconf manual "Limitations of
330 # Make".
331 #
332 # Generated .h files which are used by gmp-impl.h are BUILT_SOURCES since
333 # they must exist before anything can be compiled.
334 #
335 # Other generated .h files are also BUILT_SOURCES so as to get all the
336 # build-system stuff over and done with at the start.  Also, dependencies on
337 # the .h files are not properly expressed for the various objects that use
338 # them.
339
340 EXTRA_DIST += dumbmp.c
341
342 mpz/fac_ui.h: gen-fac_ui$(EXEEXT_FOR_BUILD)
343         ./gen-fac_ui $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpz/fac_ui.h || (rm -f mpz/fac_ui.h; exit 1)
344 BUILT_SOURCES += mpz/fac_ui.h
345
346 gen-fac_ui$(EXEEXT_FOR_BUILD): gen-fac_ui$(U_FOR_BUILD).c dumbmp.c
347         $(CC_FOR_BUILD) `test -f 'gen-fac_ui$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fac_ui$(U_FOR_BUILD).c -o gen-fac_ui$(EXEEXT_FOR_BUILD)
348 DISTCLEANFILES += gen-fac_ui$(EXEEXT_FOR_BUILD)
349 EXTRA_DIST += gen-fac_ui.c
350
351 gen-fac_ui_.c: gen-fac_ui.c $(ANSI2KNR)
352         $(CPP_FOR_BUILD) `if test -f $(srcdir)/gen-fac_ui.c; then echo $(srcdir)/gen-fac_ui.c; else echo gen-fac_ui.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > gen-fac_ui_.c || rm -f gen-fac_ui_.c
353
354
355 fib_table.h: gen-fib$(EXEEXT_FOR_BUILD)
356         ./gen-fib header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >fib_table.h || (rm -f fib_table.h; exit 1)
357 BUILT_SOURCES += fib_table.h
358
359 mpn/fib_table.c: gen-fib$(EXEEXT_FOR_BUILD)
360         ./gen-fib table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/fib_table.c || (rm -f mpn/fib_table.c; exit 1)
361 BUILT_SOURCES += mpn/fib_table.c
362
363 gen-fib$(EXEEXT_FOR_BUILD): gen-fib$(U_FOR_BUILD).c dumbmp.c
364         $(CC_FOR_BUILD) `test -f 'gen-fib$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fib$(U_FOR_BUILD).c -o gen-fib$(EXEEXT_FOR_BUILD)
365 DISTCLEANFILES += gen-fib$(EXEEXT_FOR_BUILD)
366 EXTRA_DIST += gen-fib.c
367
368 gen-fib_.c: gen-fib.c $(ANSI2KNR)
369         $(CPP_FOR_BUILD) `if test -f $(srcdir)/gen-fib.c; then echo $(srcdir)/gen-fib.c; else echo gen-fib.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > gen-fib_.c || rm -f gen-fib_.c
370
371
372 mp_bases.h: gen-bases$(EXEEXT_FOR_BUILD)
373         ./gen-bases header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mp_bases.h || (rm -f mp_bases.h; exit 1)
374 BUILT_SOURCES += mp_bases.h
375
376 mpn/mp_bases.c: gen-bases$(EXEEXT_FOR_BUILD)
377         ./gen-bases table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/mp_bases.c || (rm -f mpn/mp_bases.c; exit 1)
378 BUILT_SOURCES += mpn/mp_bases.c
379
380 gen-bases$(EXEEXT_FOR_BUILD): gen-bases$(U_FOR_BUILD).c dumbmp.c
381         $(CC_FOR_BUILD) `test -f 'gen-bases$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-bases$(U_FOR_BUILD).c -o gen-bases$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD)
382 DISTCLEANFILES += gen-bases$(EXEEXT_FOR_BUILD)
383 EXTRA_DIST += gen-bases.c
384
385 gen-bases_.c: gen-bases.c $(ANSI2KNR)
386         $(CPP_FOR_BUILD) `if test -f $(srcdir)/gen-bases.c; then echo $(srcdir)/gen-bases.c; else echo gen-bases.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > gen-bases_.c || rm -f gen-bases_.c
387
388
389
390 trialdivtab.h: gen-trialdivtab$(EXEEXT_FOR_BUILD)
391         ./gen-trialdivtab $(GMP_LIMB_BITS) 8000 >trialdivtab.h || (rm -f trialdivtab.h; exit 1)
392 BUILT_SOURCES += trialdivtab.h
393
394 gen-trialdivtab$(EXEEXT_FOR_BUILD): gen-trialdivtab$(U_FOR_BUILD).c dumbmp.c
395         $(CC_FOR_BUILD) `test -f 'gen-trialdivtab$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-trialdivtab$(U_FOR_BUILD).c -o gen-trialdivtab$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD)
396 DISTCLEANFILES += gen-trialdivtab$(EXEEXT_FOR_BUILD)
397 EXTRA_DIST += gen-trialdivtab.c
398
399 gen-trialdivtab_.c: gen-trialdivtab.c $(ANSI2KNR)
400         $(CPP_FOR_BUILD) `if test -f $(srcdir)/gen-trialdivtab.c; then echo $(srcdir)/gen-trialdivtab.c; else echo gen-trialdivtab.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > gen-trialdivtab_.c || rm -f gen-trialdivtab_.c
401
402
403
404
405 mpn/perfsqr.h: gen-psqr$(EXEEXT_FOR_BUILD)
406         ./gen-psqr $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/perfsqr.h || (rm -f mpn/perfsqr.h; exit 1)
407 BUILT_SOURCES += mpn/perfsqr.h
408
409 gen-psqr$(EXEEXT_FOR_BUILD): gen-psqr$(U_FOR_BUILD).c dumbmp.c
410         $(CC_FOR_BUILD) `test -f 'gen-psqr$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-psqr$(U_FOR_BUILD).c -o gen-psqr$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD)
411 DISTCLEANFILES += gen-psqr$(EXEEXT_FOR_BUILD)
412 EXTRA_DIST += gen-psqr.c
413
414 gen-psqr_.c: gen-psqr.c $(ANSI2KNR)
415         $(CPP_FOR_BUILD) `if test -f $(srcdir)/gen-psqr.c; then echo $(srcdir)/gen-psqr.c; else echo gen-psqr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > gen-psqr_.c || rm -f gen-psqr_.c
416
417
418 # Avoid: CVS - cvs directories
419 #        *~  - emacs backups
420 #        .#* - cvs merge originals
421 #
422 # *~ and .#* only occur when a whole directory without it's own Makefile.am
423 # is distributed, like "doc" or the mpn cpu subdirectories.
424 #
425 dist-hook:
426         -find $(distdir) \( -name CVS -type d \) -o -name "*~" -o -name ".#*" \
427                 | xargs rm -rf
428 #       grep -F $(VERSION) $(srcdir)/Makefile.am \
429 #               | grep -q "^# *$(VERSION) *$(LIBGMP_LT_CURRENT):$(LIBGMP_LT_REVISION):$(LIBGMP_LT_AGE) *$(LIBGMPXX_LT_CURRENT):$(LIBGMPXX_LT_REVISION):$(LIBGMPXX_LT_AGE) *$(LIBMP_LT_CURRENT):$(LIBMP_LT_REVISION):$(LIBMP_LT_AGE)"
430 #       test -z "`sed -n 's/^# *[0-9]*\.[0-9]*\.[0-9]* *\([0-9]*:[0-9]*:[0-9]*\) *\([0-9]*:[0-9]*:[0-9]*\) *\([0-9]*:[0-9]*:[0-9]*\).*/A\1\nB\2\nC\3/p' $(srcdir)/Makefile.am | grep -v 'A6:3:3\|B3:5:0\|C4:7:1' | sort | uniq -d`"