1PORTNAME=	R
2DISTVERSION=	4.4.0
3PORTREVISION=	1
4CATEGORIES=	math lang
5MASTER_SITES=	CRAN/src/base/R-${PORTVERSION:C|\..*||}
6
7MAINTAINER=	ports@MidnightBSD.org
8COMMENT=	Language for statistical computing and graphics
9
10LICENSE=	gpl2
11
12BUILD_DEPENDS=	texi2any:print/texinfo
13LIB_DEPENDS=	libcurl.so:ftp/curl \
14		libdeflate.so:archivers/libdeflate \
15		libpcre2-8.so:devel/pcre2
16RUN_DEPENDS=	cmake:devel/cmake-core \
17		gmake:devel/gmake # R packages may require GNU make
18
19USES=		compiler:c++11-lang gmake iconv libtool localbase pathfix perl5 cpe \
20		readline
21CPE_VENDOR=	r-project
22USE_LDCONFIG=	${PREFIX}/lib/R/lib
23USE_PERL5=	build
24
25GNU_CONFIGURE=	yes
26CONFIGURE_ARGS=	--disable-java \
27		--enable-R-shlib \
28		--with-readline \
29		rdocdir=${DOCSDIR}
30INSTALL_TARGET=	install-strip
31PLIST_SUB=	FULLVER=${DISTVERSION} MAJORVER=${_MAJORVER}
32
33OPTIONS_DEFINE=		ICU INFO LDOUBLE LETTER MEMPROF NLS RPROF X11
34OPTIONS_DEFINE_amd64=	OPENMP
35OPTIONS_DEFINE_i386=	OPENMP
36OPTIONS_DEFAULT=	CAIROPANGO GHOSTSCRIPT ICU INFO JPEG LDOUBLE PNG RBLAS \
37			RPROF TCLTK TIFF X11
38OPTIONS_DEFAULT_amd64=	OPENMP
39OPTIONS_DEFAULT_i386=	OPENMP
40OPTIONS_GROUP=		NEEDX11
41OPTIONS_GROUP_NEEDX11=	CAIROPANGO GHOSTSCRIPT JPEG PNG TCLTK TEXDOCS TIFF
42OPTIONS_SINGLE=		BLAS
43OPTIONS_SINGLE_BLAS=	ATLAS NETLIB OPENBLAS RBLAS
44
45OPTIONS_SUB=		YES
46
47ATLAS_DESC=		ATLAS BLAS implementation
48CAIROPANGO_DESC=	Cairo graphics device and Pango multi-language text
49GHOSTSCRIPT_DESC=	Graphics device for bitmap files via Ghostscript
50JPEG_DESC=		JPEG graphics device
51LDOUBLE_DESC=		Long double data type
52LETTER_DESC=		US letter paper
53MEMPROF_DESC=		Memory profiling via Rprofmem() and tracemem()
54NEEDX11_DESC=		Require X11
55NETLIB_DESC=		Netlib BLAS implementation
56OPENBLAS_DESC=		OpenBLAS BLAS implementation
57PNG_DESC=		PNG graphics device
58RBLAS_DESC=		Use R-bundled BLAS implementation
59RPROF_DESC=		R profiling via Rprof()
60TEXDOCS_DESC=		Build/Install TeX-dependent documentation files
61X11_DESC=		X11 graphics device
62
63ATLAS_USES=			blaslapack:atlas
64ATLAS_CONFIGURE_ON=		--disable-BLAS-shlib
65CAIROPANGO_IMPLIES=		X11
66CAIROPANGO_USES=		gettext gnome jpeg pkgconfig
67CAIROPANGO_USE=			GNOME=cairo,pango
68CAIROPANGO_CONFIGURE_WITH=	cairo
69GHOSTSCRIPT_IMPLIES=		X11
70GHOSTSCRIPT_USES=		ghostscript
71ICU_LIB_DEPENDS=		libicui18n.so:devel/icu
72ICU_CONFIGURE_WITH=		ICU
73INFO_INSTALL_TARGET=		install-info
74INFO_INFO=			R-admin R-data R-exts R-FAQ R-intro R-ints \
75				R-lang
76JPEG_IMPLIES=			X11
77JPEG_USES=			jpeg pkgconfig
78JPEG_CONFIGURE_WITH=		jpeglib
79JPEG_CONFIGURE_ENV=		r_cv_header_jpeglib_h=yes
80LDOUBLE_CONFIGURE_ENABLE=	long-double
81LETTER_CONFIGURE_ENV=		R_PAPERSIZE=letter
82MEMPROF_CONFIGURE_ENABLE=	memory-profiling
83NETLIB_USES=			blaslapack:netlib
84NETLIB_CONFIGURE_ON=		--disable-BLAS-shlib
85NLS_USES=			gettext
86NLS_CONFIGURE_OFF=		--disable-nls
87OPENBLAS_USES=			blaslapack:openblas
88OPENBLAS_CONFIGURE_ON=		--disable-BLAS-shlib
89OPENMP_CONFIGURE_ENABLE=	openmp
90PNG_IMPLIES=			X11
91PNG_LIB_DEPENDS=		libpng.so:graphics/png
92PNG_CONFIGURE_WITH=		libpng
93RBLAS_CONFIGURE_ON=		--enable-BLAS-shlib \
94				--without-blas \
95				--without-lapack
96RBLAS_CONFIGURE_OFF=		--with-blas="-L${LOCALBASE}/lib ${BLASLIB}" \
97				--with-lapack="${LAPACKLIB}"
98RBLAS_EXTRA_PATCHES=		${PATCHDIR}/extra-patch-src_extra_blas_Makefile.in \
99				${PATCHDIR}/extra-patch-src_modules_lapack_Makefile.in
100RPROF_CONFIGURE_ENABLE=		R-profiling
101TCLTK_IMPLIES=			X11
102TCLTK_USES=			tcl tk
103TCLTK_CONFIGURE_WITH=		tcltk
104TEXDOCS_USES=			tex
105TEXDOCS_USE=			TEX=dvipsk:build,kpathsea:build,pdftex:build
106.for i in KPSEWHICH MAKEINDEX PDFLATEX PDFTEX TEX TEXI2DVI
107TEXDOCS_CONFIGURE_ENV_OFF+=	ac_cv_path_${i}=""
108.endfor
109TEXDOCS_INSTALL_TARGET=		install-pdf
110TIFF_IMPLIES=			X11
111TIFF_LIB_DEPENDS=		libtiff.so:graphics/tiff
112TIFF_CONFIGURE_WITH=		libtiff
113X11_USES=			xorg
114X11_USE=			XORG=ice,sm,x11,xext,xmu,xscrnsaver,xt
115X11_CONFIGURE_WITH=		x
116
117_MAJORVER=	${DISTVERSION:R:R}
118
119.include <bsd.mport.options.mk>
120
121USES+=		fortran
122
123post-patch:
124	@${REINPLACE_CMD} \
125		-e "s|%%FULLVER%%|${DISTVERSION}|" \
126		-e "s|%%MAJORVER%%|${_MAJORVER}|" \
127		${WRKSRC}/src/main/Makefile.in \
128		${WRKSRC}/src/extra/blas/Makefile.in \
129		${WRKSRC}/src/modules/lapack/Makefile.in
130
131post-install:
132	-${CP} ${WRKSRC}/doc/manual/*.info ${PREFIX}/info/
133
134post-install-RBLAS-off:
135	@${REINPLACE_CMD} -e "s| -lR| -lR ${BLASLIB}|" \
136		${FAKE_DESTDIR}${PREFIX}/libdata/pkgconfig/libR.pc
137
138post-install-RBLAS-on:
139	@${REINPLACE_CMD} -e "s| -lR| -lR -lRblas|" \
140		${FAKE_DESTDIR}${PREFIX}/libdata/pkgconfig/libR.pc
141
142.include <bsd.port.mk>
143