summaryrefslogtreecommitdiffstats
path: root/mail/mutt/Makefile
blob: 5c7ca71a7dee533be973112715daaf5a46a4c9cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
# Created by: Udo Schweigert
# $FreeBSD$

PORTNAME=	mutt
PORTVERSION=	1.5.24
PORTREVISION?=	6
CATEGORIES+=	mail ipv6
MASTER_SITES=	ftp://ftp.mutt.org/mutt/ \
		ftp://ftp.fu-berlin.de/pub/unix/mail/mutt/ \
		https://bitbucket.org/mutt/mutt/downloads/ \
		ftp://ftp.demon.co.uk/pub/mirrors/mutt/ \
		http://www.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \
		http://www2.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv
DISTFILES=	${DISTNAME}${EXTRACT_SUFX}
EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}

PATCH_SITES+=	http://www.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \
		http://www2.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \
		http://home.woolridge.ca/mutt/patches/:dw

MAINTAINER?=	udo.schweigert@siemens.com
COMMENT?=	The Mongrel of Mail User Agents (development version)

CONFLICTS?=	ja-mutt-[0-9]* ja-mutt-devel-[0-9]* mutt-1.4* mutt-devel-lite-[0-9]* mutt-lite-[0-9]* zh-mutt-devel-[0-9]*

DIST_SUBDIR=	mutt
DOCSDIR?=	${PREFIX}/share/doc/mutt
EXAMPLESDIR?=	${PREFIX}/share/examples/mutt
DATADIR?=	${PREFIX}/share/mutt
CONFIGURE_ENV=	CC="${CC} -I${LOCALBASE}/include"
CONFIGURE_ARGS=	--disable-fcntl --with-ssl=${OPENSSLBASE} \
		--with-docdir=${DOCSDIR} --sysconfdir=${PREFIX}/etc \
		--enable-external-dotlock --enable-pop --enable-imap \
		--disable-warnings

USES+=		cpe shebangfix
SHEBANG_FILES=	doc/gen-map-doc smime_keys.pl contrib/smime_keys_test.pl

.if defined(MUTT_CONFIGURE_ARGS)
CONFIGURE_ARGS+=	${MUTT_CONFIGURE_ARGS}
.endif

USE_AUTOTOOLS=	automake autoconf
AUTOMAKE_ARGS=	--add-missing --foreign
USE_OPENSSL=	yes

OPTIONS_SUB=	yes

.if defined (MUTT_LITE)
LITE=	yes
USES+=	ncurses
.endif

.if defined (LITE)
OPTIONS_UNSET=	NLS DOCS EXAMPLES
.else
OPTIONS_DEFINE=	COMPRESSED_FOLDERS SASL DEBUG DOCS EXAMPLES FLOCK \
		GPGME GREETING_PATCH HTML ICONV IDN IFDEF_PATCH \
		IMAP_HEADER_CACHE LOCALES_FIX MAILBOX_MANPAGES \
		MAILDIR_HEADER_CACHE MAILDIR_MTIME_PATCH \
		MIXMASTER NLS NNTP PARENT_CHILD_MATCH_PATCH \
		QUOTE_PATCH REVERSE_REPLY_PATCH SIDEBAR_PATCH \
		SIGNATURE_MENU SMART_DATE SMIME_OUTLOOK_COMPAT SMTP \
		TOKYOCABINET TRASH_PATCH URLVIEW XML

OPTIONS_SINGLE=	GSSAPI SCREEN
OPTIONS_RADIO=	SPELL
OPTIONS_RADIO_SPELL=	ASPELL ISPELL
OPTIONS_SINGLE_GSSAPI=	GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE
OPTIONS_SINGLE_SCREEN=	NCURSES SLANG

