# New ports collection makefile for:	likewise-platform
# Date created:		11 April 2011
# Whom:			Ganael Laplanche <ganael.laplanche@martymac.org>
#
# $FreeBSD$
#

P4_LIKEWISE_PLATFORM?= 	likewise-platform
P4_DIR=			shared/${P4_LIKEWISE_PLATFORM}

PORTNAME=	likewise-platform
PORTVERSION=	6.3.0.${P4_VERSION}
PORTREVISION=	16
DISTNAME=	${PORTNAME}
CATEGORIES=	net

COMMENT=	Open source version of the Likewise agent

# XXX security/krb5 should be built with KRB5_HOME=${LOCALBASE}
# to avoid linking to /usr/lib/libcom_err.so and getting missing
# (add|remove)_error_table symbols messages
LIB_DEPENDS=	uuid.1:${PORTSDIR}/misc/e2fsprogs-libuuid \
		krb5.3:${PORTSDIR}/security/krb5 \
		sasl2:${PORTSDIR}/security/cyrus-sasl2 \
	        ldap:${PORTSDIR}/net/openldap24-sasl-client \
		popt.0:${PORTSDIR}/devel/popt \
		curl.7:${PORTSDIR}/ftp/curl

SASL_GSSAPI_MODULE=${LOCALBASE}/lib/sasl2/libgssapiv2.so
	    
RUN_DEPENDS=	${SASL_GSSAPI_MODULE}:${PORTSDIR}/security/cyrus-sasl2-gssapi

LICENSE=	GPLv2 LGPL21 BSD
LICENSE_COMB=	multi

LIKEWISE_BUILDDIR_REL=	FreeBSD-build

LIKEWISE_CACHEDIR?=		/var/db/likewise
LIKEWISE_LOGDIR?=		/var/log/likewise
# XXX Options related to the following paths do not seem to be used (yet ?)
LIKEWISE_LOCALESTATEDIR?=	${PREFIX}/${PORTNAME}/var
LIKEWISE_DATAROOTDIR?=		${DATADIR}
LIKEWISE_DATADIR?=		${LIKEWISE_DATAROOTDIR}
LIKEWISE_LIBEXECDIR?=		${PREFIX}/libexec/${PORTNAME}

PLIST_SUB+=	LIKEWISE_CACHEDIR=${LIKEWISE_CACHEDIR}			\
		LIKEWISE_LOGDIR=${LIKEWISE_LOGDIR}			\
		LIKEWISE_LIBEXECDIR=${LIKEWISE_LIBEXECDIR:S|${PREFIX}/||}

KRB5_HOME?=	${LOCALBASE}

CFLAGS+=	-g
LDFLAGS+=	-rpath ${KRB5_HOME}/lib

HAS_CONFIGURE=	yes
CPPFLAGS+=	-I${LOCALBASE}/include
LDFLAGS+=	-L${LOCALBASE}/lib
CONFIGURE_ENV=	CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}"
CONFIGURE_ARGS=	--debug=yes --prefix=${PREFIX} \
		--libdir=${PREFIX}/lib \
		--libexecdir=${LIKEWISE_LIBEXECDIR} \
		--docdir=${DOCSDIR} \
		--mandir=${MANPREFIX}/man \
		--sysconfdir=${ETCDIR} \
		--localstatedir=${LIKEWISE_LOCALESTATEDIR} \
		--datarootdir=${LIKEWISE_DATAROOTDIR} \
		--datadir=${LIKEWISE_DATADIR} \
		--lw-cachedir=${LIKEWISE_CACHEDIR} \
		--lw-configdir=${ETCDIR} \
		--lw-initdir=${ETCDIR}/init.d \
		--lw-bundled=""

# Perform each build step from a dedicated sub-directory
CONFIGURE_SCRIPT=	../configure
CONFIGURE_WRKSRC=	${WRKSRC}/${LIKEWISE_BUILDDIR_REL}
BUILD_WRKSRC=	${CONFIGURE_WRKSRC}
INSTALL_WRKSRC=	${CONFIGURE_WRKSRC}
PKG_SCRIPTS=	${BUILD_WRKSRC}/object/package/storage/.freebsd-likewise-storage

