summaryrefslogtreecommitdiff
path: root/mail/postfix/Makefile
blob: 0eeaa7af535ead34f4b29e4a72544f5cb86e6e99 (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
# $NetBSD: Makefile,v 1.142 2004/07/19 22:10:52 jlam Exp $

DISTNAME=	postfix-2.1.3
CATEGORIES=	mail
MASTER_SITES=	ftp://ftp.porcupine.org/mirrors/postfix-release/official/
DIST_SUBDIR=	postfix

PATCHFILES+=		postfix-2.1.1-canonical_classes.diff
PATCH_SITES+=		ftp://ftp.gw.com/pub/people/kim/patches/
PATCH_DIST_STRIP=	-p1

MAINTAINER=	martti@NetBSD.org
HOMEPAGE=	http://www.postfix.org/
COMMENT=	Postfix SMTP server and tools

CONFLICTS+=	sendmail-[0-9]*

PKG_INSTALLATION_TYPES=	overwrite pkgviews
USE_BUILDLINK3=		yes

.include "../../mk/bsd.prefs.mk"

# POSTFIX_QUEUE_DIR is the default queue directory for Postfix.  This is
# merely a default, and may be changed by setting "queue_directory" in
# ${PKG_SYSCONFDIR}/main.cf.
#
POSTFIX_QUEUE_DIR?=	${VARBASE}/spool/postfix

# CCARGS is a list of options to pass to the preprocessor/compiler.
# AUXLIBS is a list of options to pass to the linker.
#
CCARGS=		# empty
AUXLIBS=	# empty
FIX_RPATH+=	AUXLIBS

CCARGS+=	-DDEF_CONFIG_DIR=\"${PKG_SYSCONFDIR}\"
CCARGS+=	-DDEF_QUEUE_DIR=\"${POSTFIX_QUEUE_DIR}\"
CCARGS+=	-DDEF_COMMAND_DIR=\"${PREFIX}/sbin\"
CCARGS+=	-DDEF_DAEMON_DIR=\"${LIBEXECDIR}\"
CCARGS+=	-DDEF_SENDMAIL_PATH=\"${PREFIX}/sbin/sendmail\"
CCARGS+=	-DDEF_MAILQ_PATH=\"${PREFIX}/bin/mailq\"
CCARGS+=	-DDEF_NEWALIAS_PATH=\"${PREFIX}/bin/newaliases\"

# Makefile.options appends to CCARGS and AUXLIBS the options needed to
# build Postfix with support for various add-on modules.  It also defines
# _POSTFIX_OPTIONS, which is POSTFIX_OPTIONS filtered to only contain
# supported modules.
#
.include "Makefile.options"

PKG_SYSCONFSUBDIR=	postfix
LIBEXECDIR=		${PREFIX}/libexec/${PKGBASE}
DOCDIR=			${PREFIX}/share/doc/${PKGBASE}
EXAMPLEDIR=		${PREFIX}/share/examples/${PKGBASE}

FILES_SUBST+=		EXAMPLEDIR=${EXAMPLEDIR}
MESSAGE_SUBST+=		EXAMPLEDIR=${EXAMPLEDIR}
MESSAGE_SUBST+=		DOCDIR=${DOCDIR}

MESSAGE_SRC+=		${PKGDIR}/MESSAGE
.if exists(${PKGDIR}/MESSAGE.${OPSYS})
MESSAGE_SRC+=		${PKGDIR}/MESSAGE.${OPSYS}
.endif
PLIST_SRC+=		${PKGDIR}/PLIST

ALL_TARGET=		# empty
MAKE_ENV=		CC="${CC}" OPT="${CFLAGS}"
MAKE_ENV+=		AUXLIBS="${AUXLIBS}" CCARGS="${CCARGS}"

USE_PKGINSTALL=		yes
RCD_SCRIPTS=		postfix
OWN_DIRS+=		${POSTFIX_QUEUE_DIR}
MAKE_DIRS+=		${PKG_SYSCONFDIR}

PKG_GROUPS?=		postfix maildrop
PKG_USERS?=		postfix:postfix::Postfix\\ User:${POSTFIX_QUEUE_DIR}

CONF_FILES=		# empty
.for _file_ in main.cf master.cf postfix-files
CONF_FILES+=		${EXAMPLEDIR}/${_file_} ${PKG_SYSCONFDIR}/${_file_}
.endfor
CONF_FILES_PERMS=	# empty
.for _file_ in post-install postfix-script
CONF_FILES_PERMS+=	${EXAMPLEDIR}/${_file_} ${PKG_SYSCONFDIR}/${_file_} \
			${ROOT_USER} ${ROOT_GROUP} 755
.endfor
.undef _file_
.if !empty(_POSTFIX_OPTIONS:Msasl)
MAKE_DIRS+=		${SASLLIBDIR}
CONF_FILES+=		${EXAMPLEDIR}/smtpd.conf ${SASLLIBDIR}/smtpd.conf
.endif

POSTFIX_CONF_FILES=	conf/main.cf src/util/sys_defs.h		\
			src/global/mail_params.h postfix-install

pre-configure:
	@for i in ${POSTFIX_CONF_FILES}; do				\
		${CP} ${WRKSRC}/$${i} ${WRKSRC}/$${i}.dist;		\
		${SED} ${FILES_SUBST_SED} ${WRKSRC}/$${i}.dist		\
			> ${WRKSRC}/$${i};				\
	done

do-configure:
	cd ${WRKSRC} &&							\
	${SETENV} ${MAKE_ENV} ${MAKE} -f Makefile.init makefiles	\
		'CCARGS=${CCARGS}' 'AUXLIBS=${AUXLIBS}'

post-build:
	@${SED} ${FILES_SUBST_SED} ${FILESDIR}/mailer.conf		\
		> ${WRKDIR}/mailer.conf
.if !empty(_POSTFIX_OPTIONS:Msasl)
	${ECHO} "pwcheck_method: ${PWCHECK_METHOD}" > ${WRKDIR}/smtpd.conf
.endif

POSTFIX_EXAMPLE_FILES=	LICENSE access aliases canonical header_checks	\
			main.cf main.cf.default makedefs.out master.cf	\
			postfix-files relocated transport virtual

do-install:
	${INSTALL_DATA_DIR} ${LIBEXECDIR}
	${INSTALL_DATA_DIR} ${EXAMPLEDIR}
	${INSTALL_DATA_DIR} ${DOCDIR}
	-${RM} -f ${WRKSRC}/conf/*.orig
.if !empty(_POSTFIX_OPTIONS:Msasl)
	${INSTALL_DATA} ${WRKDIR}/smtpd.conf ${EXAMPLEDIR}
.endif
	@for i in ${POSTFIX_EXAMPLE_FILES}; do				\
		${INSTALL_DATA} ${WRKSRC}/conf/$$i ${EXAMPLEDIR}/$$i;	\
	done
	${INSTALL_SCRIPT} ${WRKSRC}/conf/post-install ${EXAMPLEDIR}
	${INSTALL_SCRIPT} ${WRKSRC}/conf/postfix-script ${EXAMPLEDIR}
	${INSTALL_DATA} ${WRKDIR}/mailer.conf ${EXAMPLEDIR}/mailer.conf
	cd ${WRKSRC}; ${SH} ./postfix-install -non-interactive		\
		config_directory="${EXAMPLEDIR}"

.include "../../mk/bsd.pkg.mk"