1# -*- Autoconf -*- 2# Process this file with autoconf to produce a configure script. 3# 4# Copyright (c) 2009-2015, The Trusted Domain Project. All rights reserved. 5# 6 7# 8# Setup 9# 10AC_PREREQ(2.61) 11 12# 13# Package version 14# 15m4_define([VERSION_RELEASE], 2) 16m4_define([VERSION_MAJOR_REV], 10) 17m4_define([VERSION_MINOR_REV], 3) 18m4_define([VERSION_PATCH], 0) 19 20# 21# Library version 22# - bump "current" and reset "revision" with API changes 23# - bump "revision" with internal source code changes 24# 25m4_define([LIBVERSION_CURRENT], 10) 26m4_define([LIBVERSION_REVISION], 3) 27m4_define([LIBVERSION_AGE], 0) 28 29# 30# Autotools setup 31# 32AC_INIT([OpenDKIM], 33 [VERSION_RELEASE.VERSION_MAJOR_REV.VERSION_MINOR_REV], 34 [bugs@opendkim.org]) 35 36AC_CONFIG_AUX_DIR([build-aux]) 37AM_INIT_AUTOMAKE( 38 1.11.1 39 dnl Automake version before 1.13 (when the serial-tests option was 40 dnl still the default) still defined the badly obsolete macro 41 dnl 'AM_PROG_INSTALL'. 42 m4_ifndef([AM_PROG_INSTALL], [serial-tests]) 43) 44AC_CONFIG_HEADERS([build-config.h]) 45 46AC_CONFIG_MACRO_DIR([m4]) 47 48# 49# Hexadecimal version, for use in generating dkim.h 50# 51HEX_VERSION=$(printf %08x $(( ((VERSION_RELEASE << 8 | VERSION_MAJOR_REV) << 8 | VERSION_MINOR_REV) << 8| VERSION_PATCH ))) 52AC_SUBST([HEX_VERSION]) 53 54# 55# library version, passed to libtool 56# 57LIBOPENDKIM_VERSION_INFO=$(printf %d:%d:%d LIBVERSION_CURRENT LIBVERSION_REVISION LIBVERSION_AGE) 58AC_SUBST([LIBOPENDKIM_VERSION_INFO]) 59 60# 61# Checks for programs 62# 63AC_PROG_CC 64AC_PROG_CC_C99 65AM_PROG_CC_C_O 66AC_PROG_LIBTOOL 67 68PKG_PROG_PKG_CONFIG 69 70# 71# Check for how to compile threaded stuff 72# 73AX_PTHREAD 74 75# 76# save outer values 77# 78outer_CFLAGS="$CFLAGS" 79outer_CPPFLAGS="$CPPFLAGS" 80outer_LDFLAGS="$LDFLAGS" 81outer_LIBS="$LIBS" 82 83# 84# Checks for libraries 85# 86saved_LIBS="$LIBS" 87LIBS="" 88AC_SEARCH_LIBS(inet_addr, nsl) 89LIBNSL_LIBS="$LIBS" 90LIBS="$saved_LIBS" 91AC_SUBST([LIBNSL_LIBS]) 92 93saved_LIBS="$LIBS" 94LIBS="" 95AC_SEARCH_LIBS(dlopen, dl) 96LIBDL_LIBS="$LIBS" 97LIBS="$saved_LIBS" 98AC_SUBST([LIBDL_LIBS]) 99 100AC_SEARCH_LIBS(socket, socket) 101AC_SEARCH_LIBS(inet_aton, resolv) 102AC_SEARCH_LIBS(inet_pton, resolv, 103 AC_DEFINE(HAVE_INET_PTON, 1, 104 [Define to 1 if you have the `inet_pton()' function.])) 105AC_SEARCH_LIBS(inet_ntop, resolv nsl, 106 AC_DEFINE(HAVE_INET_NTOP, 1, 107 [Define to 1 if you have the `inet_ntop()' function.])) 108AC_SEARCH_LIBS(getaddrinfo, resolv, 109 AC_DEFINE(HAVE_GETADDRINFO, 1, 110 [Define to 1 if you have the `getaddrinfo()' function.])) 111AC_SEARCH_LIBS(res_ninit, resolv, 112 AC_DEFINE(HAVE_RES_NINIT, 1, 113 [Define to 1 if you have the `res_ninit()' function.])) 114AC_SEARCH_LIBS(res_sertservers, resolv bind, 115 AC_DEFINE(HAVE_RES_SETSERVERS, 1, 116 [Define to 1 if you have the `res_setservers()' function.])) 117AC_SEARCH_LIBS(getopt_long, iberty, 118 AC_DEFINE(HAVE_GETOPT_LONG, 1, 119 [Define to 1 if you have the `getopt_long()' function.])) 120 121AC_HEADER_RESOLV 122 123# 124# Check for types 125# 126 127AC_CHECK_TYPES([useconds_t]) 128 129# 130# See if libopendkim will need -lresolv 131# 132dnscheck=' 133#include "confdefs.h" 134#include <sys/types.h> 135#include <netinet/in.h> 136#include <arpa/nameser.h> 137#include <resolv.h> 138int main() { 139res_mkquery (0, 0, 0, 0, 0, 0, 0, 0, 0); 140dn_expand (0, 0, 0, 0, 0); 141dn_skipname (0, 0); 142dn_comp (0, 0, 0, 0, 0); 143return 0; 144}' 145AC_MSG_CHECKING([whether the resolver works without -lresolv]) 146LIBRESOLV= 147AC_LINK_IFELSE([AC_LANG_SOURCE([ 148$dnscheck 149])] , [ 150 AC_MSG_RESULT(yes) 151] , [ 152 AC_MSG_RESULT(no) 153 AC_MSG_CHECKING([whether the resolver works with -lresolv]) 154 saved_LIBS="$LIBS" 155 LIBS="$outer_LIBS -lresolv" 156 AC_LINK_IFELSE([AC_LANG_SOURCE([ 157$dnscheck 158 ])] , [ 159 AC_MSG_RESULT(yes) 160 LIBRESOLV=-lresolv 161 ] , [ 162 AC_MSG_RESULT(no) 163 AC_MSG_ERROR([need workable resolver library]) 164 ]) 165 LIBS="$saved_LIBS" 166]) 167AC_SUBST([LIBRESOLV]) 168 169# 170# Checks for header files 171# 172AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h iso/limits_iso.h netdb.h netinet/in.h paths.h stdlib.h string.h sys/file.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h stdint.h]) 173 174# 175# Checks for typedefs, structures, and compiler characteristics. 176# 177AC_HEADER_STDBOOL 178AC_TYPE_UID_T 179AC_TYPE_MODE_T 180AC_TYPE_OFF_T 181AC_TYPE_PID_T 182AC_TYPE_SIZE_T 183AC_TYPE_SSIZE_T 184AC_TYPE_UINT16_T 185AC_TYPE_UINT32_T 186AC_TYPE_UINT64_T 187 188# 189# Checks for library functions. 190# 191AC_FUNC_FORK 192AC_FUNC_GETGROUPS 193AC_FUNC_MALLOC 194AC_FUNC_MKTIME 195AC_FUNC_REALLOC 196 197AC_CHECK_FUNCS([dup2 endpwent getcwd gethostname gethostbyname getaddrinfo gethostbyname2 gettimeofday isascii memchr memmove memset regcomp select socket strcasecmp strchr strdup strerror strncasecmp strrchr strstr strtol strtoul strtoull realpath strsep]) 198 199bsdstrl_h_found="no" 200strl_found="no" 201libstrl_found="no" 202strl_h_found="no" 203 204AC_CHECK_HEADERS([bsd/string.h], [bsdstrl_h_found="yes"]) 205 206AC_CHECK_FUNCS([strlcat strlcpy], [strl_found="yes"], 207 [ 208 saved_LIBS="$LIBS" 209 LIBS="$outer_LIBS" 210 AC_SEARCH_LIBS([strlcat], 211 [bsd strl], 212 [libstrl_found="yes"], 213 [strl_found="no"]) 214 AC_SEARCH_LIBS([strlcpy], 215 [bsd strl], 216 [libstrl_found="yes"], 217 [strl_found="no"]) 218 STRL_LIBS="$LIBS" 219 LIBS="$saved_LIBS" 220 ]) 221 222if test x"$libstrl_found" = x"yes" 223then 224 LIBS="$LIBS $STRL_LIBS" 225fi 226 227# we need something above to have worked 228if test x"$strl_found" != x"yes" -a x"$libstrl_found" != x"yes" 229then 230 AC_MSG_ERROR(no strlcpy/strlcat found) 231fi 232 233AC_CHECK_HEADERS([strl.h], [strl_h_found="yes"]) 234if test x"$strl_h_found" != x"yes" 235then 236 strldirs="/usr/local/include /usr/include" 237 238 for d in $strldirs 239 do 240 AC_MSG_CHECKING([for strl.h in $d/strl]) 241 if test -f $d/strl/strl.h 242 then 243 unset ac_cv_header_strl_h 244 saved_CPPFLAGS="$CPPFLAGS" 245 CPPFLAGS="$CPPFLAGS -I$d/strl" 246 AC_CHECK_HEADERS([strl.h], [strl_h_found="yes"]) 247 CPPFLAGS="$saved_CPPFLAGS" 248 fi 249 250 if test x"$strl_h_found" = x"yes" 251 then 252 CPPFLAGS="$CPPFLAGS -I$d/strl" 253 break 254 fi 255 done 256fi 257 258# we need to include <strl.h> if an installed strl.h was found and no 259# bsd/string.h was found 260if test x"$strl_h_found" = x"yes" -a x"$bsdstrl_h_found" = x"no" 261then 262 AC_DEFINE([USE_STRL_H], 1, 263 [Define to 1 if you need to include <strl.h> to get the `strlcat()' and `strlcpy()' functions.]) 264fi 265 266if test x"$bsdstrl_h_found" = x"yes" 267then 268 AC_DEFINE([USE_BSD_H], 1, 269 [Define to 1 if you need to include <bsd/string.h> to get the `strlcat()' and `strlcpy()' functions.]) 270fi 271 272# 273# Checks for structure members 274# 275AC_CHECK_MEMBER([struct sockaddr_un.sun_len], 276 AC_DEFINE([HAVE_SUN_LEN], 277 [1], 278 [Define if sockaddr_un has a sun_len member]), 279 [], 280 [[#include <sys/un.h>]]) 281 282AC_CHECK_MEMBER([struct sockaddr_in.sin_len], 283 AC_DEFINE([HAVE_SIN_LEN], 284 [1], 285 [Define if sockaddr_in has a sin_len member]), 286 [], 287 [[#include <netinet/in.h>]]) 288 289AC_CHECK_MEMBER([struct sockaddr_in6.sin6_len], 290 AC_DEFINE([HAVE_SIN6_LEN], 291 [1], 292 [Define if sockaddr_in6 has a sin6_len member]), 293 [], 294 [[#include <netinet/in.h>]]) 295 296# 297# Library feature string and macros 298# 299LIBOPENDKIM_FEATURE_STRING="libopendkim $PACKAGE_VERSION:" 300 301AC_DEFUN([TR_UP], [m4_translit([AS_TR_SH([$1])], [a-z], [A-Z])]) 302 303AC_DEFUN([FEATURE], 304 [notincluded="(Not enabled for this installation.)" 305 AC_ARG_ENABLE($1, AS_HELP_STRING(--enable-$1, $2), 306 AS_IF([test "x$enable_]$1[" = "xyes"], 307 [ 308 AC_SUBST(TR_UP($1)[_MANNOTICE], "") 309 AC_DEFINE(TR_UP($1), 1, [enable $1 feature]) 310 ], 311 [ 312 AC_SUBST(TR_UP($1)[_MANNOTICE], $notincluded) 313 ]), 314 AC_SUBST(TR_UP($1)[_MANNOTICE], $notincluded)) 315 ]) 316 317AC_DEFUN([LIB_FEATURE], 318 [FEATURE($1, $2) 319 AS_IF([test "x$enable_]$1[" = "xyes"], 320 [ 321 LIBOPENDKIM_FEATURE_STRING="$LIBOPENDKIM_FEATURE_STRING $1" 322 ]) 323 ]) 324 325AC_DEFUN([FFR_FEATURE], 326 [experimentalnotincluded="(Experimental feature not enabled for this installation.)" 327 AC_ARG_ENABLE($1, AS_HELP_STRING(--enable-$1, $2), 328 AS_IF([test "x$enable_]$1[" = "xyes"], 329 [ 330 AC_DEFINE([_FFR_]TR_UP($1), 1, 331 [enable $1 feature]) 332 AC_SUBST(TR_UP($1)[_MANNOTICE], 333 "(Note: Feature is experimental.)") 334 ], 335 [ 336 AC_SUBST(TR_UP($1)[_MANNOTICE], 337 $experimentalnotincluded) 338 ]), 339 AC_SUBST(TR_UP($1)[_MANNOTICE], 340 $experimentalnotincluded)) 341 ]) 342 343AC_DEFUN([LIB_FFR_FEATURE], 344 [FFR_FEATURE($1, $2) 345 AS_IF([test "x$enable_]$1[" = "xyes"], 346 [ 347 LIBOPENDKIM_FEATURE_STRING="$LIBOPENDKIM_FEATURE_STRING $1" 348 ]) 349 ]) 350 351# 352# opendkim 353# 354FEATURE([popauth], [enable POP-before-SMTP support]) 355 356FEATURE([poll], [use poll() instead of select()]) 357 358FFR_FEATURE([atps], [experimental Authorized Third Party Signers checks]) 359LIB_FFR_FEATURE([atps], [experimental Authorized Third Party Signers checks]) 360AM_CONDITIONAL([ATPS], [test x"$enable_atps" = x"yes"]) 361 362FFR_FEATURE([db_handle_pools], [experimental database handle pools]) 363 364FFR_FEATURE([diffheaders], [compare signed and verified headers when possible]) 365LIB_FFR_FEATURE([diffheaders], 366 [compare signed and verified headers when possible]) 367 368FFR_FEATURE([identity_header], [special header to set identity]) 369 370FFR_FEATURE([ldap_caching], [LDAP query piggybacking and caching]) 371 372FFR_FEATURE([postgresql_reconnect_hack], 373 [hack to overcome PostgreSQL connection error detection bug]) 374 375FFR_FEATURE([rate_limit], [support for DKIM-based rate limiting]) 376 377FFR_FEATURE([replace_rules], [support for string substitution when signing]) 378AM_CONDITIONAL([REPLACE_RULES], [test x"$enable_replace_rules" = x"yes"]) 379 380FFR_FEATURE([reprrd], 381 [support for experimental reputation checks using RRD]) 382AM_CONDITIONAL([REPRRD], [test x"$enable_reprrd" = x"yes"]) 383AC_CHECK_PROG([hasrrdtool], [rrdtool], [yes]) 384if test x"$enable_reprrd" = x"yes" -a x"$hasrrdtool" != x"yes" 385then 386 AC_MSG_ERROR([--enable-reprrd requires rrdtool binary, not found]) 387fi 388 389FFR_FEATURE([reputation], 390 [support for experimental reputation checks]) 391if test x"$enable_reputation" = x"yes" 392then 393 AC_SEARCH_LIBS([ceil], [m]) 394fi 395AM_CONDITIONAL([REPUTE], [test x"$enable_reputation" = x"yes"]) 396 397FFR_FEATURE([resign], 398 [support for one-step re-signing]) 399 400FFR_FEATURE([sender_macro], [macro to determine sender]) 401 402FFR_FEATURE([socketdb], [arbitrary socket data sets]) 403 404FFR_FEATURE([stats], [stats recording and reporting]) 405AM_CONDITIONAL([STATS], [test x"$enable_stats" = x"yes"]) 406FFR_FEATURE([statsext], [extended stats recording and reporting]) 407 408FFR_FEATURE([rbl], [Realtime Blacklist query support]) 409AM_CONDITIONAL([RBL], [test x"$enable_rbl" = x"yes"]) 410 411FFR_FEATURE([vbr], [Vouch-By-Reference support]) 412AM_CONDITIONAL([VBR], [test x"$enable_vbr" = x"yes"]) 413 414if test x"$enable_statsext" = x"yes" -a x"$enable_stats" != x"yes" 415then 416 AC_MSG_ERROR([--enable-statsext requires --enable-stats]) 417fi 418 419FFR_FEATURE([default_sender], [default sender address]) 420 421# sendmail command 422 423AC_PATH_PROG([SENDMAIL_PATH], [sendmail], [/usr/sbin/sendmail], 424 [/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/lib:$PATH]) 425AC_DEFINE_UNQUOTED([SENDMAIL_PATH], "$ac_cv_path_SENDMAIL_PATH", 426 [The path the the sendmail executable for report sending]) 427AC_SUBST([SENDMAIL_PATH]) 428 429# 430# use rpath at load time? 431# 432 433AC_ARG_ENABLE( 434 [rpath], 435 AS_HELP_STRING([--enable-rpath], 436 [include library load paths in binaries]), 437 , 438 enable_rpath="yes") 439AM_CONDITIONAL([RPATH], [test x"$enable_rpath" = x"yes"]) 440if test x"$enable_rpath" != x"yes" 441then 442 AC_MSG_RESULT([Suppressing -rpath use by libtool]) 443 hardcode_libdir_flag_spec=" -D__LIBTOOL_NO_RPATH__ " 444 chmod 0755 libtool 445fi 446 447# 448# test coverage/profiling stuff 449# 450AC_ARG_ENABLE([codecoverage], 451 AS_HELP_STRING([--enable-codecoverage], 452 [include code coverage/profiling code])) 453if test x"$enable_codecoverage" = x"yes" 454then 455 # gcc can do all of them; Solaris cc can only do gprof 456 AC_CHECK_PROG([hasgcc], [gcc], [yes]) 457 AC_CHECK_PROG([hascc], [cc], [yes]) 458 if test x"$hasgcc" != x"yes" -a x"$hascc" = x"yes" 459 then 460 if test x`cc -V 2>&1 | grep -c "Sun C"` = x"1" 461 then 462 hassuncc="yes" 463 fi 464 fi 465 466 # figure out which profiling system to use 467 AC_CHECK_PROG([hasgprof], [gprof], [yes]) 468 AC_ARG_WITH(gprof, 469 AS_HELP_STRING(--with-gprof, profiling with gprof), 470 hasgprof="$withval") 471 if test x"$hasgcc" = x"yes" 472 then 473 AC_CHECK_PROG([hasgcov], [gcov], [yes]) 474 AC_ARG_WITH(gcov, 475 AS_HELP_STRING(--with-gcov, profiling with gcov), 476 hasgcov="$withval") 477 AC_CHECK_PROG([haslcov], [lcov], [yes]) 478 AC_ARG_WITH(lcov, 479 AS_HELP_STRING(--with-lcov, profiling with lcov), 480 haslcov="$withval") 481 fi 482 483 # bail if none 484 if test x"$hasgprof" != x"yes" -a \ 485 x"$hasgcov" != x"yes" -a \ 486 x"$haslcov" != x"yes" 487 then 488 AC_MSG_ERROR([no supported test coverage packages found]) 489 fi 490 491 # see if there's a libgcov (OpenBSD doesn't have one) 492 if test x"$hasgcov" = x"yes" -a x"$haslcov" != x"yes" 493 then 494 saved_LIBS="$LIBS" 495 LIBS="$outer_LIBS" 496 AC_SEARCH_LIBS([__gcov_init], [gcov]) 497 GCOV_LIBS="$LIBS" 498 LIBS="$saved_LIBS" 499 fi 500 501 COV_CFLAGS="" 502 COV_LDFLAGS="" 503 COV_LIBADD="" 504 505 # sun profiling 506 if test x"$hasgprof" = x"yes" -a \ 507 x"$hasgcov" != x"yes" -a \ 508 x"$hassuncc" = x"yes" 509 then 510 COV_CFLAGS="-g -xpg" 511 COV_LDFLAGS="-g -xpg" 512 # non-sun profiling 513 elif test x"$hasgprof" = x"yes" -a \ 514 x"$hasgcov" != x"yes" -a \ 515 x"$hassuncc" != x"yes" 516 then 517 COV_CFLAGS="-g -pg" 518 COV_LDFLAGS="-g -pg" 519 # gcov profiling 520 elif test x"$hasgcov" = x"yes" 521 then 522 COV_CFLAGS="-g -fprofile-arcs -ftest-coverage" 523 COV_LIBADD="$GCOV_LIBS" 524 fi 525 526 AC_SUBST(COV_CFLAGS) 527 AC_SUBST(COV_LDFLAGS) 528 AC_SUBST(COV_LIBADD) 529fi 530 531# see if profiling-enabled binaries generate profile output with the 532# standard name "gmon.out" or "<file>.gmon" 533 534gprof_gmon_out="unknown" 535if test x"$hasgprof" = x"yes" 536then 537 gprofcheck=' 538int main() { 539 long x; 540 541 x = random(); 542}' 543 AC_MSG_CHECKING([names of profiling output files]) 544 545 saved_CFLAGS="$CFLAGS" 546 saved_LDFLAGS="$LDFLAGS" 547 548 CFLAGS="$CFLAGS $COV_CFLAGS" 549 LDFLAGS="$LDFLAGS $COV_LDFLAGS" 550 551 AC_RUN_IFELSE([AC_LANG_SOURCE([$gprofcheck])], 552 [ if test -f "gmon.out" 553 then 554 gprof_gmon_out="yes" 555 rm -f gmon.out 556 AC_MSG_RESULT(gmon.out) 557 else 558 gprof_gmon_out="no" 559 rm -f *.gmon 560 AC_MSG_RESULT([<binary>.gmon]) 561 fi 562 ], 563 [AC_MSG_RESULT(unknown)]) 564 565 CFLAGS="$saved_CFLAGS" 566 LDFLAGS="$saved_LDFLAGS" 567fi 568 569AM_CONDITIONAL(LCOV, test x"$haslcov" = x"yes" -a x"$hasgcov" = x"yes") 570AM_CONDITIONAL(GCOV, test x"$hasgcov" = x"yes") 571AM_CONDITIONAL(GCOV_ONLY, test x"$hasgcov" = x"yes" -a x"$haslcov" != x"yes") 572AM_CONDITIONAL(GPROF, test x"$hasgprof" = x"yes" -a x"$hasgcov" != x"yes") 573AM_CONDITIONAL(GPROF_FILENAMES, test x"$gprof_gmon_out" = x"no") 574 575# 576# opendkim 577# 578AC_ARG_ENABLE([filter], 579 AS_HELP_STRING([--disable-filter], 580 [do not compile the opendkim filter]), 581 [enable_filter=$enableval], 582 [enable_filter=yes]) 583AM_CONDITIONAL([BUILD_FILTER], [test x"$enable_filter" != x"no"]) 584 585# 586# libopendkim 587# 588LIB_FEATURE([query_cache], [local key caching]) 589 590# 591# Conditional stuff 592# 593AC_ARG_ENABLE([allsymbols], 594 AS_HELP_STRING([--enable-allsymbols], 595 [export internal-use symbols for better test coverage])) 596AM_CONDITIONAL(ALL_SYMBOLS, [test x"$enable_allsymbols" = x"yes"]) 597 598# the AM_CONDITIONAL and AC_DEFINE for USE_ARLIB are farther below, 599# after the Darwin checks 600 601AC_ARG_ENABLE([debug], 602 AS_HELP_STRING([--enable-debug], 603 [produce debugging binaries and libraries]), 604 AS_IF([test "x$enable_debug" = x"yes"], 605 [ 606 LIBOPENDKIM_FEATURE_STRING="$LIBOPENDKIM_FEATURE_STRING debug" 607 [[CFLAGS=`echo $CFLAGS | sed 's/ -O[1-9s]*//g'`]] 608 ]) 609) 610 611AM_CONDITIONAL([DEBUG], [test x"$enable_debug" = x"yes"]) 612 613# 614# gnutls 615# 616 617AC_ARG_WITH([gnutls], 618 AS_HELP_STRING([--with-gnutls], 619 [location of GnuTLS includes and library]), 620 [gtpath="$withval"], [gtpath="no"]) 621 622gnutls_found="no" 623 624if test \( x"$gtpath" = x"auto" -o x"$gtpath" = x"yes" \) -a x"$PKG_CONFIG" != x"" 625then 626 PKG_CHECK_MODULES([GNUTLS], [gnutls >= 2.11.7], 627 [gnutls_found="pkg-config"], 628 [gnutls_found="auto" 629 AC_MSG_WARN([pkg-config for GnuTLS not found, trying manual search...]) 630 ]) 631elif test x"$gtpath" != x"no" 632then 633 AC_MSG_NOTICE([checking for GnuTLS library and includes in $gtpath]) 634 635 saved_CFLAGS="$CFLAGS" 636 saved_CPPFLAGS="$CPPFLAGS" 637 saved_LDFLAGS="$LDFLAGS" 638 saved_LIBS="$LIBS" 639 640 LIBS="$outer_LIBS -lgnutls $saved_LIBS" 641 CPPFLAGS="-I$gtpath/include $saved_CPPFLAGS" 642 CFLAGS="$saved_CFLAGS" 643 LDFLAGS="-L$gtpath/lib $saved_LDFLAGS" 644 645 AC_CHECK_HEADERS([gnutls/gnutls.h], , 646 AC_MSG_ERROR([required GnuTLS header not found])) 647 648 AC_SEARCH_LIBS([gnutls_global_init], [gnutls], , 649 AC_MSG_ERROR([libgnutls not found]), 650 [-lnettle -lgmp -ldl]) 651 652 LIBCRYPTO_CPPFLAGS="-I$gtpath/include" 653 LIBCRYPTO_LIBDIRS="-L$gtpath/lib" 654 LIBCRYPTO_LIBS="-lgnutls" 655 656 CFLAGS="$saved_CFLAGS" 657 CPPFLAGS="$saved_CPPFLAGS" 658 LDFLAGS="$saved_LDFLAGS" 659 LIBS="$saved_LIBS" 660 661 gnutls_found="yes" 662fi 663 664if test x"$gnutls_found" = x"pkg-config" 665then 666 LIBCRYPTO_CPPFLAGS="$GNUTLS_CFLAGS" 667 LIBCRYPTO_LDFLAGS="" 668 LIBCRYPTO_LIBS="$GNUTLS_LIBS" 669 gnutls_found="yes" 670fi 671 672if test x"$gtpath" = x"yes" -a x"$gnutls_found" = x"auto" 673then 674 gcdirs="/usr/local /usr" 675 676 for d in $gcdirs 677 do 678 AC_MSG_NOTICE([checking for GnuTLS library and includes in $d]) 679 680 saved_CFLAGS="$CFLAGS" 681 saved_CPPFLAGS="$CPPFLAGS" 682 saved_LDFLAGS="$LDFLAGS" 683 saved_LIBS="$LIBS" 684 685 LIBS="$outer_LIBS -lgnutls $saved_LIBS" 686 CPPFLAGS="-I$d/include $saved_CPPFLAGS" 687 CFLAGS="$saved_CFLAGS" 688 LDFLAGS="$outer_LDFLAGS -L$d/lib $saved_LDFLAGS" 689 690 gnutls_h_found="no" 691 gnutls_lib_found="no" 692 693 AC_CHECK_HEADERS([gnutls/gnutls.h], gnutls_h_found="yes") 694 AC_SEARCH_LIBS([gnutls_global_init], [gnutls], 695 gnutls_lib_found="yes", , [-lnettle -lgmp]) 696 697 CFLAGS="$saved_CFLAGS" 698 CPPFLAGS="$saved_CPPFLAGS" 699 LDFLAGS="$saved_LDFLAGS" 700 LIBS="$saved_LIBS" 701 702 if test x"$gnutls_h_found" = x"yes" -a \ 703 x"$gnutls_lib_found" = x"yes" 704 then 705 LIBCRYPTO_CPPFLAGS="-I$d/include" 706 LIBCRYPTO_LIBDIRS="-L$d/lib" 707 LIBCRYPTO_LIBS="-lgnutls" 708 gnutls_found="yes" 709 AC_MSG_NOTICE(libgnutls found in $d) 710 break 711 else 712 AC_MSG_NOTICE(not found in $d) 713 fi 714 done 715 716 if test x"$gnutls_found" != x"yes" 717 then 718 AC_MSG_ERROR([GnuTLS not found]) 719 fi 720fi 721 722if test x"$gnutls_found" = x"yes" 723then 724 AC_DEFINE(USE_GNUTLS, 1, 725 [Define to 1 to use libgnutls instead of OpenSSL.]) 726 727 saved_CPPFLAGS="$CPPFLAGS" 728 CPPFLAGS="$LIBCRYPTO_CPPFLAGS $saved_CPPFLAGS" 729 730 versioncheck=' 731 #include <gnutls/gnutls.h> 732 733 #if GNUTLS_VERSION_NUMBER < 0x020b07 734 # error GnuTLS 2.11.7 or later required 735 #endif 736 int main() 737 { 738 return 0; 739 }' 740 741 AC_MSG_CHECKING([your GnuTLS version]) 742 AC_LINK_IFELSE([AC_LANG_SOURCE([$versioncheck])], 743 AC_MSG_RESULT(ok), 744 AC_MSG_FAILURE([GnuTLS must be at least version 2.11.7])) 745 746 sha256check=' 747 #include <gnutls/gnutls.h> 748 int main() 749 { 750 int x = GNUTLS_DIG_SHA256; 751 }' 752 753 AC_MSG_CHECKING([whether your GnuTLS supports SHA256]) 754 AC_LINK_IFELSE([AC_LANG_SOURCE([$sha256check])], 755 AC_MSG_RESULT(yes) 756 AC_DEFINE([HAVE_SHA256], 1, 757 [Define to 1 if your crypto library has SHA256 support]), 758 AC_MSG_WARN([SHA256 is required for DKIM but is not 759 supported with your version of GnuTLS])) 760 761 CPPFLAGS="$saved_CPPFLAGS" 762fi 763 764AM_CONDITIONAL([USE_GNUTLS], [test x"$gnutls_found" = x"yes"]) 765 766# 767# OpenSSL 768# 769 770AC_ARG_WITH([openssl], 771 AS_HELP_STRING([--with-openssl], 772 [location of OpenSSL includes and library]), 773 [sslpath="$withval"], [sslpath="auto"]) 774 775openssl_found="no" 776 777if test x"$gnutls_found" = x"yes" 778then 779 sslpath="skip" 780 openssl_found="skip" 781fi 782 783if test \( "$sslpath" = "auto" -o x"$sslpath" = x"yes" \) -a x"$PKG_CONFIG" != x"" 784then 785 PKG_CHECK_MODULES([LIBCRYPTO], [openssl >= 0.9.7], 786 [openssl_found="yes"], 787 [openssl_found="no" 788 AC_MSG_WARN([pkg-config for openssl not found, trying manual search...]) 789 ]) 790elif test "$sslpath" != "auto" -a x"$sslpath" != x"yes" 791then 792 AC_MSG_CHECKING([for OpenSSL includes]) 793 if test -f $sslpath/include/openssl/opensslv.h 794 then 795 LIBCRYPTO_CPPFLAGS="-I$sslpath/include" 796 LIBCRYPTO_CFLAGS="" 797 LIBCRYPTO_LIBDIRS="-L$sslpath/lib" 798 LIBCRYPTO_LIBS="-lssl -lcrypto" 799 openssl_found=yes 800 AC_MSG_RESULT([$sslpath]) 801 else 802 AC_MSG_RESULT([no]) 803 fi 804fi 805 806if test x"$openssl_found" = x"no" 807then 808 AC_MSG_CHECKING([for OpenSSL library and includes]) 809 ssldirs="/usr/local/ssl /usr/local /usr/sfw /opt/local /usr" 810 if test "$sslpath" = "auto" -o "$sslpath" = "yes" 811 then 812 for d in $ssldirs 813 do 814 if test -f $d/include/openssl/opensslv.h 815 then 816 sslpath=$d 817 openssl_found=yes 818 break 819 fi 820 done 821 fi 822 case "$sslpath" in 823 no) 824 AC_MSG_ERROR([OpenSSL is required]) 825 ;; 826 auto) 827 AC_MSG_ERROR([OpenSSL not found]) 828 ;; 829 */*) 830 AC_MSG_RESULT([$sslpath]) 831 ;; 832 *) 833 AC_MSG_ERROR([OpenSSL not found]) 834 ;; 835 esac 836 LIBCRYPTO_CPPFLAGS="-I$sslpath/include" 837 LIBCRYPTO_CFLAGS="" 838 LIBCRYPTO_LIBDIRS="-L$sslpath/lib" 839 LIBCRYPTO_LIBS="-lssl -lcrypto" 840fi 841 842if test x"$openssl_found" = x"yes" 843then 844 saved_CFLAGS="$CFLAGS" 845 saved_CPPFLAGS="$CPPFLAGS" 846 saved_LDFLAGS="$LDFLAGS" 847 saved_LIBS="$LIBS" 848 849 LIBS="$outer_LIBS $LIBCRYPTO_LIBS $saved_LIBS" 850 CPPFLAGS="$LIBCRYPTO_CPPFLAGS $saved_CPPFLAGS" 851 CFLAGS="$LIBCRYPTO_CFLAGS $saved_CFLAGS" 852 LDFLAGS="$outer_LDFLAGS $LIBCRYPTO_LIBDIRS $saved_LDFLAGS" 853 854 AC_CHECK_HEADERS([openssl/bio.h openssl/conf.h openssl/crypto.h openssl/err.h openssl/evp.h openssl/md5.h openssl/opensslv.h openssl/pem.h openssl/rsa.h openssl/sha.h openssl/ssl.h], , 855 AC_MSG_ERROR([required OpenSSL header not found])) 856 857 # -ldl is needed to assist with compilation of static openssl libraries. 858 # It appears to need dl for opening engine plugins. It fails at load 859 # time It also fails to build on FreeBSD if enabled by default. 860 AC_SEARCH_LIBS([ERR_peek_error], [crypto], , 861 AC_MSG_ERROR([libcrypto not found])) 862 863 864 AC_LINK_IFELSE( 865 [AC_LANG_PROGRAM([[#include <openssl/ssl.h>]], 866 [[SSL_library_init();]])], 867 [od_have_ossl="yes";], 868 [od_have_ossl="no";]) 869 if test x"$od_have_ossl" = x"no" 870 then 871 if test x"$enable_shared" = x"yes" 872 then 873 AC_MSG_ERROR([Cannot build shared opendkim 874 against static openssl libraries. 875 Configure with --disable-shared 876 to get this working or obtain a 877 shared libssl library for 878 opendkim to use.]) 879 fi 880 881 LIBCRYPTO_LIBS="$LIBCRYPTO_LIBS -ldl" 882 AC_SEARCH_LIBS([SSL_library_init], [ssl], , 883 AC_MSG_ERROR([libssl not found]), [-ldl]) 884 fi 885 886 AC_CHECK_DECL([SHA256_DIGEST_LENGTH], 887 AC_DEFINE([HAVE_SHA256], 1, 888 [Define to 1 if your crypto library has SHA256 support]), 889 AC_MSG_WARN([SHA256 is required for DKIM but is not 890 supported with your version of OpenSSL]), 891 [ 892#include <sys/types.h> 893#include <openssl/sha.h>]) 894 895 CFLAGS="$saved_CFLAGS" 896 CPPFLAGS="$saved_CPPFLAGS" 897 LDFLAGS="$saved_LDFLAGS" 898 LIBS="$saved_LIBS" 899fi 900 901AC_SUBST(LIBCRYPTO_CFLAGS) 902AC_SUBST(LIBCRYPTO_CPPFLAGS) 903AC_SUBST(LIBCRYPTO_LIBDIRS) 904AC_SUBST(LIBCRYPTO_LIBS) 905 906# 907# libmilter 908# 909AC_MSG_CHECKING([for milter library and includes]) 910AC_ARG_WITH([milter], 911 AS_HELP_STRING([--with-milter], 912 [location of milter includes and library]), 913 [milterpath="$withval"], [milterpath="auto"]) 914 915if test x"$enable_filter" = x"no" 916then 917 milterpath="no" 918fi 919 920if test "$milterpath" = "auto" -o "$milterpath" = "yes" 921then 922 milterdirs="/usr/local /opt/local /usr" 923 for d in $milterdirs 924 do 925 if test -f $d/include/libmilter/mfapi.h 926 then 927 milterpath=$d 928 break 929 fi 930 done 931fi 932case "$milterpath" in 933 no) 934 if test x"$enable_filter" = x"yes" 935 then 936 AC_MSG_ERROR([milter is required]) 937 fi 938 AC_MSG_RESULT(disabled) 939 ;; 940 auto) 941 AC_MSG_ERROR([milter not found]) 942 ;; 943 */*) 944 if ! test -f $milterpath/include/libmilter/mfapi.h 945 then 946 AC_MSG_ERROR([milter includes not found at $milterpath]) 947 fi 948 AC_MSG_RESULT([$milterpath]) 949 ;; 950 *) 951 AC_MSG_ERROR([milter not found]) 952 ;; 953esac 954 955LIBMILTER_INCDIRS="" 956LIBMILTER_LIBDIRS="" 957LIBMILTER_LIBS="" 958 959if test x"$milterpath" != x"no" 960then 961 LIBMILTER_INCDIRS="-I$milterpath/include" 962 963 saved_CC="$CC" 964 saved_CFLAGS="$CFLAGS" 965 saved_CPPFLAGS="$CPPFLAGS" 966 saved_LDFLAGS="$LDFLAGS" 967 saved_LIBS="$LIBS" 968 969 CC="$PTHREAD_CC" 970 LIBS="$outer_LIBS $PTHREAD_LIBS $saved_LIBS" 971 CPPFLAGS="$LIBMILTER_INCDIRS $saved_CPPFLAGS" 972 CFLAGS="$PTHREAD_CFLAGS $saved_CFLAGS" 973 LDFLAGS="$outer_LDFLAGS $PTHREAD_CFLAGS $saved_LDFLAGS" 974 975 breakloop="no" 976 for d in lib lib64 lib/libmilter 977 do 978 unset ac_cv_search_smfi_register 979 LDFLAGS="$outer_LDFLAGS $PTHREAD_CFLAGS -L$milterpath/$d $saved_LDFLAGS" 980 AC_SEARCH_LIBS([smfi_register], [milter], 981 [ 982 LIBMILTER_LIBDIRS="-L$milterpath/$d" 983 LIBMILTER_LIBS="-lmilter" 984 breakloop="yes" 985 ]) 986 987 AC_CHECK_FUNC([smfi_insheader], 988 AC_DEFINE([HAVE_SMFI_INSHEADER], 1, 989 [Define if libmilter has smfi_insheader()])) 990 991 AC_CHECK_FUNC([smfi_opensocket], 992 AC_DEFINE([HAVE_SMFI_OPENSOCKET], 1, 993 [Define if libmilter has smfi_opensocket()])) 994 995 AC_CHECK_FUNC([smfi_progress], 996 AC_DEFINE([HAVE_SMFI_PROGRESS], 1, 997 [Define if libmilter has smfi_progress()])) 998 999 AC_CHECK_FUNC([smfi_setsymlist], 1000 AC_DEFINE([HAVE_SMFI_SETSYMLIST], 1, 1001 [Define if libmilter has smfi_setsymlist()])) 1002 1003 AC_CHECK_FUNC([smfi_version], 1004 AC_DEFINE([HAVE_SMFI_VERSION], 1, 1005 [Define if libmilter has smfi_version()])) 1006 1007 if test x"$breakloop" = x"yes" 1008 then 1009 break 1010 fi 1011 done 1012 if test x"$LIBMILTER_LIBDIRS" = x"" 1013 then 1014 AC_MSG_ERROR([libmilter not found]) 1015 fi 1016 1017 CC="$saved_CC" 1018 CPPFLAGS="$saved_CPPFLAGS" 1019 CFLAGS="$saved_CFLAGS" 1020 LDFLAGS="$saved_LDFLAGS" 1021 LIBS="$saved_LIBS" 1022fi 1023 1024AC_SUBST(LIBMILTER_INCDIRS) 1025AC_SUBST(LIBMILTER_LIBDIRS) 1026AC_SUBST(LIBMILTER_LIBS) 1027 1028# 1029# librrd 1030# 1031AC_ARG_WITH([librrd], 1032 AS_HELP_STRING([--with-librrd], 1033 [location of librrd includes and library]), 1034 [librrdpath="$withval"], [librrdpath="no"]) 1035 1036librrd_found="no" 1037if test x"$enable_reprrd" = x"yes" -a x"$librrdpath" = x"no" 1038then 1039 librrdpath="auto" 1040fi 1041 1042if test \( x"$librrdpath" = x"auto" -o x"$librrdpath" = x"yes" \) -a x"$PKG_CONFIG" != x"" 1043then 1044 PKG_CHECK_MODULES([RRDTOOL], [librrd], 1045 [ 1046 librrd_found="yes" 1047 ], 1048 [ 1049 AC_MSG_WARN([pkg-config for rrdtool not found, trying manual search...]) 1050 ]) 1051fi 1052 1053if test \( x"$librrdpath" = x"auto" -o x"$librrdpath" = x"yes" \) -a x"$librrd_found" = x"no" 1054then 1055 AC_MSG_CHECKING([for librrd]) 1056 1057 librrddirs="/usr /usr/local" 1058 for d in $librrddirs 1059 do 1060 if test -f $d/include/rrd.h 1061 then 1062 librrdpath=$d 1063 AC_MSG_RESULT($d) 1064 RRDTOOL_CFLAGS="-I$librrdpath/include" 1065 RRDTOOL_LIBS="-L$librrdpath/lib -lrrd" 1066 librrd_found="yes" 1067 break 1068 fi 1069 done 1070 if test x"$RRDTOOL_LIBS" = x"" 1071 then 1072 AC_MSG_ERROR([not found]) 1073 fi 1074elif test x"$librrdpath" != x"no" -a x"$librrd_found" = x"no" 1075then 1076 AC_MSG_CHECKING([for librrd]) 1077 if test -f $librrdpath/include/rrd.h 1078 then 1079 AC_MSG_RESULT([$librrdpath]) 1080 RRDTOOL_CFLAGS="-I$librrdpath/include" 1081 RRDTOOL_LIBS="-L$librrdpath/lib -lrrd" 1082 librrd_found="yes" 1083 else 1084 AC_MSG_ERROR([not found at $librrdpath]) 1085 fi 1086fi 1087 1088if test x"$librrdpath" = x"no" -o x"$librrd_found" = x"no" 1089then 1090 RRDTOOL_CFLAGS="" 1091 RRDTOOL_LIBS="" 1092 AC_SUBST([LIBRRD_MANNOTICE], 1093 "(Not enabled for this installation.)" ) 1094else 1095 AC_DEFINE([USE_RRD], 1, 1096 [use RRD library]) 1097 AC_SUBST([LIBRRD_MANNOTICE], "" ) 1098fi 1099 1100AM_CONDITIONAL(USE_RRD, test x"$librrdpath" != x"no") 1101AC_SUBST(RRDTOOL_CFLAGS) 1102AC_SUBST(RRDTOOL_LIBS) 1103 1104# 1105# libmemcached 1106# 1107AC_ARG_WITH([libmemcached], 1108 AS_HELP_STRING([--with-libmemcached], 1109 [location of libmemcached includes and library]), 1110 [libmcdpath="$withval"], [libmcdpath="no"]) 1111 1112libmemcache_found="no" 1113 1114if test \( x"$libmcdpath" = x"auto" -o x"$libmcdpath" = x"yes" \) -a x"$PKG_CONFIG" != x"" 1115then 1116 PKG_CHECK_MODULES([LIBMEMCACHED], [libmemcached >= 0.36], 1117 [ 1118 libmemcache_found="yes" 1119 LIBMEMCACHED_INCDIRS="$LIBMEMCACHED_CFLAGS" 1120 ], 1121 [ 1122 AC_MSG_WARN([pkg-config for libmemcached not found, trying manual search...]) 1123 ]) 1124fi 1125 1126if test \( x"$libmcdpath" = x"auto" -o x"$libmcdpath" = x"yes" \) -a x"$libmemcache_found" = x"no" 1127then 1128 AC_MSG_CHECKING([for libmemcached]) 1129 1130 libmcddirs="/usr /usr/local" 1131 for d in $libmcddirs 1132 do 1133 if test -f $d/include/libmemcached/memcached.h 1134 then 1135 libmcdpath=$d 1136 AC_MSG_RESULT($d) 1137 LIBMEMCACHED_INCDIRS="-I$libmcdpath/include" 1138 LIBMEMCACHED_LIBDIRS="-L$libmcdpath/lib" 1139 LIBMEMCACHED_LIBS="-lmemcached" 1140 libmemcache_found="yes" 1141 break 1142 fi 1143 done 1144 if test x"$LIBMEMCACHED_LIBS" = x"" 1145 then 1146 AC_MSG_ERROR([not found]) 1147 fi 1148elif test x"$libmcdpath" != x"no" -a x"$libmemcache_found" = x"no" 1149then 1150 AC_MSG_CHECKING([for libmemcached]) 1151 if test -f $libmcdpath/include/libmemcached/memcached.h 1152 then 1153 AC_MSG_RESULT([$libmcdpath]) 1154 LIBMEMCACHED_INCDIRS="-I$libmcdpath/include" 1155 LIBMEMCACHED_LIBDIRS="-L$libmcdpath/lib" 1156 LIBMEMCACHED_LIBS="-lmemcached" 1157 libmemcache_found="yes" 1158 else 1159 AC_MSG_ERROR([not found at $libmcdpath]) 1160 fi 1161fi 1162 1163# confirm memcached_return_t is defined 1164if test x"$libmemcache_found" = x"yes" 1165then 1166 saved_CPPFLAGS=$CPPFLAGS 1167 CPPFLAGS="$CPPFLAGS $LIBMEMCACHED_INCDIRS" 1168 AC_MSG_CHECKING([for memcached_return_t]) 1169 AC_COMPILE_IFELSE([AC_LANG_SOURCE([ 1170#include <libmemcached/memcached.h> 1171 1172int 1173main() 1174{ 1175 memcached_return_t x; 1176 1177 return 0; 1178} 1179 ])], 1180 AC_MSG_RESULT([ok]), 1181 AC_MSG_ERROR([libmemcached version 0.36 or later required])) 1182fi 1183 1184if test x"$libmcdpath" = x"no" -o x"$libmemcache_found" = x"no" 1185then 1186 LIBMEMCACHED_INCDIRS="" 1187 LIBMEMCACHED_LIBDIRS="" 1188 LIBMEMCACHED_LIBS="" 1189 AC_SUBST([LIBMEMCACHED_MANNOTICE], 1190 "(Not enabled for this installation.)" ) 1191else 1192 AC_DEFINE([USE_LIBMEMCACHED], 1, 1193 [use memcache query library]) 1194 AC_SUBST([LIBMEMCACHED_MANNOTICE], "" ) 1195fi 1196 1197AM_CONDITIONAL(USE_LIBMEMCACHED, test x"$libmcdpath" != x"no") 1198AC_SUBST(LIBMEMCACHED_INCDIRS) 1199AC_SUBST(LIBMEMCACHED_LIBDIRS) 1200AC_SUBST(LIBMEMCACHED_LIBS) 1201 1202# 1203# libunbound 1204# 1205AC_ARG_WITH([unbound], 1206 AS_HELP_STRING([--with-unbound], 1207 [location of Unbound includes and library]), 1208 [unboundpath="$withval"], [unboundpath="no"]) 1209 1210if test x"$unboundpath" = x"yes" 1211then 1212 AC_MSG_CHECKING([for libunbound]) 1213 1214 unbounddirs="/usr /usr/local" 1215 for d in $unbounddirs 1216 do 1217 if test -f $d/include/unbound.h 1218 then 1219 unboundpath=$d 1220 AC_MSG_RESULT($d) 1221 LIBUNBOUND_INCDIRS="-I$unboundpath/include" 1222 LIBUNBOUND_LIBDIRS="-L$unboundpath/lib" 1223 LIBUNBOUND_LIBS="-lunbound" 1224 break 1225 fi 1226 done 1227 if test x"$LIBUNBOUND_LIBS" = x"" 1228 then 1229 AC_MSG_ERROR([not found]) 1230 fi 1231elif test x"$unboundpath" = x"no" 1232then 1233 LIBUNBOUND_INCDIRS="" 1234 LIBUNBOUND_LIBDIRS="" 1235 LIBUNBOUND_LIBS="" 1236else 1237 AC_MSG_CHECKING([for libunbound]) 1238 if test -f $unboundpath/include/unbound.h 1239 then 1240 AC_MSG_RESULT([$unboundpath]) 1241 LIBUNBOUND_INCDIRS="-I$unboundpath/include" 1242 LIBUNBOUND_LIBDIRS="-L$unboundpath/lib" 1243 LIBUNBOUND_LIBS="-lunbound" 1244 else 1245 AC_MSG_ERROR([not found at $unboundpath]) 1246 fi 1247fi 1248 1249if test x"$unboundpath" = x"no" 1250then 1251 AC_SUBST([UNBOUND_MANNOTICE], "(Not enabled for this installation.)" ) 1252else 1253 AC_DEFINE([USE_UNBOUND], 1, 1254 [use unbound DNSSEC library for DNS]) 1255 AC_SUBST([UNBOUND_MANNOTICE], "" ) 1256fi 1257 1258AM_CONDITIONAL(USE_UNBOUND, test x"$unboundpath" != x"no") 1259AC_SUBST(LIBUNBOUND_INCDIRS) 1260AC_SUBST(LIBUNBOUND_LIBDIRS) 1261AC_SUBST(LIBUNBOUND_LIBS) 1262 1263# unbound also needs ldns 1264AC_ARG_WITH([ldns], 1265 AS_HELP_STRING([--with-ldns], 1266 [location of ldns includes and library]), 1267 [ldnspath="$withval"], [ldnspath="no"]) 1268 1269LIBLDNS_LIBS="" 1270LIBLDNS_LIBDIRS="" 1271 1272if test x"$ldnspath" = x"yes" 1273then 1274 ldns_found="no" 1275 1276 ldnsdirs="/usr /usr/local" 1277 for d in $ldnsdirs 1278 do 1279 unset ac_cv_search_ldns_rr_new 1280 saved_LDFLAGS="$LDFLAGS" 1281 saved_LIBS="$LIBS" 1282 LDFLAGS="$outer_LDFLAGS -L$d/lib $LDFLAGS" 1283 LIBS="$outer_LIBS" 1284 AC_SEARCH_LIBS([ldns_rr_new], [ldns], ldns_found="yes") 1285 LDFLAGS="$saved_LDFLAGS" 1286 LIBS="$saved_LIBS" 1287 1288 if test x"$ldns_found" = x"yes" 1289 then 1290 LIBLDNS_LIBDIRS="-L$d/lib" 1291 LIBLDNS_LIBS="-lldns" 1292 break 1293 fi 1294 done 1295 if test x"$LIBLDNS_LIBS" = x"" 1296 then 1297 AC_MSG_ERROR([libldns not found]) 1298 fi 1299elif test x"$ldnspath" != x"no" 1300then 1301 ldns_found="no" 1302 saved_LDFLAGS="$LDFLAGS" 1303 saved_LIBS="$LIBS" 1304 LDFLAGS="$outer_LDFLAGS -L$d/lib $LDFLAGS" 1305 LIBS="$outer_LIBS" 1306 AC_SEARCH_LIBS([ldns_rr_new], [ldns], ldns_found="yes") 1307 LDFLAGS="$saved_LDFLAGS" 1308 LIBS="$saved_LIBS" 1309 1310 if test x"$ldns_found" = x"yes" 1311 then 1312 LIBLDNS_LIBDIRS="-L$d/lib" 1313 LIBLDNS_LIBS="-lldns" 1314 break 1315 else 1316 AC_MSG_ERROR(libldns not found in $d) 1317 fi 1318fi 1319 1320AC_SUBST(LIBLDNS_LIBDIRS) 1321AC_SUBST(LIBLDNS_LIBS) 1322 1323# unbound may also need libevent 1324AC_ARG_WITH([libevent], 1325 AS_HELP_STRING([--with-libevent], 1326 [location of libevent includes and library]), 1327 [libeventpath="$withval"], [libeventpath="no"]) 1328 1329LIBEVENT_LIBS="" 1330LIBEVENT_LIBDIRS="" 1331 1332if test x"$libevent" = x"yes" 1333then 1334 libevent_found="no" 1335 1336 libeventdirs="/usr /usr/local" 1337 for d in $libeventdirs 1338 do 1339 unset ac_cv_search_libevent_rr_new 1340 saved_LDFLAGS="$LDFLAGS" 1341 saved_LIBS="$LIBS" 1342 LDFLAGS="$outer_LDFLAGS -L$d/lib $LDFLAGS" 1343 LIBS="$outer_LIBS" 1344 AC_SEARCH_LIBS([evutil_vsnprintf], [event], libevent_found="yes") 1345 LDFLAGS="$saved_LDFLAGS" 1346 LIBS="$saved_LIBS" 1347 1348 if test x"$libevent_found" = x"yes" 1349 then 1350 LIBEVENT_LIBDIRS="-L$d/lib" 1351 LIBEVENT_LIBS="-levent" 1352 break 1353 fi 1354 done 1355 if test x"$LIBEVENT_LIBS" = x"" 1356 then 1357 AC_MSG_ERROR([libevent not found]) 1358 fi 1359elif test x"$libeventpath" != x"no" 1360then 1361 libevent_found="no" 1362 saved_LDFLAGS="$LDFLAGS" 1363 saved_LIBS="$LIBS" 1364 LDFLAGS="$outer_LDFLAGS -L$d/lib $LDFLAGS" 1365 LIBS="$outer_LIBS" 1366 AC_SEARCH_LIBS([evutil_vsnprintf], [event], libevent_found="yes") 1367 LDFLAGS="$saved_LDFLAGS" 1368 LIBS="$saved_LIBS" 1369 1370 if test x"$libevent_found" = x"yes" 1371 then 1372 LIBEVENT_LIBDIRS="-L$d/lib" 1373 LIBEVENT_LIBS="-levent" 1374 break 1375 else 1376 AC_MSG_ERROR(libevent not found in $d) 1377 fi 1378fi 1379 1380AC_SUBST(LIBEVENT_LIBDIRS) 1381AC_SUBST(LIBEVENT_LIBS) 1382 1383# 1384# libtre 1385# 1386AC_ARG_WITH([tre], 1387 AS_HELP_STRING([--with-tre], 1388 [location of TRE includes and library]), 1389 [trepath="$withval"], [trepath="auto"]) 1390 1391tre_found="no" 1392LIBTRE_CPPFLAGS="" 1393LIBTRE_LIBS="" 1394 1395if test x"$enable_diffheaders" != x"yes" 1396then 1397 trepath="no" 1398fi 1399 1400if test \( x"$trepath" = x"auto" -o x"$trepath" = x"yes" \) -a x"$PKG_CONFIG" != x"" 1401then 1402 PKG_CHECK_MODULES([LIBTRE], [tre >= 0.8.0], [tre_found="yes"], 1403 [ 1404 PKG_CHECK_MODULES([LIBTRE], [tre >= 0.7.5], 1405 [ 1406 tre_found="yes" 1407 AC_DEFINE([TRE_PRE_080], 1, 1408 [version of libtre is older than 0.8.0]) 1409 ],[ 1410 tre_found="no" 1411 AC_MSG_WARN([pkg-config for libtre >= 0.7.5 not found, 1412 trying manual search...]) 1413 ]) 1414 1415 ]) 1416fi 1417 1418if test x"$tre_found" = x"no" -a x"$trepath" != x"no" 1419then 1420 AC_MSG_CHECKING([for libtre]) 1421 if test x"$trepath" != x"auto" -a x"$trepath" != x"yes" 1422 then 1423 if test -f "$trepath/include/tre/tre.h" 1424 then 1425 tre_found="yes" 1426 AC_MSG_RESULT($trepath) 1427 LIBTRE_CPPFLAGS="-I$trepath/include" 1428 LIBTRE_LIBS="-L$trepath/lib -ltre" 1429 elif test -f "$trepath/include/tre/regex.h" 1430 then 1431 tre_found="yes" 1432 AC_MSG_RESULT([$trepath (old version)]) 1433 AC_DEFINE([TRE_PRE_080], 1, 1434 [version of libtre is older than 0.8.0]) 1435 LIBTRE_CPPFLAGS="-I$trepath/include" 1436 LIBTRE_LIBS="-L$trepath/lib -ltre" 1437 else 1438 AC_MSG_ERROR("not found at $trepath") 1439 fi 1440 else 1441 tredirs="/usr /usr/local" 1442 for d in $tredirs 1443 do 1444 if test -f $d/include/tre/tre.h 1445 then 1446 trepath=$d 1447 tre_found="yes" 1448 AC_MSG_RESULT($d) 1449 LIBTRE_CPPFLAGS="-I$trepath/include" 1450 LIBTRE_LIBS="-L$trepath/lib -ltre" 1451 break 1452 elif test -f $d/include/tre/regex.h 1453 then 1454 trepath=$d 1455 tre_found="yes" 1456 AC_MSG_RESULT([$d (old version)]) 1457 AC_DEFINE([TRE_PRE_080], 1, 1458 [version of libtre is older than 0.8.0]) 1459 LIBTRE_CPPFLAGS="-I$trepath/include" 1460 LIBTRE_LIBS="-L$trepath/lib -ltre" 1461 break 1462 fi 1463 done 1464 if test x"$tre_found" != x"yes" 1465 then 1466 AC_MSG_RESULT([not found]) 1467 AC_MSG_ERROR([cannot use diffheaders without TRE 1468 library]) 1469 fi 1470 fi 1471fi 1472 1473if test x"$enable_diffheaders" = x"yes" -a x"$tre_found" = x"yes" 1474then 1475 AC_DEFINE([USE_TRE], 1, [tre regex library found]) 1476fi 1477 1478AM_CONDITIONAL([USE_TRE], [test x"$tre_found" != x"no"]) 1479AC_SUBST([LIBTRE_CPPFLAGS]) 1480AC_SUBST([LIBTRE_LIBS]) 1481 1482# 1483# liblua 1484# 1485AC_ARG_WITH([lua], 1486 AS_HELP_STRING([--with-lua], 1487 [location of Lua includes and library]), 1488 [luapath="$withval"], [luapath="no"]) 1489 1490LIBLUA_INCDIRS="" 1491LIBLUA_LIBDIRS="" 1492LIBLUA_LIBS="" 1493lua_found="no" 1494 1495if test \( x"$luapath" = x"auto" -o x"$luapath" = x"yes" \) -a x"$PKG_CONFIG" != x"" 1496then 1497 PKG_CHECK_MODULES([LIBLUA], [lua5.1], 1498 [ 1499 lua_found="yes" 1500 LIBLUA_INCDIRS="$LIBLUA_CFLAGS" 1501 ], 1502 [AC_MSG_WARN([pkg-config for Lua not found, trying manual search...])]) 1503fi 1504 1505if test \( x"$luapath" = x"yes" -o x"$luapath" = x"auto" \) -a x"$lua_found" = x"no" 1506then 1507 AC_MSG_CHECKING([for Lua]) 1508 luadirs="/usr /usr/local" 1509 for d in $luadirs 1510 do 1511 if test -f $d/include/lua51/lua.h 1512 then 1513 AC_MSG_RESULT($d) 1514 LIBLUA_INCDIRS="-I$d/include/lua51" 1515 LIBLUA_LIBDIRS="-L$d/lib/lua51" 1516 LIBLUA_LIBS="-llua -lm" 1517 AC_SEARCH_LIBS([dlopen], [dl]) 1518 AC_DEFINE([USE_LUA], 1, 1519 [support for Lua scripting]) 1520 AC_SUBST([LUA_MANNOTICE], "") 1521 lua_found="yes" 1522 break 1523 elif test -f $d/include/lua52/lua.h 1524 then 1525 AC_MSG_RESULT($d) 1526 LIBLUA_INCDIRS="-I$d/include/lua52" 1527 LIBLUA_LIBDIRS="-L$d/lib/lua52" 1528 LIBLUA_LIBS="-llua -lm" 1529 AC_SEARCH_LIBS([dlopen], [dl]) 1530 AC_DEFINE([USE_LUA], 1, 1531 [support for Lua scripting]) 1532 AC_SUBST([LUA_MANNOTICE], "") 1533 lua_found="yes" 1534 break 1535 elif test -f $d/include/lua5.1/lua.h 1536 then 1537 AC_MSG_RESULT($d) 1538 LIBLUA_INCDIRS="-I$d/include/lua5.1" 1539 LIBLUA_LIBDIRS="-L$d/lib" 1540 LIBLUA_LIBS="-llua5.1 -lm" 1541 AC_SEARCH_LIBS([dlopen], [dl]) 1542 AC_DEFINE([USE_LUA], 1, 1543 [support for Lua scripting]) 1544 AC_SUBST([LUA_MANNOTICE], "") 1545 lua_found="yes" 1546 break 1547 elif test -f $d/include/lua5.2/lua.h 1548 then 1549 AC_MSG_RESULT($d) 1550 LIBLUA_INCDIRS="-I$d/include/lua5.2" 1551 LIBLUA_LIBDIRS="-L$d/lib" 1552 LIBLUA_LIBS="-llua5.2 -lm" 1553 AC_SEARCH_LIBS([dlopen], [dl]) 1554 AC_DEFINE([USE_LUA], 1, 1555 [support for Lua scripting]) 1556 AC_SUBST([LUA_MANNOTICE], "") 1557 lua_found="yes" 1558 break 1559 elif test -f $d/include/lua.h 1560 then 1561 AC_MSG_RESULT($d) 1562 LIBLUA_INCDIRS="-I$d/include" 1563 LIBLUA_LIBDIRS="-L$d/lib" 1564 LIBLUA_LIBS="-llua -lm" 1565 AC_SEARCH_LIBS([dlopen], [dl]) 1566 lua_found="yes" 1567 break 1568 fi 1569 done 1570 if test x"$LIBLUA_LIBS" = x"" 1571 then 1572 LIBLUA_INCDIRS="" 1573 LIBLUA_LIBDIRS="" 1574 LIBLUA_LIBS="" 1575 AC_MSG_ERROR(not found) 1576 else 1577 lua_found="yes" 1578 fi 1579fi 1580 1581if test x"$luapath" != x"yes" -a x"$luapath" != x"auto" -a x"$luapath" != x"no" 1582then 1583 AC_MSG_CHECKING([for Lua]) 1584 if test -f $luapath/include/lua51/lua.h 1585 then 1586 AC_MSG_RESULT($luapath) 1587 LIBLUA_INCDIRS="-I$luapath/include/lua51" 1588 LIBLUA_LIBDIRS="-L$luapath/lib/lua51" 1589 LIBLUA_LIBS="-llua -lm" 1590 AC_SEARCH_LIBS([dlopen], [dl]) 1591 lua_found="yes" 1592 elif test -f $luapath/include/lua52/lua.h 1593 then 1594 AC_MSG_RESULT($luapath) 1595 LIBLUA_INCDIRS="-I$luapath/include/lua52" 1596 LIBLUA_LIBDIRS="-L$luapath/lib/lua52" 1597 LIBLUA_LIBS="-llua -lm" 1598 AC_SEARCH_LIBS([dlopen], [dl]) 1599 lua_found="yes" 1600 elif test -f $luapath/include/lua5.1/lua.h 1601 then 1602 AC_MSG_RESULT($luapath) 1603 LIBLUA_INCDIRS="-I$luapath/include/lua5.1" 1604 LIBLUA_LIBDIRS="-L$luapath/lib" 1605 LIBLUA_LIBS="-llua5.1 -lm" 1606 AC_SEARCH_LIBS([dlopen], [dl]) 1607 lua_found="yes" 1608 elif test -f $luapath/include/lua5.2/lua.h 1609 then 1610 AC_MSG_RESULT($luapath) 1611 LIBLUA_INCDIRS="-I$luapath/include/lua5.2" 1612 LIBLUA_LIBDIRS="-L$luapath/lib" 1613 LIBLUA_LIBS="-llua5.2 -lm" 1614 AC_SEARCH_LIBS([dlopen], [dl]) 1615 lua_found="yes" 1616 elif test -f $luapath/include/lua.h 1617 then 1618 AC_MSG_RESULT($luapath) 1619 LIBLUA_INCDIRS="-I$luapath/include" 1620 LIBLUA_LIBDIRS="-L$luapath/lib" 1621 LIBLUA_LIBS="-llua -lm" 1622 AC_SEARCH_LIBS([dlopen], [dl]) 1623 lua_found="yes" 1624 else 1625 AC_MSG_ERROR(not found at $luapath) 1626 fi 1627fi 1628 1629if test x"$lua_found" = x"yes" 1630then 1631 saved_CPPFLAGS="$CPPFLAGS" 1632 CPPFLAGS="$outer_CPPFLAGS $LIBLUA_INCDIRS" 1633 AC_MSG_CHECKING([Lua version]) 1634 AC_COMPILE_IFELSE([AC_LANG_SOURCE([ 1635#include <lua.h> 1636 1637#if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 501 1638# error Lua version 5.1 or later is required 1639#endif 1640 1641int 1642main() 1643{ 1644 return 0; 1645} 1646 ])], 1647 AC_MSG_RESULT([ok]), 1648 AC_MSG_ERROR([Lua version 5.1 or later required])) 1649 CPPFLAGS="$saved_CPPFLAGS" 1650 AC_DEFINE([USE_LUA], 1, [support for Lua scripting]) 1651 AC_SUBST([LUA_MANNOTICE], "") 1652else 1653 AC_SUBST([LUA_MANNOTICE], "(Not enabled for this installation.)") 1654fi 1655 1656AM_CONDITIONAL(LUA, test x"$lua_found" = x"yes") 1657AC_SUBST(LIBLUA_INCDIRS) 1658AC_SUBST(LIBLUA_LIBDIRS) 1659AC_SUBST(LIBLUA_LIBS) 1660 1661if test x"$enable_lua_only_signing" = x"yes" -a x"$lua_found" != x"yes" 1662then 1663 AC_MSG_ERROR([--enable-lua_only_signing requires Lua support]) 1664fi 1665 1666if test x"$enable_statsext" = x"yes" -a x"$lua_found" != x"yes" 1667then 1668 AC_MSG_ERROR([--enable-statsext requires Lua support]) 1669fi 1670 1671if test x"$enable_rbl" = x"yes" -a x"$lua_found" != x"yes" 1672then 1673 AC_MSG_ERROR([--enable-rbl requires Lua support]) 1674fi 1675 1676AC_ARG_WITH([sql-backend], 1677 AS_HELP_STRING([--with-sql-backend], 1678 [selection of SQL backend in use]), 1679 [SQL_BACKEND="$withval"], [SQL_BACKEND="mysql"]) 1680AC_SUBST(SQL_BACKEND) 1681AC_DEFINE_UNQUOTED(SQL_BACKEND, "$SQL_BACKEND", [default SQL back-end]) 1682 1683# 1684# libodbx 1685# 1686AC_ARG_WITH([odbx], 1687 AS_HELP_STRING([--with-odbx], 1688 [location of OpenDBX includes and library]), 1689 [odbxpath="$withval"], [odbxpath="no"]) 1690 1691odbx_found="no" 1692LIBODBX_CPPFLAGS="" 1693LIBODBX_CFLAGS="" 1694LIBODBX_LDFLAGS="" 1695LIBODBX_LIBS="" 1696 1697if test \( x"$odbxpath" = x"auto" -o x"$odbxpath" = x"yes" \) -a \ 1698 x"$PKG_CONFIG" != x"" 1699then 1700 PKG_CHECK_MODULES([LIBODBX], [opendbx >= 1.3.7], [odbx_found="yes"], 1701 [ 1702 odbx_found="no" 1703 AC_MSG_WARN([pkg-config for libodbx not found, trying manual 1704 search...]) 1705 ]) 1706fi 1707 1708if test x"$odbxpath" != x"no" -a x"$odbx_found" = x"no" 1709then 1710 saved_LDFLAGS="$LDFLAGS" 1711 saved_LIBS="$LIBS" 1712 if test x"$odbxpath" != x"auto" -a x"$odbxpath" != x"yes" 1713 then 1714 if test -f $odbxpath/include/odbx.h 1715 then 1716 LDFLAGS="$outer_LDFLAGS -L$odbxpath/lib" 1717 LIBS="$outer_LIBS" 1718 AC_SEARCH_LIBS(odbx_result_finish, opendbx, 1719 [ 1720 odbx_found="yes" 1721 LIBODBX_CPPFLAGS="-I$odbxpath/include" 1722 LIBODBX_LDFLAGS="-L$odbxpath/lib" 1723 LIBODBX_LIBS="$LIBS" 1724 ], 1725 [ 1726 AC_MSG_ERROR([opendbx not at least v1.3.7 at $odbxpath]) 1727 ], 1728 [-ldl]) 1729 else 1730 AC_MSG_ERROR([opendbx not found at $odbxpath]) 1731 fi 1732 else 1733 odbxdirs="/usr /usr/local" 1734 for d in $odbxdirs 1735 do 1736 if test -f $d/include/odbx.h 1737 then 1738 LDFLAGS="$outer_LDFLAGS -L$d/lib" 1739 LIBS="$outer_LIBS" 1740 AC_SEARCH_LIBS(odbx_result_finish, opendbx, 1741 [ 1742 odbxpath=$d 1743 odbx_found="yes" 1744 LIBODBX_CPPFLAGS="-I$d/include" 1745 LIBODBX_LDFLAGS="-L$d/lib" 1746 LIBODBX_LIBS="$LIBS" 1747 break 1748 ],[ 1749 AC_MSG_ERROR([opendbx not at least v1.3.7 at $d]) 1750 ], 1751 [-ldl] 1752 ) 1753 fi 1754 done 1755 if test x"$odbx_found" != x"yes" 1756 then 1757 AC_MSG_ERROR([opendbx not found]) 1758 fi 1759 fi 1760 LDFLAGS="$saved_LDFLAGS" 1761 LIBS="$saved_LIBS" 1762fi 1763if test x"$odbx_found" = x"yes" 1764then 1765 AC_DEFINE([USE_ODBX], 1, [ODBX support for datasets enabled]) 1766else 1767 if test x"$enable_stats" = x"yes" 1768 then 1769 AC_MSG_WARN([opendbx is needed to import statistics into a SQL database - disabling opendkim-importstats and opendkim-spam]) 1770 fi 1771fi 1772AM_CONDITIONAL(USE_ODBX, test x"$odbx_found" = x"yes") 1773AC_SUBST(LIBODBX_CPPFLAGS) 1774AC_SUBST(LIBODBX_CFLAGS) 1775AC_SUBST(LIBODBX_LDFLAGS) 1776AC_SUBST(LIBODBX_LIBS) 1777 1778# 1779# OpenLDAP 1780# 1781AC_ARG_WITH([openldap], 1782 AS_HELP_STRING([--with-openldap], 1783 [location of OpenLDAP includes and library]), 1784 [ldappath="$withval"], [ldappath="no"]) 1785 1786ldap_found="no" 1787OPENLDAP_CPPFLAGS="" 1788OPENLDAP_LIBS="" 1789 1790if test \( x"$ldappath" = x"auto" -o x"$ldappath" = x"yes" \) -a \ 1791 x"$PKG_CONFIG" != x"" 1792then 1793 PKG_CHECK_MODULES([OPENLDAP], [openldap >= 2.0.0], 1794 [ 1795 ldap_found="yes" 1796 OPENLDAP_CPPFLAGS="$OPENLDAP_CFLAGS" 1797 ], 1798 [ 1799 ldap_found="no" 1800 AC_MSG_WARN([pkg-config for openldap not found, trying manual 1801 search...]) 1802 ]) 1803fi 1804 1805if test x"$ldappath" != x"no" -a x"$ldap_found" = x"no" 1806then 1807 AC_MSG_CHECKING([for OpenLDAP]) 1808 if test x"$ldappath" != x"auto" -a x"$ldappath" != x"yes" 1809 then 1810 if test -f $ldappath/include/ldap.h 1811 then 1812 AC_MSG_RESULT($ldappath) 1813 ldap_found="yes" 1814 OPENLDAP_CPPFLAGS="-I$ldappath/include" 1815 OPENLDAP_LIBS="-L$ldappath/lib -lldap -llber" 1816 else 1817 AC_MSG_ERROR(not found at $ldappath) 1818 fi 1819 else 1820 ldapdirs="/usr /usr/local" 1821 for d in $ldapdirs 1822 do 1823 if test -f $d/include/ldap.h 1824 then 1825 ldappath=$d 1826 AC_MSG_RESULT($d) 1827 ldap_found="yes" 1828 OPENLDAP_CPPFLAGS="-I$ldappath/include" 1829 OPENLDAP_LIBS="-L$ldappath/lib -lldap -llber" 1830 break 1831 fi 1832 done 1833 fi 1834 if test x"$ldap_found" != x"yes" 1835 then 1836 AC_MSG_RESULT([no]) 1837 fi 1838fi 1839if test x"$ldap_found" = x"yes" 1840then 1841 saved_CPPFLAGS="$CPPFLAGS" 1842 CPPFLAGS="$outer_CPPFLAGS $OPENLDAP_CPPFLAGS" 1843 AC_MSG_CHECKING([OpenLDAP version]) 1844 AC_COMPILE_IFELSE([AC_LANG_SOURCE([ 1845#include <ldap.h> 1846 1847#if !defined(LDAP_API_VERSION) || LDAP_API_VERSION < 2004 1848# error OpenLDAP version 2.1.3 or later is required 1849#endif 1850 1851int 1852main() 1853{ 1854 return 0; 1855} 1856 ])], 1857 AC_MSG_RESULT([ok]), 1858 AC_MSG_ERROR([OpenLDAP version 2.1.3 or later required])) 1859 CPPFLAGS="$saved_CPPFLAGS" 1860 AC_DEFINE([USE_LDAP], 1, [OpenLDAP support for datasets enabled]) 1861fi 1862AM_CONDITIONAL(USE_LDAP, test x"$ldap_found" = x"yes") 1863AC_SUBST(OPENLDAP_CPPFLAGS) 1864AC_SUBST(OPENLDAP_LIBS) 1865 1866# 1867# SASL 1868# 1869AC_ARG_WITH([sasl], 1870 AS_HELP_STRING([--with-sasl], 1871 [location of SASL includes]), 1872 [saslpath="$withval"], [saslpath="auto"]) 1873if test x"$ldap_found" != x"yes" 1874then 1875 # disable sasl if we don't have ldap 1876 saslpath="no" 1877fi 1878 1879sasl_found="no" 1880if test \( x"$saslpath" = x"auto" -o x"$saslpath" = x"yes" \) -a \ 1881 x"$PKG_CONFIG" != x"" 1882then 1883 PKG_CHECK_MODULES([SASL], [cyrussasl >= 2.1.0], 1884 [ 1885 sasl_found="yes" 1886 SASL_CPPFLAGS="$SASL_CFLAGS" 1887 ], 1888 [ 1889 sasl_found="no" 1890 AC_MSG_WARN([pkg-config for cyrussasl not found, trying manual 1891 search...]) 1892 ]) 1893fi 1894 1895if test x"$saslpath" != x"no" -a x"$sasl_found" = x"no" 1896then 1897 AC_MSG_CHECKING([for SASL]) 1898 if test x"$saslpath" != x"auto" -a x"$saslpath" != x"yes" 1899 then 1900 if test -f $saslpath/include/sasl/sasl.h 1901 then 1902 AC_MSG_RESULT($saslpath) 1903 sasl_found="yes" 1904 SASL_CPPFLAGS="-I$saslpath/include" 1905 else 1906 AC_MSG_ERROR(not found at $saslpath) 1907 fi 1908 else 1909 sasldirs="/usr /usr/local" 1910 for d in $sasldirs 1911 do 1912 if test -f $d/include/sasl/sasl.h 1913 then 1914 saslpath=$d 1915 AC_MSG_RESULT($d) 1916 sasl_found="yes" 1917 SASL_CPPFLAGS="-I$saslpath/include" 1918 break 1919 fi 1920 done 1921 fi 1922 if test x"$sasl_found" != x"yes" 1923 then 1924 AC_MSG_RESULT([no]) 1925 fi 1926fi 1927if test x"$sasl_found" = x"yes" 1928then 1929 AC_DEFINE([USE_SASL], 1, [SASL support available]) 1930fi 1931AM_CONDITIONAL(USE_SASL, test x"$sasl_found" = x"yes") 1932AC_SUBST(SASL_CPPFLAGS) 1933 1934# 1935# libmdb 1936# 1937AC_ARG_WITH([lmdb], 1938 AS_HELP_STRING([--with-lmdb], 1939 [location of OpenLDAP MDB includes and library]), 1940 [mdbpath="$withval"], [mdbpath="no"]) 1941 1942mdb_found="no" 1943LIBMDB_CPPFLAGS="" 1944LIBMDB_LIBS="" 1945 1946if test x"$mdbpath" != x"no" -a x"$mdb_found" = x"no" 1947then 1948 saved_ldflags="$LDFLAGS" 1949 saved_cflags="$CFLAGS" 1950 CFLAGS="$outer_CFLAGS -pthread" 1951 if test x"$mdbpath" != x"auto" -a x"$mdbpath" != x"yes" 1952 then 1953 if test -f $mdbpath/include/lmdb.h 1954 then 1955 LDFLAGS="$outer_LDFLAGS -L$mdbpath/lib $STRL_LIBS" 1956 AC_CHECK_LIB(lmdb, mdb_env_open, 1957 [ 1958 mdb_found="yes" 1959 LIBMDB_CPPFLAGS="-I$mdbpath/include" 1960 LIBMDB_LIBS="-L$mdbpath/lib -llmdb" 1961 ], 1962 [ 1963 AC_MSG_ERROR([lmdb not valid at $mdbpath]) 1964 ] 1965 ) 1966 else 1967 AC_MSG_ERROR([lmdb not found at $mdbpath]) 1968 fi 1969 else 1970 mdbdirs="/usr /usr/local" 1971 for d in $mdbdirs 1972 do 1973 if test -f $d/include/lmdb.h 1974 then 1975 LDFLAGS="$outer_LDFLAGS -L$d/lib $STRL_LIBS" 1976 AC_CHECK_LIB(lmdb, mdb_env_open, 1977 [ 1978 mdbpath=$d 1979 mdb_found="yes" 1980 LIBMDB_CPPFLAGS="-I$mdbpath/include" 1981 LIBMDB_LIBS="-L$mdbpath/lib -llmdb" 1982 break 1983 ] 1984 ) 1985 fi 1986 done 1987 if test x"$mdb_found" != x"yes" 1988 then 1989 AC_MSG_ERROR([lmdb not found]) 1990 fi 1991 fi 1992 LDFLAGS="$saved_ldflags" 1993 CFLAGS="$saved_cflags" 1994fi 1995if test x"$mdb_found" = x"yes" 1996then 1997 AC_DEFINE([USE_MDB], 1, [OpenLDAP MDB support for datasets enabled]) 1998fi 1999AM_CONDITIONAL(USE_MDB, test x"$mdb_found" = x"yes") 2000AC_SUBST(LIBMDB_CPPFLAGS) 2001AC_SUBST(LIBMDB_LIBS) 2002 2003# 2004# 2005# libcurl, required by reputation 2006# 2007AC_ARG_WITH([libcurl], 2008 AS_HELP_STRING([--with-libcurl], 2009 [location of CURL includes and library]), 2010 [curlpath="$withval"], [curlpath="auto"]) 2011 2012CURL_CPPFLAGS="" 2013CURL_LDFLAGS="" 2014CURL_LIBS="" 2015 2016if test x"$enable_reputation" != x"yes" -a \ 2017 x"$curlpath" = x"auto" 2018then 2019 curlpath="no" 2020fi 2021 2022curl_found="no" 2023if test \( x"$curlpath" = x"auto" -o x"$curlpath" = x"yes" \) -a \ 2024 x"$PKG_CONFIG" != x"" 2025then 2026 PKG_CHECK_MODULES([CURL], [libcurl >= 7.12.0], 2027 [ 2028 curl_found="yes" 2029 CURL_CPPFLAGS="$CURL_CFLAGS" 2030 ], 2031 [ 2032 curl_found="no" 2033 AC_MSG_WARN([pkg-config for curl not found, trying manual 2034 search...]) 2035 ]) 2036fi 2037 2038if test x"$curlpath" != x"no" -a x"$curl_found" = x"no" 2039then 2040 AC_MSG_CHECKING([for CURL]) 2041 if test x"$curlpath" != x"auto" -a x"$curlpath" != x"yes" 2042 then 2043 if test -f $curlpath/include/curl/curl.h 2044 then 2045 AC_MSG_RESULT($curlpath) 2046 curl_found="yes" 2047 CURL_CPPFLAGS="-I$curlpath/include" 2048 CURL_LDFLAGS="$outer_LDFLAGS -L$curlpath/lib" 2049 CURL_LIBS="-lcurl" 2050 else 2051 AC_MSG_ERROR(not found at $curlpath) 2052 fi 2053 else 2054 curldirs="/usr /usr/local" 2055 for d in $curldirs 2056 do 2057 if test -f $d/include/curl/curl.h 2058 then 2059 curlpath=$d 2060 AC_MSG_RESULT($d) 2061 curl_found="yes" 2062 CURL_CPPFLAGS="-I$curlpath/include" 2063 CURL_LDFLAGS="$outer_LDFLAGS -L$curlpath/lib" 2064 CURL_LIBS="-lcurl" 2065 break 2066 fi 2067 done 2068 fi 2069 if test x"$curl_found" != x"yes" 2070 then 2071 AC_MSG_RESULT([no]) 2072 fi 2073fi 2074 2075if test x"$curl_found" = x"yes" 2076then 2077 saved_CPPFLAGS="$CPPFLAGS" 2078 saved_LDFLAGS="$LDFLAGS" 2079 saved_LIBS="$LIBS" 2080 CPPFLAGS="$CPPFLAGS $CURL_CPPFLAGS" 2081 LDFLAGS="$LDFLAGS $CURL_LDFLAGS" 2082 LIBS="$LIBS $CURL_LIBS" 2083 AC_CHECK_FUNC([curl_easy_strerror], 2084 AC_DEFINE([HAVE_CURL_EASY_STRERROR], 1, 2085 [Define if libcurl has curl_easy_strerror()])) 2086 CPPFLAGS="$saved_CPPFLAGS" 2087 LDFLAGS="$saved_LDFLAGS" 2088 LIBS="$saved_LIBS" 2089 AC_SUBST([LIBCURL_MANNOTICE], "") 2090else 2091 AC_SUBST([LIBCURL_MANNOTICE], 2092 "(Not enabled for this installation.)" ) 2093fi 2094 2095AC_SUBST(CURL_CPPFLAGS) 2096AC_SUBST(CURL_LDFLAGS) 2097AC_SUBST(CURL_LIBS) 2098 2099if test x"$enable_reputation" = x"yes" -a \ 2100 x"$curl_found" != x"yes" 2101then 2102 AC_MSG_ERROR([reputation requires curl]) 2103fi 2104 2105# 2106# reputation requires libjansson 2107# 2108 2109AC_ARG_WITH([libjansson], 2110 AS_HELP_STRING([--with-libjansson], 2111 [location of jansson includes and library]), 2112 [janssonpath="$withval"], [janssonpath="auto"]) 2113 2114LIBJANSSON_CPPFLAGS="" 2115LIBJANSSON_LDFLAGS="" 2116LIBJANSSON_LIBS="" 2117 2118# if reputation is disabled, we don't need it 2119if test x"$enable_reputation" != x"yes" -a \ 2120 x"$janssonpath" = x"auto" 2121then 2122 janssonpath="no" 2123fi 2124 2125jansson_found="no" 2126if test \( x"$janssonpath" = x"auto" -o x"$janssonpath" = x"yes" \) -a \ 2127 x"$PKG_CONFIG" != x"" 2128then 2129 PKG_CHECK_MODULES([LIBJANSSON], [jansson >= 2.2.1], 2130 [ 2131 jansson_found="yes" 2132 LIBJANSSON_CPPFLAGS="$LIBJANSSON_CFLAGS" 2133 LIBJANSSON_LIBS="$LIBJANSSON_LIBS" 2134 ], 2135 [ 2136 jansson_found="no" 2137 AC_MSG_WARN([pkg-config for libjansson not found, trying manual 2138 search...]) 2139 ]) 2140fi 2141 2142if test x"$janssonpath" != x"no" -a x"$jansson_found" = x"no" 2143then 2144 AC_MSG_CHECKING([for libjansson]) 2145 if test x"$janssonpath" != x"auto" -a x"$janssonpath" != x"yes" 2146 then 2147 if test -f $janssonpath/include/jansson.h 2148 then 2149 AC_MSG_RESULT($janssonpath) 2150 jansson_found="yes" 2151 LIBJANSSON_CPPFLAGS="-I$janssonpath/include" 2152 LIBJANSSON_LDFLAGS="-L$janssonpath/lib" 2153 LIBJANSSON_LIBS="-ljansson" 2154 else 2155 AC_MSG_ERROR(not found at $janssonpath) 2156 fi 2157 else 2158 janssondirs="/usr /usr/local" 2159 for d in $janssondirs 2160 do 2161 if test -f $d/include/jansson.h 2162 then 2163 janssonpath=$d 2164 AC_MSG_RESULT($d) 2165 jansson_found="yes" 2166 LIBJANSSON_CPPFLAGS="-I$janssonpath/include" 2167 LIBJANSSON_LDFLAGS="-L$janssonpath/lib" 2168 LIBJANSSON_LIBS="-ljansson" 2169 break 2170 fi 2171 done 2172 fi 2173 if test x"$jansson_found" != x"yes" 2174 then 2175 AC_MSG_RESULT([no]) 2176 fi 2177fi 2178AC_SUBST(LIBJANSSON_CPPFLAGS) 2179AC_SUBST(LIBJANSSON_LDFLAGS) 2180AC_SUBST(LIBJANSSON_LIBS) 2181AM_CONDITIONAL(JANSSON, test x"$LIBJANSSON_LIBS" != x"") 2182 2183if test x"$enable_reputation" = x"yes" -a \ 2184 x"$jansson_found" != x"yes" 2185then 2186 AC_MSG_ERROR([reputation requires libjansson]) 2187fi 2188 2189if test x"$jansson_found" == x"yes" 2190then 2191 AC_DEFINE(USE_JANSSON, 1, [use libjansson to parse REPUTE replies]) 2192fi 2193 2194# 2195# libdb 2196# 2197 2198AC_ARG_WITH([db-incdir], 2199 AS_HELP_STRING([--with-db-incdir], 2200 [location of BerkeleyDB includes]), 2201 [bdb_incdir="$withval"], [bdb_incdir=""]) 2202 2203AC_ARG_WITH([db-libdir], 2204 AS_HELP_STRING([--with-db-libdir], 2205 [location of BerkeleyDB library]), 2206 [bdb_libdir="$withval"], [bdb_libdir=""]) 2207 2208AC_ARG_WITH([db-lib], 2209 AS_HELP_STRING([--with-db-lib], 2210 [name of BerkeleyDB library]), 2211 [bdb_lib="$withval"], [bdb_lib="db"]) 2212 2213AC_ARG_WITH([db], 2214 AS_HELP_STRING([--with-db], 2215 [location of BerkeleyDB includes and library]), 2216 [bdb="$withval"], [bdb="auto"]) 2217 2218LIBDB_INCDIRS="" 2219LIBDB_LIBDIRS="" 2220LIBDB_LIBS="" 2221 2222# was --with-db given with "yes" or a path? 2223bdbrequested="no" 2224if test x"$bdb" != x"no" -a x"$bdb" != x"auto" 2225then 2226 bdbrequested="yes" 2227fi 2228if test x"$bdb_incdir" != x"" -o x"$bdb_libdir" != x"" -o x"$bdb_lib" != x"db" 2229then 2230 bdbrequested="yes" 2231fi 2232 2233rep_needs_bdb="no" 2234if test x"$enable_reputation" = x"yes" -a x"$mdb_found" = x"no" 2235then 2236 rep_needs_bdb="yes" 2237fi 2238 2239AM_CONDITIONAL(USE_DB_OPENDKIM, 2240 test x"$enable_popauth" = x"yes" -o \ 2241 x"$rep_needs_bdb" = x"yes" -o \ 2242 x"$enable_ldap_caching" = x"yes" -o \ 2243 x"$bdbrequested" = x"yes") 2244AM_CONDITIONAL(USE_DB_LIBOPENDKIM, test x"$enable_query_cache" = x"yes") 2245 2246# Is DB required based on --enables? 2247if test x"$USE_DB_OPENDKIM_TRUE" = x"" -o \ 2248 x"$USE_DB_LIBOPENDKIM_TRUE" = x"" 2249then 2250 bdbrequired="yes" 2251else 2252 bdbrequired="no" 2253fi 2254 2255# If --with-db wasn't specified and the --enables demand it, force "yes" 2256if test x"$bdb" = x"auto" 2257then 2258 if test x"$bdbrequired" = x"yes" 2259 then 2260 bdb="yes" 2261 else 2262 bdb="no" 2263 fi 2264fi 2265 2266if test x"$bdb" != x"yes" -a x"$bdb" != x"no" 2267then 2268 bdb_incdir=$bdb/include 2269 bdb_libdir=$bdb/lib 2270 bdb="yes" 2271fi 2272 2273if test x"$bdb" = x"yes" 2274then 2275 bdbdirs="/usr/local/BerkeleyDB /usr/local /usr" 2276 libdbfound="no" 2277 2278 # look for db.h 2279 AC_MSG_CHECKING([for BerkeleyDB db.h]) 2280 if test x"$bdb_incdir" = x"" 2281 then 2282 for d in $bdbdirs 2283 do 2284 if test -f $d/include/db.h 2285 then 2286 bdb_incdir=$d/include 2287 AC_MSG_RESULT($bdb_incdir) 2288 break 2289 fi 2290 done 2291 2292 if test x"$bdb_incdir" = x"" 2293 then 2294 AC_MSG_ERROR([not found]) 2295 fi 2296 elif ! test -f $bdb_incdir/db.h 2297 then 2298 AC_MSG_ERROR([not found in $bdb_incdir]) 2299 else 2300 AC_MSG_RESULT([$bdb_incdir]) 2301 fi 2302 2303 # See if we can find a library by looking for db_create(), then 2304 # db_open(), then dbopen(). 2305 # 2306 # This can cause compilation problems if for example a db.h 2307 # and a libdb are found that aren't the same version, but it's 2308 # worth a shot in general. 2309 if test x"$bdb_libdir" = x"" 2310 then 2311 for d in $bdbdirs 2312 do 2313 saved_LDFLAGS="$LDFLAGS" 2314 saved_CPPFLAGS="$CPPFLAGS" 2315 saved_LIBS="$LIBS" 2316 LDFLAGS="$LDFLAGS -L$d/lib" 2317 CPPFLAGS="$CPPFLAGS -I$bdb_incdir" 2318 LIBS="$outer_LIBS" 2319 if test x"$libdbfound" = x"no" 2320 then 2321 AC_SEARCH_LIBS([db_create], $bdb_lib, 2322 [libdbfound="yes"]) 2323 bdb_libdir=$d/lib 2324 fi 2325 if test x"$libdbfound" = x"no" 2326 then 2327 AC_SEARCH_LIBS([db_open], $bdb_lib, 2328 [libdbfound="yes"]) 2329 bdb_libdir=$d/lib 2330 fi 2331 if test x"$libdbfound" = x"no" 2332 then 2333 AC_SEARCH_LIBS([dbopen], $bdb_lib, 2334 [libdbfound="yes"]) 2335 bdb_libdir=$d/lib 2336 fi 2337 2338 LDFLAGS="$saved_LDFLAGS" 2339 CPPFLAGS="$saved_CPPFLAGS" 2340 LIBS="$saved_LIBS" 2341 done 2342 else 2343 saved_LDFLAGS="$LDFLAGS" 2344 saved_CPPFLAGS="$CPPFLAGS" 2345 saved_LIBS="$LIBS" 2346 LDFLAGS="$LDFLAGS -L$bdb_libdir" 2347 CPPFLAGS="$CPPFLAGS -I$bdb_incdir" 2348 LIBS="$outer_LIBS" 2349 if test x"$libdbfound" = x"no" 2350 then 2351 AC_SEARCH_LIBS([db_create], $bdb_lib, 2352 [libdbfound="yes"]) 2353 fi 2354 if test x"$libdbfound" = x"no" 2355 then 2356 AC_SEARCH_LIBS([db_open], $bdb_lib, 2357 [libdbfound="yes"]) 2358 fi 2359 if test x"$libdbfound" = x"no" 2360 then 2361 AC_SEARCH_LIBS([dbopen], $bdb_lib, 2362 [libdbfound="yes"]) 2363 fi 2364 2365 LDFLAGS="$saved_LDFLAGS" 2366 CPPFLAGS="$saved_CPPFLAGS" 2367 LIBS="$saved_LIBS" 2368 fi 2369 2370 if test x"$libdbfound" = x"no" 2371 then 2372 AC_MSG_ERROR([cannot find db_create, db_open or dbopen]) 2373 fi 2374 2375 if test x"$bdb_incdir" != x"" 2376 then 2377 LIBDB_INCDIRS="-I$bdb_incdir" 2378 fi 2379 if test x"$bdb_libdir" != x"" 2380 then 2381 LIBDB_LIBDIRS="-L$bdb_libdir" 2382 LIBDB_LIBS="-l$bdb_lib" 2383 fi 2384 2385 AC_DEFINE(USE_DB, 1, 2386 [enable support for SleepyCat/Berkeley DB libraries]) 2387elif test x"$bdb" = x"no" 2388then 2389 AC_MSG_CHECKING([for BerkeleyDB]) 2390 if test x"$bdbrequired" = x"yes" 2391 then 2392 AC_MSG_ERROR([disabled but required by requested features]) 2393 fi 2394 AC_MSG_RESULT([not required or disabled]) 2395 LIBDB_INCDIRS="" 2396 LIBDB_LIBDIRS="" 2397 LIBDB_LIBS="" 2398fi 2399 2400if test x"$unboundpath" != x"no" -a x"$bdbrequired" = x"yes" 2401then 2402 saved_LDFLAGS="$LDFLAGS" 2403 saved_CPPFLAGS="$CPPFLAGS" 2404 LDFLAGS="$LDFLAGS $LIBDB_LIBDIRS $LIBUNBOUND_LIBDIRS" 2405 CPPFLAGS="$CPPFLAGS $LIBDB_INCDIRS $LIBUNBOUND_INCDIRS" 2406 AC_CHECK_LIB([db], [log_file], 2407 AC_CHECK_LIB([unbound], [log_file], 2408 AC_MSG_ERROR([Cannot enable feature requiring BerkeleyDB with libunbound - both have log_file defined. Please use newer BerkeleyDB version]) 2409 ) 2410 ) 2411 LDFLAGS="$saved_LDFLAGS" 2412 CPPFLAGS="$saved_CPPFLAGS" 2413fi 2414AC_SUBST(LIBDB_INCDIRS) 2415AC_SUBST(LIBDB_LIBDIRS) 2416AC_SUBST(LIBDB_LIBS) 2417 2418LIBOPENDKIM_LIBS="$LIBCRYPTO_LIBS $LIBTRE_LIBS $LIBRESOLV" 2419# This (below) is just for the pkg-config file opendkim.pc.in 2420LIBOPENDKIM_LIBS_PKG="$LIBOPENDKIM_LIBS" 2421LIBOPENDKIM_INC="$LIBCRYPTO_CPPFLAGS $LIBCRYPTO_CFLAGS $LIBTRE_CPPFLAGS" 2422 2423if test x"$USE_DB_LIBOPENDKIM_TRUE" = x"" 2424then 2425 LIBOPENDKIM_INC="$LIBOPENDKIM_INC $LIBDB_INCDIRS" 2426 LIBOPENDKIM_LIBS_PKG="$LIBOPENDKIM_LIBS_PKG $LIBDB_LIBS" 2427 LIBOPENDKIM_LIBS="$LIBOPENDKIM_LIBS $LIBDB_LIBS" 2428fi 2429 2430AC_SUBST(LIBOPENDKIM_LIBS) 2431AC_SUBST(LIBOPENDKIM_LIBS_PKG) 2432AC_SUBST(LIBOPENDKIM_INC) 2433 2434AC_DEFINE_UNQUOTED([LIBOPENDKIM_FEATURE_STRING], "$LIBOPENDKIM_FEATURE_STRING", 2435 [Feature string for printing]) 2436 2437# 2438# setup for testing 2439# 2440 2441AC_ARG_ENABLE([live-testing], 2442 AS_HELP_STRING([--disable-live-testing], 2443 [disable tests that require Internet access]), 2444 [live_tests="$enable_live_testing"], [live_tests="yes"]) 2445AM_CONDITIONAL(LIVE_TESTS, test x"$live_tests" = x"yes") 2446 2447# 2448# specify test socket 2449# 2450 2451AC_ARG_WITH([test-socket], 2452 AS_HELP_STRING([--with-test-socket], 2453 [specify socket to use for all tests]), 2454 [testsocket="$withval"], [testsocket=""]) 2455AM_CONDITIONAL(TEST_SOCKET, test x"$testsocket" != x"") 2456if test x"$testsocket" != x"" 2457then 2458 TESTSOCKET=$testsocket 2459 AC_SUBST(TESTSOCKET) 2460fi 2461 2462# 2463# Platform Specific Configuration 2464# 2465AC_CANONICAL_HOST 2466case "$host" in 2467 *-darwin*) 2468 CPPFLAGS="$CPPFLAGS -DBIND_8_COMPAT -DDARWIN" 2469 if test x"$unboundpath" = x"no" 2470 then 2471 AC_MSG_ERROR("unbound required on Darwin") 2472 fi 2473 ;; 2474esac 2475 2476# 2477# Determine domainname for sample configs 2478# 2479AC_ARG_WITH([domain], 2480 AS_HELP_STRING([--with-domain], 2481 [name of the domain for signing - sets this in sample configuration files]), 2482 [ 2483 DOMAIN="$withval" 2484 ],[ 2485 AC_PATH_PROG(domainname, domainname) 2486 AS_IF([test x"$domainname" != x""], 2487 [DOMAIN=`$domainname`], 2488 ) 2489 AS_IF([test x"$DOMAIN" = x"" -o x"$DOMAIN" = x"(none)" ], 2490 [DOMAIN=example.com] 2491 ) 2492 ] 2493 ) 2494 2495AC_SUBST([DOMAIN]) 2496 2497AC_ARG_WITH([erlang], 2498 AS_HELP_STRING([--with-erlang], 2499 [location of Erlang includes and library]), 2500 [erlpath="$withval"], [erlpath="no"]) 2501 2502LIBERL_INCDIRS="" 2503LIBERL_LIBDIRS="" 2504LIBERL_LIBS="" 2505erl_found="no" 2506 2507if test \( x"$erlpath" = x"yes" -o x"$erlpath" = x"auto" \) 2508then 2509 AC_MSG_CHECKING([for Erlang]) 2510 b=`erl -noshell -eval 'io:format("~s~n", [[code:lib_dir()]]).' -s erlang halt` 2511 erlbase=`ls -d $b/erl_interface-* | tail -n1` 2512 AC_MSG_RESULT($erlbase) 2513 LIBERL_INCDIRS="-I$erlbase/include" 2514 LIBERL_LIBDIRS="-L$erlbase/lib" 2515 LIBERL_LIBS="-pthread -lerl_interface -lei" 2516 AC_DEFINE([USE_ERLANG], 1, [support for erlang access]) 2517 erl_found="yes" 2518fi 2519 2520if test x"$erlpath" != x"yes" -a x"$erlpath" != x"auto" -a x"$erlpath" != x"no" 2521then 2522 AC_MSG_CHECKING([for Erlang]) 2523 if test -f $erlpath/include/ei.h 2524 then 2525 AC_MSG_RESULT($erlpath) 2526 LIBERL_INCDIRS="-I$erlpath/include" 2527 LIBERL_LIBDIRS="-L$erlpath/lib" 2528 LIBERL_LIBS="-pthread -lerl_interface -lei" 2529 erl_found="yes" 2530 else 2531 AC_MSG_ERROR(not found at $erlpath) 2532 fi 2533fi 2534 2535if test x"$erl_found" = x"yes" 2536then 2537 saved_CPPFLAGS="$CPPFLAGS" 2538 CPPFLAGS="$outer_CPPFLAGS $LIBERL_INCDIRS" 2539 AC_DEFINE([USE_ERLANG], 1, [support for Erlang access]) 2540 AC_SUBST([LIBERL_MANNOTICE], "") 2541else 2542 AC_SUBST([LIBERL_MANNOTICE], "(Not enabled for this installation.)") 2543fi 2544 2545AM_CONDITIONAL(ERLANG, test x"$erl_found" = x"yes") 2546AC_SUBST(LIBERL_INCDIRS) 2547AC_SUBST(LIBERL_LIBDIRS) 2548AC_SUBST(LIBERL_LIBS) 2549 2550# 2551# final command line tweaks 2552# 2553 2554CPPFLAGS="$CPPFLAGS -DCONFIG_BASE=\\\"$sysconfdir\\\"" 2555 2556test "x$prefix" = xNONE && prefix=$ac_default_prefix 2557SYSCONFDIR=`eval echo "$sysconfdir"` 2558AC_SUBST([SYSCONFDIR]) 2559 2560# 2561# for contrib/spec/opendkim.spec.in 2562# 2563 2564installbin="no" 2565specconfig="" 2566specrequires="" 2567specbuildrequires="" 2568 2569if test x"$enable_reputation" = x"yes" 2570then 2571 specconfig="$specconfig --enable-reputation" 2572 specrequires="$specrequires libcurl" 2573 specbuildrequires="$specbuildrequires libcurl-devel jansson-devel" 2574fi 2575 2576if test x"$enable_stats" = x"yes" 2577then 2578 specconfig="$specconfig --enable-stats --with-odbx" 2579 specrequires="$specrequires libdb opendbx" 2580 specbuildrequires="$specbuildrequires libdb-devel opendbx-devel" 2581fi 2582 2583if test x"$jansson_found" = x"yes" 2584then 2585 # autobuild 2586 installbin="yes" 2587 specconfig="$specconfig --with-libjansson=$janssonpath" 2588fi 2589 2590# opendkim-spam 2591if test x"$enable_stats" = x"yes" -a x"$odbx_found" = x"yes" 2592then 2593 installbin="yes" 2594 specconfig="$specconfig --enable-stats --with-odbx=$odbxpath" 2595fi 2596 2597# miltertest 2598if test x"$lua_found" = x"yes" 2599then 2600 installbin="yes" 2601 specconfig="$specconfig --with-lua=$luapath" 2602 specrequries="$specrequires lua" 2603 specbuildrequries="$specbuildrequires lua-devel" 2604fi 2605 2606SPECBINDIR="" 2607if test x"$installbin" = x"yes" 2608then 2609 SPECBINDIR="%{_bindir}/*" 2610fi 2611 2612SPECCONFIGURE="$specconfig" 2613 2614if test x"$specrequires" = x"" 2615then 2616 SPECREQUIRES="" 2617else 2618 SPECREQUIRES="Requires:$specrequires" 2619fi 2620 2621if test x"$specbuildrequires" = x"" 2622then 2623 SPECBUILDREQUIRES="" 2624else 2625 SPECBUILDREQUIRES="BuildRequires:$specbuildrequires" 2626fi 2627 2628AC_SUBST(SPECBINDIR) 2629AC_SUBST(SPECCONFIGURE) 2630AC_SUBST(SPECREQUIRES) 2631AC_SUBST(SPECBUILDREQUIRES) 2632 2633# 2634# Finish up 2635# 2636AC_OUTPUT([ Makefile 2637 docs/Makefile 2638 autobuild/Makefile 2639 contrib/Makefile 2640 contrib/convert/Makefile 2641 contrib/docs/Makefile 2642 contrib/init/Makefile 2643 contrib/init/generic/Makefile 2644 contrib/init/redhat/Makefile 2645 contrib/init/redhat/opendkim 2646 contrib/init/redhat/opendkim-default-keygen 2647 contrib/init/solaris/Makefile 2648 contrib/ldap/Makefile 2649 contrib/lua/Makefile 2650 contrib/patches/Makefile 2651 contrib/repute/Makefile 2652 contrib/spec/Makefile 2653 contrib/spec/opendkim.spec 2654 contrib/stats/Makefile 2655 contrib/systemd/Makefile 2656 contrib/systemd/opendkim.service 2657 libopendkim/opendkim.pc libopendkim/Makefile 2658 libopendkim/docs/Makefile 2659 libopendkim/tests/Makefile 2660 librbl/rbl.pc librbl/Makefile 2661 libut/ut.pc libut/Makefile 2662 libvbr/vbr.pc libvbr/Makefile 2663 miltertest/Makefile 2664 opendkim/Makefile opendkim/opendkim.8 opendkim/opendkim-genkey 2665 opendkim/opendkim-genkey.8 opendkim/opendkim-genzone.8 2666 opendkim/opendkim-lua.3 2667 opendkim/opendkim-testkey.8 opendkim/opendkim-stats.8 2668 opendkim/opendkim-testmsg.8 opendkim/opendkim.conf.5 2669 opendkim/opendkim.conf.simple 2670 opendkim/opendkim.conf.simple-verify 2671 opendkim/opendkim-atpszone.8 opendkim/opendkim-spam.1 2672 opendkim/tests/Makefile 2673 stats/Makefile stats/opendkim-importstats.8 2674 stats/opendkim-expire 2675 stats/opendkim-expire.8 2676 stats/opendkim-gengraphs 2677 stats/opendkim-gengraphs.8 2678 stats/opendkim-genstats 2679 stats/opendkim-genstats.8 2680 stats/opendkim-reportstats 2681 reprrd/Makefile 2682 reprrd/opendkim-reprrdimport 2683 reprrd/opendkim-reprrdimport.8 2684 reprrd/reprrd.pc 2685 reputation/Makefile 2686 reputation/opendkim-genrates 2687 reputation/opendkim-genrates.8 2688 reputation/opendkim-modtotals 2689 reputation/opendkim-modtotals.8 2690 reputation/opendkim-rephistory 2691 reputation/opendkim-rephistory.8 2692 reputation/repute.pc 2693]) 2694