openbsd-ports/mail/dovecot/Makefile
2011-03-05 20:41:19 +00:00

168 lines
4.6 KiB
Makefile

# $OpenBSD: Makefile,v 1.161 2011/03/05 20:41:19 sthen Exp $
SHARED_ONLY= Yes
COMMENT-server= compact IMAP/POP3 server
COMMENT-sieve= Sieve mail filtering for Dovecot
V_MAJOR= 1.2
V_DOVECOT= 1.2.16
V_SIEVE= 0.1.18
V_MANAGESIEVE= 0.11.12
PKGNAME= dovecot-${V_DOVECOT}
PKGNAME-server= dovecot-${V_DOVECOT}
REVISION-server=4
FULLPKGNAME-sieve= dovecot-sieve-${V_SIEVE}
REVISION-sieve= 0
EPOCH-sieve= 0
FULLPKGPATH-sieve= ${PKGPATH},-sieve
DISTNAME= dovecot-${V_DOVECOT}
CATEGORIES= mail
MASTER_SITES= ${HOMEPAGE}releases/${V_MAJOR}/
MASTER_SITES0= http://www.rename-it.nl/dovecot/${V_MAJOR}/
DISTFILES= dovecot-${V_DOVECOT}.tar.gz \
dovecot-${V_MAJOR}-sieve-${V_SIEVE}.tar.gz:0 \
dovecot-${V_MAJOR}-managesieve-${V_MANAGESIEVE}.tar.gz:0 \
${DIST_MANAGESIEVE}:0
DIST_MANAGESIEVE= dovecot-${V_DOVECOT}-managesieve-${V_MANAGESIEVE}.diff.gz
HOMEPAGE= http://www.dovecot.org/
MAINTAINER= Brad Smith <brad@comstyle.com>
# MIT/LGPLv2.1
PERMIT_PACKAGE_CDROM= Yes
PERMIT_PACKAGE_FTP= Yes
PERMIT_DISTFILES_CDROM= Yes
PERMIT_DISTFILES_FTP= Yes
WANTLIB-server= ${MODLIBICONV_WANTLIB} bz2 c crypto gssapi krb5 ssl z
WANTLIB-sieve= ${MODLIBICONV_WANTLIB} c crypto ssl
MODULES= converters/libiconv
LIB_DEPENDS+= archivers/bzip2
MULTI_PACKAGES= -server
SUBPACKAGE?= -server
PSEUDO_FLAVORS= no_sieve
FLAVORS= bdb ldap mysql postgresql sqlite
FLAVOR?=
CFLAGS+= -I/usr/include/kerberosV -I${LOCALBASE}/include
USE_LIBTOOL= Yes
# Should be 2.65
AUTOCONF_VERSION= 2.64
CONFIGURE_STYLE= autoconf
CONFIGURE_ARGS+= --localstatedir=/var \
--with-gssapi \
--with-pam=no \
--with-shadow=no \
--with-vpopmail=no
CONFIGURE_ENV= LDFLAGS="-L${LOCALBASE}/lib"
.if !${FLAVOR:L:Mno_sieve}
# XXX The produced dovecot-sieve package ends up linked to any
# other library (database/ldap) used in the build thus producing
# bad packages in bulk build. Temporarily work around this in a
# nasty way by knocking out the sieve subpackage if another
# flavor is used. This means you have to build without FLAVORS
# to get the -sieve subpackage.
.if ${FLAVOR} == ""
MULTI_PACKAGES+= -sieve
.endif
SIEVE_DIR= ${WRKDIR}/dovecot-${V_MAJOR}-sieve-${V_SIEVE}
MANAGESIEVE_DIR= ${WRKDIR}/dovecot-${V_MAJOR}-managesieve-${V_MANAGESIEVE}
AUTOCONF_DIR+= ${WRKSRC} ${MANAGESIEVE_DIR}
RUN_DEPENDS-sieve= ${PKGPATH}
LIB_DEPENDS-sieve= ${MODLIBICONV_LIB_DEPENDS}
PATCH_LIST= patch-* managesieve-patch-*
.else
PATCH_LIST= patch-* nosieve-patch-*
.endif
.if ${FLAVOR:L:Mbdb}
CONFIGURE_ARGS+= --with-db
LIB_DEPENDS+= databases/db/v4
WANTLIB-server+= db>=5
CFLAGS+= -I${LOCALBASE}/include/db4
.endif
.if ${FLAVOR:L:Mldap}
CONFIGURE_ARGS+= --with-ldap
LIB_DEPENDS+= databases/openldap
WANTLIB-server+= lber ldap sasl2 asn1 com_err
.endif
.if ${FLAVOR:L:Mmysql}
CONFIGURE_ARGS+= --with-mysql
LIB_DEPENDS+= databases/mysql
WANTLIB-server+= m lib/mysql/mysqlclient>=10
.endif
.if ${FLAVOR:L:Mpostgresql}
CONFIGURE_ARGS+= --with-pgsql
LIB_DEPENDS+= databases/postgresql
WANTLIB-server+= pq>=4
.endif
.if ${FLAVOR:L:Msqlite}
CONFIGURE_ARGS+= --with-sqlite
LIB_DEPENDS+= databases/sqlite3
WANTLIB-server+= sqlite3
.endif
.if !${FLAVOR:L:Mno_sieve}
pre-patch:
@cd ${WRKSRC} && \
gunzip -c ${DISTDIR}/${DIST_MANAGESIEVE} | \
patch -z.managesieve.orig -p1 2> /dev/null
post-configure:
@(cd ${WRKSRC}; ${MAKE_PROGRAM} dovecot-config)
@(cd ${SIEVE_DIR}; ${SETENV} ${CONFIGURE_ENV} \
./configure --with-dovecot=${WRKSRC} \
--mandir=${PREFIX}/man --docdir=${PREFIX}/share/doc/)
@(cd ${MANAGESIEVE_DIR}; ${SETENV} ${CONFIGURE_ENV} \
./configure --with-dovecot=${WRKSRC} \
--with-dovecot-sieve=${SIEVE_DIR})
.endif
pre-build:
@${SUBST_CMD} ${WRKSRC}/dovecot-example.conf
.if !${FLAVOR:L:Mno_sieve}
post-build:
(cd ${SIEVE_DIR}; ${MAKE_PROGRAM} ${MAKE_FLAGS})
(cd ${MANAGESIEVE_DIR}; ${MAKE_PROGRAM} ${MAKE_FLAGS})
.endif
post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/examples/dovecot
${INSTALL_DATA} ${WRKSRC}/doc/dovecot-openssl.cnf \
${WRKSRC}/doc/dovecot-sql-example.conf \
${WRKSRC}/doc/dovecot-ldap-example.conf \
${WRKSRC}/doc/dovecot-db-example.conf \
${WRKSRC}/dovecot-example.conf \
${WRKSRC}/doc/dovecot-dict-sql-example.conf \
${PREFIX}/share/examples/dovecot
${INSTALL_SCRIPT} ${WRKSRC}/doc/mkcert.sh \
${PREFIX}/sbin/dovecot-mkcert.sh
.if !${FLAVOR:L:Mno_sieve}
cd ${SIEVE_DIR} && env -i ${MAKE_ENV} \
PREFIX=${WRKINST}${PREFIX} ${DESTDIRNAME}=${WRKINST} \
TRUEPREFIX=${PREFIX} \
${MAKE_PROGRAM} ${ALL_FAKE_FLAGS} -f ${MAKE_FILE} ${FAKE_TARGET}
cd ${MANAGESIEVE_DIR} && env -i ${MAKE_ENV} \
PREFIX=${WRKINST}${PREFIX} ${DESTDIRNAME}=${WRKINST} \
TRUEPREFIX=${PREFIX} \
${MAKE_PROGRAM} ${ALL_FAKE_FLAGS} -f ${MAKE_FILE} ${FAKE_TARGET}
.endif
.include <bsd.port.mk>