]>
Commit | Line | Data |
---|---|---|
39653d75 RK |
1 | AC_PREREQ([2.61]) |
2 | ||
ba1a571d CH |
3 | dnl The following lines may be patched by set-version-auth. |
4 | AC_INIT([pdns], [git]) | |
5 | dnl AC_SUBST([DIST_HOST], [TO_BE_PATCHED]) | |
6 | dnl End patch area. | |
39653d75 | 7 | |
6707cb12 | 8 | AC_CONFIG_SRCDIR([pdns/receiver.cc]) |
39653d75 RK |
9 | AC_CONFIG_MACRO_DIR([m4]) |
10 | AC_CONFIG_HEADERS([config.h]) | |
11 | AC_CONFIG_AUX_DIR([build-aux]) | |
12 | ||
544eba17 | 13 | AM_INIT_AUTOMAKE([foreign tar-ustar -Wno-portability subdir-objects]) |
f984ca21 | 14 | m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) |
39653d75 | 15 | |
92a4978f | 16 | AC_CANONICAL_HOST |
be1bd362 | 17 | AC_C_BIGENDIAN |
51303a35 | 18 | : ${CXXFLAGS="-Wall -O2"} |
39653d75 | 19 | |
92a4978f BH |
20 | AC_PROG_CC |
21 | AC_PROG_CXX | |
dd50be34 | 22 | AM_PROG_CC_C_O |
92a4978f BH |
23 | AC_PROG_YACC |
24 | AM_PROG_LEX | |
25 | AC_PROG_INSTALL | |
26 | AC_PROG_MAKE_SET | |
39653d75 | 27 | |
66da2833 | 28 | AC_LANG([C++]) |
92a4978f | 29 | |
59414d0e | 30 | m4_ifndef([LT_INIT],[ |
dbff3daf | 31 | AC_PROG_LIBTOOL([disable-static]) |
59414d0e | 32 | ],[ |
dbff3daf | 33 | LT_INIT([disable-static]) |
59414d0e RK |
34 | ]) |
35 | ||
96ae9a2e KM |
36 | MC_TM_GMTOFF |
37 | ||
39653d75 RK |
38 | AM_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. | |
43 | eval full_libdir="\"$libdir\"" | |
39653d75 | 44 | |
4ae885ac PD |
45 | # detect pkg-config explicitly |
46 | PKG_PROG_PKG_CONFIG | |
47 | ||
051f0aaa RK |
48 | AC_CHECK_PROG([RAGEL], [ragel], [ragel]) |
49 | AC_CHECK_PROG([ASCIIDOC], [asciidoc], [asciidoc]) | |
d81a3e14 | 50 | |
051f0aaa | 51 | PDNS_WITH_LUA |
d81a3e14 | 52 | |
4d220500 | 53 | BOOST_REQUIRE([1.35]) |
92a4978f | 54 | BOOST_FOREACH |
92a4978f BH |
55 | BOOST_PROGRAM_OPTIONS([mt]) |
56 | BOOST_SERIALIZATION([mt]) | |
051f0aaa | 57 | |
fedea66a | 58 | PDNS_ENABLE_UNIT_TESTS |
051f0aaa | 59 | |
32869e14 | 60 | dnl Allow user to require SQLite3 |
39653d75 RK |
61 | AC_MSG_CHECKING([whether user requires sqlite3]) |
62 | AC_ARG_WITH([sqlite3], | |
63 | [AS_HELP_STRING([--with-sqlite3],[include sqlite3 driver @<:@default=no@:>@])], | |
64 | [WITH_SQLITE3=$withval], | |
65 | [WITH_SQLITE3=no] | |
66 | ) | |
67 | AC_MSG_RESULT([$WITH_SQLITE3]) | |
32869e14 PD |
68 | SQLITE3PC=sqlite3 |
69 | if test "$WITH_SQLITE3" != "no"; then | |
70 | needsqlite3=yes | |
71 | if test "$WITH_SQLITE3" != "yes"; then | |
72 | SQLITE3PC=$WITH_SQLITE3 | |
73 | fi | |
74 | fi | |
75 | ||
92a4978f BH |
76 | dnl Checks for typedefs, structures, and compiler characteristics. |
77 | AC_TYPE_SIZE_T | |
92a4978f BH |
78 | |
79 | dnl Checks for library functions. | |
39653d75 | 80 | AC_CHECK_FUNCS([strcasestr]) |
92a4978f BH |
81 | |
82 | # Check for libdl | |
92a4978f BH |
83 | LIBS="$LIBS -lz" |
84 | ||
85 | my_save_LIBS="$LIBS" | |
86 | LIBS="" | |
87 | AC_CHECK_LIB(dl,dlopen) | |
88 | LIBDL=$LIBS | |
89 | LIBS="$my_save_LIBS" | |
90 | AC_SUBST(LIBDL) | |
91 | ||
92 | AC_MSG_CHECKING([for RTLD_NOW]); | |
93 | ac_save_LIBS="$LIBS" | |
94 | LIBS="$LIBS $LIBDL" | |
67e8df4c RK |
95 | AC_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 | 100 | AC_MSG_RESULT([$has_RTLD_NOW]) |
39653d75 RK |
101 | if test "$has_RTLD_NOW" = "no"; then |
102 | AC_DEFINE(NEED_RTLD_NOW,,[If host OS misses RTLD_NOW]) | |
92a4978f BH |
103 | fi |
104 | LIBS=$ac_save_LIBS | |
105 | ||
c2a155b1 PD |
106 | # Check for libcrypt |
107 | ||
108 | my_save_LIBS="$LIBS" | |
109 | LIBS="" | |
110 | AC_CHECK_LIB(crypt, crypt) | |
111 | LIBCRYPT=$LIBS | |
112 | LIBS="$my_save_LIBS" | |
113 | AC_SUBST(LIBCRYPT) | |
114 | ||
92a4978f BH |
115 | DYNLINKFLAGS="" |
116 | THREADFLAGS="" | |
117 | ||
642fb7d7 | 118 | AM_CONDITIONAL([OS_MACOSX], false) |
92a4978f BH |
119 | case "$host_os" in |
120 | solaris2.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 | 126 | solaris2.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 | 133 | solaris2.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 | 139 | linux*) |
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 | 146 | darwin11* | 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 |
159 | esac |
160 | ||
161 | AC_SUBST(THREADFLAGS) | |
92a4978f BH |
162 | AC_SUBST(DYNLINKFLAGS) |
163 | ||
8ffe1c55 | 164 | PDNS_ENABLE_VERBOSE_LOGGING |
08bc56f4 | 165 | PDNS_WITH_SYSTEM_POLARSSL |
5b117c5e | 166 | PDNS_ENABLE_BOTAN |
8daea594 | 167 | PDNS_ENABLE_PKCS11 |
1f0f33bc | 168 | PDNS_WITH_CRYPTOPP |
2239e91b | 169 | PDNS_ENABLE_REMOTEBACKEND_ZEROMQ |
a7db8aa6 | 170 | |
39653d75 | 171 | AC_MSG_CHECKING([whether we should build static binaries]) |
92a4978f | 172 | |
39653d75 RK |
173 | AC_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 | ) | |
182 | AC_MSG_RESULT([$static]) | |
92a4978f | 183 | |
39653d75 | 184 | AM_CONDITIONAL([ALLSTATIC], [test "x$static" = "xtrue"]) |
92a4978f | 185 | |
39653d75 RK |
186 | if test "x$static" = "xtrue"; then |
187 | LDFLAGS="-all-static $LDFLAGS" | |
92a4978f BH |
188 | fi |
189 | ||
e53a4bf6 | 190 | modules="bind gmysql geo random" |
39653d75 | 191 | AC_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 | |
196 | dynmodules="pipe" | |
39653d75 RK |
197 | AC_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 | |
202 | AC_SUBST(socketdir) | |
203 | socketdir="/var/run" | |
39653d75 RK |
204 | AC_ARG_WITH([socketdir], |
205 | [AS_HELP_STRING([--with-socketdir],[where the controlsocket lives @<:@default=/var/run@:>@])], | |
206 | [socketdir="$withval"] | |
207 | ) | |
92a4978f BH |
208 | |
209 | AC_SUBST(moduledirs) | |
210 | AC_SUBST(moduleobjects) | |
211 | AC_SUBST(modulelibs) | |
39653d75 | 212 | AC_DEFINE_UNQUOTED([PDNS_MODULES],"$modules", [Built-in modules]) |
92a4978f | 213 | |
39653d75 RK |
214 | AC_MSG_CHECKING([whether we will be building the server]) |
215 | AC_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 | ) | |
220 | AC_MSG_RESULT([$enable_pdns_server]) | |
92a4978f | 221 | |
39653d75 RK |
222 | AS_IF([test "x$enable_pdns_server" = "xyes"], |
223 | [programdescend=pdns] | |
224 | ) | |
92a4978f BH |
225 | |
226 | AC_SUBST(programdescend) | |
227 | ||
39653d75 RK |
228 | AC_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 | ||
233 | AC_MSG_CHECKING([whether we will be building and installing the extra tools]) | |
234 | AC_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 | ||
240 | AC_MSG_RESULT([$enable_tools]) | |
fd9b086f | 241 | AM_CONDITIONAL([TOOLS],[test "x$enable_tools" != "xno"]) |
39653d75 RK |
242 | |
243 | for 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 |
272 | done |
273 | ||
39653d75 RK |
274 | AM_CONDITIONAL([ORACLE],[test "x$needoracle" = "xyes"]) |
275 | ||
cec11b41 KM |
276 | AM_CONDITIONAL([LMDB],[test "x$needlmdb" = "xyes"]) |
277 | ||
39653d75 RK |
278 | AM_CONDITIONAL([SQLITE3], [test "x$needsqlite3" = "xyes"]) |
279 | if 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 |
287 | fi |
288 | ||
64e3aade AT |
289 | AC_CHECK_FUNCS([localtime_r]) |
290 | ||
39653d75 RK |
291 | for 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 |
313 | done |
314 | ||
39653d75 RK |
315 | for a in $dynmodules; do |
316 | moduledirs="$moduledirs ${a}backend" | |
92a4978f BH |
317 | done |
318 | ||
319 | AC_SUBST(LIBS) | |
320 | ||
321 | export moduledirs moduleobjects modulelibs | |
322 | ||
39653d75 RK |
323 | AC_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 | 349 | AC_OUTPUT |
39653d75 | 350 |