Makefile.am revision 1.1.1.2
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, 2011, 2012, 2013 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
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#        5.0.2   10:2:0    6:2:2   4:22:1
71#        5.0.3   10:3:0    6:3:2   4:23:1
72#        5.0.4   10:4:0    6:4:2   4:24:1
73#        5.0.5   10:5:0    6:5:2   4:25:1
74#        5.1.0   11:0:1    7:0:3     -
75#        5.1.1   11:1:1    7:1:3     -
76#        5.1.2   11:2:1    7:2:3     -
77#        5.1.3   11:3:1    7:3:3     -
78#
79# Starting at 3:0:0 is a slight abuse of the versioning system, but it
80# ensures we're past soname libgmp.so.2, which was used on Debian GNU/Linux
81# packages of gmp 2.  Pretend gmp 2 was 2:0:0, so the interface changes for
82# gmp 3 mean 3:0:0 is right.
83#
84# We interpret "implementation changed" in item "1." above as meaning any
85# release, ie. the REVISION is incremented every time (if nothing else).
86# Even if we thought the code generated will be identical on all systems,
87# it's still good to get the shared library filename (like
88# libgmpxx.so.3.0.4) incrementing, to make it clear which GMP it's from.
89
90LIBGMP_LT_CURRENT    = 11
91LIBGMP_LT_REVISION   = 3
92LIBGMP_LT_AGE        = 1
93
94LIBGMPXX_LT_CURRENT  = 7
95LIBGMPXX_LT_REVISION = 3
96LIBGMPXX_LT_AGE      = 3
97
98
99SUBDIRS = tests mpn mpz mpq mpf printf scanf rand cxx demos tune doc
100
101EXTRA_DIST = configfsf.guess configfsf.sub .gdbinit INSTALL.autoconf
102
103if WANT_CXX
104GMPXX_HEADERS_OPTION = gmpxx.h
105endif
106EXTRA_DIST += gmpxx.h
107
108# gmp.h and mp.h are architecture dependent, mainly since they encode the
109# limb size used in libgmp.  For that reason they belong under $exec_prefix
110# not $prefix, strictly speaking.
111#
112# $exec_prefix/include is not in the default include path for gcc built to
113# the same $prefix and $exec_prefix, which might mean gmp.h is not found,
114# but anyone knowledgeable enough to be playing with exec_prefix will be able
115# to address that.
116#
117includeexecdir = $(exec_prefix)/include
118include_HEADERS = $(GMPXX_HEADERS_OPTION)
119nodist_includeexec_HEADERS = gmp.h
120lib_LTLIBRARIES = libgmp.la $(GMPXX_LTLIBRARIES_OPTION)
121
122BUILT_SOURCES = gmp.h
123
124DISTCLEANFILES = $(BUILT_SOURCES) config.m4 @gmp_srclinks@
125
126# Tell gmp.h it's building gmp, not an application, used by windows DLL stuff.
127INCLUDES=-D__GMP_WITHIN_GMP
128
129
130MPF_OBJECTS = mpf/init$U.lo mpf/init2$U.lo mpf/inits$U.lo mpf/set$U.lo	    \
131  mpf/set_ui$U.lo mpf/set_si$U.lo mpf/set_str$U.lo mpf/set_d$U.lo	    \
132  mpf/set_z$U.lo mpf/iset$U.lo mpf/iset_ui$U.lo mpf/iset_si$U.lo	    \
133  mpf/iset_str$U.lo mpf/iset_d$U.lo mpf/clear$U.lo mpf/clears$U.lo	    \
134  mpf/get_str$U.lo mpf/dump$U.lo mpf/size$U.lo mpf/eq$U.lo mpf/reldiff$U.lo \
135  mpf/sqrt$U.lo mpf/random2$U.lo mpf/inp_str$U.lo mpf/out_str$U.lo	    \
136  mpf/add$U.lo mpf/add_ui$U.lo mpf/sub$U.lo mpf/sub_ui$U.lo mpf/ui_sub$U.lo \
137  mpf/mul$U.lo mpf/mul_ui$U.lo mpf/div$U.lo mpf/div_ui$U.lo		    \
138  mpf/cmp$U.lo mpf/cmp_d$U.lo mpf/cmp_ui$U.lo mpf/cmp_si$U.lo		    \
139  mpf/mul_2exp$U.lo mpf/div_2exp$U.lo mpf/abs$U.lo mpf/neg$U.lo		    \
140  mpf/set_q$U.lo mpf/get_d$U.lo mpf/get_d_2exp$U.lo mpf/set_dfl_prec$U.lo   \
141  mpf/set_prc$U.lo mpf/set_prc_raw$U.lo mpf/get_dfl_prec$U.lo               \
142  mpf/get_prc$U.lo mpf/ui_div$U.lo mpf/sqrt_ui$U.lo                         \
143  mpf/ceilfloor$U.lo mpf/trunc$U.lo mpf/pow_ui$U.lo			    \
144  mpf/urandomb$U.lo mpf/swap$U.lo					    \
145  mpf/fits_sint$U.lo mpf/fits_slong$U.lo mpf/fits_sshort$U.lo		    \
146  mpf/fits_uint$U.lo mpf/fits_ulong$U.lo mpf/fits_ushort$U.lo		    \
147  mpf/get_si$U.lo mpf/get_ui$U.lo					    \
148  mpf/int_p$U.lo
149
150MPZ_OBJECTS = mpz/abs$U.lo mpz/add$U.lo mpz/add_ui$U.lo			\
151  mpz/aorsmul$U.lo mpz/aorsmul_i$U.lo mpz/and$U.lo mpz/array_init$U.lo	\
152  mpz/bin_ui$U.lo mpz/bin_uiui$U.lo					\
153  mpz/cdiv_q$U.lo mpz/cdiv_q_ui$U.lo					\
154  mpz/cdiv_qr$U.lo mpz/cdiv_qr_ui$U.lo					\
155  mpz/cdiv_r$U.lo mpz/cdiv_r_ui$U.lo mpz/cdiv_ui$U.lo			\
156  mpz/cfdiv_q_2exp$U.lo mpz/cfdiv_r_2exp$U.lo				\
157  mpz/clear$U.lo mpz/clears$U.lo mpz/clrbit$U.lo			\
158  mpz/cmp$U.lo mpz/cmp_d$U.lo mpz/cmp_si$U.lo mpz/cmp_ui$U.lo		\
159  mpz/cmpabs$U.lo mpz/cmpabs_d$U.lo mpz/cmpabs_ui$U.lo			\
160  mpz/com$U.lo mpz/combit$U.lo						\
161  mpz/cong$U.lo mpz/cong_2exp$U.lo mpz/cong_ui$U.lo			\
162  mpz/divexact$U.lo mpz/divegcd$U.lo mpz/dive_ui$U.lo			\
163  mpz/divis$U.lo mpz/divis_ui$U.lo mpz/divis_2exp$U.lo mpz/dump$U.lo	\
164  mpz/export$U.lo mpz/mfac_uiui$U.lo					\
165  mpz/2fac_ui$U.lo mpz/fac_ui$U.lo mpz/oddfac_1$U.lo mpz/prodlimbs$U.lo	\
166  mpz/fdiv_q_ui$U.lo mpz/fdiv_qr$U.lo mpz/fdiv_qr_ui$U.lo		\
167  mpz/fdiv_r$U.lo mpz/fdiv_r_ui$U.lo mpz/fdiv_q$U.lo			\
168  mpz/fdiv_ui$U.lo mpz/fib_ui$U.lo mpz/fib2_ui$U.lo mpz/fits_sint$U.lo	\
169  mpz/fits_slong$U.lo mpz/fits_sshort$U.lo mpz/fits_uint$U.lo		\
170  mpz/fits_ulong$U.lo mpz/fits_ushort$U.lo mpz/gcd$U.lo			\
171  mpz/gcd_ui$U.lo mpz/gcdext$U.lo mpz/get_d$U.lo mpz/get_d_2exp$U.lo	\
172  mpz/get_si$U.lo mpz/get_str$U.lo mpz/get_ui$U.lo mpz/getlimbn$U.lo	\
173  mpz/hamdist$U.lo							\
174  mpz/import$U.lo mpz/init$U.lo mpz/init2$U.lo mpz/inits$U.lo		\
175  mpz/inp_raw$U.lo mpz/inp_str$U.lo mpz/invert$U.lo			\
176  mpz/ior$U.lo mpz/iset$U.lo mpz/iset_d$U.lo mpz/iset_si$U.lo		\
177  mpz/iset_str$U.lo mpz/iset_ui$U.lo mpz/jacobi$U.lo mpz/kronsz$U.lo	\
178  mpz/kronuz$U.lo mpz/kronzs$U.lo mpz/kronzu$U.lo			\
179  mpz/lcm$U.lo mpz/lcm_ui$U.lo mpz/lucnum_ui$U.lo mpz/lucnum2_ui$U.lo	\
180  mpz/millerrabin$U.lo mpz/mod$U.lo mpz/mul$U.lo mpz/mul_2exp$U.lo	\
181  mpz/mul_si$U.lo mpz/mul_ui$U.lo					\
182  mpz/n_pow_ui$U.lo mpz/neg$U.lo mpz/nextprime$U.lo			\
183  mpz/out_raw$U.lo mpz/out_str$U.lo mpz/perfpow$U.lo mpz/perfsqr$U.lo	\
184  mpz/popcount$U.lo mpz/pow_ui$U.lo mpz/powm$U.lo mpz/powm_sec$U.lo	\
185  mpz/powm_ui$U.lo mpz/primorial_ui$U.lo				\
186  mpz/pprime_p$U.lo mpz/random$U.lo mpz/random2$U.lo			\
187  mpz/realloc$U.lo mpz/realloc2$U.lo mpz/remove$U.lo			\
188  mpz/root$U.lo mpz/rootrem$U.lo mpz/rrandomb$U.lo mpz/scan0$U.lo	\
189  mpz/scan1$U.lo mpz/set$U.lo mpz/set_d$U.lo mpz/set_f$U.lo		\
190  mpz/set_q$U.lo mpz/set_si$U.lo mpz/set_str$U.lo mpz/set_ui$U.lo	\
191  mpz/setbit$U.lo							\
192  mpz/size$U.lo mpz/sizeinbase$U.lo mpz/sqrt$U.lo			\
193  mpz/sqrtrem$U.lo mpz/sub$U.lo mpz/sub_ui$U.lo mpz/swap$U.lo		\
194  mpz/tdiv_ui$U.lo mpz/tdiv_q$U.lo mpz/tdiv_q_2exp$U.lo			\
195  mpz/tdiv_q_ui$U.lo mpz/tdiv_qr$U.lo mpz/tdiv_qr_ui$U.lo		\
196  mpz/tdiv_r$U.lo mpz/tdiv_r_2exp$U.lo mpz/tdiv_r_ui$U.lo		\
197  mpz/tstbit$U.lo mpz/ui_pow_ui$U.lo mpz/ui_sub$U.lo mpz/urandomb$U.lo	\
198  mpz/urandomm$U.lo mpz/xor$U.lo
199
200MPQ_OBJECTS = mpq/abs$U.lo mpq/aors$U.lo				\
201  mpq/canonicalize$U.lo mpq/clear$U.lo mpq/clears$U.lo			\
202  mpq/cmp$U.lo mpq/cmp_si$U.lo mpq/cmp_ui$U.lo mpq/div$U.lo		\
203  mpq/get_d$U.lo mpq/get_den$U.lo mpq/get_num$U.lo mpq/get_str$U.lo	\
204  mpq/init$U.lo mpq/inits$U.lo mpq/inp_str$U.lo mpq/inv$U.lo		\
205  mpq/md_2exp$U.lo mpq/mul$U.lo mpq/neg$U.lo mpq/out_str$U.lo		\
206  mpq/set$U.lo mpq/set_den$U.lo mpq/set_num$U.lo			\
207  mpq/set_si$U.lo mpq/set_str$U.lo mpq/set_ui$U.lo			\
208  mpq/equal$U.lo mpq/set_z$U.lo mpq/set_d$U.lo				\
209  mpq/set_f$U.lo mpq/swap$U.lo
210
211MPN_OBJECTS = mpn/fib_table$U.lo mpn/mp_bases$U.lo
212
213PRINTF_OBJECTS =							\
214  printf/asprintf$U.lo printf/asprntffuns$U.lo				\
215  printf/doprnt$U.lo printf/doprntf$U.lo printf/doprnti$U.lo		\
216  printf/fprintf$U.lo							\
217  printf/obprintf$U.lo printf/obvprintf$U.lo printf/obprntffuns$U.lo	\
218  printf/printf$U.lo printf/printffuns$U.lo				\
219  printf/snprintf$U.lo printf/snprntffuns$U.lo				\
220  printf/sprintf$U.lo printf/sprintffuns$U.lo				\
221  printf/vasprintf$U.lo printf/vfprintf$U.lo printf/vprintf$U.lo	\
222  printf/vsnprintf$U.lo printf/vsprintf$U.lo				\
223  printf/repl-vsnprintf$U.lo
224
225SCANF_OBJECTS =							\
226  scanf/doscan$U.lo scanf/fscanf$U.lo scanf/fscanffuns$U.lo	\
227  scanf/scanf$U.lo scanf/sscanf$U.lo scanf/sscanffuns$U.lo	\
228  scanf/vfscanf$U.lo scanf/vscanf$U.lo scanf/vsscanf$U.lo
229
230RANDOM_OBJECTS =							\
231  rand/rand$U.lo rand/randclr$U.lo rand/randdef$U.lo rand/randiset$U.lo	\
232  rand/randlc2s$U.lo rand/randlc2x$U.lo rand/randmt$U.lo		\
233  rand/randmts$U.lo rand/rands$U.lo rand/randsd$U.lo rand/randsdui$U.lo	\
234  rand/randbui$U.lo rand/randmui$U.lo
235
236# no $U for C++ files
237CXX_OBJECTS =								\
238  cxx/isfuns.lo cxx/ismpf.lo cxx/ismpq.lo cxx/ismpz.lo cxx/ismpznw.lo	\
239  cxx/limits.lo cxx/osdoprnti.lo cxx/osfuns.lo				\
240  cxx/osmpf.lo cxx/osmpq.lo cxx/osmpz.lo
241
242# In libtool 1.5 it doesn't work to build libgmp.la from the convenience
243# libraries like mpz/libmpz.la.  Or rather it works, but it ends up putting
244# PIC objects into libgmp.a if shared and static are both built.  (The PIC
245# objects go into mpz/.libs/libmpz.a, and thence into .libs/libgmp.a.)
246#
247# For now the big lists of objects above are used.  Something like mpz/*.lo
248# would probably work, but might risk missing something out or getting
249# something extra.  The source files for each .lo are listed in the
250# Makefile.am's in the subdirectories.
251#
252# Currently, for libgmp, unlike libmp below, we're not using
253# -export-symbols, since the tune and speed programs, and perhaps some of
254# the test programs, want to access undocumented symbols.
255
256libgmp_la_SOURCES = gmp-impl.h longlong.h				\
257  assert.c compat.c errno.c extract-dbl.c invalid.c memory.c		\
258  mp_bpl.c mp_clz_tab.c mp_dv_tab.c mp_minv_tab.c mp_get_fns.c mp_set_fns.c \
259  version.c nextprime.c primesieve.c
260EXTRA_libgmp_la_SOURCES = tal-debug.c tal-notreent.c tal-reent.c
261libgmp_la_DEPENDENCIES = @TAL_OBJECT@		\
262  $(MPF_OBJECTS) $(MPZ_OBJECTS) $(MPQ_OBJECTS)	\
263  $(MPN_OBJECTS) @mpn_objs_in_libgmp@		\
264  $(PRINTF_OBJECTS)  $(SCANF_OBJECTS) $(RANDOM_OBJECTS)
265libgmp_la_LIBADD = $(libgmp_la_DEPENDENCIES)
266libgmp_la_LDFLAGS = $(GMP_LDFLAGS) $(LIBGMP_LDFLAGS) \
267  -version-info $(LIBGMP_LT_CURRENT):$(LIBGMP_LT_REVISION):$(LIBGMP_LT_AGE)
268
269
270# We need at least one .cc file in $(libgmpxx_la_SOURCES) so automake will
271# use $(CXXLINK) rather than the plain C $(LINK).  cxx/dummy.cc is that
272# file.
273
274if WANT_CXX
275GMPXX_LTLIBRARIES_OPTION = libgmpxx.la
276endif
277libgmpxx_la_SOURCES = cxx/dummy.cc
278libgmpxx_la_DEPENDENCIES = $(CXX_OBJECTS) libgmp.la
279libgmpxx_la_LIBADD = $(libgmpxx_la_DEPENDENCIES)
280libgmpxx_la_LDFLAGS = $(GMP_LDFLAGS) $(LIBGMPXX_LDFLAGS) \
281  -version-info $(LIBGMPXX_LT_CURRENT):$(LIBGMPXX_LT_REVISION):$(LIBGMPXX_LT_AGE)
282
283
284
285install-data-hook:
286	@echo ''
287	@echo '+-------------------------------------------------------------+'
288	@echo '| CAUTION:                                                    |'
289	@echo '|                                                             |'
290	@echo '| If you have not already run "make check", then we strongly  |'
291	@echo '| recommend you do so.                                        |'
292	@echo '|                                                             |'
293	@echo '| GMP has been carefully tested by its authors, but compilers |'
294	@echo '| are all too often released with serious bugs.  GMP tends to |'
295	@echo '| explore interesting corners in compilers and has hit bugs   |'
296	@echo '| on quite a few occasions.                                   |'
297	@echo '|                                                             |'
298	@echo '+-------------------------------------------------------------+'
299	@echo ''
300
301
302# The "test -f" support for srcdir!=builddir is similar to the automake .c.o
303# etc rules, but with each foo.c explicitly, since $< is not portable
304# outside an inference rule.
305#
306# A quoted 'foo.c' is used with the "test -f"'s to avoid Sun make rewriting
307# it as part of its VPATH support.  See the autoconf manual "Limitations of
308# Make".
309#
310# Generated .h files which are used by gmp-impl.h are BUILT_SOURCES since
311# they must exist before anything can be compiled.
312#
313# Other generated .h files are also BUILT_SOURCES so as to get all the
314# build-system stuff over and done with at the start.  Also, dependencies on
315# the .h files are not properly expressed for the various objects that use
316# them.
317
318EXTRA_DIST += bootstrap.c
319
320fac_table.h: gen-fac$(EXEEXT_FOR_BUILD)
321	./gen-fac $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >fac_table.h || (rm -f fac_table.h; exit 1)
322BUILT_SOURCES += fac_table.h
323
324gen-fac$(EXEEXT_FOR_BUILD): gen-fac$(U_FOR_BUILD).c bootstrap.c
325	$(CC_FOR_BUILD) `test -f 'gen-fac$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fac$(U_FOR_BUILD).c -o gen-fac$(EXEEXT_FOR_BUILD)
326DISTCLEANFILES += gen-fac$(EXEEXT_FOR_BUILD)
327EXTRA_DIST += gen-fac.c
328
329
330fib_table.h: gen-fib$(EXEEXT_FOR_BUILD)
331	./gen-fib header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >fib_table.h || (rm -f fib_table.h; exit 1)
332BUILT_SOURCES += fib_table.h
333
334mpn/fib_table.c: gen-fib$(EXEEXT_FOR_BUILD)
335	./gen-fib table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/fib_table.c || (rm -f mpn/fib_table.c; exit 1)
336BUILT_SOURCES += mpn/fib_table.c
337
338gen-fib$(EXEEXT_FOR_BUILD): gen-fib$(U_FOR_BUILD).c bootstrap.c
339	$(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)
340DISTCLEANFILES += gen-fib$(EXEEXT_FOR_BUILD)
341EXTRA_DIST += gen-fib.c
342
343
344mp_bases.h: gen-bases$(EXEEXT_FOR_BUILD)
345	./gen-bases header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mp_bases.h || (rm -f mp_bases.h; exit 1)
346BUILT_SOURCES += mp_bases.h
347
348mpn/mp_bases.c: gen-bases$(EXEEXT_FOR_BUILD)
349	./gen-bases table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/mp_bases.c || (rm -f mpn/mp_bases.c; exit 1)
350BUILT_SOURCES += mpn/mp_bases.c
351
352gen-bases$(EXEEXT_FOR_BUILD): gen-bases$(U_FOR_BUILD).c bootstrap.c
353	$(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)
354DISTCLEANFILES += gen-bases$(EXEEXT_FOR_BUILD)
355EXTRA_DIST += gen-bases.c
356
357
358trialdivtab.h: gen-trialdivtab$(EXEEXT_FOR_BUILD)
359	./gen-trialdivtab $(GMP_LIMB_BITS) 8000 >trialdivtab.h || (rm -f trialdivtab.h; exit 1)
360BUILT_SOURCES += trialdivtab.h
361
362gen-trialdivtab$(EXEEXT_FOR_BUILD): gen-trialdivtab$(U_FOR_BUILD).c bootstrap.c
363	$(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)
364DISTCLEANFILES += gen-trialdivtab$(EXEEXT_FOR_BUILD)
365EXTRA_DIST += gen-trialdivtab.c
366
367
368mpn/jacobitab.h: gen-jacobitab$(EXEEXT_FOR_BUILD)
369	./gen-jacobitab >mpn/jacobitab.h || (rm -f mpn/jacobitab.h; exit 1)
370BUILT_SOURCES += mpn/jacobitab.h
371
372gen-jacobitab$(EXEEXT_FOR_BUILD): gen-jacobitab$(U_FOR_BUILD).c
373	$(CC_FOR_BUILD) `test -f 'gen-jacobitab$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-jacobitab$(U_FOR_BUILD).c -o gen-jacobitab$(EXEEXT_FOR_BUILD)
374DISTCLEANFILES += gen-jacobitab$(EXEEXT_FOR_BUILD)
375EXTRA_DIST += gen-jacobitab.c
376
377
378mpn/perfsqr.h: gen-psqr$(EXEEXT_FOR_BUILD)
379	./gen-psqr $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/perfsqr.h || (rm -f mpn/perfsqr.h; exit 1)
380BUILT_SOURCES += mpn/perfsqr.h
381
382gen-psqr$(EXEEXT_FOR_BUILD): gen-psqr$(U_FOR_BUILD).c bootstrap.c
383	$(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)
384DISTCLEANFILES += gen-psqr$(EXEEXT_FOR_BUILD)
385EXTRA_DIST += gen-psqr.c
386
387# Distribute mini-gmp. Test sources copied by dist-hook.
388EXTRA_DIST += mini-gmp/README mini-gmp/mini-gmp.c mini-gmp/mini-gmp.h \
389	      mini-gmp/tests/Makefile mini-gmp/tests/run-tests
390
391# Avoid: CVS - cvs directories
392#        *~  - emacs backups
393#        .#* - cvs merge originals
394#
395# *~ and .#* only occur when a whole directory without it's own Makefile.am
396# is distributed, like "doc" or the mpn cpu subdirectories.
397#
398dist-hook:
399	-find $(distdir) \( -name CVS -type d \) -o -name "*~" -o -name ".#*" \
400		| xargs rm -rf
401	cp "$(srcdir)"/mini-gmp/tests/*.[ch] "$(distdir)/mini-gmp/tests"
402#	grep -F $(VERSION) $(srcdir)/Makefile.am \
403#		| grep -q "^# *$(VERSION) *$(LIBGMP_LT_CURRENT):$(LIBGMP_LT_REVISION):$(LIBGMP_LT_AGE) *$(LIBGMPXX_LT_CURRENT):$(LIBGMPXX_LT_REVISION):$(LIBGMPXX_LT_AGE)"
404#	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`"
405
406.PHONY: check-mini-gmp clean-mini-gmp
407
408check-mini-gmp:
409	abs_srcdir="`cd $(srcdir) && pwd`" ; \
410	$(MKDIR_P) mini-gmp/tests \
411	&& cd mini-gmp/tests \
412	&& LD_LIBRARY_PATH="../../.libs:$$LD_LIBRARY_PATH" \
413	   DYLD_LIBRARY_PATH="../../.libs:$$DYLD_LIBRARY_PATH" \
414	   $(MAKE) -f "$$abs_srcdir/mini-gmp/tests/Makefile" \
415		VPATH="$$abs_srcdir/mini-gmp/tests" \
416		srcdir="$$abs_srcdir/mini-gmp/tests" \
417		MINI_GMP_DIR="$$abs_srcdir/mini-gmp" \
418		LDFLAGS="-L../../.libs" \
419		LIBS="-lgmp -lm" \
420		CC="$(CC_FOR_BUILD)" EXTRA_CFLAGS="-g -I../.." check
421
422clean-mini-gmp:
423	if [ -d mini-gmp/tests ] ; then \
424	  abs_srcdir="`cd $(srcdir) && pwd`" ; \
425	  cd mini-gmp/tests \
426	  && $(MAKE) -f "$$abs_srcdir/mini-gmp/tests/Makefile" clean ; \
427	fi
428
429clean-local: clean-mini-gmp
430distclean-local: clean-mini-gmp
431