summaryrefslogtreecommitdiff
path: root/databases/openldap/Makefile.common
blob: 996f2b316b67eff10d8b258af0c24a3627e629be (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
# $NetBSD: Makefile.common,v 1.30 2012/03/13 19:57:10 adam Exp $
#
# used by databases/openldap-client/Makefile
# used by databases/openldap-cloak/Makefile
# used by databases/openldap-nops/Makefile
# used by databases/openldap-server/Makefile
# used by databases/openldap-smbk5pwd/Makefile

# please stick to the "stable" releases as much as possible!
DISTNAME=	openldap-2.4.30
CATEGORIES=	databases
MASTER_SITES=	ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/ \
		http://www.openldap.org/software/download/OpenLDAP/openldap-release/ \
		ftp://gd.tuwien.ac.at/infosys/network/OpenLDAP/openldap-release/ \
		ftp://ftp.ntua.gr/mirror/OpenLDAP/openldap-release/ \
		ftp://ftp.dti.ad.jp/pub/net/OpenLDAP/openldap-release/ \
		ftp://ftp.u-aizu.ac.jp/pub/net/openldap/openldap-release/ \
		ftp://ftp.nl.uu.net/pub/unix/db/openldap/openldap-release/ \
		ftp://ftp.linux.pt/pub/mirrors/OpenLDAP/openldap-release/ \
		ftp://sunsite.cnlab-switch.ch/mirror/OpenLDAP/openldap-release/
EXTRACT_SUFX=	.tgz

MAINTAINER=	ghen@NetBSD.org
HOMEPAGE=	http://www.openldap.org/
LICENSE=	modified-bsd

CONFLICTS+=		ldapsdk-[0-9]*

DISTINFO_FILE=		${.CURDIR}/../../databases/openldap/distinfo
PATCHDIR=		${.CURDIR}/../../databases/openldap/patches
FILESDIR=		${.CURDIR}/../../databases/openldap/files

USE_LIBTOOL=		yes
USE_TOOLS+=		soelim
GNU_CONFIGURE=		yes

MAKE_ENV+=		LIBMODE=${LIBMODE}

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

OPENLDAP_ETCDIR?=	${PKG_SYSCONFDIR}/openldap
OPENLDAP_MODULEDIR=	${PREFIX}/lib/openldap
OPENLDAP_VARDIR?=	${VARBASE}/openldap

SLAPD_USER?=		slapd
LDAP_GROUP?=		ldap

PKG_GROUPS_VARS+=	LDAP_GROUP
PKG_USERS_VARS+=	SLAPD_USER

# the internal avl_* prototypes conflict with those in <sys/avl.h> which
# is included by another system header file on Solaris, so subst them.
.if ${OPSYS} == "SunOS"
SUBST_CLASSES+=		conflict
SUBST_STAGE.conflict=	post-patch
SUBST_FILES.conflict=	${WRKSRC}/*/*.h
SUBST_FILES.conflict+=	${WRKSRC}/*/*/*.c ${WRKSRC}/*/*/*/*.c
SUBST_SED.conflict+=	-e 's,avl_free,openldap_avl_free,g'
SUBST_SED.conflict+=	-e 's,avl_insert,openldap_avl_insert,g'
SUBST_SED.conflict+=	-e 's,avl_delete,openldap_avl_delete,g'
SUBST_SED.conflict+=	-e 's,avl_find,openldap_avl_find,g'
SUBST_SED.conflict+=	-e 's,avl_find2,openldap_avl_find2,g'
SUBST_MESSAGE.conflict=	Fixing conflicting function prototypes.
.endif

CPPFLAGS.Darwin+=	-DBIND_8_COMPAT
CPPFLAGS.Linux+=	-D_GNU_SOURCE

CONFIGURE_ARGS+=	--sysconfdir=${PKG_SYSCONFDIR}
CONFIGURE_ARGS+=	--localstatedir=${OPENLDAP_VARDIR}
CONFIGURE_ARGS+=	--enable-dynamic
CONFIGURE_ARGS+=	--with-tls=openssl

EGDIR=			${PREFIX}/share/examples/openldap

CONF_FILES=		# empty
CONF_FILES_PERMS=	# empty
.for file in ${CNFS}
CONF_FILES+=		${EGDIR}/${file} ${OPENLDAP_ETCDIR}/${file}
.endfor
.for file in ${CNFS_PERMS}
CONF_FILES_PERMS+=	${EGDIR}/${file} ${OPENLDAP_ETCDIR}/${file} ${OPENLDAP_FILEPERMS}
.endfor

DB_CONFIG?=		# empty

PTHREAD_OPTS+=		require

.include "../../security/openssl/buildlink3.mk"
.include "../../security/tcp_wrappers/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"

.if ${PTHREAD_TYPE} == "native"
CONFIGURE_ARGS+=	--with-threads
.elif ${PTHREAD_TYPE} == "pth"
CONFIGURE_ARGS+=	--with-threads=pth

# Don't use a larger FD_SETSIZE than GNU Pth can handle (value taken from
# pth.h header).
PTH_FDSETSIZE_cmd=							\
	if ${TEST} -f ${BUILDLINK_PREFIX.pth:Q}/include/pth.h; then	\
		${AWK} '/if FD_SETSIZE >/ { print $$4 }'		\
			${BUILDLINK_PREFIX.pth}/include/pth.h;		\
	else								\
		${ECHO} 0;						\
	fi
CPPFLAGS+=	-DOPENLDAP_FD_SETSIZE=${PTH_FDSETSIZE_cmd:sh:Q}
.endif

MAKE_FLAGS+=		moduledir=${OPENLDAP_MODULEDIR}
INSTALL_MAKE_FLAGS=	${MAKE_FLAGS} sysconfdir=${EGDIR}

# Set the correct file modes for the example config files.
post-install:
.for file in ${CNFS} ${CNFS_PERMS} ${DB_CONFIG}
	${CHMOD} ${SHAREMODE} ${DESTDIR}${EGDIR}/${file:Q}
	${RM} -f ${DESTDIR}${EGDIR}/${file:Q}.default
.endfor