summaryrefslogtreecommitdiff
path: root/gnu/lib/libmp/Makefile
diff options
context:
space:
mode:
authorcvs2svn <cvs2svn@FreeBSD.org>2002-02-04 19:23:42 +0000
committercvs2svn <cvs2svn@FreeBSD.org>2002-02-04 19:23:42 +0000
commitb3ea8abeca50df2e24167770d1e7484f1f877a7d (patch)
treef52b0378ac88b8ff9690c4e21a65813ff1177ed1 /gnu/lib/libmp/Makefile
parent9164545f1ea589d7d2f682fd09efd4fa85fd3480 (diff)
Notes
Diffstat (limited to 'gnu/lib/libmp/Makefile')
-rw-r--r--gnu/lib/libmp/Makefile109
1 files changed, 109 insertions, 0 deletions
diff --git a/gnu/lib/libmp/Makefile b/gnu/lib/libmp/Makefile
new file mode 100644
index 000000000000..8a37ed83490c
--- /dev/null
+++ b/gnu/lib/libmp/Makefile
@@ -0,0 +1,109 @@
+#
+# $FreeBSD$
+#
+
+LIB= mp
+
+GMPDIR= ${.CURDIR}/../../../contrib/libgmp
+
+.if ${MACHINE_ARCH} == "alpha"
+.PATH: ${GMPDIR} ${GMPDIR}/mpn ${GMPDIR}/mpn/alpha ${GMPDIR}/mpn/generic \
+ ${GMPDIR}/mpbsd
+
+CFLAGS+= -I${GMPDIR}/mpn/alpha -I${GMPDIR}/mpz -DBERKELEY_MP
+
+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
+
+.elif ${MACHINE_ARCH} == "i386"
+.PATH: ${GMPDIR} ${GMPDIR}/mpn ${GMPDIR}/mpn/x86 ${GMPDIR}/mpn/generic \
+ ${GMPDIR}/mpbsd
+
+CFLAGS+= -I${GMPDIR}/mpn/x86 -I${GMPDIR}/mpz -DBERKELEY_MP
+
+MPN_SRC_ASM= add_n.S addmul_1.S lshift.S mul_1.S rshift.S sub_n.S submul_1.S
+
+.elif ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb"
+.PATH: ${GMPDIR} ${GMPDIR}/mpn ${GMPDIR}/mpn/mips3 ${GMPDIR}/mpn/generic \
+ ${GMPDIR}/mpbsd
+
+CFLAGS+= -I${GMPDIR}/mpn/mips3 -I${GMPDIR}/mpz -DBERKELEY_MP
+
+MPN_SRC_ASM= add_n.s addmul_1.s lshift.s mul_1.s rshift.s sub_n.s submul_1.s
+.elif ${MACHINE_ARCH} == "m68k"
+.PATH: ${GMPDIR} ${GMPDIR}/mpn ${GMPDIR}/mpn/m68k ${GMPDIR}/mpn/generic \
+ ${GMPDIR}/mpbsd
+
+CFLAGS+= -I${GMPDIR}/mpn/m68k -I${GMPDIR}/mpz -DBERKELEY_MP
+
+MPN_SRC_ASM= add_n.S lshift.S rshift.S sub_n.S
+
+.endif
+
+CFLAGS+= -I${GMPDIR} -I${GMPDIR}/mpn/generic
+
+MPN_SRC_C= add_n.c addmul_1.c bdivmod.c cmp.c divmod_1.c divrem.c \
+ divrem_1.c dump.c gcd.c gcd_1.c gcdext.c get_str.c hamdist.c \
+ inlines.c lshift.c mod_1.c mul.c mul_1.c mul_n.c perfsqr.c \
+ popcount.c pre_mod_1.c random2.c rshift.c scan0.c scan1.c \
+ set_str.c sqrtrem.c mp_bases.c
+
+MPBSD_LINKS= mpz/add.c mpz/cmp.c mpz/gcd.c mpz/mul.c mpz/pow_ui.c \
+ mpz/powm.c mpz/sqrtrem.c mpz/sub.c mpz/realloc.c
+MPBSD_SRCS= itom.c mdiv.c mfree.c min.c mout.c move.c mtox.c sdiv.c xtom.c \
+ realloc.c $(MPBSD_LINKS)
+
+SRCS= memory.c mp_set_fns.c mp_clz_tab.c version.c stack-alloc.c \
+ mp_bpl.c extract-double.c insert-double.c \
+ ${MPN_SRC_ASM} \
+ asm-syntax.h sysdep.h
+
+# Look though the generic C source for names that don't have assembly
+# source version.
+.for _src in ${MPN_SRC_C}
+.if (${MPN_SRC_ASM:R:M${_src:R}} == "")
+SRCS+=$(_src)
+.endif
+.endfor
+
+SRCS+= ${MPBSD_SRCS}
+
+beforedepend all: mpz
+
+.if defined(OBJFORMAT) && ${OBJFORMAT} == elf
+
+sysdep.h: ${GMPDIR}/mpn/sysv.h
+ cp ${GMPDIR}/mpn/sysv.h sysdep.h
+
+asm-syntax.h:
+ (echo "#define ELF_SYNTAX" ; \
+ echo "#include \"syntax.h\"") > asm-syntax.h
+.else
+
+sysdep.h: ${GMPDIR}/mpn/bsd.h
+ cp ${GMPDIR}/mpn/bsd.h sysdep.h
+
+asm-syntax.h:
+ (echo "#define BSD_SYNTAX" ; \
+ echo "#include \"syntax.h\"") > asm-syntax.h
+
+CFLAGS+= -DBROKEN_ALIGN
+
+.endif
+
+CLEANFILES+= sysdep.h asm-syntax.h
+
+# Grrr. This package contains modules in separate subdirs that have the
+# same name. Nasty hack to keep them from being found by being in
+# .PATH:s
+#
+mpz:
+ mkdir ${.TARGET}
+
+CLEANDIRS+= ${.OBJDIR}/mpz ${.CURDIR}/mpz
+
+beforeinstall:
+ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
+ ${GMPDIR}/mp.h ${DESTDIR}/usr/include
+
+.include "../libgmp/Makefile.inc"
+.include <bsd.lib.mk>