freebsd-ports/Mk/Uses/cran.mk
Dmitry Marakasov 5c57225987 Implemented complete support for test target.
You can now `make test' on any port to run test sequence, no-op by default.
If a port defines TEST_TARGET, it'll run sub-make with specified target,
usually `check' or `test', useful if upstream supports that. The port may
instead define custom do-test target, as well as usual satellite targets:

  {pre,do,post}-test, {pre,do,post}-test-OPT, {pre,do,post}-test-OPT-off

`make test' builds and stages port first, so test may use both WRKDIR and
STAGEDIR, and both BUILD and RUN depends are available for test target.
Additionally, TEST_DEPENDS is now properly supported and may be used to
define additional depends specifically for testing.

Framework may define default tests for specific cases. For instance,
perl5.mk and cran.mk already provide default test target on their own.

This commit also converts my ports which have tests to this new framework.

Approved by:	portmgr (bapt)
Differential Revision:	D3680
2015-09-28 17:20:42 +00:00

79 lines
2.3 KiB
Makefile

# $FreeBSD$
#
# Use the Comprehensive R Archive Network
#
# Feature: cran
# Usage: USES=cran or USES=cran:ARGS
# Valid ARGS: auto-plist
#
# auto-plist The pkg-plist can be automatically compiled
#
# MAINTAINER= wen@FreeBSD.org
.if !defined(_INCLUDE_USES_CRAN_MK)
_INCLUDE_USES_CRAN_MK= yes
MASTER_SITE_CRAN+= http://cran.ms.unimelb.edu.au/src/contrib/ \
http://mirror.its.dal.ca/cran/src/contrib/ \
http://mirrors.dotsrc.org/cran/src/contrib/ \
http://cran.univ-lyon1.fr/src/contrib/ \
http://ftp5.gwdg.de/pub/misc/cran/src/contrib/ \
http://cran.stat.unipd.it/src/contrib/ \
http://cran.md.tsukuba.ac.jp/src/contrib/ \
http://mirrors.ibiblio.org/pub/mirrors/CRAN/src/contrib/ \
http://cran.cnr.berkeley.edu/src/contrib/ \
http://cran.rakanu.com/src/contrib/ \
http://ftp.ctex.org/mirrors/CRAN/src/contrib/
MASTER_SITE_CRAN_ARCHIVE+= ${MASTER_SITE_CRAN:S,$,Archive/${PORTNAME}/,}
MASTER_SITES?= ${MASTER_SITE_CRAN} ${MASTER_SITE_CRAN_ARCHIVE}
BUILD_DEPENDS+= ${LOCALBASE}/bin/R:${PORTSDIR}/math/R
RUN_DEPENDS+= ${LOCALBASE}/bin/R:${PORTSDIR}/math/R
PKGNAMEPREFIX?= R-cran-
R_LIB_DIR= lib/R/library
R_MOD_DIR?= ${R_LIB_DIR}/${PORTNAME}
PLIST_SUB+= R_MOD_DIR=${R_MOD_DIR}
WRKSRC?= ${WRKDIR}/${PORTNAME}
NO_BUILD= yes
R_COMMAND= ${LOCALBASE}/bin/R
.if !target(do-test)
R_POSTCMD_CHECK_OPTIONS?= --timings
.if !exists(${LOCALBASE}/bin/pdflatex)
R_POSTCMD_CHECK_OPTIONS+= --no-manual --no-rebuild-vignettes
.endif
do-test:
@cd ${WRKDIR} ; ${SETENV} ${MAKE_ENV} _R_CHECK_FORCE_SUGGESTS_=FALSE \
${R_COMMAND} ${R_PRECMD_CHECK_OPTIONS} CMD check \
${R_POSTCMD_CHECK_OPTIONS} ${PORTNAME}
.endif
.if !target(do-install)
R_POSTCMD_INSTALL_OPTIONS+= -l ${STAGEDIR}${PREFIX}/${R_LIB_DIR}
R_POSTCMD_INSTALL_OPTIONS+= --install-tests
.if defined(NOPORTDOCS)
R_POSTCMD_INSTALL_OPTIONS+= --no-docs --no-html
.endif
do-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/${R_LIB_DIR}
@cd ${WRKDIR} ; ${SETENV} ${MAKE_ENV} ${R_COMMAND} \
${R_PRECMD_INSTALL_OPTIONS} CMD INSTALL \
${R_POSTCMD_INSTALL_OPTIONS} ${PORTNAME}
.endif
.if ${cran_ARGS:Mauto-plist}
_USES_install+= 750:cran-auto-plist
cran-auto-plist:
@${FIND} -ds ${STAGEDIR}${PREFIX}/${R_MOD_DIR} \( -type f -or -type l \) -print | \
${SED} -E -e 's,^${STAGEDIR}${PREFIX}/?,,' >> ${TMPPLIST}
.endif
.endif #_INCLUDE_USES_CRAN_MK