FIX BUILD (with GHC 6.2.x): System.Directory.Internals is no more
[ghc-hetmet.git] / rts / gmp / Makefile.am
1 ## Process this file with automake to generate Makefile.in
2
3
4 # Copyright (C) 1991, 1993, 1994, 1996, 1997, 1999, 2000 Free Software
5 # 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 # make check
26 #
27 #     It'd be good if "make check" first did a "make all" or whatever to
28 #     build libgmp.la, but it's not clear how best to do this.  Putting a
29 #     "check:" target is overridden by automake, and a "check-local:" runs
30 #     too late (due to depth-first subdirectory processing).  For now it's
31 #     necessary to do "make && make check".
32 #
33 # MPF_OBJECTS etc
34 #
35 #     Libtool needs all the .lo files passed to it if it's going to build
36 #     both a static and shared library.  If a convenience library like
37 #     mpf/libmpf.la is passed then the resulting libgmp.a gets the PIC .lo
38 #     objects rather than the non-PIC .o's.
39 #
40 #     Unfortunately this leads to the big lists of objects below.  Something
41 #     like mpz/*.lo would probably work, but might risk missing something
42 #     out or getting something extra.  The source files for each .lo are
43 #     listed in the Makefile.am's in the subdirectories.
44
45
46 # Libtool -version-info for libgmp.la and libmp.la.  See (libtool)Versioning
47 #
48 # 1. No interfaces changed, only implementations (good): Increment REVISION.
49 #
50 # 2. Interfaces added, none removed (good): Increment CURRENT, increment
51 #    AGE, set REVISION to 0.
52 #
53 # 3. Interfaces removed (BAD, breaks upward compatibility): Increment
54 #    CURRENT, set AGE and REVISION to 0.
55 #
56 # Do this separately for libgmp and libmp, only do it just before a release.
57 #
58 #         GMP      -version-info
59 #       release   libgmp  libmp
60 #        2.0.x      -       -
61 #        3.0      3:0:0   3:0:0
62 #        3.0.1    3:1:0   3:0:0
63 #        3.1      4:0:1   4:0:1
64 #        3.1.1    4:1:1   4:1:1
65 #
66 #
67 # Starting at 3:0:0 is a slight abuse of the versioning system, but it
68 # ensures we're past soname libgmp.so.2, which is what has been used on
69 # Debian GNU/Linux packages of gmp 2.  Pretend gmp 2 was 2:0:0, so the
70 # interface changes for gmp 3 mean 3:0:0 is right.
71
72 LIBGMP_LT_CURRENT =  4
73 LIBGMP_LT_REVISION = 1
74 LIBGMP_LT_AGE =      1
75
76 LIBMP_LT_CURRENT =  4
77 LIBMP_LT_REVISION = 1
78 LIBMP_LT_AGE =      1
79
80
81 AUTOMAKE_OPTIONS = gnu check-news no-dependencies ansi2knr
82
83 SUBDIRS = mpn mpz mpq mpf mpbsd mpfr tests demos tune
84
85 include_HEADERS = gmp.h $(MPBSD_HEADERS_OPTION) $(MPFR_HEADERS_OPTION)
86 EXTRA_HEADERS = mp.h
87
88 lib_LTLIBRARIES = libgmp.la $(MPBSD_LTLIBRARIES_OPTION)
89
90 EXTRA_DIST = .gdbinit gmp-impl.h longlong.h stack-alloc.h urandom.h doc macos
91
92 DISTCLEANFILES = asm-syntax.h config.m4 @gmp_srclinks@
93
94
95 MPF_OBJECTS = mpf/init.lo mpf/init2.lo mpf/set.lo mpf/set_ui.lo mpf/set_si.lo \
96   mpf/set_str.lo mpf/set_d.lo mpf/set_z.lo mpf/iset.lo mpf/iset_ui.lo \
97   mpf/iset_si.lo mpf/iset_str.lo mpf/iset_d.lo mpf/clear.lo mpf/get_str.lo \
98   mpf/dump.lo mpf/size.lo mpf/eq.lo mpf/reldiff.lo mpf/sqrt.lo mpf/random2.lo \
99   mpf/inp_str.lo mpf/out_str.lo mpf/add.lo mpf/add_ui.lo mpf/sub.lo \
100   mpf/sub_ui.lo mpf/ui_sub.lo mpf/mul.lo mpf/mul_ui.lo mpf/div.lo \
101   mpf/div_ui.lo mpf/cmp.lo mpf/cmp_ui.lo mpf/cmp_si.lo mpf/mul_2exp.lo \
102   mpf/div_2exp.lo mpf/abs.lo mpf/neg.lo mpf/set_q.lo mpf/get_d.lo \
103   mpf/set_dfl_prec.lo mpf/set_prc.lo mpf/set_prc_raw.lo mpf/get_prc.lo \
104   mpf/ui_div.lo mpf/sqrt_ui.lo mpf/floor.lo mpf/ceil.lo mpf/trunc.lo \
105   mpf/pow_ui.lo mpf/urandomb.lo mpf/swap.lo
106 MPZ_OBJECTS = mpz/abs.lo mpz/add.lo mpz/add_ui.lo mpz/addmul_ui.lo mpz/and.lo \
107   mpz/array_init.lo mpz/bin_ui.lo mpz/bin_uiui.lo mpz/cdiv_q.lo \
108   mpz/cdiv_q_ui.lo mpz/cdiv_qr.lo mpz/cdiv_qr_ui.lo mpz/cdiv_r.lo \
109   mpz/cdiv_r_ui.lo mpz/cdiv_ui.lo mpz/clear.lo mpz/clrbit.lo mpz/cmp.lo \
110   mpz/cmp_si.lo mpz/cmp_ui.lo mpz/cmpabs.lo mpz/cmpabs_ui.lo mpz/com.lo \
111   mpz/divexact.lo mpz/dump.lo mpz/fac_ui.lo mpz/fdiv_q.lo mpz/fdiv_q_2exp.lo \
112   mpz/fdiv_q_ui.lo mpz/fdiv_qr.lo mpz/fdiv_qr_ui.lo mpz/fdiv_r.lo \
113   mpz/fdiv_r_2exp.lo mpz/fdiv_r_ui.lo mpz/fdiv_ui.lo mpz/fib_ui.lo \
114   mpz/fits_sint_p.lo mpz/fits_slong_p.lo mpz/fits_sshort_p.lo \
115   mpz/fits_uint_p.lo mpz/fits_ulong_p.lo mpz/fits_ushort_p.lo mpz/gcd.lo \
116   mpz/gcd_ui.lo mpz/gcdext.lo mpz/get_d.lo mpz/get_si.lo mpz/get_str.lo \
117   mpz/get_ui.lo mpz/getlimbn.lo mpz/hamdist.lo mpz/init.lo mpz/inp_raw.lo \
118   mpz/inp_str.lo mpz/invert.lo mpz/ior.lo mpz/iset.lo mpz/iset_d.lo \
119   mpz/iset_si.lo mpz/iset_str.lo mpz/iset_ui.lo mpz/jacobi.lo \
120   mpz/kronsz.lo mpz/kronuz.lo mpz/kronzs.lo mpz/kronzu.lo \
121   mpz/lcm.lo mpz/legendre.lo \
122   mpz/mod.lo mpz/mul.lo mpz/mul_2exp.lo mpz/mul_si.lo mpz/mul_ui.lo \
123   mpz/neg.lo mpz/nextprime.lo mpz/out_raw.lo mpz/out_str.lo mpz/perfpow.lo mpz/perfsqr.lo \
124   mpz/popcount.lo mpz/pow_ui.lo mpz/powm.lo mpz/powm_ui.lo mpz/pprime_p.lo \
125   mpz/random.lo mpz/random2.lo mpz/realloc.lo mpz/remove.lo mpz/root.lo \
126   mpz/rrandomb.lo \
127   mpz/scan0.lo mpz/scan1.lo mpz/set.lo mpz/set_d.lo mpz/set_f.lo mpz/set_q.lo \
128   mpz/set_si.lo mpz/set_str.lo mpz/set_ui.lo mpz/setbit.lo mpz/size.lo \
129   mpz/sizeinbase.lo mpz/sqrt.lo mpz/sqrtrem.lo mpz/sub.lo mpz/sub_ui.lo \
130   mpz/swap.lo mpz/tdiv_ui.lo mpz/tdiv_q.lo mpz/tdiv_q_2exp.lo mpz/tdiv_q_ui.lo \
131   mpz/tdiv_qr.lo mpz/tdiv_qr_ui.lo mpz/tdiv_r.lo mpz/tdiv_r_2exp.lo \
132   mpz/tdiv_r_ui.lo mpz/tstbit.lo mpz/ui_pow_ui.lo mpz/urandomb.lo \
133   mpz/urandomm.lo mpz/xor.lo
134 MPQ_OBJECTS = mpq/add.lo mpq/canonicalize.lo mpq/clear.lo mpq/cmp.lo \
135   mpq/cmp_ui.lo mpq/div.lo mpq/get_d.lo mpq/get_den.lo mpq/get_num.lo \
136   mpq/init.lo mpq/inv.lo mpq/mul.lo mpq/neg.lo mpq/out_str.lo \
137   mpq/set.lo mpq/set_den.lo \
138   mpq/set_num.lo mpq/set_si.lo mpq/set_ui.lo mpq/sub.lo mpq/equal.lo \
139   mpq/set_z.lo mpq/set_d.lo mpq/swap.lo
140 MPN_OBJECTS = @mpn_objs_in_libgmp@
141
142 MPBSD_OBJECTS = mpbsd/add.lo mpbsd/tdiv_qr.lo mpbsd/move.lo mpbsd/powm.lo \
143   mpbsd/sub.lo mpbsd/cmp.lo mpbsd/mfree.lo mpbsd/mtox.lo mpbsd/realloc.lo \
144   mpbsd/gcd.lo mpbsd/itom.lo mpbsd/min.lo mpbsd/mul.lo mpbsd/mout.lo      \
145   mpbsd/pow_ui.lo mpbsd/sdiv.lo mpbsd/sqrtrem.lo mpbsd/xtom.lo 
146
147 # FIXME: Add mpfr/rnd_mode.lo when it's clean.
148 MPFR_OBJECTS = mpfr/add.lo mpfr/div_2exp.lo mpfr/neg.lo mpfr/set_dfl_prec.lo \
149   mpfr/set_str_raw.lo mpfr/agm.lo mpfr/get_str.lo mpfr/print_raw.lo \
150   mpfr/set_dfl_rnd.lo mpfr/sqrt.lo mpfr/clear.lo mpfr/init.lo \
151   mpfr/set_f.lo mpfr/sub.lo mpfr/cmp.lo mpfr/mul.lo mpfr/round.lo \
152   mpfr/set_prec.lo mpfr/cmp_ui.lo mpfr/mul_2exp.lo mpfr/set.lo mpfr/set_si.lo \
153   mpfr/div.lo mpfr/mul_ui.lo mpfr/set_d.lo mpfr/pow.lo mpfr/out_str.lo \
154   mpfr/pi.lo mpfr/set_z.lo mpfr/add_ulp.lo mpfr/log2.lo mpfr/random.lo \
155   mpfr/log.lo mpfr/exp.lo mpfr/div_ui.lo mpfr/zeta.lo mpfr/karadiv.lo \
156   mpfr/karasqrt.lo mpfr/print_rnd_mode.lo
157
158
159 if WANT_MPFR
160 MPFR_HEADERS_OPTION = mpfr/mpfr.h
161 MPFR_OBJECTS_OPTION = $(MPFR_OBJECTS)
162 MPFR_LIBADD_OPTION = -lm
163 endif
164 libgmp_la_SOURCES = assert.c compat.c errno.c memory.c mp_set_fns.c      \
165   mp_clz_tab.c mp_minv_tab.c                                             \
166   rand.c randclr.c randlc.c randlc2x.c randraw.c randsd.c                \
167   randsdui.c version.c stack-alloc.c mp_bpl.c extract-dbl.c insert-dbl.c
168 libgmp_la_DEPENDENCIES = \
169   $(MPF_OBJECTS) $(MPZ_OBJECTS) $(MPN_OBJECTS) $(MPQ_OBJECTS) \
170   $(MPFR_OBJECTS_OPTION)
171 libgmp_la_LIBADD = $(libgmp_la_DEPENDENCIES) $(MPFR_LIBADD_OPTION)
172 libgmp_la_LDFLAGS = \
173   -version-info $(LIBGMP_LT_CURRENT):$(LIBGMP_LT_REVISION):$(LIBGMP_LT_AGE)
174
175
176 if WANT_MPBSD
177 MPBSD_HEADERS_OPTION = mp.h
178 MPBSD_LTLIBRARIES_OPTION = libmp.la
179 endif
180 libmp_la_SOURCES = assert.c errno.c memory.c mp_bpl.c mp_clz_tab.c      \
181   mp_minv_tab.c mp_set_fns.c stack-alloc.c
182 libmp_la_DEPENDENCIES = $(MPBSD_OBJECTS) $(MPN_OBJECTS)                 \
183   mpz/add.lo mpz/clear.lo mpz/cmp.lo mpz/init.lo mpz/mod.lo mpz/mul.lo  \
184   mpz/mul_2exp.lo mpz/realloc.lo mpz/set.lo mpz/set_ui.lo mpz/tdiv_r.lo \
185   mpz/sub.lo
186 libmp_la_LIBADD = $(libmp_la_DEPENDENCIES)
187 libmp_la_LDFLAGS = \
188   -version-info $(LIBMP_LT_CURRENT):$(LIBMP_LT_REVISION):$(LIBMP_LT_AGE)
189
190
191 info_TEXINFOS = gmp.texi
192
193
194 # Don't ship CVS directories or emacs backups.
195 dist-hook:
196         -find $(distdir) \( -name CVS -type d \) -o -name "*.~*" \
197                 | xargs rm -rf