aboutsummaryrefslogtreecommitdiffstats
path: root/math/msieve/Makefile
blob: 22babaed5e3f22c1488e66f2cda3e110b0bf64aa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# Created by: Daniel Roethlisberger <daniel@roe.ch>
# $FreeBSD$

PORTNAME=   msieve
PORTVERSION=    1.51
CATEGORIES= math
MASTER_SITES=   SF
MASTER_SITE_SUBDIR= \
    ${PORTNAME}/${PORTNAME}/${PORTNAME:C/^m/M/}%20v${PORTVERSION}
DISTNAME=   ${PORTNAME}${PORTVERSION:S/.//}

MAINTAINER= bf@FreeBSD.org
COMMENT=    Fast factorization of big integers using MPQS and GNFS

BUILD_DEPENDS=  ${LOCALBASE}/lib/libecm.a:${PORTSDIR}/math/gmp-ecm

WRKSRC=     ${WRKDIR}/${PORTNAME}-${PORTVERSION}
USES=       gmake
MAKE_ENV=   ECM=1

HEADERS=    mp.h msieve.h util.h
PLIST_FILES=    bin/msieve lib/libmsieve.a ${HEADERS:S|^|include/msieve/|}
PORTDOCS=   Changes Readme Readme.nfs Readme.qs

OPTIONS_DEFINE=     OPTIMIZED_CFLAGS DOCS
OPTIONS_DEFAULT=    OPTIMIZED_CFLAGS

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
CFLAGS+=    -O3 -ffast-math
.if defined(WITHOUT_DEBUG) || !defined(WITH_DEBUG)
CFLAGS+=    -fomit-frame-pointer -DNDEBUG
.endif
.endif

.if ${MACHINE_CPU:Mathlon}
CFLAGS+=    -DHAS_AMD_MMX
.endif

.if ${MACHINE_CPU:Msse}
CFLAGS+=    -DHAS_SSE
.endif

.if ${MACHINE_CPU:Msse2}
CFLAGS+=    -DHAS_SSE2
.endif

.if ${ARCH} == "sparc64"
BROKEN=     Does not compile on sparc64
.endif

post-patch:
    @${REINPLACE_CMD} -E \
        -e '/(^(CC|OPT_FLAGS) =|-DNDEBUG|svnversion|-ldl)/d' \
        -e '/^CFLAGS =/s/=/+=/' \
        -e 's@-Ignfs/poly/stage1@& -I${LOCALBASE}/include@' \
        -e 's@-lecm@-L${LOCALBASE}/lib &@' \
        -e 's/-lpthread/-pthread/' \
        -e 's/-DHAS_SSE2//' \
        ${WRKSRC}/Makefile

do-install:
    @${INSTALL_PROGRAM} ${WRKSRC}/msieve ${STAGEDIR}${PREFIX}/bin
    @${MKDIR} ${STAGEDIR}${PREFIX}/include/msieve
    @cd ${WRKSRC}/include; ${INSTALL_DATA} ${HEADERS} ${STAGEDIR}${PREFIX}/include/msieve
    @${INSTALL_LIB} ${WRKSRC}/libmsieve.a ${STAGEDIR}${PREFIX}/lib
.if ${PORT_OPTIONS:MDOCS}
    @${MKDIR} ${STAGEDIR}${DOCSDIR}
    @cd ${WRKSRC}; ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}
.endif

regression-test test check: build
    @cd ${WRKSRC}; \
    ./msieve -q -d 1 2385734365243128176756453434347656453122245767798

.include <bsd.port.mk>