Merge from vendor branch AWK:
[dragonfly.git] / gnu / lib / libmp / Makefile
1 #
2 # $FreeBSD: src/gnu/lib/libmp/Makefile,v 1.18.2.1 2002/07/22 14:21:44 ru Exp $
3 # $DragonFly: src/gnu/lib/libmp/Attic/Makefile,v 1.3 2004/02/02 05:43:10 dillon Exp $
4 #
5
6 LIB=    mp
7
8 GMPDIR= ${.CURDIR}/../../../contrib/libgmp
9
10 .if ${MACHINE_ARCH} == "i386"
11 MPNNAME=x86
12 MPN_SRC_ASM= add_n.S addmul_1.S lshift.S mul_1.S rshift.S sub_n.S submul_1.S
13 .else
14 MPNNAME=${MACHINE_ARCH}
15 MPN_SRC_ASM=
16 .endif
17
18 .PATH:          ${GMPDIR} ${GMPDIR}/mpn ${GMPDIR}/mpn/${MPNNAME} \
19                 ${GMPDIR}/mpn/generic ${GMPDIR}/mpbsd
20
21 CFLAGS+=        -I${GMPDIR}/mpn/${MPNNAME} -I${GMPDIR}/mpz -DBERKELEY_MP
22 CFLAGS+=        -I${GMPDIR} -I${GMPDIR}/mpn/generic
23
24 MPN_SRC_C=      add_n.c addmul_1.c bdivmod.c cmp.c divmod_1.c divrem.c \
25                 divrem_1.c dump.c gcd.c gcd_1.c gcdext.c get_str.c hamdist.c \
26                 inlines.c lshift.c mod_1.c mul.c mul_1.c mul_n.c perfsqr.c \
27                 popcount.c pre_mod_1.c random2.c rshift.c scan0.c scan1.c \
28                 set_str.c sqrtrem.c mp_bases.c
29
30 MPBSD_LINKS=    mpz/add.c mpz/cmp.c mpz/gcd.c mpz/mul.c mpz/pow_ui.c \
31                 mpz/powm.c mpz/sqrtrem.c mpz/sub.c mpz/realloc.c
32 MPBSD_SRCS=     itom.c mdiv.c mfree.c min.c mout.c move.c mtox.c sdiv.c xtom.c \
33                 realloc.c $(MPBSD_LINKS)
34
35 SRCS=           memory.c mp_set_fns.c mp_clz_tab.c version.c stack-alloc.c \
36                 mp_bpl.c extract-double.c insert-double.c \
37                 ${MPN_SRC_ASM} \
38                 asm-syntax.h sysdep.h
39
40 # Look though the generic C source for names that don't have assembly
41 # source version.
42 .for _src in ${MPN_SRC_C}
43 .if (${MPN_SRC_ASM:R:M${_src:R}} == "")
44 SRCS+=$(_src)
45 .endif
46 .endfor
47
48 SRCS+=          ${MPBSD_SRCS}
49
50 beforedepend all: mpz
51
52 .if defined(OBJFORMAT) && ${OBJFORMAT} == elf
53
54 sysdep.h: ${GMPDIR}/mpn/sysv.h
55         cp ${GMPDIR}/mpn/sysv.h sysdep.h
56
57 asm-syntax.h:
58         (echo "#define ELF_SYNTAX" ; \
59                 echo "#include \"syntax.h\"") > asm-syntax.h
60 .else
61
62 sysdep.h: ${GMPDIR}/mpn/bsd.h
63         cp ${GMPDIR}/mpn/bsd.h sysdep.h
64
65 asm-syntax.h:
66         (echo "#define BSD_SYNTAX" ; \
67                 echo "#include \"syntax.h\"") > asm-syntax.h
68
69 CFLAGS+=        -DBROKEN_ALIGN
70
71 .endif
72
73 CLEANFILES+=    sysdep.h asm-syntax.h
74
75 # Grrr. This package contains modules in separate subdirs that have the
76 # same name. Nasty hack to keep them from being found by being in
77 # .PATH:s
78 #
79 mpz:
80         mkdir ${.TARGET}
81
82 CLEANDIRS+=      ${.OBJDIR}/mpz ${.CURDIR}/mpz
83
84 INCS=           mp.h
85
86 .include "../libgmp/Makefile.inc"
87 .include <bsd.lib.mk>