Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids. Most
[dragonfly.git] / gnu / lib / libgmp / Makefile
1 #
2 # $FreeBSD: src/gnu/lib/libgmp/Makefile,v 1.22.2.2 2002/07/22 14:21:44 ru Exp $
3 # $DragonFly: src/gnu/lib/libgmp/Attic/Makefile,v 1.2 2003/06/17 04:25:44 dillon Exp $
4 #
5
6 LIB=    gmp
7
8 SUBDIR= doc
9
10 GMPDIR= ${.CURDIR}/../../../contrib/libgmp
11 .PATH:  ${GMPDIR} ${GMPDIR}/mpn
12
13 .if ${MACHINE_ARCH} == "alpha"
14 .PATH:          ${GMPDIR}/mpn/alpha ${GMPDIR}/mpn/generic
15
16 CFLAGS+=        -I${GMPDIR}/mpn/alpha
17
18 MPN_SRC_ASM=    add_n.s addmul_1.s lshift.s mul_1.s rshift.s sub_n.s submul_1.s udiv_qrnnd.S
19
20 .elif ${MACHINE_ARCH} == "i386"
21 .PATH:          ${GMPDIR}/mpn/x86 ${GMPDIR}/mpn/generic
22
23 CFLAGS+=        -I${GMPDIR}/mpn/x86
24
25 MPN_SRC_ASM=    add_n.S addmul_1.S lshift.S mul_1.S rshift.S sub_n.S submul_1.S
26
27 .elif ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb"
28 .PATH:          ${GMPDIR}/mpn/mips3 ${GMPDIR}/mpn/generic
29
30 CFLAGS+=        -I${GMPDIR}/mpn/mips3
31
32 MPN_SRC_ASM=    add_n.s addmul_1.s lshift.s mul_1.s rshift.s sub_n.s submul_1.s
33
34 .elif ${MACHINE_ARCH} == "m68k"
35 .PATH:          ${GMPDIR}/mpn/m68k ${GMPDIR}/mpn/generic
36
37 CFLAGS+=        -I${GMPDIR}/mpn/m68k
38
39 MPN_SRC_ASM=    add_n.S lshift.S rshift.S sub_n.S
40
41 .endif
42
43 CFLAGS+=        -I${GMPDIR} -I${GMPDIR}/mpn/generic
44
45 MPN_SRC_C=      add_n.c addmul_1.c bdivmod.c cmp.c divmod_1.c divrem.c \
46                 divrem_1.c dump.c gcd.c gcd_1.c gcdext.c get_str.c hamdist.c \
47                 inlines.c lshift.c mod_1.c mul.c mul_1.c mul_n.c perfsqr.c \
48                 popcount.c pre_mod_1.c random2.c rshift.c scan0.c scan1.c \
49                 set_str.c sqrtrem.c mp_bases.c
50
51 MPZ_SRCS=       mpz/init.c mpz/set.c mpz/set_ui.c mpz/set_si.c mpz/set_str.c \
52                 mpz/set_d.c mpz/set_f.c mpz/set_q.c mpz/iset.c mpz/iset_ui.c \
53                 mpz/iset_si.c mpz/iset_str.c mpz/iset_d.c mpz/clear.c \
54                 mpz/get_ui.c mpz/get_si.c mpz/get_str.c mpz/get_d.c \
55                 mpz/size.c mpz/sizeinbase.c mpz/add.c mpz/add_ui.c \
56                 mpz/sub.c mpz/sub_ui.c mpz/mul.c mpz/mul_ui.c mpz/gcd.c \
57                 mpz/gcd_ui.c mpz/gcdext.c mpz/sqrt.c mpz/sqrtrem.c \
58                 mpz/powm.c mpz/powm_ui.c mpz/cmp.c mpz/cmp_ui.c mpz/cmp_si.c \
59                 mpz/mul_2exp.c mpz/fdiv_q_2exp.c mpz/fdiv_r_2exp.c \
60                 mpz/tdiv_q_2exp.c mpz/tdiv_r_2exp.c mpz/abs.c mpz/neg.c \
61                 mpz/com.c mpz/and.c mpz/ior.c mpz/inp_raw.c mpz/inp_str.c \
62                 mpz/out_raw.c mpz/out_str.c mpz/perfsqr.c mpz/random.c \
63                 mpz/random2.c mpz/pow_ui.c mpz/ui_pow_ui.c mpz/setbit.c \
64                 mpz/clrbit.c mpz/fac_ui.c mpz/pprime_p.c mpz/realloc.c \
65                 mpz/getlimbn.c mpz/popcount.c mpz/hamdist.c mpz/cdiv_qr.c \
66                 mpz/cdiv_q.c mpz/cdiv_r.c mpz/cdiv_qr_ui.c mpz/cdiv_q_ui.c \
67                 mpz/cdiv_r_ui.c mpz/cdiv_ui.c mpz/fdiv_qr.c mpz/fdiv_q.c \
68                 mpz/fdiv_r.c mpz/fdiv_qr_ui.c mpz/fdiv_q_ui.c mpz/fdiv_r_ui.c \
69                 mpz/fdiv_ui.c mpz/tdiv_qr.c mpz/tdiv_q.c mpz/tdiv_r.c \
70                 mpz/tdiv_qr_ui.c mpz/tdiv_q_ui.c mpz/tdiv_r_ui.c mpz/mod.c \
71                 mpz/divexact.c mpz/array_init.c mpz/scan0.c mpz/scan1.c \
72                 mpz/jacobi.c mpz/legendre.c mpz/invert.c
73
74 MPF_SRCS=       mpf/init.c mpf/init2.c mpf/set.c mpf/set_ui.c mpf/set_si.c \
75                 mpf/set_str.c mpf/set_d.c mpf/set_z.c mpf/iset.c \
76                 mpf/iset_ui.c mpf/iset_si.c mpf/iset_str.c mpf/iset_d.c \
77                 mpf/clear.c mpf/get_str.c mpf/dump.c mpf/size.c mpf/eq.c \
78                 mpf/reldiff.c mpf/sqrt.c mpf/random2.c mpf/inp_str.c \
79                 mpf/out_str.c mpf/add.c mpf/add_ui.c mpf/sub.c mpf/sub_ui.c \
80                 mpf/ui_sub.c mpf/mul.c mpf/mul_ui.c mpf/div.c mpf/div_ui.c \
81                 mpf/cmp.c mpf/cmp_ui.c mpf/cmp_si.c mpf/mul_2exp.c \
82                 mpf/div_2exp.c mpf/abs.c mpf/neg.c mpf/set_q.c mpf/get_d.c \
83                 mpf/set_dfl_prec.c mpf/set_prc.c mpf/set_prc_raw.c \
84                 mpf/get_prc.c mpf/ui_div.c mpf/sqrt_ui.c
85
86 MPQ_SRCS=       mpq/add.c mpq/canonicalize.c mpq/clear.c mpq/cmp.c \
87                 mpq/cmp_ui.c mpq/div.c mpq/get_d.c mpq/get_den.c mpq/get_num.c \
88                 mpq/init.c mpq/inv.c mpq/mul.c mpq/neg.c mpq/set.c \
89                 mpq/set_den.c mpq/set_num.c mpq/set_si.c mpq/set_ui.c \
90                 mpq/sub.c mpq/equal.c mpq/set_z.c
91
92 SRCS=   memory.c mp_set_fns.c mp_clz_tab.c version.c stack-alloc.c mp_bpl.c \
93         extract-double.c insert-double.c \
94         ${MPN_SRC_ASM} \
95         asm-syntax.h sysdep.h
96
97 # Look though the generic C source for names that don't have assembly
98 # source version.
99 .for _src in ${MPN_SRC_C}
100 .if (${MPN_SRC_ASM:R:M${_src:R}} == "")
101 SRCS+=$(_src)
102 .endif
103 .endfor
104
105 SRCS+=  ${MPZ_SRCS} ${MPF_SRCS} ${MPQ_SRCS}
106
107 .if defined(OBJFORMAT) && ${OBJFORMAT} == elf
108
109 sysdep.h: ${GMPDIR}/mpn/sysv.h
110         cp ${GMPDIR}/mpn/sysv.h sysdep.h
111
112 asm-syntax.h:
113         (echo "#define ELF_SYNTAX" ; \
114                 echo "#include \"syntax.h\"") > asm-syntax.h
115 .else
116
117 sysdep.h: ${GMPDIR}/mpn/bsd.h
118         cp ${GMPDIR}/mpn/bsd.h sysdep.h
119
120 asm-syntax.h:
121         (echo "#define BSD_SYNTAX" ; \
122                 echo "#include \"syntax.h\"") > asm-syntax.h
123
124 CFLAGS+=        -DBROKEN_ALIGN
125
126 .endif
127
128 beforedepend all: mpz mpf mpq
129
130 CLEANFILES+=    sysdep.h asm-syntax.h
131
132 # Grrr. This package contains modules in separate subdirs that have the
133 # same name. Nasty hack to keep them from being found by being in
134 # .PATH:s
135 #
136 mpz mpf mpq:
137         mkdir ${.TARGET}
138
139 CLEANDIRS+=     mpz mpf mpq
140
141 INCS=           gmp.h
142
143 .include "Makefile.inc"
144 .include <bsd.lib.mk>