aboutsummaryrefslogtreecommitdiffstats
path: root/mail/enigmail/Makefile
blob: 352eb27d2c612cd3b444e0b37589d5f40363203e (plain) (blame)
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.4
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>