USE_AUTOTOOLS=	autoconf:env aclocal:env automake:env libtool:env
USE_LDCONFIG=	yes
USE_SQLITE=	yes
USE_GNOME=	libxml2
USES=		bison gmake iconv:wchar_t

MAKE_JOBS_SAFE=	yes

USE_OPENLDAP=		yes
WANT_OPENLDAP_VER=	24
WANT_OPENLDAP_SASL=	yes

ONLY_FOR_ARCHS=	i386 amd64
ONLY_FOR_ARCHS_REASON=	not tested on other platforms

OPTIONS_DEFINE= DTRACE GUI SAMBA FUSE

DTRACE_DESC=	"Build with DTrace Support"
GUI_DESC=	"Build domainjoin GUI"
SAMBA_DESC=	"Build samba interop libraries"
FUSE_DESC=	"Build fuse module"

.include <bsd.port.pre.mk>

.if ${ARCH} == "i386"
PLIST_SUB+=	LIKEWISE_ARCH="i386"
.elif ${ARCH} == "amd64"
PLIST_SUB+=	LIKEWISE_ARCH="x86_64"
.endif

.if ${PORT_OPTIONS:MDTRACE}
.  if ${OSVERSION} < 900021
.    warning DTrace not enabled.  Upgrade to FreeBSD 9.0 to enable this feature.
.  else
CONFIGURE_ARGS+= --dtrace=yes
.  endif
.endif

.if ${PORT_OPTIONS:MGUI}
USE_GNOME+=	glib20 gtk20 libglade2
CONFIGURE_ARGS+=	--dj-gui=yes
PLIST_SUB+=	GUI=""
.else
CONFIGURE_ARGS+=	--dj-gui=no
PLIST_SUB+=	GUI="@comment "
.endif

.if ${PORT_OPTIONS:MSAMBA}
# XXX
.if ${OSVERSION} >= 701000 && ${OSVERSION} < 702000
IGNORE=	databases/tdb crashes on FreeBSD 7.1. Please, consider upgrading to 7.2 or higher
.endif
LIB_DEPENDS+=	tdb.1:${PORTSDIR}/databases/tdb
CONFIGURE_ARGS+=	--samba-interop=yes
PLIST_SUB+=	SAMBA=""
.else
CONFIGURE_ARGS+=	--samba-interop=no
PLIST_SUB+=	SAMBA="@comment "
.endif

.if defined(WITH_FUSE)
# XXX
.if ${OSVERSION} < 800032
IGNORE=	fuse support requires FreeBSD 8.0 or higher
.endif
LIB_DEPENDS+=	fuse.2:${PORTSDIR}/sysutils/fusefs-libs
CONFIGURE_ARGS+=	--lwio-fuse=yes
PLIST_SUB+=	FUSE=""
.else
CONFIGURE_ARGS+=	--lwio-fuse=no
PLIST_SUB+=	FUSE="@comment "
.endif

pre-configure:
	@${MKDIR} ${WRKSRC}/${LIKEWISE_BUILDDIR_REL}
	${REINPLACE_CMD} -e 's,/tmp,${LIKEWISE_LOGDIR},g' \
		${WRKSRC}/lwio/etc/srv.reg.in

# Likewise has rc-aware startup scripts, and a post-install script that will
# help users get started.
post-install:
	${INSTALL_SCRIPT} ${PKG_SCRIPTS}/postinst ${STAGEDIR}${ETCDIR}/postinstall.sh
.for rc_d in likewise lwsmd
	${LN} -sf ../${PORTNAME}/init.d/${rc_d} ${STAGEDIR}${PREFIX}/etc/rc.d/${rc_d}
.endfor
	${MKDIR} ${STAGEDIR}${LIKEWISE_CACHEDIR}
	${MKDIR} ${STAGEDIR}${LIKEWISE_LOGDIR}

.include <bsd.port.post.mk>
