source: trunk/third/gmp/Makefile.am @ 22254

Revision 22254, 12.9 KB checked in by ghudson, 19 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r22253, which included commits to RCS files with non-trunk default branches.
Line 
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# 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 2.1 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; see the file COPYING.LIB.  If not, write to
21# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
22# MA 02111-1307, USA.
23
24
25# Libtool -version-info for libgmp.la and libmp.la.  See "Versioning" in the
26# libtool manual.
27#
28# 1. No interfaces changed, only implementations (good): Increment REVISION.
29#
30# 2. Interfaces added, none removed (good): Increment CURRENT, increment
31#    AGE, set REVISION to 0.
32#
33# 3. Interfaces removed (BAD, breaks upward compatibility): Increment
34#    CURRENT, set AGE and REVISION to 0.
35#
36# Do this separately for libgmp and libmp, and only for releases.
37#
38#         GMP      -version-info
39#       release   libgmp  libgmpxx libmp
40#        2.0.x      -        -       -
41#        3.0      3:0:0      -     3:0:0
42#        3.0.1    3:1:0      -     3:0:0
43#        3.1      4:0:1      -     4:0:1
44#        3.1.1    4:1:1      -     4:1:1
45#        4.0      5:0:2    3:0:0   4:2:1
46#        4.0.1    5:1:2    3:1:0   4:3:1
47#        4.1      6:0:3    3:2:0   4:4:1
48#        4.1.1    6:1:3    3:3:0   4:5:1
49#        4.1.2    6:2:3    3:4:0   4:6:1
50#        4.1.3    6:3:3    3:5:0   4:7:1
51#
52# Starting at 3:0:0 is a slight abuse of the versioning system, but it
53# ensures we're past soname libgmp.so.2, which was used on Debian GNU/Linux
54# packages of gmp 2.  Pretend gmp 2 was 2:0:0, so the interface changes for
55# gmp 3 mean 3:0:0 is right.
56
57LIBGMP_LT_CURRENT =  6
58LIBGMP_LT_REVISION = 3
59LIBGMP_LT_AGE =      3
60
61LIBGMPXX_LT_CURRENT =  3
62LIBGMPXX_LT_REVISION = 5
63LIBGMPXX_LT_AGE =      0
64
65LIBMP_LT_CURRENT =  4
66LIBMP_LT_REVISION = 7
67LIBMP_LT_AGE =      1
68
69
70AUTOMAKE_OPTIONS = gnu no-dependencies ansi2knr
71ACLOCAL_AMFLAGS = -I mpfr
72
73
74# FIXME: This is a workaround for automake not allowing info_TEXINFOS to be
75# conditionalized.  We want mpfr/mpfr.info only installed under
76# --enable-mpfr, but it and the rest of mpfr always included in a "make
77# dist".
78if WANT_MPFR
79MPFR_DIR = mpfr
80else
81if MAINTAINER_MODE
82MPFR_DIR = mpfr
83endif
84endif
85
86# "tests" ahead of "mpfr" ensures tests/t-constants is run before the
87# mpfr/tests programs.
88#
89SUBDIRS = tests mpn mpz mpq mpf printf scanf cxx mpbsd $(MPFR_DIR) demos tune
90
91if WANT_CXX
92GMPXX_HEADERS_OPTION = gmpxx.h
93if WANT_MPFR
94MPFRXX_HEADERS_OPTION = mpfrxx.h
95endif
96endif
97
98# gmp.h and mp.h are architecture dependent, mainly since they encode the
99# limb size used in libgmp.  For that reason they belong under $exec_prefix
100# not $prefix, strictly speaking.
101#
102# $exec_prefix/include is not in the default include path for gcc built to
103# the same $prefix and $exec_prefix, which might mean gmp.h is not found,
104# but anyone knowledgable enough to be playing with exec_prefix will be able
105# to address that.
106#
107includeexecdir = $(exec_prefix)/include
108include_HEADERS = $(GMPXX_HEADERS_OPTION) $(MPFRXX_HEADERS_OPTION)
109nodist_includeexec_HEADERS = gmp.h $(MPBSD_HEADERS_OPTION)
110lib_LTLIBRARIES = libgmp.la $(GMPXX_LTLIBRARIES_OPTION) $(MPBSD_LTLIBRARIES_OPTION)
111
112EXTRA_DIST = doc macos \
113  configfsf.guess configfsf.sub .gdbinit INSTALL.autoconf libmp.sym \
114  gmpxx.h mpfrxx.h mpfr/README
115
116DISTCLEANFILES = $(nodist_include_HEADERS) config.m4 configure.lineno @gmp_srclinks@
117
118# Generated by current texinfo.tex when processing gmp.texi.
119# FIXME: Maybe this should be added to automake.
120MOSTLYCLEANFILES = gmp.tmp
121
122# Tell gmp.h it's building gmp, not an application, used by windows DLL stuff.
123INCLUDES=-D__GMP_WITHIN_GMP
124
125
126MPF_OBJECTS = mpf/init$U.lo mpf/init2$U.lo mpf/set$U.lo mpf/set_ui$U.lo     \
127  mpf/set_si$U.lo mpf/set_str$U.lo mpf/set_d$U.lo mpf/set_z$U.lo            \
128  mpf/iset$U.lo mpf/iset_ui$U.lo mpf/iset_si$U.lo mpf/iset_str$U.lo         \
129  mpf/iset_d$U.lo mpf/clear$U.lo mpf/get_str$U.lo mpf/dump$U.lo             \
130  mpf/size$U.lo mpf/eq$U.lo mpf/reldiff$U.lo mpf/sqrt$U.lo mpf/random2$U.lo \
131  mpf/inp_str$U.lo mpf/out_str$U.lo mpf/add$U.lo mpf/add_ui$U.lo            \
132  mpf/sub$U.lo mpf/sub_ui$U.lo mpf/ui_sub$U.lo mpf/mul$U.lo mpf/mul_ui$U.lo \
133  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
146MPZ_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/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                                                          \
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/inp_raw$U.lo         \
170  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_ui$U.lo      \
180  mpz/pprime_p$U.lo mpz/random$U.lo mpz/random2$U.lo                    \
181  mpz/realloc$U.lo mpz/realloc2$U.lo                                    \
182  mpz/remove$U.lo mpz/root$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
194MPQ_OBJECTS = mpq/abs$U.lo mpq/aors$U.lo                                \
195  mpq/canonicalize$U.lo mpq/clear$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/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
205MPN_OBJECTS = @mpn_objs_in_libgmp@
206
207PRINTF_OBJECTS =                                                        \
208  @REPL_VSNPRINTF_PRINTF_OBJ@                                           \
209  printf/asprintf$U.lo printf/asprntffuns$U.lo                          \
210  printf/doprnt$U.lo printf/doprntf$U.lo printf/doprnti$U.lo            \
211  printf/fprintf$U.lo                                                   \
212  printf/obprintf$U.lo printf/obvprintf$U.lo printf/obprntffuns$U.lo    \
213  printf/printf$U.lo printf/printffuns$U.lo                             \
214  printf/snprintf$U.lo printf/snprntffuns$U.lo                          \
215  printf/sprintf$U.lo printf/sprintffuns$U.lo                           \
216  printf/vasprintf$U.lo printf/vfprintf$U.lo printf/vprintf$U.lo        \
217  printf/vsnprintf$U.lo printf/vsprintf$U.lo
218
219SCANF_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
225CXX_OBJECTS =                                                           \
226  cxx/isfuns.lo cxx/ismpf.lo cxx/ismpq.lo cxx/ismpz.lo                  \
227  cxx/osdoprnti.lo cxx/osfuns.lo                                        \
228  cxx/osmpf.lo cxx/osmpq.lo cxx/osmpz.lo
229
230MPBSD_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 the current libtool it doesn't work to build libgmp.la from convenience
238# libraries like mpz/libmpz.la.  Or rather it works, but it ends up putting
239# PIC objects into libgmp.a when shared and static are both built.
240#
241# For now the big lists of objects above are used.  Something like mpz/*.lo
242# would probably work, but might risk missing something out or getting
243# something extra.  The source files for each .lo are listed in the
244# Makefile.am's in the subdirectories.
245#
246# Currently, unlike libmp below, we're not using -export-symbols, since the
247# tune and speed programs, and perhaps some of the test programs, want to
248# access undocumented symbols.
249
250libgmp_la_SOURCES = gmp-impl.h longlong.h                               \
251  assert.c compat.c errno.c extract-dbl.c insert-dbl.c memory.c         \
252  mp_bpl.c mp_clz_tab.c mp_minv_tab.c mp_set_fns.c                      \
253  rand.c randclr.c randdef.c randlc.c randlc2s.c randlc2x.c randraw.c   \
254  rands.c randsd.c randsdui.c version.c
255libgmp_la_DEPENDENCIES = @TAL_OBJECT@ \
256  $(MPF_OBJECTS) $(MPZ_OBJECTS) $(MPN_OBJECTS) $(MPQ_OBJECTS) \
257  $(PRINTF_OBJECTS)  $(SCANF_OBJECTS)
258libgmp_la_LIBADD = $(libgmp_la_DEPENDENCIES)
259libgmp_la_LDFLAGS = $(GMP_LDFLAGS) \
260  -version-info $(LIBGMP_LT_CURRENT):$(LIBGMP_LT_REVISION):$(LIBGMP_LT_AGE)
261
262
263# We need at least one .cc file in $(libgmpxx_la_SOURCES) so automake will
264# use $(CXXLINK) rather than the plain C $(LINK).  cxx/osfuns.cc is an
265# arbitrary choice for that.
266
267if WANT_CXX
268GMPXX_LTLIBRARIES_OPTION = libgmpxx.la
269endif
270libgmpxx_la_SOURCES = dummy.cc
271libgmpxx_la_DEPENDENCIES = $(CXX_OBJECTS) libgmp.la
272libgmpxx_la_LIBADD = $(libgmpxx_la_DEPENDENCIES)
273libgmpxx_la_LDFLAGS = $(GMP_LDFLAGS) \
274  -version-info $(LIBGMPXX_LT_CURRENT):$(LIBGMPXX_LT_REVISION):$(LIBGMPXX_LT_AGE)
275
276
277# The selected mpz objects here support mpz/powm.c (built as mpbsd/powm.lo)
278# and can probably be removed when that switches to an mpn implementation.
279# (Apart from mpz/n_pow_ui$U.lo, which supports mpbsd/rpow.c)
280
281if WANT_MPBSD
282MPBSD_HEADERS_OPTION = mp.h
283MPBSD_LTLIBRARIES_OPTION = libmp.la
284endif
285libmp_la_SOURCES = assert.c errno.c memory.c mp_bpl.c mp_clz_tab.c      \
286  mp_minv_tab.c mp_set_fns.c
287MPN_OBJS_IN_LIBMP = @mpn_objs_in_libmp@
288libmp_la_DEPENDENCIES = $(srcdir)/libmp.sym                             \
289  @TAL_OBJECT@ $(MPBSD_OBJECTS) $(MPN_OBJS_IN_LIBMP)                    \
290  mpz/add$U.lo mpz/gcdext$U.lo mpz/invert$U.lo mpz/mul$U.lo             \
291  mpz/n_pow_ui$U.lo mpz/realloc$U.lo mpz/set$U.lo mpz/sub$U.lo          \
292  mpz/tdiv_q$U.lo
293libmp_la_LIBADD = $(libmp_la_DEPENDENCIES)
294libmp_la_LDFLAGS = $(GMP_LDFLAGS) \
295  -version-info $(LIBMP_LT_CURRENT):$(LIBMP_LT_REVISION):$(LIBMP_LT_AGE) \
296  -export-symbols $(srcdir)/libmp.sym
297
298
299# Optional objects, listed in a dummy library to generate ansi2knr rules and
300# get them in "make dist".
301#
302EXTRA_LTLIBRARIES = libdummy.la
303libdummy_la_SOURCES = tal-debug.c tal-notreent.c tal-reent.c
304
305
306info_TEXINFOS = gmp.texi
307gmp_TEXINFOS = fdl.texi
308
309
310# Avoid: CVS - cvs directories
311#        *~  - emacs backups
312#        .#* - cvs merge originals
313#
314# *~ and .#* only occur when a whole directory without it's own Makefile.am
315# is distributed, like "doc" or the mpn cpu subdirectories.
316#
317dist-hook:
318        -find $(distdir) \( -name CVS -type d \) -o -name "*~" -o -name ".#*" \
319                | xargs rm -rf
Note: See TracBrowser for help on using the repository browser.