]> git.ipfire.org Git - thirdparty/pdns.git/blob - configure.in
2.9.21 version update, plus docs
[thirdparty/pdns.git] / configure.in
1 dnl intro
2 AC_INIT(pdns/receiver.cc)
3 AM_INIT_AUTOMAKE(pdns, 2.9.21)
4 AC_CANONICAL_HOST
5 AM_CONFIG_HEADER(config.h)
6 AC_C_BIGENDIAN
7 AC_PREREQ(2.52)
8 CXXFLAGS="$CXXFLAGS -Wall -O2"
9
10 AC_PREFIX_DEFAULT(/usr/local)
11 AC_PROG_CC
12 AC_PROG_CXX
13 AC_PROG_YACC
14 AM_PROG_LEX
15 AC_PROG_INSTALL
16 AC_PROG_MAKE_SET
17 AC_PROG_LIBTOOL
18 AC_LANG_CPLUSPLUS
19
20 dnl Checks for header files.
21 AC_HEADER_STDC
22 AC_CHECK_HEADERS(fcntl.h getopt.h limits.h strings.h sys/time.h syslog.h unistd.h)
23 AC_CHECK_HEADERS(boost/shared_ptr.hpp, ,
24 echo Missing boost - please install Boost packages or see http://doc.powerdns.com/compiling-powerdns.html; exit)
25
26 dnl Checks for typedefs, structures, and compiler characteristics.
27 AC_TYPE_SIZE_T
28 AC_HEADER_TIME
29 AC_STRUCT_TM
30
31 dnl Checks for library functions.
32 AC_TYPE_SIGNAL
33 AC_CHECK_FUNCS(gethostname gettimeofday mkdir mktime select socket strerror)
34
35 # Check for libdl
36
37 LIBS="$LIBS -lz"
38
39 my_save_LIBS="$LIBS"
40 LIBS=""
41 AC_CHECK_LIB(dl,dlopen)
42 LIBDL=$LIBS
43 LIBS="$my_save_LIBS"
44 AC_SUBST(LIBDL)
45
46 AC_MSG_CHECKING([for RTLD_NOW]);
47 ac_save_LIBS="$LIBS"
48 LIBS="$LIBS $LIBDL"
49 AC_TRY_LINK(
50 [#include <dlfcn.h>],
51 [ (void) dlopen("",RTLD_NOW); ],
52 has_RTLD_NOW=yes, has_RTLD_NOW=no)
53 AC_MSG_RESULT([$has_RTLD_NOW])
54 if test "$has_RTLD_NOW" = "no"
55 then
56 AC_DEFINE(NEED_RTLD_NOW,,[If host OS misses RTLD_NOW])
57 fi
58 LIBS=$ac_save_LIBS
59
60 DYNLINKFLAGS=""
61 THREADFLAGS=""
62
63 case "$host_os" in
64 solaris2.10)
65 AC_DEFINE(HAVE_IPV6,1,[If the host operating system understands IPv6])
66 LIBS="-lposix4 -lresolv -lnsl -lsocket -lpthread -lrt $LIBS"
67 CXXFLAGS="-D_REENTRANT $CXXFLAGS"
68 ;;
69
70 solaris2.8 | solaris2.9 )
71 AC_DEFINE(NEED_POSIX_TYPEDEF,,[If POSIX typedefs need to be defined])
72 AC_DEFINE(NEED_INET_NTOP_PROTO,,[If your OS is so broken that it needs an additional prototype])
73 AC_DEFINE(HAVE_IPV6,1,[If the host operating system understands IPv6])
74 LIBS="-lposix4 -lresolv -lnsl -lsocket -lpthread $LIBS"
75 CXXFLAGS="-D_REENTRANT $CXXFLAGS"
76 ;;
77 solaris2.6 | solaris2.7)
78 AC_DEFINE(NEED_POSIX_TYPEDEF,,[If POSIX typedefs need to be defined])
79 AC_DEFINE(NEED_INET_NTOP_PROTO,,[If your OS is so broken that it needs an additional prototype])
80 LIBS="-lposix4 -lresolv -lnsl -lsocket -lpthread $LIBS"
81 CXXFLAGS="-D_REENTRANT $CXXFLAGS"
82 ;;
83 linux*)
84 AC_DEFINE(HAVE_IPV6,1,[If the host operating system understands IPv6])
85 DYNLINKFLAGS="-rdynamic"
86 LDFLAGS="$LDFLAGS"
87 THREADFLAGS="-pthread"
88 CXXFLAGS="-D_GNU_SOURCE $CXXFLAGS"
89 ;;
90 openbsd*)
91 AC_DEFINE(HAVE_IPV6,1,[If the host operating system understands IPv6])
92 DYNLINKFLAGS="-rdynamic"
93 LDFLAGS="-lc_r $LDFLAGS"
94 CXXFLAGS="-pthread $CXXFLAGS"
95 ;;
96 *)
97 AC_DEFINE(HAVE_IPV6,1,[If the host operating system understands IPv6])
98 DYNLINKFLAGS="-rdynamic"
99 LDFLAGS="-pthread $LDFLAGS"
100 CXXFLAGS="-pthread $CXXFLAGS"
101 ;;
102 esac
103
104 AC_SUBST(THREADFLAGS)
105
106 AC_SUBST(DYNLINKFLAGS)
107
108 AC_MSG_CHECKING(whether we will be doing verbose logging)
109 AC_ARG_ENABLE(verbose-logging,
110 [ --enable-verbose-logging Do verbose logging],enable_verbose_logging=yes ,enable_verbose_logging=no)
111
112 if test $enable_verbose_logging = yes; then AC_DEFINE(VERBOSELOG, 1, [If verbose logging should be enabled])
113 fi
114 AC_MSG_RESULT($enable_verbose_logging)
115
116 AC_MSG_CHECKING(whether we should build static binaries)
117
118 AC_ARG_ENABLE(static-binaries,
119 [ --enable-static-binaries Build static binaries],
120 [case "${enableval}" in
121 yes) static=true ;;
122 no) static=false ;;
123 *) AC_MSG_ERROR(bad value ${enableval} for --enable-static-binaries) ;;
124 esac],[debug=false])
125 AC_MSG_RESULT($static)
126
127 AM_CONDITIONAL(ALLSTATIC, test x$static = xtrue)
128
129 if test x$static = xtrue;
130 then
131 LDFLAGS="-all-static $LDFLAGS"
132 fi
133
134
135
136 modules="gmysql geo"
137 AC_ARG_WITH(modules, [ --with-modules Which backends to compile with ],
138 [
139 modules="$withval"
140 ])
141
142 dynmodules="pipe"
143 AC_ARG_WITH(dynmodules, [ --with-dynmodules Which backends to build for dynamic loading ],
144 [
145 dynmodules="$withval"
146 ])
147
148
149
150 AC_SUBST(socketdir)
151 socketdir="/var/run"
152 AC_ARG_WITH(socketdir, [ --with-socketdir Where the controlsocket lives ],
153 [
154 socketdir="$withval"
155 ])
156
157 AC_SUBST(moduledirs)
158 AC_SUBST(moduleobjects)
159 AC_SUBST(modulelibs)
160
161 AC_MSG_CHECKING(whether we will be building the server)
162 AC_ARG_ENABLE(pdns-server,
163 [ --enable-pdns_server If we should build the server],
164 enable_pdns_server=$enableval,
165 enable_pdns_server=yes)
166
167 AC_MSG_RESULT($enable_pdns_server)
168
169 if test x"$enable_pdns_server" = "xyes"
170 then
171 programdescend=pdns
172 fi
173
174 AC_SUBST(programdescend)
175
176 AC_ARG_ENABLE(gcc-skip-locking,
177 [ --enable-gcc-skip-locking If we should forcefully skip gcc locking],
178 AC_DEFINE(GCC_SKIP_LOCKING,,[Skip gcc locking]),
179 )
180
181 AC_MSG_CHECKING(whether we will be building the recursor)
182 AC_ARG_ENABLE(recursor,
183 [ --enable-recursor If we should build the server],
184 enable_recursor=$enableval,
185 enable_recursor=no )
186
187 AC_MSG_RESULT($enable_recursor)
188
189 AM_CONDITIONAL(RECURSOR,test x"$enable_recursor" = "xyes")
190
191
192 AC_MSG_CHECKING(whether we should use nedmalloc allocator)
193 AC_ARG_ENABLE(nedmalloc,
194 [ --enable-nedmalloc If we should use nedmalloc],
195 enable_nedmalloc=$enableval,
196 if echo $host_os | grep -i freebsd > /dev/null
197 then
198 enable_nedmalloc=yes
199 else
200 enable_nedmalloc=no
201 fi
202 )
203 AC_MSG_RESULT($enable_nedmalloc)
204
205 AM_CONDITIONAL(NEDMALLOC,test x"$enable_nedmalloc" = "xyes")
206
207
208 for a in $modules $dynmodules
209 do
210 case "$a" in
211 mysql )
212 needmysql=yes
213 ;;
214 gmysql )
215 needmysql=yes
216 ;;
217 gpgsql )
218 needpgsql=yes
219 ;;
220 gsqlite )
221 needsqlite=yes
222 ;;
223 gsqlite3 )
224 needsqlite3=yes
225 ;;
226 pdns )
227 needmysql=yes
228 ;;
229 esac
230 done
231
232
233 if test "$needmysql"
234 then
235 AC_ARG_WITH(mysql,
236 [ --with-mysql=<path> root directory path of MySQL installation],
237 [MYSQL_lib_check="$withval/lib/mysql $with_mysql/lib"
238 MYSQL_inc_check="$withval/include/mysql"],
239 [MYSQL_lib_check="/usr/local/mysql/lib/mysql /usr/local/lib/mysql /opt/mysql/lib/mysql \
240 /usr/lib/mysql /usr/local/mysql/lib /usr/local/lib /opt/mysql/lib /usr/lib \
241 /usr/sfw/lib/"
242 MYSQL_inc_check="/usr/local/mysql/include/mysql /usr/local/include/mysql \
243 /opt/mysql/include/mysql /opt/mysql/include /usr/include/mysql /usr/sfw/include/mysql"])
244 AC_ARG_WITH(mysql-lib,
245 [ --with-mysql-lib=<path> directory path of MySQL library installation],
246 [MYSQL_lib_check="$withval/lib/mysql $withval/mysql $withval"])
247 AC_ARG_WITH(mysql-includes,
248 [ --with-mysql-includes=<path>
249 directory path of MySQL header installation],
250 [MYSQL_inc_check="$withval/include/mysql $withval/mysql $withval"])
251 AC_MSG_CHECKING([for MySQL library directory])
252 MYSQL_libdir=
253 for m in $MYSQL_lib_check; do
254 if test -d "$m" && \
255 (test -f "$m/libmysqlclient.so" || test -f "$m/libmysqlclient.a")
256 then
257 MYSQL_libdir=$m
258 break
259 fi
260 done
261 if test -z "$MYSQL_libdir"; then
262 AC_MSG_ERROR([Didn't find the mysql library dir in '$MYSQL_lib_check'])
263 fi
264 case "$MYSQL_libdir" in
265 /usr/lib ) MYSQL_lib="" ;;
266 /* ) MYSQL_lib=-L$MYSQL_libdir; LDFLAGS="$MYSQL_lib $LDFLAGS";;
267 * ) AC_MSG_ERROR([The MySQL library directory ($MYSQL_libdir) must be an absolute path.]) ;;
268 esac
269
270 AC_SUBST(MYSQL_lib)
271
272 AC_MSG_RESULT([$MYSQL_libdir])
273 AC_MSG_CHECKING([for MySQL include directory])
274 MYSQL_incdir=
275 for m in $MYSQL_inc_check; do
276 if test -d "$m" && test -f "$m/mysql.h"
277 then
278 MYSQL_incdir=$m
279 break
280 fi
281 done
282 if test -z "$MYSQL_incdir"; then
283 AC_MSG_ERROR([Didn't find the mysql include dir in '$MYSQL_inc_check'])
284 fi
285
286 case "$MYSQL_incdir" in
287 /* ) ;;
288 * ) AC_MSG_ERROR([The MySQL include directory ($MYSQL_incdir) must be an absolute path.]) ;;
289 esac
290
291 AC_SUBST(MYSQL_incdir)
292 AC_MSG_RESULT([$MYSQL_incdir])
293 # LIBS="$LIBS -lmysqlclient"
294 fi
295
296
297
298 if test "$needpgsql"
299 then
300 AC_ARG_WITH(pgsql,
301 [ --with-pgsql=<path> root directory path of PgSQL installation],
302 [PGSQL_lib_check="$withval/lib/pgsql $with_pgsql/lib"
303 PGSQL_inc_check="$withval/include/pgsql"],
304 [PGSQL_lib_check="/usr/local/pgsql/lib/pgsql /usr/local/lib/pgsql /opt/pgsql/lib/pgsql /usr/lib/pgsql /usr/local/pgsql/lib /usr/local/lib /opt/pgsql/lib /usr/lib"
305 PGSQL_inc_check="/usr/local/pgsql/include/pgsql /usr/include /usr/local/include/postgresql/ /usr/local/include /opt/pgsql/include/pgsql /opt/pgsql/include /usr/include/pgsql/ /usr/include/postgresql"])
306 AC_ARG_WITH(pgsql-lib,
307 [ --with-pgsql-lib=<path> directory path of PgSQL library installation],
308 [PGSQL_lib_check="$withval/lib/pgsql $withval/pgsql $withval"])
309 AC_ARG_WITH(pgsql-includes,
310 [ --with-pgsql-includes=<path>
311 directory path of PgSQL header installation],
312 [PGSQL_inc_check="$withval/include/pgsql $withval/pgsql $withval"])
313 AC_MSG_CHECKING([for PgSQL library directory])
314 PGSQL_libdir=
315 for m in $PGSQL_lib_check; do
316 if test -d "$m" && \
317 (test -f "$m/libpq.a" || test -f "$m/libpq++.a")
318 then
319 PGSQL_libdir=$m
320 break
321 fi
322 done
323 if test -z "$PGSQL_libdir"; then
324 AC_MSG_ERROR([Didn't find the pgsql library dir in '$PGSQL_lib_check'])
325 fi
326 case "$PGSQL_libdir" in
327 /usr/lib ) PGSQL_lib="" ;;
328 /* ) PGSQL_lib="-L$PGSQL_libdir -Wl,-rpath,$PGSQL_libdir"
329 LDFLAGS="$PGSQL_lib $LDFLAGS"
330 ;;
331 * ) AC_MSG_ERROR([The PgSQL library directory ($PGSQL_libdir) must be an absolute path.]) ;;
332 esac
333
334 AC_SUBST(PGSQL_lib)
335 AC_MSG_RESULT([$PGSQL_libdir])
336 AC_MSG_CHECKING([for PgSQL include directory])
337 PGSQL_incdir=
338 for m in $PGSQL_inc_check; do
339 if test -d "$m" && test -f "$m/libpq-fe.h"
340 then
341 PGSQL_incdir=$m
342 break
343 fi
344 done
345 if test -z "$PGSQL_incdir"; then
346 AC_MSG_ERROR([Didn't find the PgSQL include dir in '$PGSQL_inc_check'])
347 fi
348 case "$PGSQL_incdir" in
349 /* ) ;;
350 * ) AC_MSG_ERROR([The PgSQL include directory ($PGSQL_incdir) must be an absolute path.]) ;;
351 esac
352 AC_SUBST(PGSQL_incdir)
353 AC_MSG_RESULT([$PGSQL_incdir])
354
355 # LIBS="$LIBS -lpq++ -lpq -lssl -lcrypt -lcrypto"
356 fi
357
358
359 if test "$needsqlite"
360 then
361 AC_ARG_WITH(sqlite,
362 [ --with-sqlite=<path> root directory path of SQLite installation],
363 [SQLITE_lib_check="$withval/lib/sqlite $with_sqlite/lib"
364 SQLITE_inc_check="$withval/include/sqlite"],
365 [SQLITE_lib_check="/usr/local/sqlite/lib/sqlite /usr/local/lib/sqlite /opt/pgsql/lib/sqlite /usr/lib/sqlite /usr/local/sqlite/lib /usr/local/lib /opt/sqlite/lib /usr/lib"
366 SQLITE_inc_check="/usr/local/sqlite/include/sqlite /usr/local/include/sqlite/ /usr/local/include /opt/sqlite/include/sqlite /opt/sqlite/include /usr/include/ /usr/include/sqlite"])
367 AC_ARG_WITH(sqlite-lib,
368 [ --with-sqlite-lib=<path> directory path of SQLite library installation],
369 [SQLITE_lib_check="$withval/lib/sqlite $withval/sqlite $withval"])
370 AC_ARG_WITH(sqlite-includes,
371 [ --with-sqlite-includes=<path>
372 directory path of SQLite header installation],
373 [SQLITE_inc_check="$withval/include/sqlite $withval/sqlite $withval"])
374 AC_MSG_CHECKING([for SQLite library directory])
375 SQLITE_libdir=
376 for m in $SQLITE_lib_check; do
377 if test -d "$m" && \
378 (test -f "$m/libsqlite.so" || test -f "$m/libsqlite.a")
379 then
380 SQLITE_libdir=$m
381 break
382 fi
383 done
384 if test -z "$SQLITE_libdir"; then
385 AC_MSG_ERROR([Didn't find the sqlite library dir in '$SQLITE_lib_check'])
386 fi
387 case "$SQLITE_libdir" in
388 /usr/lib ) SQLITE_lib="" ;;
389 /* ) SQLITE_lib="-L$SQLITE_libdir -Wl,-rpath,$SQLITE_libdir"
390 LDFLAGS="$SQLITE_lib $LDFLAGS"
391 ;;
392 * ) AC_MSG_ERROR([The SQLite library directory ($SQLITE_libdir) must be an absolute path.]) ;;
393 esac
394
395 AC_SUBST(SQLITE_lib)
396 AC_MSG_RESULT([$SQLITE_libdir])
397 AC_MSG_CHECKING([for SQLite include directory])
398 SQLITE_incdir=
399 for m in $SQLITE_inc_check; do
400 if test -d "$m" && test -f "$m/sqlite.h"
401 then
402 SQLITE_incdir=$m
403 break
404 fi
405 done
406 if test -z "$SQLITE_incdir"; then
407 AC_MSG_ERROR([Didn't find the SQLite include dir in '$SQLITE_inc_check'])
408 fi
409 case "$SQLITE_incdir" in
410 /* ) ;;
411 * ) AC_MSG_ERROR([The SQLite include directory ($SQLITE_incdir) must be an absolute path.]) ;;
412 esac
413 AC_SUBST(SQLITE_incdir)
414 AC_MSG_RESULT([$SQLITE_incdir])
415
416 # LIBS="$LIBS -lsqlite"
417 fi
418
419 if test "$needsqlite3"
420 then
421 AC_ARG_WITH(sqlite3,
422 [ --with-sqlite3=<path> root directory path of SQLite3 installation],
423 [SQLITE3_lib_check="$withval/lib/sqlite3 $with_sqlite3/lib"
424 SQLITE3_inc_check="$withval/include/sqlite3"],
425 [SQLITE3_lib_check="/usr/local/sqlite3/lib/sqlite3 /usr/local/lib/sqlite3 /usr/lib/sqlite3 /usr/local/sqlite3/lib /usr/local/lib /opt/sqlite3/lib /usr/lib"
426 SQLITE3_inc_check="/usr/local/sqlite3/include/sqlite3 /usr/local/include/sqlite3/ /usr/local/include /opt/sqlite3/include/sqlite3 /opt/sqlite3/include /usr/include/ /usr/include/sqlite3"])
427 AC_ARG_WITH(sqlite3-lib,
428 [ --with-sqlite3-lib=<path> directory path of SQLite3 library installation],
429 [SQLITE3_lib_check="$withval/lib/sqlite3 $withval/sqlite3 $withval"])
430 AC_ARG_WITH(sqlite3-includes,
431 [ --with-sqlite3-includes=<path> directory path of SQLite3 header installation],
432 [SQLITE3_inc_check="$withval/include/sqlite3 $withval/sqlite3 $withval"])
433 AC_MSG_CHECKING([for SQLite3 library directory])
434 SQLITE3_libdir=
435 for m in $SQLITE3_lib_check; do
436 if test -d "$m" && \
437 (test -f "$m/libsqlite3.so" || test -f "$m/libsqlite3.a")
438 then
439 SQLITE3_libdir=$m
440 break
441 fi
442 done
443 if test -z "$SQLITE3_libdir"; then
444 AC_MSG_ERROR([Didn't find the sqlite3 library dir in '$SQLITE3_lib_check'])
445 fi
446 case "$SQLITE3_libdir" in
447 /usr/lib ) SQLITE3_lib="" ;;
448 /* ) SQLITE3_lib="-L$SQLITE3_libdir -Wl,-rpath,$SQLITE3_libdir"
449 LDFLAGS="$SQLITE3_lib $LDFLAGS"
450 ;;
451 * ) AC_MSG_ERROR([The SQLite3 library directory ($SQLITE3_libdir) must be an absolute path.]) ;;
452 esac
453
454 AC_SUBST(SQLITE3_lib)
455 AC_MSG_RESULT([$SQLITE3_libdir])
456 AC_MSG_CHECKING([for SQLite3 include directory])
457 SQLITE3_incdir=
458 for m in $SQLITE3_inc_check; do
459 if test -d "$m" && test -f "$m/sqlite3.h"
460 then
461 SQLITE3_incdir=$m
462 break
463 fi
464 done
465 if test -z "$SQLITE3_incdir"; then
466 AC_MSG_ERROR([Didn't find the SQLite3 include dir in '$SQLITE3_inc_check'])
467 fi
468 case "$SQLITE3_incdir" in
469 /* ) ;;
470 * ) AC_MSG_ERROR([The SQLite3 include directory ($SQLITE3_incdir) must be an absolute path.]) ;;
471 esac
472 AC_SUBST(SQLITE3_incdir)
473 AC_MSG_RESULT([$SQLITE3_incdir])
474
475 # LIBS="$LIBS -lsqlite3"
476 fi
477
478
479 for a in $modules
480 do
481 moduledirs="$moduledirs ${a}backend"
482
483 for b in `cat $srcdir/modules/${a}backend/OBJECTFILES`
484 do
485 moduleobjects="$moduleobjects ../modules/${a}backend/$b"
486 done
487 modulelibs="$modulelibs `cat $srcdir/modules/${a}backend/OBJECTLIBS`"
488 done
489
490 for a in $dynmodules
491 do
492 moduledirs="$moduledirs ${a}backend"
493 done
494
495 AC_SUBST(LIBS)
496
497 export moduledirs moduleobjects modulelibs
498
499 AC_OUTPUT(Makefile modules/Makefile pdns/Makefile codedocs/Makefile \
500 pdns/backends/Makefile pdns/backends/bind/Makefile pdns/pdns pdns/precursor \
501 modules/mysqlbackend/Makefile modules/pdnsbackend/Makefile \
502 modules/gmysqlbackend/Makefile modules/db2backend/Makefile \
503 modules/geobackend/Makefile modules/opendbxbackend/Makefile \
504 modules/pipebackend/Makefile modules/oraclebackend/Makefile \
505 modules/xdbbackend/Makefile modules/odbcbackend/Makefile \
506 modules/gpgsqlbackend/Makefile modules/ldapbackend/Makefile
507 modules/gsqlitebackend/Makefile modules/gsqlite3backend/Makefile
508 modules/goraclebackend/Makefile )