pkgsrc/net/gnunet/options.mk
riastradh 8560be0ed3 Mass-change BUILD_DEPENDS to TOOL_DEPENDS outside mk/.
Almost all uses, if not all of them, are wrong, according to the
semantics of BUILD_DEPENDS (packages built for target available for
use _by_ tools at build-time) and TOOL_DEPEPNDS (packages built for
host available for use _as_ tools at build-time).

No change to BUILD_DEPENDS as used correctly inside buildlink3.

As proposed on tech-pkg:
https://mail-index.netbsd.org/tech-pkg/2023/06/03/msg027632.html
2023-06-06 12:40:15 +00:00

194 lines
6.2 KiB
Makefile

# $NetBSD: options.mk,v 1.5 2023/06/06 12:42:04 riastradh Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.gnunet
PKG_SUPPORTED_OPTIONS+= doc idn mysql pgsql tests
PKG_SUPPORTED_OPTIONS+= experimental pulseaudio
PKG_SUPPORTED_OPTIONS+= opus ogg sqlite3 audio
PKG_SUPPORTED_OPTIONS+= gstreamer perl verbose-logging
PKG_SUPPORTED_OPTIONS+= latex-generate
PKG_SUGGESTED_OPTIONS+= audio gstreamer opus ogg
PKG_SUGGESTED_OPTIONS+= idn doc sqlite3 latex-generate
# bluez is still in pkgsrc-wip, and I should test this
# before claiming bluez from pkgsrc-wip on Linux works.
# However, this is a supported option for GNUnet.
# gnunet-qr needs zbar with video support. v4l2 only works
# on Linux. v4l2 on NetBSD needs some work for zbar maybe?
# Furthermore we need to start building zbar with video support
# for this to work on any system.
#.if ${OPSYS} == "Linux"
#PKG_SUPPORTED_OPTIONS+= bluez zbar
# outdated package, update the package in wip
# PKG_SUGGESTED_OPTIONS+= bluez
#PKG_SUGGESTED_OPTIONS+= zbar
#.endif
# We use several PLIST files, as the build process is
# rather lengthy, and keeping it in one file for every
# option is not easy on the one doing the updates.
PLIST_SRC= PLIST
.include "../../mk/bsd.options.mk"
.if ${PKG_OPTIONS:Mtests}
PYTHON_VERSIONS_INCOMPATIBLE= 27
.include "../../lang/python/tool.mk"
PYTHON_FOR_BUILD_ONLY= yes
CONFIGURE_ARGS+= --enable-testruns
.else
CONFIGURE_ARGS+= --disable-testruns
.endif
# \XXX: 7 MB in size, but useful (although we could strip off some files).
.if ${PKG_OPTIONS:Mdoc}
PYTHON_VERSIONS_INCOMPATIBLE= 27
.include "../../lang/python/tool.mk"
TOOL_DEPENDS+= ${PYPKGPREFIX}-sphinx-[0-9]*:../../textproc/py-sphinx
TOOL_DEPENDS+= ${PYPKGPREFIX}-sphinx-rtd-theme-[0-9]*:../../textproc/py-sphinx-rtd-theme
TOOL_DEPENDS+= ${PYPKGPREFIX}-docutils>=0.12:../../textproc/py-docutils
CONFIGURE_ARGS+= --enable-documentation
PLIST_SRC+= PLIST.doc
INFO_FILES=yes
.else
CONFIGURE_ARGS+= --disable-documentation
.endif
# gnunet-bcd
PLIST_VARS+= latex
.if ${PKG_OPTIONS:Mlatex-generate}
DEPENDS+= tex-latex-bin-[0-9]*:../../print/tex-latex-bin
DEPENDS+= tex-pgf-[0-9]*:../../print/tex-pgf
DEPENDS+= tex-qrcode-[0-9]*:../../graphics/tex-qrcode
DEPENDS+= tex-labels-[0-9]*:../../print/tex-labels
PLIST.latex= yes
.endif
# idn is mandatory but idn or idn2 can be used with a preference for
# idn2.
.if ${PKG_OPTIONS:Midn}
.include "../../devel/libidn2/buildlink3.mk"
CONFIGURE_ARGS+= --with-libidn=${BUILDLINK_PREFIX.libidn2}
.else
.include "../../devel/libidn/buildlink3.mk"
CONFIGURE_ARGS+= --with-libidn=${BUILDLINK_PREFIX.libidn}
.endif
# database support - they don't exclude other databases,
# you can have mysql, pgsql, and the default all built in.
# ideally we would check for at least sqlite3 existing, but
# the build won't build when you have none of them.
.if ${PKG_OPTIONS:Msqlite3}
.include "../../databases/sqlite3/buildlink3.mk"
CONFIGURE_ARGS+= --with-sqlite3=${BUILDLINK_PREFIX.sqlite3}
PLIST_SRC+= PLIST.sqlite3
.else
CONFIGURE_ARGS+= --without-sqlite3
.endif
.if ${PKG_OPTIONS:Mmysql}
.include "../../databases/mysql80-client/buildlink3.mk"
CONFIGURE_ARGS+= --with-mysql=${BUILDLINK_PREFIX.mysql-client}
CONFIGURE_ENV+= MYSQL_LIBDIR=${BUILDLINK_PREFIX.mysql-client}/lib
PLIST_SRC+= PLIST.mysql
.else
CONFIGURE_ARGS+= --without-mysql
.endif
.if ${PKG_OPTIONS:Mpgsql}
.include "../../mk/pgsql.buildlink3.mk"
CONFIGURE_ARGS+= --with-postgresql=yes
PLIST_SRC+= PLIST.pgsql
.else
CONFIGURE_ARGS+= --without-postgresql
.endif
.if ${PKG_OPTIONS:Mexperimental}
CONFIGURE_ARGS+= --enable-experimental
PLIST_SRC+= PLIST.experimental
. if ${PKG_OPTIONS:Mverbose-logging}
CONFIGURE_ARGS+= --enable-logging=verbose
. endif
.else
CONFIGURE_ARGS+= --disable-experimental
.endif
# conversation submodule. if gstreamer + opus + ogg
# exists, pulseaudio is not necessary. gnunet-gtk
# conditionally builds a binary if the conversation
# submodule is build by gnunet.
.if ${PKG_OPTIONS:Maudio}
. if ${PKG_OPTIONS:Mopus}
.include "../../audio/libopus/buildlink3.mk"
CONFIGURE_ARGS+= --with-opus=${BUILDLINK_PREFIX.libopus}
PLIST_SRC+= PLIST.conversations
. else
CONFIGURE_ARGS+= --without-opus
. endif
. if ${PKG_OPTIONS:Mogg}
.include "../../multimedia/libogg/buildlink3.mk"
CONFIGURE_ARGS+= --with-ogg=${BUILDLINK_PREFIX.libogg}
PLIST_SRC+= PLIST.conversations
. else
CONFIGURE_ARGS+= --without-ogg
. endif
. if ${PKG_OPTIONS:Mgstreamer}
.include "../../multimedia/gstreamer1/buildlink3.mk"
.include "../../multimedia/gst-plugins1-base/buildlink3.mk"
PLIST_SRC+= PLIST.conversations
. endif
. if ${PKG_OPTIONS:Mpulseaudio}
.include "../../audio/pulseaudio/buildlink3.mk"
CONFIGURE_ARGS+= --with-pulse=${BUILDLINK_PREFIX.pulseaudio}
PLIST_SRC+= PLIST.conversations
. else
CONFIGURE_ARGS+= --without-pulse
. endif
.endif
#.if ${PKG_OPTIONS:Mzbar}
#.include "../../graphics/zbar/buildlink3.mk"
#CONFIGURE_ARGS+= --with-zbar=${BUILDLINK_PREFIX.zbar}
#PLIST.zbar= yes
#.else
#CONFIGURE_ARGS+= --without-zbar
#.endif
# FIXME: It would be good to provide a build of gnunet against
# 'gnutls build against libdane/unbound' iff unbound is selected,
# causing consequentially a build of gnutls with this setting.
# Since gnunet does build against either of these and gnutls
# without libdane is more common in pkgsrc, this should be
# an option. The conditional below doesn't work.
# .if !empty(PKG_OPTIONS:Munbound) && empty(PKG_BUILD_OPTIONS.gnutls:Munbound)
# PKG_FAIL_REASON+= "Requires the unbound option enabled in gnutls"
# .endif
# \XXX: last time I tried to build it on Linux, bluez failed to build
#.if ${OPSYS} == "Linux" && ${PKG_OPTIONS:Mbluez}
# Do we need more for bluez?
#.include "../../wip/bluez-libs/buildlink3.mk"
#CONFIGURE_ARGS+= --with-libbluetooth=${BUILDLINK_PREFIX.bluez-libs}
#PLIST.bluez= yes
#.endif
# \todo: there are files which only exist on Linux, only on FreeBSD,
# and on both of them. I have neither of them. If you do, please
# create the appropriate PLIST files with content.
PLIST_VARS+= perl
# Fix the perl path
.if ${PKG_OPTIONS:Mperl}
PLIST.perl= yes
USE_TOOLS+= perl:run
CONFIGURE_ARGS+= --with-gnunet-logread
REPLACE_INTERPRETER+= envperl
REPLACE.envperl.old= .*@PERLEXE@
REPLACE.envperl.new= ${PERL5}
REPLACE_FILES.envperl= contrib/scripts/gnunet-logread/gnunet-logread-ipc-sdedit.in
REPLACE_FILES.envperl= contrib/scripts/gnunet-logread/gnunet-logread.in
.endif