]> git.ipfire.org Git - thirdparty/pdns.git/blame - configure.ac
Merge pull request #1556 from cmouse/yahttp-upgrade-20140717
[thirdparty/pdns.git] / configure.ac
CommitLineData
39653d75
RK
1AC_PREREQ([2.61])
2
ba1a571d
CH
3dnl The following lines may be patched by set-version-auth.
4AC_INIT([pdns], [git])
5dnl AC_SUBST([DIST_HOST], [TO_BE_PATCHED])
6dnl End patch area.
39653d75 7
6707cb12 8AC_CONFIG_SRCDIR([pdns/receiver.cc])
39653d75
RK
9AC_CONFIG_MACRO_DIR([m4])
10AC_CONFIG_HEADERS([config.h])
11AC_CONFIG_AUX_DIR([build-aux])
12
544eba17 13AM_INIT_AUTOMAKE([foreign tar-ustar -Wno-portability subdir-objects])
f984ca21 14m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
39653d75 15
92a4978f 16AC_CANONICAL_HOST
be1bd362 17AC_C_BIGENDIAN
51303a35 18: ${CXXFLAGS="-Wall -O2"}
39653d75 19
92a4978f
BH
20AC_PROG_CC
21AC_PROG_CXX
dd50be34 22AM_PROG_CC_C_O
92a4978f
BH
23AC_PROG_YACC
24AM_PROG_LEX
25AC_PROG_INSTALL
26AC_PROG_MAKE_SET
39653d75 27
66da2833 28AC_LANG([C++])
92a4978f 29
59414d0e 30m4_ifndef([LT_INIT],[
dbff3daf 31AC_PROG_LIBTOOL([disable-static])
59414d0e 32],[
dbff3daf 33LT_INIT([disable-static])
59414d0e
RK
34])
35
96ae9a2e
KM
36MC_TM_GMTOFF
37
39653d75
RK
38AM_CONDITIONAL([RELEASE_BUILD], [test "$PACKAGE_VERSION" != "git"])
39
0949b8ae
CH
40# Define full_libdir to be the fully expanded (${exec_prefix}, etc.)
41# "system" library path.
42# We use this to search for other libraries.
43eval full_libdir="\"$libdir\""
39653d75 44
4ae885ac
PD
45# detect pkg-config explicitly
46PKG_PROG_PKG_CONFIG
47
051f0aaa
RK
48AC_CHECK_PROG([RAGEL], [ragel], [ragel])
49AC_CHECK_PROG([ASCIIDOC], [asciidoc], [asciidoc])
d81a3e14 50
051f0aaa 51PDNS_WITH_LUA
d81a3e14 52
4d220500 53BOOST_REQUIRE([1.35])
92a4978f 54BOOST_FOREACH
92a4978f
BH
55BOOST_PROGRAM_OPTIONS([mt])
56BOOST_SERIALIZATION([mt])
051f0aaa 57
fedea66a 58PDNS_ENABLE_UNIT_TESTS
051f0aaa 59
32869e14 60dnl Allow user to require SQLite3
39653d75
RK
61AC_MSG_CHECKING([whether user requires sqlite3])
62AC_ARG_WITH([sqlite3],
63 [AS_HELP_STRING([--with-sqlite3],[include sqlite3 driver @<:@default=no@:>@])],
64 [WITH_SQLITE3=$withval],
65 [WITH_SQLITE3=no]
66)
67AC_MSG_RESULT([$WITH_SQLITE3])
32869e14
PD
68SQLITE3PC=sqlite3
69if test "$WITH_SQLITE3" != "no"; then
70 needsqlite3=yes
71 if test "$WITH_SQLITE3" != "yes"; then
72 SQLITE3PC=$WITH_SQLITE3
73 fi
74fi
75
92a4978f
BH
76dnl Checks for typedefs, structures, and compiler characteristics.
77AC_TYPE_SIZE_T
92a4978f
BH
78
79dnl Checks for library functions.
39653d75 80AC_CHECK_FUNCS([strcasestr])
92a4978f
BH
81
82# Check for libdl
92a4978f
BH
83LIBS="$LIBS -lz"
84
85my_save_LIBS="$LIBS"
86LIBS=""
87AC_CHECK_LIB(dl,dlopen)
88LIBDL=$LIBS
89LIBS="$my_save_LIBS"
90AC_SUBST(LIBDL)
91
92AC_MSG_CHECKING([for RTLD_NOW]);
93ac_save_LIBS="$LIBS"
94LIBS="$LIBS $LIBDL"
67e8df4c
RK
95AC_LINK_IFELSE(
96 [AC_LANG_PROGRAM([[#include <dlfcn.h>]],
97 [[(void) dlopen("",RTLD_NOW);]])],
98 [has_RTLD_NOW=yes],
99 [has_RTLD_NOW=no])
92a4978f 100AC_MSG_RESULT([$has_RTLD_NOW])
39653d75
RK
101if test "$has_RTLD_NOW" = "no"; then
102 AC_DEFINE(NEED_RTLD_NOW,,[If host OS misses RTLD_NOW])
92a4978f
BH
103fi
104LIBS=$ac_save_LIBS
105
c2a155b1
PD
106# Check for libcrypt
107
108my_save_LIBS="$LIBS"
109LIBS=""
110AC_CHECK_LIB(crypt, crypt)
111LIBCRYPT=$LIBS
112LIBS="$my_save_LIBS"
113AC_SUBST(LIBCRYPT)
114
92a4978f
BH
115DYNLINKFLAGS=""
116THREADFLAGS=""
117
642fb7d7 118AM_CONDITIONAL([OS_MACOSX], false)
92a4978f
BH
119case "$host_os" in
120solaris2.10)
39653d75
RK
121 AC_DEFINE(HAVE_IPV6,1,[If the host operating system understands IPv6])
122 LIBS="-lposix4 -lresolv -lnsl -lsocket -lpthread -lrt $LIBS"
123 CXXFLAGS="-D_REENTRANT $CXXFLAGS"
124 ;;
92a4978f 125
be1bd362 126solaris2.8 | solaris2.9 )
39653d75
RK
127 AC_DEFINE(NEED_POSIX_TYPEDEF,,[If POSIX typedefs need to be defined])
128 AC_DEFINE(NEED_INET_NTOP_PROTO,,[If your OS is so broken that it needs an additional prototype])
129 AC_DEFINE(HAVE_IPV6,1,[If the host operating system understands IPv6])
130 LIBS="-lposix4 -lresolv -lnsl -lsocket -lpthread $LIBS"
131 CXXFLAGS="-D_REENTRANT $CXXFLAGS"
132 ;;
be1bd362 133solaris2.6 | solaris2.7)
39653d75
RK
134 AC_DEFINE(NEED_POSIX_TYPEDEF,,[If POSIX typedefs need to be defined])
135 AC_DEFINE(NEED_INET_NTOP_PROTO,,[If your OS is so broken that it needs an additional prototype])
136 LIBS="-lposix4 -lresolv -lnsl -lsocket -lpthread $LIBS"
137 CXXFLAGS="-D_REENTRANT $CXXFLAGS"
138 ;;
92a4978f 139linux*)
39653d75
RK
140 AC_DEFINE(HAVE_IPV6,1,[If the host operating system understands IPv6])
141 DYNLINKFLAGS="-rdynamic"
142 LDFLAGS="$LDFLAGS -lrt"
143 THREADFLAGS="-pthread"
144 CXXFLAGS="-D_GNU_SOURCE $CXXFLAGS"
145 ;;
df086d35 146darwin11* | darwin12* | darwin13*)
39653d75
RK
147 AC_DEFINE(HAVE_IPV6,1,[If the host operating system understands IPv6])
148 DYNLINKFLAGS="-rdynamic"
149 LDFLAGS="-pthread $LDFLAGS"
150 CXXFLAGS="-pthread $CXXFLAGS -D__APPLE_USE_RFC_3542"
151 AM_CONDITIONAL([OS_MACOSX], true)
152 ;;
92a4978f 153*)
39653d75
RK
154 AC_DEFINE(HAVE_IPV6,1,[If the host operating system understands IPv6])
155 DYNLINKFLAGS="-rdynamic"
156 LDFLAGS="-pthread $LDFLAGS"
157 CXXFLAGS="-pthread $CXXFLAGS"
158 ;;
92a4978f
BH
159esac
160
161AC_SUBST(THREADFLAGS)
92a4978f
BH
162AC_SUBST(DYNLINKFLAGS)
163
8ffe1c55 164PDNS_ENABLE_VERBOSE_LOGGING
08bc56f4 165PDNS_WITH_SYSTEM_POLARSSL
5b117c5e 166PDNS_ENABLE_BOTAN
8daea594 167PDNS_ENABLE_PKCS11
1f0f33bc 168PDNS_WITH_CRYPTOPP
2239e91b 169PDNS_ENABLE_REMOTEBACKEND_ZEROMQ
a7db8aa6 170
39653d75 171AC_MSG_CHECKING([whether we should build static binaries])
92a4978f 172
39653d75
RK
173AC_ARG_ENABLE([static-binaries],
174 [AS_HELP_STRING([--enable-static-binaries],[build static binaries])],
175 [case "${enableval}" in
176 yes) static=true ;;
177 no) static=false ;;
178 *) AC_MSG_ERROR(bad value ${enableval} for --enable-static-binaries) ;;
179 esac],
180 [debug=false]
181)
182AC_MSG_RESULT([$static])
92a4978f 183
39653d75 184AM_CONDITIONAL([ALLSTATIC], [test "x$static" = "xtrue"])
92a4978f 185
39653d75
RK
186if test "x$static" = "xtrue"; then
187 LDFLAGS="-all-static $LDFLAGS"
92a4978f
BH
188fi
189
e53a4bf6 190modules="bind gmysql geo random"
39653d75 191AC_ARG_WITH([modules],
ae2f3feb 192 [AS_HELP_STRING([--with-modules],[which backends to compile with @<:@default=bind gmysql geo random@:>@])],
39653d75
RK
193 [modules="$withval"]
194)
92a4978f
BH
195
196dynmodules="pipe"
39653d75
RK
197AC_ARG_WITH([dynmodules],
198 [AS_HELP_STRING([--with-dynmodules],[which backends to build for dynamic loading @<:@default=pipe@:>@])],
199 [dynmodules="$withval"]
200)
92a4978f
BH
201
202AC_SUBST(socketdir)
203socketdir="/var/run"
39653d75
RK
204AC_ARG_WITH([socketdir],
205 [AS_HELP_STRING([--with-socketdir],[where the controlsocket lives @<:@default=/var/run@:>@])],
206 [socketdir="$withval"]
207)
92a4978f
BH
208
209AC_SUBST(moduledirs)
210AC_SUBST(moduleobjects)
211AC_SUBST(modulelibs)
39653d75 212AC_DEFINE_UNQUOTED([PDNS_MODULES],"$modules", [Built-in modules])
92a4978f 213
39653d75
RK
214AC_MSG_CHECKING([whether we will be building the server])
215AC_ARG_ENABLE([pdns-server],
216 [AS_HELP_STRING([--enable-pdns_server],[if we should build the server @<:@default=yes@:>@])],
217 [enable_pdns_server=$enableval],
218 [enable_pdns_server=yes]
219)
220AC_MSG_RESULT([$enable_pdns_server])
92a4978f 221
39653d75
RK
222AS_IF([test "x$enable_pdns_server" = "xyes"],
223 [programdescend=pdns]
224)
92a4978f
BH
225
226AC_SUBST(programdescend)
227
39653d75
RK
228AC_ARG_ENABLE([gcc-skip-locking],
229 [AS_HELP_STRING([--enable-gcc-skip-locking],[if we should forcefully skip gcc locking @<:@default=no@:>@])],
230 [AC_DEFINE(GCC_SKIP_LOCKING,[],[Skip gcc locking])],
231)
232
233AC_MSG_CHECKING([whether we will be building and installing the extra tools])
234AC_ARG_ENABLE([tools],
235 [AS_HELP_STRING([--enable-tools],[if we should build and install the tools @<:@default=no@:>@])],
236 [enable_tools=$enableval],
237 [enable_tools=no]
238)
239
240AC_MSG_RESULT([$enable_tools])
fd9b086f 241AM_CONDITIONAL([TOOLS],[test "x$enable_tools" != "xno"])
39653d75
RK
242
243for a in $modules $dynmodules; do
244 case "$a" in
245 oracle|goracle)
246 PDNS_WITH_ORACLE
247 needoracle=yes
248 ;;
6a85d81e
MZ
249 lmdb)
250 PDNS_WITH_LMDB
cec11b41 251 needlmdb=yes
6a85d81e 252 ;;
39653d75
RK
253 mydns|gmysql|pdns)
254 PDNS_WITH_MYSQL
255 ;;
256 gpgsql)
257 PDNS_WITH_POSTGRESQL
258 ;;
259 gsqlite3)
260 needsqlite3=yes
261 ;;
262 ldap)
263 PDNS_CHECK_LDAP
264 ;;
265 opendbx)
266 PDNS_CHECK_OPENDBX
267 ;;
268 tinydns)
269 PDNS_CHECK_CDB
270 ;;
271 esac
92a4978f
BH
272done
273
39653d75
RK
274AM_CONDITIONAL([ORACLE],[test "x$needoracle" = "xyes"])
275
cec11b41
KM
276AM_CONDITIONAL([LMDB],[test "x$needlmdb" = "xyes"])
277
39653d75
RK
278AM_CONDITIONAL([SQLITE3], [test "x$needsqlite3" = "xyes"])
279if test "$needsqlite3"; then
280 PKG_CHECK_MODULES([SQLITE3], $SQLITE3PC,
281 [HAVE_SQLITE3=yes],
282 [AC_MSG_ERROR([Could not find sqlite3])]
283 )
284 AC_SUBST(SQLITE3_LIBS)
285 AC_SUBST(SQLITE3_CFLAGS)
286 AC_DEFINE([HAVE_SQLITE3],[1],[If we have sqlite3])
92a4978f
BH
287fi
288
64e3aade
AT
289AC_CHECK_FUNCS([localtime_r])
290
39653d75
RK
291for a in $modules; do
292 moduledirs="$moduledirs ${a}backend"
293
294 for b in `cat $srcdir/modules/${a}backend/OBJECTFILES`; do
295 moduleobjects="$moduleobjects ../modules/${a}backend/$b"
296 done
297 modulelibs="$modulelibs `cat $srcdir/modules/${a}backend/OBJECTLIBS`"
298
299 if test ${a} = "gpgsql"; then
300 LIBS="$LIBS $LIBCRYPT"
301
302 case "$host_os" in
303 freebsd*)
304 ;;
305 darwin*)
306 modulelibs="$modulelibs -lresolv"
307 ;;
308 *)
309 modulelibs="$modulelibs -lresolv -lnsl"
310 ;;
311 esac
312 fi
92a4978f
BH
313done
314
39653d75
RK
315for a in $dynmodules; do
316 moduledirs="$moduledirs ${a}backend"
92a4978f
BH
317done
318
319AC_SUBST(LIBS)
320
321export moduledirs moduleobjects modulelibs
322
39653d75
RK
323AC_CONFIG_FILES([
324 Makefile
325 modules/Makefile
326 pdns/Makefile
327 codedocs/Makefile
328 pdns/pdns
f1d2eede
CH
329 pdns/ext/yahttp/Makefile
330 pdns/ext/yahttp/yahttp/Makefile
39653d75
RK
331 modules/bindbackend/Makefile
332 modules/db2backend/Makefile
333 modules/geobackend/Makefile
334 modules/gmysqlbackend/Makefile
335 modules/goraclebackend/Makefile
336 modules/gpgsqlbackend/Makefile
337 modules/gsqlite3backend/Makefile
338 modules/ldapbackend/Makefile
339 modules/luabackend/Makefile
340 modules/mydnsbackend/Makefile
341 modules/opendbxbackend/Makefile
342 modules/oraclebackend/Makefile
343 modules/pipebackend/Makefile
344 modules/randombackend/Makefile
345 modules/remotebackend/Makefile
346 modules/tinydnsbackend/Makefile
6a85d81e 347 modules/lmdbbackend/Makefile
39653d75 348])
6867a5ad 349AC_OUTPUT
39653d75 350