COMPRESSED_FOLDERS_DESC=	Compressed folders
SASL_DESC=	SASL authentication
DEBUG_DESC=	Debugging capabilities
FLOCK_DESC=	flock() usage
GPGME_DESC=	Gpgme interface
GREETING_PATCH_DESC=	Greeting support
HTML_DESC=	HTML documentation
IFDEF_PATCH_DESC=	ifdef feature
IMAP_HEADER_CACHE_DESC=	IMAP header cache
LOCALES_FIX_DESC=	Locales fix
MAILBOX_MANPAGES_DESC=	Install mbox.5/mmdf.5 manpages
MAILDIR_HEADER_CACHE_DESC=	Maildir header cache
MAILDIR_MTIME_PATCH_DESC=	Maildir mtime patch
MBOX_HOOK_PATCH_DESC=	Enhanced mbox-hook
MIXMASTER_DESC=	Mixmaster support
NCURSES_DESC=	Ncurses support
NLS_DESC=	Native language support
PARENT_CHILD_MATCH_PATCH_DESC=	Parent/child match
QUOTE_PATCH_DESC=	Extended quoting
REVERSE_REPLY_PATCH_DESC=	Reverse_reply
SIDEBAR_PATCH_DESC=	Sidebar support
SIGNATURE_MENU_DESC=	Signature menu
SLANG_DESC=	SLANG support
SMART_DATE_DESC=	Dynamic date formatting with "%@"
SMIME_OUTLOOK_COMPAT_DESC=	SMIME outlook compatibility
SMTP_DESC=	SMTP relay support
TOKYOCABINET_DESC=	Use tokyocabinet instead of Berkley DB
TRASH_PATCH_DESC=	Trash folder support
URLVIEW_DESC=	Use urlview for the URL selector menu
XML_DESC=	Use XML tools for rebuilding documentation

OPTIONS_DEFAULT=	COMPRESSED_FOLDERS HTML ICONV IDN IFDEF_PATCH \
		IMAP_HEADER_CACHE LOCALES_FIX MAILBOX_MANPAGES \
		MAILDIR_HEADER_CACHE MAILDIR_MTIME_PATCH NLS \
		NCURSES PARENT_CHILD_MATCH_PATCH QUOTE_PATCH \
		REVERSE_REPLY_PATCH SMART_DATE SMIME_OUTLOOK_COMPAT \
		SASL SMTP TRASH_PATCH URLVIEW XML GSSAPI_NONE
.endif

RUN_DEPENDS+=	${LOCALBASE}/etc/mime.types:${PORTSDIR}/misc/mime-support

.if !defined (LITE)
ASPELL_BUILD_DEPENDS=	aspell:${PORTSDIR}/textproc/aspell
ASPELL_RUN_DEPENDS=		aspell:${PORTSDIR}/textproc/aspell
ISPELL_BUILD_DEPENDS=	ispell:${PORTSDIR}/textproc/aspell-ispell
ISPELL_RUN_DEPENDS=		ispell:${PORTSDIR}/textproc/aspell-ispell
URLVIEW_RUN_DEPENDS=	urlview:${PORTSDIR}/textproc/urlview
.endif

.if defined (LITE)
PKGNAMESUFFIX=	-lite
PLIST_SUB+=	MAILBOX_MANPAGES=""
PLIST_SUB+=	COMPRESSED_FOLDERS="@comment "
PLIST_SUB+=	HTML="@comment "
PLIST_SUB+=	XML="@comment "
PLIST_SUB+=	NNTP="@comment "
# XXX bug in bpm ?
PLIST_SUB+=	NLS="@comment "
CONFIGURE_ARGS+=	--disable-nls
.endif

DEBUG_CONFIGURE_ON=	--enable-debug

# Handle ncurses/ncurses-port/slang
SLANG_CONFIGURE_ON=	--with-slang=${LOCALBASE}
SLANG_LIB_DEPENDS=	libslang.so:${PORTSDIR}/devel/libslang2
SLANG_VARS=	PKGMESSAGE=${FILESDIR}/pkg-message.slang

NCURSES_USES=	ncurses

NLS_USES=	gettext
NLS_CONFIGURE_OFF=	--disable-nls

# Handle GSSAPI from various places
GSSAPI_BASE_USES=	gssapi
GSSAPI_BASE_CONFIGURE_ON=	--with-gss=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}
GSSAPI_HEIMDAL_USES=	gssapi:heimdal
GSSAPI_HEIMDAL_CONFIGURE_ON=	--with-gss=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}
GSSAPI_MIT_USES=	gssapi:mit
GSSAPI_MIT_CONFIGURE_ON=	--with-gss=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}
GSSAPI_NONE_CONFIGURE_ON=	--without-gss

ICONV_USES=	iconv:translit
ICONV_CONFIGURE_ON=	${ICONV_CONFIGURE_ARG}
ICONV_CONFIGURE_OFF=	--disable-iconv

ASPELL_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-aspell
##PARENT_CHILD_MATCH_PATCH_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-parent-child-match
REVERSE_REPLY_PATCH_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-reverse_reply

SASL_LIB_DEPENDS=	libsasl2.so:${PORTSDIR}/security/cyrus-sasl2
SASL_CONFIGURE_ON=	--with-sasl=${LOCALBASE}

#MIXMASTER_BUILD_DEPENDS=	mixmaster:${PORTSDIR}/mail/mixmaster
MIXMASTER_RUN_DEPENDS=	mixmaster:${PORTSDIR}/mail/mixmaster
MIXMASTER_CONFIGURE_ON=	--with-mixmaster=${LOCALBASE}

