1PORTNAME=	rrdtool
2DISTVERSION=	1.9.0
3PORTREVISION=	2
4CATEGORIES=	databases graphics
5MASTER_SITES=	https://github.com/oetiker/rrdtool-1.x/releases/download/v${DISTVERSION}/
6
7MAINTAINER=	ports@MidnightBSD.org
8COMMENT=	Round Robin Database Tools
9WWW=		https://oss.oetiker.ch/rrdtool/
10
11LICENSE=	gpl2
12LICENSE_FILE=	${WRKSRC}/LICENSE
13
14USES=		cpe gmake gnome libtool pathfix pkgconfig shebangfix
15CPE_VENDOR=	rrdtool_project
16USE_GNOME=	glib20 libxml2
17USE_LDCONFIG=	yes
18USE_RC_SUBR=	rrdcached
19SHEBANG_FILES=	examples/rrdcached/rrdcached-size.pl examples/stripes.py
20GNU_CONFIGURE=	yes
21GNU_CONFIGURE_MANPREFIX=	${PREFIX}/share
22CONFIGURE_ARGS=	--disable-tcl
23CONFIGURE_ENV=	RRDDOCDIR=${DOCSDIR:Q}
24INSTALL_TARGET=	install-strip
25CPPFLAGS+=	-I${LOCALBASE}/include -I${LOCALBASE}/include/freetype2
26# Some symbols in the linker version script librrd.sym are undefined when the
27# CACHE option is off. Suppress errors with lld >= 17 due to these undefined
28# symbols.
29LDFLAGS+=	-Wl,--undefined-version
30CONFLICTS=	rrdtool12
31PORTDOCS=	*
32PORTEXAMPLES=	cgi-demo.cgi
33
34OPTIONS_DEFINE=		DEJAVU DOCS EXAMPLES GRAPH LOCKTIMEOUT MMAP NLS PERL \
35			PYTHON RUBY
36OPTIONS_DEFAULT=	DEJAVU GRAPH MMAP PERL
37OPTIONS_SUB=		yes
38DEJAVU_DESC=		Use DejaVu fonts (requires X11)
39GRAPH_DESC=		Enable the rrdtool graph command (needs cairo)
40LOCKTIMEOUT_DESC=	Enable the patch for lock timeout
41MMAP_DESC=		Use mmap in rrd_update
42PERL_DESC=		Build PERL module
43PYTHON_DESC=		Build PYTHON bindings
44RUBY_DESC=		Build RUBY bindings
45
46DEJAVU_RUN_DEPENDS=		dejavu>0:x11-fonts/dejavu
47DOCS_USES=			groff
48DOCS_CONFIGURE_ENABLE=		docs
49EXAMPLES_CONFIGURE_ENABLE=	examples
50GRAPH_LIB_DEPENDS=		libfreetype.so:print/freetype2 \
51				libharfbuzz.so:print/harfbuzz \
52				libpng.so:graphics/png
53GRAPH_USE=			GNOME=cairo,pango
54GRAPH_CONFIGURE_OFF=		--disable-rrd_graph \
55				--disable-rrdcgi
56LOCKTIMEOUT_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-locktimeout
57MMAP_CONFIGURE_ENABLE=		mmap
58NLS_USES=			gettext localbase
59NLS_USE=			GNOME=intltool
60NLS_CONFIGURE_ENABLE=		nls
61PERL_USES=			perl5
62PERL_CONFIGURE_ON=		--enable-perl \
63				--enable-perl-site-install
64PERL_CONFIGURE_OFF=		--disable-perl
65PERL_MAKE_ARGS=			PERL_MAKE_OPTIONS='PREFIX="${PREFIX}" INSTALLPRIVLIB="${PREFIX}/lib" INSTALLARCHLIB="${PREFIX}/lib"'
66PERL_PORTEXAMPLES=		4charts.pl bigtops.pl minmax.pl perftest.pl \
67				piped-demo.pl rrdcached/rrdcached-size.pl \
68				rrdcached/RRDCached.pm shared-demo.pl \
69				stripes.pl
70PYTHON_BUILD_DEPENDS=		${PY_SETUPTOOLS}
71PYTHON_USES=			python
72PYTHON_USE=			PYTHON=flavors,optsuffix
73PYTHON_CONFIGURE_ENABLE=	python
74PYTHON_PORTEXAMPLES=		stripes.py
75RUBY_USES=			ruby
76RUBY_CONFIGURE_ENABLE=		ruby
77
78post-extract:
79	@${REINPLACE_CMD} -E 's|(^rrdtool_LDADD = librrd.la)|\1 $$\(ALL_LIBS\)|' \
80		${WRKSRC}/src/Makefile.in
81
82post-install-EXAMPLES-on:
83.if !defined(BATCH)
84	@${ECHO_MSG} ""
85	@${ECHO_MSG} "############################################################################"
86	@${ECHO_MSG} "# See ${EXAMPLESDIR} for some demonstration code        #"
87	@${ECHO_MSG} "############################################################################"
88.endif
89
90post-install-PERL-on:
91	${STRIP_CMD} ${FAKE_DESTDIR}${PREFIX}/${SITE_ARCH_REL}/auto/RRDs/RRDs.so
92
93post-install-PERL-off:
94	${RM} ${FAKE_DESTDIR}${EXAMPLESDIR}/*.pl
95	${RM} -r ${FAKE_DESTDIR}${EXAMPLESDIR}/rrdcached
96
97post-install-PYTHON-on:
98	${STRIP_CMD} ${FAKE_DESTDIR}${PYTHON_SITELIBDIR}/rrdtool.so
99
100post-install-PYTHON-off:
101	${RM} ${FAKE_DESTDIR}${EXAMPLESDIR}/stripes.py
102
103post-install-RUBY-on:
104	${STRIP_CMD} ${FAKE_DESTDIR}${RUBY_SITEARCHLIBDIR}/RRD.so
105
106.include <bsd.port.mk>
107