aboutsummaryrefslogtreecommitdiff
path: root/devel/root/Makefile
blob: b96e9ceaba0b8c52788bc0e0f074793f590fd412 (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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
PORTNAME=	root
DISTVERSION=	6.30.02
PORTREVISION=	2
CATEGORIES=	devel science math parallel python
MASTER_SITES=	https://root.cern/download/
DISTFILES=	${PORTNAME}_v${DISTVERSION}.source${EXTRACT_SUFX}

MAINTAINER=	erik@tenku.dk
COMMENT=	Data analysis framework made at CERN
WWW=		https://root.cern/

LICENSE=	LGPL21
LICENSE_FILE=	${WRKSRC}/LGPL2_1.txt

BUILD_AND_RUN_DEPENDS=	bash:shells/bash \
			nlohmann-json>=3:devel/nlohmann-json
BUILD_DEPENDS=	${BUILD_AND_RUN_DEPENDS}
LIB_DEPENDS=	libcfitsio.so:astro/cfitsio \
		libcurl.so:ftp/curl \
		libfreetype.so:print/freetype2 \
		libgsl.so:math/gsl \
		liblz4.so:archivers/liblz4 \
		libopenblas.so:math/openblas \
		libpcre.so:devel/pcre \
		libtbb.so:devel/onetbb \
		libvdt.so:math/vdt \
		libXrdCl.so:databases/xrootd \
		libxxhash.so:devel/xxhash \
		libzstd.so:archivers/zstd
RUN_DEPENDS=	${BUILD_AND_RUN_DEPENDS}

USES=		cmake compiler:c++17-lang desktop-file-utils \
		gnome iconv shebangfix ssl
USE_GNOME=	libxml2

SHEBANG_FILES=	config/rootssh etc/dictpch/makepch.py etc/proof/utils/circle.sh \
		etc/proof/utils/crypt etc/proof/utils/pps \
		etc/proof/utils/proofctl.sh etc/proof/utils/proofinstall.sh \
		etc/pdg_table_update.py

# Flags and environment variables for building
CMAKE_ARGS=	-DCMAKE_CXX_STANDARD=17
CMAKE_ON=	gnuinstall soversion mathmore
CMAKE_OFF=	builtin_gtest clad
CONFIGURE_WRKSRC?=	${WRKDIR}/.build
MAKE_ENV+=		ROOTSYS=${CONFIGURE_WRKSRC}

# Port build options; DOCS also on by default
OPTIONS_DEFINE=	DOCS MYSQL PGSQL PYROOT ROOT7 SQLITE X11
OPTIONS_DEFAULT=	PYROOT ROOT7 X11
OPTIONS_SUB=	yes

# Option: MYSQL
MYSQL_DESC=		Enable MySQL bindings
MYSQL_USES=		mysql
MYSQL_CMAKE_BOOL=	mysql

# Option: PGSQL
PGSQL_DESC=		Enable PostgreSQL bindings
PGSQL_USES=		pgsql:13+
PGSQL_CMAKE_BOOL=	pgsql

#Option: PYROOT
PYROOT_DESC=		Enable bindings between Python and C++ with PyROOT
PYROOT_BUILD_DEPENDS=	${PYNUMPY}
PYROOT_USES=		python:3.9+,build,run
PYROOT_USES_OFF=	python:3.9+,build
PYROOT_CMAKE_BOOL=	pyroot

# Option: ROOT7
ROOT7_DESC=		Enable supplementary preview features of ROOT version 7
ROOT7_CMAKE_BOOL=	root7

# Option: SQLITE
SQLITE_DESC=		Enable SQLite bindings
SQLITE_USES=		sqlite
SQLITE_CMAKE_BOOL=	sqlite

# Option: X11
X11_DESC=		Enable interfacing with X11 graphics system
X11_LIB_DEPENDS=	libAfterImage.so:graphics/libafterimage \
			libftgl.so:graphics/ftgl \
			libgif.so:graphics/giflib \
			libgl2ps.so:print/gl2ps \
			libpng16.so:graphics/png \
			libtiff.so:graphics/tiff
X11_USES=		gettext-runtime gl jpeg xorg
X11_USE=		gl=glew,glu,opengl gnome=cairo,gdkpixbuf2,glib20,librsvg2 \
			xorg=ice,sm,x11,xau,xaw,xcb,xcomposite,xcursor,xdamage,xdmcp,xext,xfixes,xfont,xfont2,xft,xi,xinerama,xkbfile,xmu,xpm,xrandr,xrender,xres,xscrnsaver,xt,xv,xxf86vm
X11_CMAKE_BOOL=		x11

.include <bsd.port.options.mk>

PLIST_SUB+=	SHLIB_SHVER="${DISTVERSION:R}" \
		SHLIB_VER="${DISTVERSION}"

# Some .modulemap, .pcm and .idx files are not installed on aarch64, a few .pcm files are exclusive to aarch64 and files LIBRARY.pcm are renamed libLIBRARY_rdict.pcm on aarch64
.if ${ARCH} == "aarch64"
PLIST_SUB+=	NOT_INSTALLED_ON_AARCH64="@comment " ONLY_INSTALLED_ON_AARCH64="" AARCH64_PCM_PREFIX="lib" AARCH64_PCM_SUFFIX="_rdict"
.else
PLIST_SUB+=	NOT_INSTALLED_ON_AARCH64="" ONLY_INSTALLED_ON_AARCH64="@comment " AARCH64_PCM_PREFIX="" AARCH64_PCM_SUFFIX=""
.endif

# The following two files should not be staged. This happens even when PYROOT option is OFF.
post-install:
	${RM} ${STAGEDIR}${PREFIX}/lib/root/__pycache__/cmdLineUtils.cpython-39.pyc
	${RM} ${STAGEDIR}${PREFIX}/lib/root/__pycache__/cmdLineUtils.cpython-39.opt-1.pyc
	${RMDIR} ${STAGEDIR}${PREFIX}/lib/root/__pycache__

.include <bsd.port.mk>