11 MAINTAINER= timur@FreeBSD.org
12 COMMENT= LDAP-like embedded database
16 IGNORE_NONTHREAD_PYTHON=needs port lang/python${PYTHON_SUFFIX} to be build with THREADS support
18 BUILD_DEPENDS= ${LDB_DEPENDS}
19 RUN_DEPENDS= ${LDB_DEPENDS}
21 LDB_DEPENDS= talloc>=2.2.0:devel/talloc \
22 tevent>=0.10.0:devel/tevent \
23 tdb>=1.4.0:databases/tdb \
24 lmdb>=0.9.23:databases/lmdb \
25 cmocka>=1.1.3:sysutils/cmocka \
28 CONFLICTS_INSTALL= ldb-1.1.* ldb1[2-9]-1.* ldb2[1-9]-2.*
30 USES= compiler pkgconfig waf
32 WAF_CMD= ${BUILD_WRKSRC}/buildtools/bin/waf
33 CONFIGURE_LOG= ${BUILD_WRKSRC}/bin/config.log
36 PKGCONFIGDIR?= ${PREFIX}/libdata/pkgconfig
37 PLIST_SUB+= PKGCONFIGDIR=${PKGCONFIGDIR:S;${PREFIX}/;;}
39 CONFIGURE_ARGS+= --bundled-libraries=!talloc,!tevent,!tdb,!popt,!cmocka \
40 --with-modulesdir=${PREFIX}/lib/shared-modules \
41 --with-privatelibdir=${PREFIX}/lib/ldb \
42 --mandir=${MANPREFIX}/man \
43 --with-openldap=${LOCALBASE} \
47 OPTIONS_DEFINE= MANPAGES DEBUG PYTHON3
48 MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
50 DEBUG_CONFIGURE_ON= --verbose --enable-debug
51 DEBUG_MAKE_ARGS= --verbose
52 DEBUG_FLAGS= -g -ggdb3 -O0
54 .include <bsd.port.options.mk>
56 LDB_BINS= bin/ldbedit \
63 LDB_LIBS= lib/libldb.so \
65 lib/ldb/libldb-tdb-int.so \
66 lib/ldb/libldb-tdb-err-map.so \
67 lib/ldb/libldb-key-value.so \
68 lib/ldb/libldb-cmdline.so \
69 lib/shared-modules/ldb/skel.so \
70 lib/shared-modules/ldb/server_sort.so \
71 lib/shared-modules/ldb/sample.so \
72 lib/shared-modules/ldb/rdn_name.so \
73 lib/shared-modules/ldb/paged_searches.so \
74 lib/shared-modules/ldb/ldb.so \
75 lib/shared-modules/ldb/ldap.so \
76 lib/shared-modules/ldb/asq.so \
77 lib/shared-modules/ldb/tdb.so
78 # Only for 64-bit architectures
79 .if ${ARCH} != armv6 && ${ARCH} != armv7 && ${ARCH} != i386 && ${ARCH} != mips && ${ARCH} != powerpc && ${ARCH} != powerpcspe
80 LDB_LIBS+= lib/ldb/libldb-mdb-int.so \
81 lib/shared-modules/ldb/mdb.so
84 PLIST_FILES= include/ldb_version.h \
85 include/ldb_handlers.h \
86 include/ldb_errors.h \
88 include/ldb_module.h \
91 ${PKGCONFIGDIR}/ldb.pc
94 .include <bsd.port.pre.mk>
96 CONFIGURE_ENV+= CFLAGS=-I${LOCALBASE}/include LDFLAGS=-L${LOCALBASE}/lib
98 .if ! ${PORT_OPTIONS:MMANPAGES}
99 CONFIGURE_ENV+= XSLTPROC="true"
101 BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
102 xsltproc:textproc/libxslt
105 .if ! ${PORT_OPTIONS:MPYTHON3} || defined(NO_PYTHON)
106 USES+= python:2.7+,build,test
107 CONFIGURE_ARGS+= --disable-python
111 PLIST_FILES+= include/pyldb.h \
112 lib/libpyldb-util.so \
113 lib/libpyldb-util.so.2 \
114 ${PYTHON_SITELIBDIR}/ldb.so \
115 ${PYTHON_SITELIBDIR}/_ldb_text.py \
116 ${PKGCONFIGDIR}/pyldb-util.pc
119 # No fancy color error messages
120 .if ${COMPILER_TYPE} == "clang"
121 CFLAGS+= -fno-color-diagnostics
123 CONFIGURE_ENV+= NOCOLOR=yes
124 MAKE_ENV+= NOCOLOR=yes
126 LDB_MAN1= man/man1/ldbadd.1.gz \
127 man/man1/ldbdel.1.gz \
128 man/man1/ldbedit.1.gz \
129 man/man1/ldbmodify.1.gz \
130 man/man1/ldbrename.1.gz \
131 man/man1/ldbsearch.1.gz
133 LDB_MAN3= man/man3/ldb.3.gz
135 PLIST_FILES+= ${LDB_MAN1} ${LDB_MAN3}
138 @${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \
139 ${BUILD_WRKSRC}/wscript
141 # Use threading (or multiprocessing) but not thread (renamed in python 3+).
143 @if ! ${PYTHON_CMD} -c "import multiprocessing;" 2>/dev/null; then \
145 ${ECHO_MSG} "===> ${PKGNAME} "${IGNORE_NONTHREAD_PYTHON:Q}.; \
150 pre-build-MANPAGES-off:
151 -${MKDIR} ${BUILD_WRKSRC}/bin/default/man
152 .for man in ${LDB_MAN1} ${LDB_MAN3}
153 ${INSTALL_MAN} ${FILESDIR}/`basename ${man} .gz` ${BUILD_WRKSRC}/bin/default/man
157 .for lib in ${LDB_BINS} ${LDB_LIBS}
158 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${lib}
160 .if ${PORT_OPTIONS:MPYTHON3} && !defined(NO_PYTHON)
161 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpyldb-util.so
162 ${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/ldb.so
165 .include <bsd.port.post.mk>