Sync Mk with ports
[dports.git] / Mk / Uses / cran.mk
1 # $FreeBSD$
2 #
3 # Use the Comprehensive R Archive Network 
4 #
5 # Feature:      cran
6 # Usage:        USES=cran or USES=cran:ARGS
7 # Valid ARGS:   auto-plist, compiles
8 #
9 # auto-plist    The pkg-plist is to be automatically generated
10 # compiles      The port has code that needs to be compiled
11 #
12 # MAINTAINER=   dbn@FreeBSD.org
13
14 .if !defined(_INCLUDE_USES_CRAN_MK)
15 _INCLUDE_USES_CRAN_MK=  yes
16
17 MASTER_SITE_CRAN+=      http://cran.ms.unimelb.edu.au/src/contrib/ \
18                         http://mirror.its.dal.ca/cran/src/contrib/ \
19                         http://mirrors.dotsrc.org/cran/src/contrib/ \
20                         http://cran.univ-lyon1.fr/src/contrib/ \
21                         http://ftp5.gwdg.de/pub/misc/cran/src/contrib/ \
22                         http://cran.stat.unipd.it/src/contrib/ \
23                         http://cran.md.tsukuba.ac.jp/src/contrib/ \
24                         http://mirrors.ibiblio.org/pub/mirrors/CRAN/src/contrib/ \
25                         http://cran.cnr.berkeley.edu/src/contrib/ \
26                         http://cran.rakanu.com/src/contrib/ \
27                         http://ftp.ctex.org/mirrors/CRAN/src/contrib/
28 MASTER_SITE_CRAN_ARCHIVE+=      ${MASTER_SITE_CRAN:S,$,Archive/${PORTNAME}/,}
29
30 MASTER_SITES?=  ${MASTER_SITE_CRAN} ${MASTER_SITE_CRAN_ARCHIVE}
31
32 BUILD_DEPENDS+= ${LOCALBASE}/bin/R:math/R
33 RUN_DEPENDS+=   ${LOCALBASE}/bin/R:math/R
34
35 PKGNAMEPREFIX?= R-cran-
36
37 R_LIB_DIR=      lib/R/library
38 R_MOD_DIR?=     ${R_LIB_DIR}/${PORTNAME}
39 PLIST_SUB+=     R_MOD_DIR=${R_MOD_DIR}
40 WRKSRC?=        ${WRKDIR}/${PORTNAME}
41
42 NO_BUILD=       yes
43 R_COMMAND=      ${LOCALBASE}/bin/R
44
45 .if !target(do-test)
46 R_POSTCMD_CHECK_OPTIONS?=       --timings
47
48 .if !exists(${LOCALBASE}/bin/pdflatex)
49 R_POSTCMD_CHECK_OPTIONS+=       --no-manual --no-build-vignettes
50 .endif
51
52 do-test:
53         @${FIND} ${WRKSRC} \( -name '*.o' -o -name '*.so' \) -delete
54         @cd ${WRKDIR} ; ${SETENV} ${MAKE_ENV} _R_CHECK_FORCE_SUGGESTS_=FALSE \
55         ${R_COMMAND} ${R_PRECMD_CHECK_OPTIONS} CMD check \
56         ${R_POSTCMD_CHECK_OPTIONS} ${PORTNAME}
57 .endif
58
59 .if !target(do-install)
60 R_POSTCMD_INSTALL_OPTIONS+=     -l ${STAGEDIR}${PREFIX}/${R_LIB_DIR}
61 R_POSTCMD_INSTALL_OPTIONS+=     --install-tests
62
63 .if defined(NOPORTDOCS)
64 R_POSTCMD_INSTALL_OPTIONS+=     --no-docs --no-html
65 .endif
66
67 do-install:
68         @${MKDIR} ${STAGEDIR}${PREFIX}/${R_LIB_DIR}
69         @cd ${WRKDIR} ; ${SETENV} ${MAKE_ENV} ${R_COMMAND} \
70         ${R_PRECMD_INSTALL_OPTIONS} CMD INSTALL \
71         ${R_POSTCMD_INSTALL_OPTIONS} ${PORTNAME}
72 .endif
73
74 .if ${cran_ARGS:Mauto-plist}
75 _USES_install+= 750:cran-auto-plist
76 cran-auto-plist:
77         @${FIND} -ds ${STAGEDIR}${PREFIX}/${R_MOD_DIR} \( -type f -or -type l \) -print | \
78                 ${SED} -E -e 's,^${STAGEDIR}${PREFIX}/?,,' >> ${TMPPLIST}
79 .endif
80
81 .if ${cran_ARGS:Mcompiles}
82 _USES_install+= 755:cran-strip
83 cran-strip:
84         ${FIND} ${STAGEDIR}${PREFIX}/${R_MOD_DIR} -name '*.so' -exec ${STRIP_CMD} {} +
85 .include "${PORTSDIR}/math/R/compiler.mk"
86 .include "${USESDIR}/fortran.mk"
87 .endif
88
89 .endif #_INCLUDE_USES_CRAN_MK