SMIME_OUTLOOK_COMPAT_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-smime-outlook
SMART_DATE_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-smartdate

FLOCK_CONFIGURE_ON=	--enable-flock
FLOCK_CONFIGURE_OFF=	--disable-flock

LOCALES_FIX_CONFIGURE_ON=	--enable-locales-fix

IDN_LIB_DEPENDS=	libidn.so:${PORTSDIR}/dns/libidn
IDN_CONFIGURE_ON=	--with-idn
IDN_CONFIGURE_OFF=	--without-idn

GPGME_LIB_DEPENDS=	libgpgme.so:${PORTSDIR}/security/gpgme
GPGME_CONFIGURE_ON=	--enable-gpgme
GPGME_CONFIGURE_OFF=	--disable-gpgme

SMTP_CONFIGURE_ON=	--enable-smtp
SMTP_CONFIGURE_OFF=	--disable-smtp

MAILDIR_HEADER_CACHE_CONFIGURE_OFF=	--without-qdbm

COMPRESSED_FOLDERS_DISTFILES=	patch-${RR_PATCH_VERSION}.rr.compressed.gz:vvv
COMPRESSED_FOLDERS_CONFIGURE_ON=	--enable-compressed
COMPRESSED_FOLDERS_VARS=	XML_NEEDED=yes

QUOTE_PATCH_PATCHFILES=	patch-${VVV_PATCH_VERSION}.vvv.initials.gz:vvv \
		patch-${VVV_PATCH_VERSION}.vvv.quote.gz:vvv
QUOTE_PATCH_VARS=	XML_NEEDED=yes

NNTP_DISTFILES= patch-${VVV_PATCH_VERSION}.vvv.nntp.gz:vvv \
		patch-${VVV_PATCH_VERSION}.vvv.nntp_ru.gz:vvv
NNTP_CONFIGURE_ON=	--enable-nntp
NNTP_VARS=	XML_NEEDED=yes
NNTP_CATEGORIES=	news

SIDEBAR_PATCH_VARS=	XML_NEEDED=yes

DOCS_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-doc-ref

SIGNATURE_MENU_IGNORE=	SIGNATURE_MENU does not work at the moment
SIGNATURE_MENU_VARS=	XML_NEEDED=yes
SIGNATURE_MENU_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-signature-menu

MBOX_HOOK_PATCH_IGNORE=	MBOX_HOOK_PATCH does not work at the moment
MBOX_HOOK_PATCH_PATCHFILES=	p0-patch-${DW_MBOX_PATCH_VERSION}.dw.mbox-hook.1:dw

.include <bsd.port.options.mk>

DW_PATCH_VERSION=	1.5.6
DW_MBOX_PATCH_VERSION=	1.5.18
.if !defined(VVV_PATCH_VERSION)
VVV_PATCH_VERSION=	${PORTVERSION}
.endif
.if !defined(RR_PATCH_VERSION)
RR_PATCH_VERSION=	${PORTVERSION}
.endif
.if !defined(DW_PATCH_VERSION)
DW_PATCH_VERSION=	${PORTVERSION}
.endif
.if !defined(DW_MBOX_PATCH_VERSION)
DW_MBOX_PATCH_VERSION=	${DW_PATCH_VERSION}
.endif

# XXX
# this should be done automagically by aclocal but ....
# for now, this will have to do
pre-build::
	@${REINPLACE_CMD} -E -e "s|^(ACLOCAL = ).+|\1${ACLOCAL}|" \
			-e "s|^(AUTOCONF = ).+|\1${AUTOCONF}|" \
			-e "s|^(AUTOMAKE = ).+|\1${AUTOMAKE}|" \
			-e "s|^(AUTOHEADER = ).+|\1${AUTOHEADER}|" \
		${BUILD_WRKSRC}/Makefile

LDFLAGS+=		-L${LOCALBASE}/lib -Wl,-rpath=${LOCALBASE}/lib:/usr/lib -ltinfow
CFLAGS+=		${CFLAGS_ADD}
LDFLAGS+=		${LDFLAGS_ADD}

PATCH_DIST_STRIP=	-p1

pre-patch-PARENT_CHILD_MATCH_PATCH-on:
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-parent-child-match

