Tweak databases/p5-Amazon-SimpleDB version 0.03_1
[dports.git] / databases / ldb20 / Makefile
1 # $FreeBSD$
2
3 PORTNAME=               ldb
4 PORTVERSION=            2.0.9
5 PORTREVISION=           0
6 PORTEPOCH=              0
7 CATEGORIES=             databases
8 MASTER_SITES=           SAMBA
9 PKGNAMESUFFIX?=         20
10
11 MAINTAINER=             timur@FreeBSD.org
12 COMMENT=                LDAP-like embedded database
13
14 LICENSE=                GPLv3
15
16 IGNORE_NONTHREAD_PYTHON=needs port lang/python${PYTHON_SUFFIX} to be build with THREADS support
17
18 BUILD_DEPENDS=          ${LDB_DEPENDS}
19 RUN_DEPENDS=            ${LDB_DEPENDS}
20
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 \
26                         popt>=0:devel/popt
27
28 CONFLICTS_INSTALL=      ldb-1.1.* ldb1[2-9]-1.* ldb2[1-9]-2.*
29
30 USES=                   compiler pkgconfig waf
31 USE_LDCONFIG=           yes
32 WAF_CMD=                ${BUILD_WRKSRC}/buildtools/bin/waf
33 CONFIGURE_LOG=          ${BUILD_WRKSRC}/bin/config.log
34
35 USE_OPENLDAP=           yes
36 PKGCONFIGDIR?=          ${PREFIX}/libdata/pkgconfig
37 PLIST_SUB+=             PKGCONFIGDIR=${PKGCONFIGDIR:S;${PREFIX}/;;}
38
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} \
44                         --disable-rpath \
45                         --without-gettext
46
47 OPTIONS_DEFINE=         MANPAGES DEBUG PYTHON3
48 MANPAGES_DESC=          Build and install manpages (requires textproc/docbook-xsl)
49
50 DEBUG_CONFIGURE_ON=     --verbose --enable-debug
51 DEBUG_MAKE_ARGS=        --verbose
52 DEBUG_FLAGS=            -g -ggdb3 -O0
53
54 .include <bsd.port.options.mk>
55
56 LDB_BINS=               bin/ldbedit \
57                         bin/ldbmodify \
58                         bin/ldbadd \
59                         bin/ldbdel \
60                         bin/ldbsearch \
61                         bin/ldbrename
62
63 LDB_LIBS=               lib/libldb.so \
64                         lib/libldb.so.2 \
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
82 .endif
83
84 PLIST_FILES=            include/ldb_version.h \
85                         include/ldb_handlers.h \
86                         include/ldb_errors.h \
87                         include/ldb.h \
88                         include/ldb_module.h \
89                         ${LDB_BINS} \
90                         ${LDB_LIBS} \
91                         ${PKGCONFIGDIR}/ldb.pc
92
93
94 .include <bsd.port.pre.mk>
95
96 CONFIGURE_ENV+=         CFLAGS=-I${LOCALBASE}/include LDFLAGS=-L${LOCALBASE}/lib
97
98 .if ! ${PORT_OPTIONS:MMANPAGES}
99 CONFIGURE_ENV+=         XSLTPROC="true"
100 .else
101 BUILD_DEPENDS+=         ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
102                         xsltproc:textproc/libxslt
103 .endif
104
105 .if ! ${PORT_OPTIONS:MPYTHON3} || defined(NO_PYTHON)
106 USES+=                  python:2.7+,build,test
107 CONFIGURE_ARGS+=        --disable-python
108 .else
109 USES+=                  python:3.4+
110
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
117 .endif
118
119 # No fancy color error messages
120 .if ${COMPILER_TYPE} == "clang"
121 CFLAGS+=                -fno-color-diagnostics
122 .endif
123 CONFIGURE_ENV+=         NOCOLOR=yes
124 MAKE_ENV+=              NOCOLOR=yes
125
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
132
133 LDB_MAN3=               man/man3/ldb.3.gz
134
135 PLIST_FILES+=           ${LDB_MAN1} ${LDB_MAN3}
136
137 post-patch:
138                         @${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \
139                                 ${BUILD_WRKSRC}/wscript
140
141 # Use threading (or multiprocessing) but not thread (renamed in python 3+).
142 pre-configure:
143                         @if ! ${PYTHON_CMD} -c "import multiprocessing;" 2>/dev/null; then \
144                                 ${ECHO_CMD}; \
145                                 ${ECHO_MSG} "===>  ${PKGNAME} "${IGNORE_NONTHREAD_PYTHON:Q}.; \
146                                 ${ECHO_CMD}; \
147                                 ${FALSE}; \
148                         fi
149
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
154 .endfor
155
156 post-install:
157 .for lib in ${LDB_BINS} ${LDB_LIBS}
158                 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${lib}
159 .endfor
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
163 .endif
164
165 .include <bsd.port.post.mk>