1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-28 05:29:48 +00:00
freebsd-ports/mail/courier-imap/Makefile
Oliver Lehmann 731d868e82 use RCDIR instead of PREFIX/etc/rc.d
be quiet about not removeable directories (because they are still holding
custommized configuration files)
2004-10-18 15:38:50 +00:00

242 lines
6.8 KiB
Makefile

# New ports collection makefile for: courierimap
# Date created: 19 Feb 2000
# Whom: Neil Blakey-Milner
#
# $FreeBSD$
#
PORTNAME= courier-imap
PORTVERSION= 3.0.8
PORTREVISION= 0
PORTEPOCH= 1
CATEGORIES= mail ipv6
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= courier
.if defined(WITH_DRAC)
PATCH_SITES= http://www.smalltown.ne.jp/~usata/pub/patch/
PATCHFILES= courier-imap-3.0.6-drac.patch
PATCH_DIST_STRIP= -p1
.endif
MAINTAINER= oliver@FreeBSD.org
COMMENT= IMAP (and POP3) server that provides access to Maildir mailboxes
USE_BZIP2= yes
USE_REINPLACE= yes
USE_PERL5= yes
GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_RC_SUBR= yes
CONFIGURE_ENV= CFLAGS="${CPPFLAGS} -I${LOCALBASE}/include" \
CPPFLAGS="${CPPFLAGS} -I${LOCALBASE}/include" \
CXXFLAGS="${CPPFLAGS} -I${LOCALBASE}/include" \
LIBS="${LDFLAGS} -L${LOCALBASE}/lib"
#
# options available:
#
# WITHOUT_OPENSSL: Don't build in TLS support
# WITHOUT_PAM: Don't build in PAM support
# WITHOUT_AUTHDAEMON Don't build the authdaemon
# WITH_CRAM: Build in CRAM-MD5 authentication support
# WITH_VPOPMAIL: Build in vpopmail support
# WITH_MYSQL: Build in mysql support
# WITH_POSTGRESQL: Build in postgresql support
# WITH_LDAP: Build in ldap support with openldap
# WITH_FAM: Build in fam support for IDLE command
# WITH_DRAC: Build in DRAC support
# WITH_TRASHQUOTA: Include deleted mails in the quota
# WITH_GDBM: Use gdbm files instead of bdb
#
CONFDIR?= ${PREFIX}/etc/${PORTNAME}
RCDIR?= ${PREFIX}/etc/rc.d
USERDB?= ${PREFIX}/etc/userdb
LIBEXECDIR?= ${PREFIX}/libexec/${PORTNAME}
VPOPMAILDIR?= ${LOCALBASE}/vpopmail
PLIST_SUB= CONFDIR=${CONFDIR:S,^${PREFIX}/,,} \
RCDIR=${RCDIR:S,^${PREFIX}/,,} \
USERDB=${USERDB:S,^${PREFIX}/,,} \
LIBEXECDIR=${LIBEXECDIR:S,^${PREFIX}/,,}
.if !defined(WITHOUT_OPENSSL)
USE_OPENSSL= YES
PLIST_SUB+= OPENSSLFLAG=
.else
PLIST_SUB+= OPENSSLFLAG="@comment "
.endif
CONFIGURE_TARGET= --build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
CONFIGURE_ARGS= --without-authshadow \
--sysconfdir=${CONFDIR} \
--with-userdb=${USERDB} \
--datadir=${DATADIR} \
--libexecdir=${LIBEXECDIR} \
--enable-workarounds-for-imap-client-bugs \
--enable-unicode \
--disable-root-check \
--with-locking-method=fcntl
# Without explicitly mentioning this, if gdbm libraries are present,
# they are silently picked up and used by courier-imap in place of
# the standard db (v1) files.
#
.if defined(WITH_GDBM)
LIB_DEPENDS+= gdbm.3:${PORTSDIR}/databases/gdbm
CONFIGURE_ARGS+= --with-db=gdbm
.else
CONFIGURE_ARGS+= --with-db=db
.endif
.if !defined(WITH_VPOPMAIL)
CONFIGURE_ARGS+=--without-authvchkpw
PLIST_SUB+= VPOPMAILFLAG="@comment "
.else
CONFIGURE_ARGS+=--with-authvchkpw
BUILD_DEPENDS+= ${VPOPMAILDIR}/lib/libvpopmail.a:${PORTSDIR}/mail/vpopmail
PLIST_SUB+= VPOPMAILFLAG=""
.endif
.if defined(WITH_TRASHQUOTA)
CONFIGURE_ARGS+=--with-trashquota
.endif
.if defined(WITH_LDAP)
USE_OPENLDAP= yes
CONFIGURE_ARGS+=--with-authldap
PLIST_SUB+= LDAPFLAG=""
.else
CONFIGURE_ARGS+=--without-authldap
PLIST_SUB+= LDAPFLAG="@comment "
.endif
.if !defined(WITH_MYSQL)
CONFIGURE_ARGS+=--without-authmysql
PLIST_SUB+= MYSQLFLAG="@comment "
.else
USE_MYSQL= YES
PLIST_SUB+= MYSQLFLAG=""
CONFIGURE_ARGS+=--with-authmysql \
--with-mysql-libs=${LOCALBASE}/lib/mysql \
--with-mysql-includes=${LOCALBASE}/include/mysql
.endif
.if !defined(WITH_POSTGRESQL)
CONFIGURE_ARGS+=--without-authpgsql
PLIST_SUB+= PGSQLFLAG="@comment "
.else
POSTGRESQL_PORT?= databases/postgresql7
LIB_DEPENDS+= pq.3:${PORTSDIR}/${POSTGRESQL_PORT}
PLIST_SUB+= PGSQLFLAG=""
.endif
.if !defined(WITHOUT_AUTHDAEMON)
CONFIGURE_ARGS+=--with-authdaemon
PLIST_SUB+= AUTHDFLAG=""
.else
CONFIGURE_ARGS+=--without-authdaemon
PLIST_SUB+= AUTHDFLAG="@comment "
.endif
.if !defined(WITHOUT_PAM)
CONFIGURE_ARGS+=--with-authpam
PLIST_SUB+= PAMFLAG="" PWDFLAG="@comment "
.else
CONFIGURE_ARGS+=--without-authpam
PLIST_SUB+= PAMFLAG="@comment " PWDFLAG=""
.endif
.if !defined(WITH_CRAM)
CONFIGURE_ARGS+=--without-authcram
.else
CONFIGURE_ARGS+=--with-authcram
.endif
.include <bsd.port.pre.mk>
RC_SCRIPTS_SUB=PREFIX=${PREFIX} RC_SUBR=${RC_SUBR}
.if defined(WITH_FAM) || exists(${LOCALBASE}/lib/libfam.so)
CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \
LDFLAGS="${LDFLAGS}"
LDFLAGS+= -L${LOCALBASE}/lib
LIB_DEPENDS+= fam.0:${PORTSDIR}/devel/fam
.endif
.if defined(WITH_DRAC)
EXTRA_PATCHES= ${FILESDIR}/extra-patch-drac
BUILD_DEPENDS+= ${LOCALBASE}/lib/libdrac.a:${PORTSDIR}/mail/drac
.endif
MAN1= courierlogger.1 couriertcpd.1 maildiracl.1 maildirkw.1 \
maildirmake.1
MAN7= authlib.7
MAN8= makeuserdb.8 userdb.8 userdbpw.8 \
deliverquota.8 imapd.8 mkimapdcert.8 mkpop3dcert.8
MLINKS= authlib.7 authpwd.7 \
authlib.7 authuserdb.7 \
authlib.7 authshadow.7 \
authlib.7 authpam.7 \
authlib.7 authvchkpw.7 \
authlib.7 authcram.7 \
authlib.7 authldap.7 \
authlib.7 authmysql.7 \
authlib.7 authdaemon.7 \
authlib.7 authdaemond.7 \
makeuserdb.8 pw2userdb.8 \
makeuserdb.8 vchkpw2userdb.8
EXTRA_DOCS= README INSTALL AUTHORS imap/ChangeLog
post-patch:
@${REINPLACE_CMD} -e 's|^case x$$lockmethod in|${TEST} \&\& &|g' \
${WRKSRC}/liblock/configure
@${REINPLACE_CMD} -e 's|$$VPOPMAILLIBS|& -lcrypt|g ; \
s|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKSRC}/authlib/configure
@${REINPLACE_CMD} -e 's|^@INSTALLAUTHMODULES@$$|& @AUTHMODULES@|' \
${WRKSRC}/authlib/installlist.in
@${REINPLACE_CMD} -e 's|%%INSTALL_MAN%%|${INSTALL_MAN}|' \
${WRKSRC}/Makefile.in ${WRKSRC}/authlib/Makefile.in
post-install:
${INSTALL_PROGRAM} ${WRKSRC}/authlib/authtest ${PREFIX}/bin/
.for i in imapd pop3d
${INSTALL_DATA} ${WRKSRC}/imap/${i}.cnf ${CONFDIR}/${i}.cnf.dist
.endfor
.for i in imapd imapd-ssl pop3d pop3d-ssl
${SED} ${RC_SCRIPTS_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
${FILESDIR}/courier-imap-${i}.sh > ${WRKDIR}/courier-imap-${i}.sh
${INSTALL_SCRIPT} ${WRKDIR}/courier-imap-${i}.sh ${RCDIR}/courier-imap-${i}.sh
.endfor
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
.for a in ${EXTRA_DOCS}
${INSTALL_DATA} ${WRKSRC}/${a} ${DOCSDIR}
.endfor
.endif
@${ECHO_MSG} ""
@${ECHO_MSG} "You will have to run ${DATADIR}/mkimapdcert to create"
@${ECHO_MSG} "a self-signed certificate if you want to use imapd-ssl."
@${ECHO_MSG} "And you will have to copy and edit the *.dist files to *"
@${ECHO_MSG} "in ${CONFDIR}."
@${ECHO_MSG} ""
@${ECHO_MSG} "In case you use authpam, you should put the following lines"
@${ECHO_MSG} "in your /etc/pam.conf or /etc/pam.d/imap"
@${ECHO_MSG} "imap auth required pam_unix.so try_first_pass"
@${ECHO_MSG} "imap account required pam_unix.so try_first_pass"
@${ECHO_MSG} "imap session required pam_permit.so"
@${ECHO_MSG} ""
@${ECHO_MSG} "In case you are upgrading an existing Installation, you need to run"
@${ECHO_MSG} "'make install-configure' to update your old configuration files."
@${ECHO_MSG} ""
install-configure:
cd ${WRKSRC} && ${GMAKE} install-configure
.include <bsd.port.post.mk>