pre-patch-COMPRESSED_FOLDERS-on:
	@${GUNZIP_CMD} -c ${DISTDIR}/${DIST_SUBDIR}/patch-${RR_PATCH_VERSION}.rr.compressed.gz > ${WRKDIR}/patch-compressed
	@${REINPLACE_CMD} -E '/^diff.*\/doc\/manual.txt$$/,/^diff/d' \
		 ${WRKDIR}/patch-compressed
	@${PATCH} ${PATCH_ARGS} -p1 < ${WRKDIR}/patch-compressed

pre-patch-NNTP-on:
	@${GUNZIP_CMD} -c ${DISTDIR}/${DIST_SUBDIR}/patch-${VVV_PATCH_VERSION}.vvv.nntp.gz > ${WRKDIR}/patch-nntp
	@${REINPLACE_CMD} -E '/^diff.*\/doc\/manual.txt$$/,/^diff/d' \
		${WRKDIR}/patch-nntp
	@${PATCH} ${PATCH_ARGS} -p1 < ${WRKDIR}/patch-nntp

post-patch-NNTP-on:
.if ${PORT_OPTIONS:MSIDEBAR_PATCH}
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-sidebar-nntp
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-sidebar-refresh
.endif
.if ${PORT_OPTIONS:MMAILDIR_MTIME_PATCH}
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-maildir-mtime-nntp
.endif

post-patch-NNTP-off:
.if ${PORT_OPTIONS:MSIDEBAR_PATCH}
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-sidebar
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-sidebar-refresh
.endif
.if ${PORT_OPTIONS:MMAILDIR_MTIME_PATCH}
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-maildir-mtime
.endif

post-install:
	${INSTALL_MAN} ${FILESDIR}/mailcap.5 ${STAGEDIR}${MANPREFIX}/man/man5

post-install-NNTP-on:
	${INSTALL_DATA} ${WRKSRC}/ChangeLog.nntp ${STAGEDIR}${DOCSDIR}

post-patch-GREETING_PATCH-on:
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-greeting

post-patch-IFDEF_PATCH-on:
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-ifdef

post-patch-TRASH_PATCH-on:
	@${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-trash-purge

WRKSRC=		${WRKDIR}/${DISTNAME:S/i$//}

post-patch::
	@${REINPLACE_CMD} -e 's,/usr/bin/gpg,${LOCALBASE}/bin/gpg,g' \
		${WRKSRC}/contrib/gpg.rc
	@${REINPLACE_CMD} -e 's,pgp6,pgp,g' \
		${WRKSRC}/contrib/pgp6.rc
	@${REINPLACE_CMD} -E -e 's|@samplesdir@|${EXAMPLESDIR}|g' \
		${WRKSRC}/contrib/Makefile.am

pre-configure::
	@(cd ${WRKSRC}; ${SETENV} ${AUTOMAKE_ENV} ${ACLOCAL} -I m4)
	@${RM} -f ${WRKSRC}/missing
.if defined(WITH_KRB5_SYS)
	@${ECHO_CMD} "#define HAVE_HEIMDAL" >> ${WRKSRC}/config.h.in
	@${REINPLACE_CMD} -e 's|<gssapi/gssapi\.h>|<gssapi.h>|' \
		${WRKSRC}/imap/auth_gss.c
.endif

.if ${PORT_OPTIONS:MIMAP_HEADER_CACHE} || ${PORT_OPTIONS:MMAILDIR_HEADER_CACHE}
.if ${PORT_OPTIONS:MTOKYOCABINET}
CONFIGURE_ARGS+=	--enable-hcache --without-gdbm --without-bdb --with-tokyocabinet
LIB_DEPENDS+=		libtokyocabinet.so:${PORTSDIR}/databases/tokyocabinet
.else
USE_BDB=		42+
CONFIGURE_ARGS+=	--enable-hcache --without-gdbm --with-bdb
CONFIGURE_SED=	-e 's/BDB_VERSIONS="/&${BDB_LIB_NAME} db${BDB_VER} /'
pre-configure::
	@${REINPLACE_CMD} -E ${CONFIGURE_SED} ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}.ac
.endif
.else
CONFIGURE_ARGS+=	--disable-hcache
.endif

.if defined (XML_NEEDED) && ${PORT_OPTIONS:MXML}
BUILD_DEPENDS+=	xsltproc:${PORTSDIR}/textproc/libxslt \
		${LOCALBASE}/share/xsl/docbook/html/docbook.xsl:${PORTSDIR}/textproc/docbook-xsl \
		lynx:${PORTSDIR}/www/lynx
.else
pre-build::
	@${REINPLACE_CMD} -E -e 's|-xsltproc|@-true xsltproc|g' \
		${WRKSRC}/doc/Makefile
.endif

.include <bsd.port.mk>
OpenPOWER on IntegriCloud