summaryrefslogtreecommitdiffstats
path: root/mail/enigmail/Makefile
blob: 66b23eb6a7f8d07ce01771800782615f06247337 (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
# New ports collection makefile for:	enigmail
# Date created:			20 January 2004
# Whom:				Alex Dupre <ale@FreeBSD.org>
#
# $FreeBSD$
#

PORTNAME=	enigmail
PORTVERSION?=	1.4.3
PORTREVISION?=	0
CATEGORIES=	mail security
MASTER_SITES=	http://www.mozilla-enigmail.org/download/source/
PKGNAMEPREFIX?=	${GECKO}-

MAINTAINER=	ale@FreeBSD.org
COMMENT?=	A GnuPG extension for the Mozilla mail clients

.if defined(PACKAGE_BUILDING)
FETCH_DEPENDS=	${GECKO_DEPENDS}
.endif
EXTRACT_DEPENDS=${GECKO_DEPENDS}
BUILD_DEPENDS=	${GECKO}:${PORTSDIR}/${GECKO_PORTDIR}
RUN_DEPENDS=	${GECKO}:${PORTSDIR}/${GECKO_PORTDIR} \
		gpg:${PORTSDIR}/security/gnupg

.if !defined(GECKO)
GECKO=		libxul
GECKO_PORTDIR=	www/${GECKO}
IGNORE=		is an abstract port: use one of the slave ports
.endif

GECKO_DEPENDS=	${NONEXISTENT}:${PORTSDIR}/${GECKO_PORTDIR}:build \
		${GECKO}:${PORTSDIR}/${GECKO_PORTDIR} \
		autoconf-2.13:${PORTSDIR}/devel/autoconf213 \
		gmake:${PORTSDIR}/devel/gmake \
		intltool-extract:${PORTSDIR}/textproc/intltool \
		${LOCALBASE}/libdata/pkgconfig/printproto.pc:${PORTSDIR}/x11/printproto \
		unzip:${PORTSDIR}/archivers/unzip \
		yasm:${PORTSDIR}/devel/yasm

GECKO_WRKSRC=	${WRKDIR}/../../../${GECKO_PORTDIR}/work/${GECKO_EXTDIR}
WRKSRC=		${WRKDIR}/${GECKO_EXTDIR}
MOZOBJ=		${WRKSRC}

USE_GMAKE=	yes

.include <bsd.port.pre.mk>

XPI_FILE=	${MOZOBJ}/mozilla/dist/bin/${DISTNAME}-freebsd-${ARCH:S/amd64/x86_64/}.xpi
XPI_LIBDIR=	${PREFIX}/lib/xpi
XPI_ORIG_ID=	{847b3a00-7ab1-11d4-8f02-006008948af5}
XPI_ID=		${GECKO}@mozilla-enigmail.org
XPI_ID_RFILES=	${XPI_LIBDIR}/${XPI_ID}/install.rdf \
		${XPI_LIBDIR}/${XPI_ID}/components/enigmail.js \
		${XPI_LIBDIR}/${XPI_ID}/modules/enigmailCommon.jsm

do-extract:
	@${RM} -rf ${WRKDIR}
	@${MKDIR} ${WRKDIR}
	@${CP} -Rp ${GECKO_WRKSRC} ${WRKDIR}
	@for f in ${EXTRACT_ONLY}; do \
		cd ${WRKSRC}/mailnews/extensions && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/$$f ${EXTRACT_AFTER_ARGS}; \
	done

pre-patch:
	@${REINPLACE_CMD} -e "s|${GECKO_PORTDIR}|${GECKO_PORTDIR:S/www/mail/:S/\//\/enigmail-/}|g" \
		`${FIND} ${WRKSRC} -name autoconf.mk`

post-patch:
	${REINPLACE_CMD} "s,/usr/bin/perl,${PERL}," \
		${WRKSRC}/mailnews/extensions/enigmail/makemake
	${REINPLACE_CMD} "s/^XPI_MODULE_VERS = [0-9.]*/XPI_MODULE_VERS = ${PORTVERSION}/" \
		${WRKSRC}/mailnews/extensions/enigmail/Makefile.in
	${REINPLACE_CMD} "s,<em:version>[0-9.a-z]*</em:version>,<em:version>${PORTVERSION}</em:version>," \
		${WRKSRC}/mailnews/extensions/enigmail/package/install.rdf
.if ${GECKO_PORTDIR:M*-esr}
	${REINPLACE_CMD} "s,<em:minVersion>12.0</em:minVersion>,<em:minVersion>10.0</em:minVersion>," \
		${WRKSRC}/mailnews/extensions/enigmail/package/install.rdf
.endif

do-build:
	cd ${WRKSRC}/mailnews/extensions/enigmail && \
		./makemake -r -o ${MOZOBJ} && \
		${SETENV} ${MAKE_ENV} ${GMAKE} ${_MAKE_JOBS} \
			-C ${MOZOBJ}/mailnews/extensions/enigmail && \
		${SETENV} ${MAKE_ENV} ${GMAKE} ${_MAKE_JOBS} xpi \
			-C ${MOZOBJ}/mailnews/extensions/enigmail

do-install:
	@${MKDIR} ${XPI_LIBDIR}/${XPI_ID} ${XPI_LIBDIR}/symlinks/${GECKO}
	@(cd ${XPI_LIBDIR}/${XPI_ID}; ${TAR} -xf ${XPI_FILE})
	@${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${XPI_LIBDIR}/${XPI_ID}
	@${REINPLACE_CMD} -i "" "s/${XPI_ORIG_ID}/${XPI_ID}/" ${XPI_ID_RFILES}
	@${CHMOD} -R a+rX,go-w ${XPI_LIBDIR}/${XPI_ID}
	@${LN} -sf ${XPI_LIBDIR}/${XPI_ID} ${LOCALBASE}/lib/${GECKO}/extensions 2>/dev/null || true
	@${LN} -sf ${XPI_LIBDIR}/${XPI_ID} ${XPI_LIBDIR}/symlinks/${GECKO} 2>/dev/null || true
	@(cd ${XPI_LIBDIR}; ${FIND} ${XPI_ID} -not -type d) | ${SORT} | \
		${SED} -ne 's,^,lib/xpi/,p' >> ${TMPPLIST}
	@${ECHO_CMD} 'lib/xpi/symlinks/${GECKO}/${XPI_ID}' >> ${TMPPLIST}
	@${ECHO_CMD} '@exec ${LN} -sf %D/lib/xpi/${XPI_ID} ${LOCALBASE}/lib/${GECKO}/extensions 2>/dev/null || true' >> ${TMPPLIST}
	@${ECHO_CMD} '@unexec ${RM} -f ${LOCALBASE}/lib/${GECKO}/extensions/${XPI_ID}' >> ${TMPPLIST}
	@(cd ${XPI_LIBDIR}; ${FIND} ${XPI_ID} -type d) | ${SORT} -r | \
		${SED} -ne 's,^,@dirrm lib/xpi/,p' >> ${TMPPLIST}
	@${ECHO_CMD} '@unexec rmdir %D/lib/xpi/symlinks/${GECKO} 2>/dev/null || true' >> ${TMPPLIST}
	@${ECHO_CMD} '@unexec rmdir %D/lib/xpi/symlinks 2>/dev/null || true' >> ${TMPPLIST}
	@${ECHO_CMD} '@unexec rmdir %D/lib/xpi 2>/dev/null || true' >> ${TMPPLIST}

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