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