fix configure.ac
[collectd.git] / configure.ac
1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT([collectd],[m4_esyscmd(./version-gen.sh)])
3 AC_CONFIG_SRCDIR(src/target_set.c)
4 AC_CONFIG_HEADERS(src/config.h)
5 AC_CONFIG_AUX_DIR([libltdl/config])
6
7 dnl older automake's default of ARFLAGS=cru is noisy on newer binutils;
8 dnl we don't really need the 'u' even in older toolchains.  Then there is
9 dnl older libtool, which spelled it AR_FLAGS
10 m4_divert_text([DEFAULTS], [: "${ARFLAGS=cr} ${AR_FLAGS=cr}"])
11
12 m4_ifdef([LT_PACKAGE_VERSION],
13         # libtool >= 2.2
14         [
15          LT_CONFIG_LTDL_DIR([libltdl])
16          LT_INIT([dlopen])
17          LTDL_INIT([convenience])
18          AC_DEFINE(LIBTOOL_VERSION, 2, [Define to used libtool version.])
19         ]
20 ,
21         # libtool <= 1.5
22         [
23          AC_LIBLTDL_CONVENIENCE
24          AC_SUBST(LTDLINCL)
25          AC_SUBST(LIBLTDL)
26          AC_LIBTOOL_DLOPEN
27          AC_CONFIG_SUBDIRS(libltdl)
28          AC_DEFINE(LIBTOOL_VERSION, 1, [Define to used libtool version.])
29         ]
30 )
31
32 AM_CONDITIONAL([BUILD_INCLUDED_LTDL], [test "x$LTDLDEPS" != "x"])
33
34 AM_INIT_AUTOMAKE([subdir-objects tar-pax dist-bzip2 no-dist-gzip foreign])
35 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
36 AC_LANG(C)
37
38 AC_PREFIX_DEFAULT("/opt/collectd")
39
40 AC_SYS_LARGEFILE
41
42 #
43 # Checks for programs.
44 #
45 AC_PROG_CC
46 AC_PROG_CXX
47 AC_PROG_CPP
48 AC_PROG_EGREP
49 AC_PROG_INSTALL
50 AC_PROG_LN_S
51 AC_PROG_MAKE_SET
52 AM_PROG_CC_C_O
53 AM_CONDITIONAL(COMPILER_IS_GCC, test "x$GCC" = "xyes")
54
55 AC_DISABLE_STATIC
56 AC_PROG_LIBTOOL
57 AC_PROG_LEX
58 AC_PROG_YACC
59
60 AC_PATH_PROG([VALGRIND], [valgrind])
61
62 # Warn when pkg.m4 is missing
63 m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
64
65 PKG_PROG_PKG_CONFIG
66
67 AC_CACHE_CHECK([if bison is the parser generator],
68         [collectd_cv_prog_bison],
69         [AS_IF([$YACC --version 2>/dev/null | $EGREP -q '^bison '],
70                 [collectd_cv_prog_bison=yes], [collectd_cv_prog_bison=no]
71         )]
72 )
73
74 if test "x$collectd_cv_prog_bison" = "xno" && test ! -f "${srcdir}/src/liboconfig/parser.c"
75 then
76         AC_MSG_ERROR([bison is missing and you do not have ${srcdir}/src/liboconfig/parser.c. Please install bison])
77 fi
78
79 AC_PATH_PROG([PROTOC], [protoc])
80 have_protoc3="no"
81 if test "x$PROTOC" != "x"; then
82         AC_MSG_CHECKING([for protoc 3.0.0+])
83         if $PROTOC --version | grep -q libprotoc.3; then
84                 protoc3="yes (`$PROTOC --version`)"
85                 have_protoc3="yes"
86         else
87                 protoc3="no (`$PROTOC --version`)"
88         fi
89         AC_MSG_RESULT([$protoc3])
90 fi
91 AM_CONDITIONAL(HAVE_PROTOC3, test "x$have_protoc3" = "xyes")
92
93 AC_PATH_PROG([GRPC_CPP_PLUGIN], [grpc_cpp_plugin])
94 AM_CONDITIONAL(HAVE_GRPC_CPP, test "x$GRPC_CPP_PLUGIN" != "x")
95
96 AC_CHECK_PROG([have_protoc_c], [protoc-c], [yes], [no])
97 if test "x$have_protoc_c" = "xno"
98 then
99         have_protoc_c="no (protoc-c compiler not found)"
100 fi
101
102 if test "x$have_protoc_c" = "xyes"
103 then
104         AC_CHECK_HEADERS([protobuf-c/protobuf-c.h google/protobuf-c/protobuf-c.h],
105                          [have_protoc_c="yes"; break],
106                          [have_protoc_c="no (<google/protobuf-c/protobuf-c.h> not found)"])
107 fi
108 if test "x$have_protoc_c" = "xyes"
109 then
110         AC_CHECK_LIB([protobuf-c], [protobuf_c_message_pack],
111                      [have_protoc_c="yes"],
112                      [have_protoc_c="no (libprotobuf-c not found)"])
113
114 fi
115 AM_CONDITIONAL(HAVE_PROTOC_C, test "x$have_protoc_c" = "xyes")
116
117 AC_MSG_CHECKING([for kernel type ($host_os)])
118 case $host_os in
119         *linux*)
120         AC_DEFINE([KERNEL_LINUX], 1, [True if program is to be compiled for a Linux kernel])
121         ac_system="Linux"
122         ;;
123         *solaris*)
124         AC_DEFINE([KERNEL_SOLARIS], 1, [True if program is to be compiled for a Solaris kernel])
125         ac_system="Solaris"
126         ;;
127         *darwin*)
128         AC_DEFINE([KERNEL_DARWIN], 1, [True if program is to be compiled for a Darwin kernel])
129         ac_system="Darwin"
130         ;;
131         *openbsd*)
132         AC_DEFINE([KERNEL_OPENBSD], 1, [True if program is to be compiled for an OpenBSD kernel])
133         ac_system="OpenBSD"
134         ;;
135         *netbsd*)
136         AC_DEFINE([KERNEL_NETBSD], 1, [True if program is to be compiled for a NetBSD kernel])
137         ac_system="NetBSD"
138         ;;
139         *aix*)
140         AC_DEFINE([KERNEL_AIX], 1, [True if program is to be compiled for a AIX kernel])
141         ac_system="AIX"
142         ;;
143         *freebsd*)
144         AC_DEFINE([KERNEL_FREEBSD], 1, [True if program is to be compiled for a FreeBSD kernel])
145         ac_system="FreeBSD"
146         ;;
147         *)
148         ac_system="unknown"
149 esac
150 AC_MSG_RESULT([$ac_system])
151
152 AM_CONDITIONAL([BUILD_AIX], [test "x$ac_system" = "xAIX"])
153 AM_CONDITIONAL([BUILD_DARWIN], [test "x$ac_system" = "xDarwin"])
154 AM_CONDITIONAL([BUILD_FREEBSD], [test "x$ac_system" = "xFreeBSD"])
155 AM_CONDITIONAL([BUILD_LINUX], [test "x$ac_system" = "xLinux"])
156 AM_CONDITIONAL([BUILD_OPENBSD], [test "x$ac_system" = "xOpenBSD"])
157 AM_CONDITIONAL([BUILD_SOLARIS], [test "x$ac_system" = "xSolaris"])
158
159 if test "x$ac_system" = "xLinux"
160 then
161         AC_ARG_VAR([KERNEL_DIR], [path to Linux kernel sources])
162         if test -z "$KERNEL_DIR"
163         then
164                 KERNEL_DIR="/lib/modules/`uname -r`/source"
165         fi
166
167         KERNEL_CFLAGS="-I$KERNEL_DIR/include"
168         AC_SUBST(KERNEL_CFLAGS)
169 fi
170
171 if test "x$ac_system" = "xSolaris"
172 then
173         AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, [Define to enforce POSIX thread semantics under Solaris.])
174         AC_DEFINE(_REENTRANT,               1, [Define to enable reentrancy interfaces.])
175
176         AC_MSG_CHECKING([whether compiler builds 64bit binaries])
177         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
178                            #ifndef _LP64
179                            # error "Compiler not in 64bit mode."
180                            #endif
181                            ])],
182                            [AC_MSG_RESULT([yes])],
183                            [
184                             AC_MSG_RESULT([no])
185                             AC_MSG_NOTICE([Solaris detected. Please consider building a 64-bit binary.])
186                            ])
187 fi
188
189 if test "x$ac_system" = "xAIX"
190 then
191         AC_DEFINE(_THREAD_SAFE_ERRNO, 1, [Define to use the thread-safe version of errno under AIX.])
192 fi
193
194 # Where to install .pc files.
195 pkgconfigdir="${libdir}/pkgconfig"
196 AC_SUBST(pkgconfigdir)
197
198 # Check for standards compliance mode
199 AC_ARG_ENABLE(standards,
200               AS_HELP_STRING([--enable-standards], [Enable standards compliance mode]),
201               [enable_standards="$enableval"],
202               [enable_standards="no"])
203 if test "x$enable_standards" = "xyes"
204 then
205         AC_DEFINE(_ISOC99_SOURCE,        1, [Define to enforce ISO C99 compliance.])
206         AC_DEFINE(_POSIX_C_SOURCE, 200809L, [Define to enforce POSIX.1-2008 compliance.])
207         AC_DEFINE(_XOPEN_SOURCE,       700, [Define to enforce X/Open 7 (XSI) compliance.])
208         AC_DEFINE(_REENTRANT,            1, [Define to enable reentrancy interfaces.])
209         if test "x$GCC" = "xyes"
210         then
211                 CFLAGS="$CFLAGS -std=c99"
212         fi
213 fi
214 AM_CONDITIONAL(BUILD_FEATURE_STANDARDS, test "x$enable_standards" = "xyes")
215
216 #
217 # Checks for header files.
218 #
219 AC_HEADER_STDC
220 AC_HEADER_SYS_WAIT
221 AC_HEADER_DIRENT
222 AC_HEADER_STDBOOL
223
224 AC_CHECK_HEADERS(stdio.h errno.h math.h stdarg.h syslog.h fcntl.h signal.h assert.h sys/types.h sys/socket.h sys/select.h poll.h netdb.h arpa/inet.h sys/resource.h sys/param.h kstat.h regex.h sys/ioctl.h endian.h sys/isa_defs.h fnmatch.h libgen.h)
225
226 # For entropy plugin on newer NetBSD
227 AC_CHECK_HEADERS(sys/rndio.h, [], [],
228 [#if HAVE_SYS_TYPES_H
229 # include <sys/types.h>
230 #endif
231 #if HAVE_SYS_IOCTL_H
232 # include <sys/ioctl.h>
233 #endif
234 #if HAVE_SYS_PARAM_H
235 # include <sys/param.h>
236 #endif
237 ])
238
239 # For ping library
240 AC_CHECK_HEADERS(netinet/in_systm.h, [], [],
241 [#if HAVE_STDINT_H
242 # include <stdint.h>
243 #endif
244 #if HAVE_SYS_TYPES_H
245 # include <sys/types.h>
246 #endif
247 ])
248 AC_CHECK_HEADERS(netinet/in.h, [], [],
249 [#if HAVE_STDINT_H
250 # include <stdint.h>
251 #endif
252 #if HAVE_SYS_TYPES_H
253 # include <sys/types.h>
254 #endif
255 #if HAVE_NETINET_IN_SYSTM_H
256 # include <netinet/in_systm.h>
257 #endif
258 ])
259 AC_CHECK_HEADERS(netinet/ip.h, [], [],
260 [#if HAVE_STDINT_H
261 # include <stdint.h>
262 #endif
263 #if HAVE_SYS_TYPES_H
264 # include <sys/types.h>
265 #endif
266 #if HAVE_NETINET_IN_SYSTM_H
267 # include <netinet/in_systm.h>
268 #endif
269 #if HAVE_NETINET_IN_H
270 # include <netinet/in.h>
271 #endif
272 ])
273 AC_CHECK_HEADERS(netinet/ip_icmp.h, [], [],
274 [#if HAVE_STDINT_H
275 # include <stdint.h>
276 #endif
277 #if HAVE_SYS_TYPES_H
278 # include <sys/types.h>
279 #endif
280 #if HAVE_NETINET_IN_SYSTM_H
281 # include <netinet/in_systm.h>
282 #endif
283 #if HAVE_NETINET_IN_H
284 # include <netinet/in.h>
285 #endif
286 #if HAVE_NETINET_IP_H
287 # include <netinet/ip.h>
288 #endif
289 ])
290 AC_CHECK_HEADERS(netinet/ip_var.h, [], [],
291 [#if HAVE_STDINT_H
292 # include <stdint.h>
293 #endif
294 #if HAVE_SYS_TYPES_H
295 # include <sys/types.h>
296 #endif
297 #if HAVE_NETINET_IN_SYSTM_H
298 # include <netinet/in_systm.h>
299 #endif
300 #if HAVE_NETINET_IN_H
301 # include <netinet/in.h>
302 #endif
303 #if HAVE_NETINET_IP_H
304 # include <netinet/ip.h>
305 #endif
306 ])
307 AC_CHECK_HEADERS(netinet/ip6.h, [], [],
308 [#if HAVE_STDINT_H
309 # include <stdint.h>
310 #endif
311 #if HAVE_SYS_TYPES_H
312 # include <sys/types.h>
313 #endif
314 #if HAVE_NETINET_IN_SYSTM_H
315 # include <netinet/in_systm.h>
316 #endif
317 #if HAVE_NETINET_IN_H
318 # include <netinet/in.h>
319 #endif
320 ])
321 AC_CHECK_HEADERS(netinet/icmp6.h, [], [],
322 [#if HAVE_STDINT_H
323 # include <stdint.h>
324 #endif
325 #if HAVE_SYS_TYPES_H
326 # include <sys/types.h>
327 #endif
328 #if HAVE_NETINET_IN_SYSTM_H
329 # include <netinet/in_systm.h>
330 #endif
331 #if HAVE_NETINET_IN_H
332 # include <netinet/in.h>
333 #endif
334 #if HAVE_NETINET_IP6_H
335 # include <netinet/ip6.h>
336 #endif
337 ])
338 AC_CHECK_HEADERS(netinet/tcp.h, [], [],
339 [#if HAVE_STDINT_H
340 # include <stdint.h>
341 #endif
342 #if HAVE_SYS_TYPES_H
343 # include <sys/types.h>
344 #endif
345 #if HAVE_NETINET_IN_SYSTM_H
346 # include <netinet/in_systm.h>
347 #endif
348 #if HAVE_NETINET_IN_H
349 # include <netinet/in.h>
350 #endif
351 #if HAVE_NETINET_IP_H
352 # include <netinet/ip.h>
353 #endif
354 ])
355 AC_CHECK_HEADERS(netinet/udp.h, [], [],
356 [#if HAVE_STDINT_H
357 # include <stdint.h>
358 #endif
359 #if HAVE_SYS_TYPES_H
360 # include <sys/types.h>
361 #endif
362 #if HAVE_NETINET_IN_SYSTM_H
363 # include <netinet/in_systm.h>
364 #endif
365 #if HAVE_NETINET_IN_H
366 # include <netinet/in.h>
367 #endif
368 #if HAVE_NETINET_IP_H
369 # include <netinet/ip.h>
370 #endif
371 ])
372
373 have_ip6_ext="no"
374 AC_CHECK_TYPES([struct ip6_ext], [have_ip6_ext="yes"], [have_ip6_ext="no"],
375 [#if HAVE_STDINT_H
376 # include <stdint.h>
377 #endif
378 #if HAVE_SYS_TYPES_H
379 # include <sys/types.h>
380 #endif
381 #if HAVE_NETINET_IN_SYSTM_H
382 # include <netinet/in_systm.h>
383 #endif
384 #if HAVE_NETINET_IN_H
385 # include <netinet/in.h>
386 #endif
387 #if HAVE_NETINET_IP6_H
388 # include <netinet/ip6.h>
389 #endif
390 ])
391
392 if test "x$have_ip6_ext" = "xno"; then
393         SAVE_CFLAGS="$CFLAGS"
394         CFLAGS="$CFLAGS -DSOLARIS2=8"
395
396         AC_CHECK_TYPES([struct ip6_ext],
397                        [have_ip6_ext="yes, with -DSOLARIS2=8"],
398                        [have_ip6_ext="no"],
399 [#if HAVE_STDINT_H
400 # include <stdint.h>
401 #endif
402 #if HAVE_SYS_TYPES_H
403 # include <sys/types.h>
404 #endif
405 #if HAVE_NETINET_IN_SYSTM_H
406 # include <netinet/in_systm.h>
407 #endif
408 #if HAVE_NETINET_IN_H
409 # include <netinet/in.h>
410 #endif
411 #if HAVE_NETINET_IP6_H
412 # include <netinet/ip6.h>
413 #endif
414 ])
415
416         if test "x$have_ip6_ext" = "xno"; then
417                 CFLAGS="$SAVE_CFLAGS"
418         fi
419 fi
420
421 # For cpu modules
422 AC_CHECK_HEADERS(sys/dkstat.h)
423 if test "x$ac_system" = "xDarwin"
424 then
425         AC_CHECK_HEADERS(mach/mach_init.h mach/host_priv.h mach/mach_error.h mach/mach_host.h mach/mach_port.h mach/mach_types.h mach/message.h mach/processor_set.h mach/processor.h mach/processor_info.h mach/task.h mach/thread_act.h mach/vm_region.h mach/vm_map.h mach/vm_prot.h mach/vm_statistics.h mach/kern_return.h)
426         AC_CHECK_HEADERS(CoreFoundation/CoreFoundation.h IOKit/IOKitLib.h IOKit/IOTypes.h IOKit/ps/IOPSKeys.h IOKit/IOBSD.h IOKit/storage/IOBlockStorageDriver.h)
427         # For the battery plugin
428         AC_CHECK_HEADERS(IOKit/ps/IOPowerSources.h, [], [],
429 [
430 #if HAVE_IOKIT_IOKITLIB_H
431 #  include <IOKit/IOKitLib.h>
432 #endif
433 #if HAVE_IOKIT_IOTYPES_H
434 #  include <IOKit/IOTypes.h>
435 #endif
436 ])
437
438 fi
439
440 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
441 [
442 #if HAVE_SYS_TYPES_H
443 #  include <sys/types.h>
444 #endif
445 #if HAVE_SYS_PARAM_H
446 # include <sys/param.h>
447 #endif
448 ])
449
450 AC_MSG_CHECKING([for sysctl kern.cp_times])
451 if test -x /sbin/sysctl
452 then
453         /sbin/sysctl kern.cp_times >/dev/null 2>&1
454         if test $? -eq 0
455         then
456                 AC_MSG_RESULT([yes])
457                 AC_DEFINE(HAVE_SYSCTL_KERN_CP_TIMES, 1,
458                 [Define if sysctl supports kern.cp_times])
459         else
460                 AC_MSG_RESULT([no])
461         fi
462 else
463         AC_MSG_RESULT([no])
464 fi
465
466 AC_MSG_CHECKING([for sysctl kern.cp_time])
467 if test -x /sbin/sysctl
468 then
469         /sbin/sysctl kern.cp_time >/dev/null 2>&1
470         if test $? -eq 0
471         then
472                 AC_MSG_RESULT([yes])
473                 AC_DEFINE(HAVE_SYSCTL_KERN_CP_TIME, 1,
474                         [Define if sysctl supports kern.cp_time])
475         else
476                 AC_MSG_RESULT([no])
477         fi
478 else
479         AC_MSG_RESULT([no])
480 fi
481
482 # For hddtemp module
483 AC_CHECK_HEADERS(linux/major.h)
484
485 # For md module (Linux only)
486 if test "x$ac_system" = "xLinux"
487 then
488         AC_CHECK_HEADERS(linux/raid/md_u.h,
489                          [have_linux_raid_md_u_h="yes"],
490                          [have_linux_raid_md_u_h="no"],
491 [
492 #include <sys/ioctl.h>
493 #include <linux/major.h>
494 #include <linux/types.h>
495 ])
496 else
497         have_linux_raid_md_u_h="no"
498 fi
499
500 # For the wireless module
501 have_linux_wireless_h="no"
502 if test "x$ac_system" = "xLinux"
503 then
504   AC_CHECK_HEADERS(linux/wireless.h,
505                    [have_linux_wireless_h="yes"],
506                    [have_linux_wireless_h="no"],
507 [
508 #include <dirent.h>
509 #include <sys/ioctl.h>
510 #include <sys/socket.h>
511 ])
512 fi
513
514 # For the swap module
515 have_sys_swap_h="yes"
516 AC_CHECK_HEADERS(sys/swap.h vm/anon.h, [], [have_sys_swap_h="no"],
517 [
518 #undef _FILE_OFFSET_BITS
519 #undef _LARGEFILE64_SOURCE
520 #if HAVE_SYS_TYPES_H
521 #  include <sys/types.h>
522 #endif
523 #if HAVE_SYS_PARAM_H
524 # include <sys/param.h>
525 #endif
526 ])
527
528 # For load module
529 # For the processes plugin
530 # For users module
531 AC_CHECK_HEADERS(sys/loadavg.h linux/config.h utmp.h utmpx.h)
532
533 # For interface plugin
534 AC_CHECK_HEADERS(ifaddrs.h)
535 AC_CHECK_HEADERS(net/if.h, [], [],
536 [
537 #if HAVE_SYS_TYPES_H
538 #  include <sys/types.h>
539 #endif
540 #if HAVE_SYS_SOCKET_H
541 #  include <sys/socket.h>
542 #endif
543 ])
544 AC_CHECK_HEADERS(linux/if.h, [], [],
545 [
546 #if HAVE_SYS_TYPES_H
547 #  include <sys/types.h>
548 #endif
549 #if HAVE_SYS_SOCKET_H
550 #  include <sys/socket.h>
551 #endif
552 ])
553 AC_CHECK_HEADERS(linux/inet_diag.h, [], [],
554 [
555 #if HAVE_SYS_TYPES_H
556 #  include <sys/types.h>
557 #endif
558 #if HAVE_SYS_SOCKET_H
559 #  include <sys/socket.h>
560 #endif
561 #if HAVE_LINUX_INET_DIAG_H
562 # include <linux/inet_diag.h>
563 #endif
564 ])
565 AC_CHECK_HEADERS(linux/netdevice.h, [], [],
566 [
567 #if HAVE_SYS_TYPES_H
568 #  include <sys/types.h>
569 #endif
570 #if HAVE_SYS_SOCKET_H
571 #  include <sys/socket.h>
572 #endif
573 #if HAVE_LINUX_IF_H
574 # include <linux/if.h>
575 #endif
576 ])
577
578 # For ethstat module
579 AC_CHECK_HEADERS(linux/sockios.h,
580     [have_linux_sockios_h="yes"],
581     [have_linux_sockios_h="no"],
582     [
583 #if HAVE_SYS_IOCTL_H
584 # include <sys/ioctl.h>
585 #endif
586 #if HAVE_NET_IF_H
587 # include <net/if.h>
588 #endif
589     ])
590 AC_CHECK_HEADERS(linux/ethtool.h,
591     [have_linux_ethtool_h="yes"],
592     [have_linux_ethtool_h="no"],
593     [
594 #if HAVE_SYS_IOCTL_H
595 # include <sys/ioctl.h>
596 #endif
597 #if HAVE_NET_IF_H
598 # include <net/if.h>
599 #endif
600 #if HAVE_LINUX_SOCKIOS_H
601 # include <linux/sockios.h>
602 #endif
603     ])
604
605 # For ipvs module
606 have_linux_ip_vs_h="no"
607 have_net_ip_vs_h="no"
608 have_ip_vs_h="no"
609 ip_vs_h_needs_kernel_cflags="no"
610 if test "x$ac_system" = "xLinux"
611 then
612         AC_CHECK_HEADERS(linux/ip_vs.h, [have_linux_ip_vs_h="yes"])
613         AC_CHECK_HEADERS(net/ip_vs.h, [have_net_ip_vs_h="yes"])
614         AC_CHECK_HEADERS(ip_vs.h, [have_ip_vs_h="yes"])
615
616         if test "x$have_linux_ip_vs_h$have_net_ip_vs_h$have_ip_vs_h" = "xnonono" && test -d "$KERNEL_DIR"
617         then
618                 SAVE_CFLAGS="$CFLAGS"
619                 CFLAGS="$CFLAGS $KERNEL_CFLAGS"
620
621                 AC_MSG_NOTICE([Did not find ip_vs.h. Trying again using headers from $KERNEL_DIR.])
622
623                 AC_CHECK_HEADERS(linux/ip_vs.h, [have_linux_ip_vs_h="yes"])
624                 AC_CHECK_HEADERS(net/ip_vs.h, [have_net_ip_vs_h="yes"])
625                 AC_CHECK_HEADERS(ip_vs.h, [have_ip_vs_h="yes"])
626
627                 if test "x$have_linux_ip_vs_h" = "xyes" || test "x$have_net_ip_vs_h" = "xyes" || test "x$have_ip_vs_h" = "xyes"
628                 then
629                         ip_vs_h_needs_kernel_cflags="yes"
630                 fi
631
632                 CFLAGS="$SAVE_CFLAGS"
633         fi
634 fi
635 AM_CONDITIONAL(IP_VS_H_NEEDS_KERNEL_CFLAGS, test "x$ip_vs_h_needs_kernel_cflags" = "xyes")
636
637 # For quota module
638 AC_CHECK_HEADERS(sys/ucred.h, [], [],
639 [
640 #if HAVE_SYS_TYPES_H
641 #  include <sys/types.h>
642 #endif
643 #if HAVE_SYS_PARAM_H
644 # include <sys/param.h>
645 #endif
646 ])
647
648 # For mount interface
649 AC_CHECK_HEADERS(sys/mount.h, [], [],
650 [
651 #if HAVE_SYS_TYPES_H
652 #  include <sys/types.h>
653 #endif
654 #if HAVE_SYS_PARAM_H
655 # include <sys/param.h>
656 #endif
657 ])
658
659 # For the email plugin
660 AC_CHECK_HEADERS(linux/un.h, [], [],
661 [
662 #if HAVE_SYS_SOCKET_H
663 #       include <sys/socket.h>
664 #endif
665 ])
666
667 AC_CHECK_HEADERS([ \
668   ctype.h \
669   fs_info.h \
670   fshelp.h \
671   grp.h \
672   kvm.h \
673   limits.h \
674   locale.h \
675   mntent.h \
676   mnttab.h \
677   paths.h \
678   pwd.h \
679   sys/fs_types.h \
680   sys/fstyp.h \
681   sys/mntent.h \
682   sys/mnttab.h \
683   sys/statfs.h \
684   sys/statvfs.h \
685   sys/un.h \
686   sys/vfs.h \
687   sys/vfstab.h \
688   sys/vmmeter.h \
689   wordexp.h \
690 ])
691
692 AC_CHECK_HEADERS([xfs/xqm.h], [], [],
693 [
694 #define _GNU_SOURCE
695 ])
696
697 # For the dns plugin
698 AC_CHECK_HEADERS(arpa/nameser.h)
699 AC_CHECK_HEADERS(arpa/nameser_compat.h, [], [],
700 [
701 #if HAVE_ARPA_NAMESER_H
702 # include <arpa/nameser.h>
703 #endif
704 ])
705
706 AC_CHECK_HEADERS(net/if_arp.h, [], [],
707 [#if HAVE_SYS_SOCKET_H
708 # include <sys/socket.h>
709 #endif
710 ])
711 AC_CHECK_HEADERS(net/ppp_defs.h)
712 AC_CHECK_HEADERS(net/if_ppp.h, [], [],
713 [#if HAVE_NET_PPP_DEFS_H
714 # include <net/ppp_defs.h>
715 #endif
716 ])
717 AC_CHECK_HEADERS(netinet/if_ether.h, [], [],
718 [#if HAVE_STDINT_H
719 # include <stdint.h>
720 #endif
721 #if HAVE_SYS_TYPES_H
722 # include <sys/types.h>
723 #endif
724 #if HAVE_SYS_SOCKET_H
725 # include <sys/socket.h>
726 #endif
727 #if HAVE_NET_IF_H
728 # include <net/if.h>
729 #endif
730 #if HAVE_NETINET_IN_H
731 # include <netinet/in.h>
732 #endif
733 ])
734
735 have_net_pfvar_h="no"
736 AC_CHECK_HEADERS(net/pfvar.h,
737                [have_net_pfvar_h="yes"],
738                [have_net_pfvar_h="no"],
739 [
740 #if HAVE_SYS_IOCTL_H
741 # include <sys/ioctl.h>
742 #endif
743 #if HAVE_SYS_SOCKET_H
744 # include <sys/socket.h>
745 #endif
746 #if HAVE_NET_IF_H
747 # include <net/if.h>
748 #endif
749 #if HAVE_NETINET_IN_H
750 # include <netinet/in.h>
751 #endif
752 ])
753
754 # For the multimeter plugin
755 have_termios_h="no"
756 AC_CHECK_HEADERS(termios.h, [have_termios_h="yes"])
757
758 # For cpusleep plugin
759 AC_CACHE_CHECK([whether clock_boottime and clock_monotonic are supported],
760                        [c_cv_have_clock_boottime_monotonic],
761                        AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
762 [[[
763 #include <time.h>
764 ]]],
765 [[[
766  struct timespec b, m;
767  clock_gettime(CLOCK_BOOTTIME, &b );
768  clock_gettime(CLOCK_MONOTONIC, &m );
769 ]]]
770                        )],
771                        [c_cv_have_clock_boottime_monotonic="yes"],
772                        [c_cv_have_clock_boottime_monotonic="no"]))
773
774
775 # For the turbostat plugin
776 have_asm_msrindex_h="no"
777 AC_CHECK_HEADERS(asm/msr-index.h, [have_asm_msrindex_h="yes"])
778
779 if test "x$have_asm_msrindex_h" = "xyes"
780 then
781   AC_CACHE_CHECK([whether asm/msr-index.h has MSR_PKG_C10_RESIDENCY],
782                  [c_cv_have_usable_asm_msrindex_h],
783                  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
784 [[[
785 #include<asm/msr-index.h>
786 ]]],
787 [[[
788 int y = MSR_PKG_C10_RESIDENCY;
789 return(y);
790 ]]]
791   )],
792                  [c_cv_have_usable_asm_msrindex_h="yes"],
793                  [c_cv_have_usable_asm_msrindex_h="no"],
794                                   )
795                  )
796 fi
797
798 have_cpuid_h="no"
799 AC_CHECK_HEADERS(cpuid.h, [have_cpuid_h="yes"])
800
801 AC_CHECK_HEADERS(sys/capability.h)
802 #
803 # Checks for typedefs, structures, and compiler characteristics.
804 #
805 AC_C_CONST
806 AC_TYPE_PID_T
807 AC_TYPE_SIZE_T
808 AC_TYPE_UID_T
809 AC_HEADER_TIME
810
811 #
812 # Checks for library functions.
813 #
814 AC_CHECK_FUNCS(gettimeofday select strdup strtol getaddrinfo getnameinfo strchr memcpy strstr strcmp strncmp strncpy strlen strncasecmp strcasecmp openlog closelog sysconf setenv if_indextoname setlocale)
815
816 AC_FUNC_STRERROR_R
817
818 test_cxx_flags() {
819         AC_LANG_PUSH([C++])
820         AC_LANG_CONFTEST([
821                 AC_LANG_SOURCE([[int main(void){}]])
822         ])
823         $CXX -c conftest.cpp $CXXFLAGS $@ > /dev/null 2> /dev/null
824         ret=$?
825         rm -f conftest.o
826         AC_LANG_POP([C++])
827         return $ret
828 }
829
830 SAVE_CFLAGS="$CFLAGS"
831 # Emulate behavior of src/Makefile.am
832 if test "x$GCC" = "xyes"
833 then
834         CFLAGS="$CFLAGS -Wall -Werror"
835 fi
836
837 AC_CACHE_CHECK([for strtok_r],
838   [c_cv_have_strtok_r_default],
839   AC_LINK_IFELSE(
840     [AC_LANG_PROGRAM(
841 [[[
842 #include <stdlib.h>
843 #include <stdio.h>
844 #include <string.h>
845 ]]],
846 [[[
847       char buffer[] = "foo,bar,baz";
848       char *token;
849       char *dummy;
850       char *saveptr;
851
852       dummy = buffer;
853       saveptr = NULL;
854       while ((token = strtok_r (dummy, ",", &saveptr)) != NULL)
855       {
856         dummy = NULL;
857         printf ("token = %s;\n", token);
858       }
859 ]]]
860     )],
861     [c_cv_have_strtok_r_default="yes"],
862     [c_cv_have_strtok_r_default="no"]
863   )
864 )
865
866 if test "x$c_cv_have_strtok_r_default" = "xno"
867 then
868   CFLAGS="$CFLAGS -D_REENTRANT=1"
869
870   AC_CACHE_CHECK([if strtok_r needs _REENTRANT],
871     [c_cv_have_strtok_r_reentrant],
872     AC_LINK_IFELSE(
873       [AC_LANG_PROGRAM(
874 [[[
875 #include <stdlib.h>
876 #include <stdio.h>
877 #include <string.h>
878 ]]],
879 [[[
880         char buffer[] = "foo,bar,baz";
881         char *token;
882         char *dummy;
883         char *saveptr;
884
885         dummy = buffer;
886         saveptr = NULL;
887         while ((token = strtok_r (dummy, ",", &saveptr)) != NULL)
888         {
889           dummy = NULL;
890           printf ("token = %s;\n", token);
891         }
892 ]]]
893       )],
894       [c_cv_have_strtok_r_reentrant="yes"],
895       [AC_MSG_FAILURE([strtok_r isn't available. Please file a bugreport!])]
896     )
897   )
898 fi
899
900 CFLAGS="$SAVE_CFLAGS"
901 if test "x$c_cv_have_strtok_r_reentrant" = "xyes"
902 then
903         CFLAGS="$CFLAGS -D_REENTRANT=1"
904 fi
905
906 AC_CHECK_FUNCS(getpwnam_r getgrnam_r setgroups regcomp regerror regexec regfree)
907
908 socket_needs_socket="no"
909 AC_CHECK_FUNCS(socket, [], AC_CHECK_LIB(socket, socket, [socket_needs_socket="yes"], AC_MSG_ERROR(cannot find socket)))
910 AM_CONDITIONAL(BUILD_WITH_LIBSOCKET, test "x$socket_needs_socket" = "xyes")
911
912 clock_gettime_needs_rt="no"
913 clock_gettime_needs_posix4="no"
914 have_clock_gettime="no"
915 AC_CHECK_FUNCS(clock_gettime, [have_clock_gettime="yes"])
916 if test "x$have_clock_gettime" = "xno"
917 then
918         AC_CHECK_LIB(rt, clock_gettime, [clock_gettime_needs_rt="yes"
919                                          have_clock_gettime="yes"])
920 fi
921 if test "x$have_clock_gettime" = "xno"
922 then
923         AC_CHECK_LIB(posix4, clock_gettime, [clock_gettime_needs_posix4="yes"
924                                              have_clock_gettime="yes"])
925 fi
926 if test "x$have_clock_gettime" = "xyes"
927 then
928         AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define if the clock_gettime(2) function is available.])
929 fi
930
931 nanosleep_needs_rt="no"
932 nanosleep_needs_posix4="no"
933 AC_CHECK_FUNCS(nanosleep,
934     [],
935     AC_CHECK_LIB(rt, nanosleep,
936         [nanosleep_needs_rt="yes"],
937         AC_CHECK_LIB(posix4, nanosleep,
938             [nanosleep_needs_posix4="yes"],
939             AC_MSG_ERROR(cannot find nanosleep))))
940
941 AM_CONDITIONAL(BUILD_WITH_LIBRT, test "x$clock_gettime_needs_rt" = "xyes" || test "x$nanosleep_needs_rt" = "xyes")
942 AM_CONDITIONAL(BUILD_WITH_LIBPOSIX4, test "x$clock_gettime_needs_posix4" = "xyes" || test "x$nanosleep_needs_posix4" = "xyes")
943
944 AC_CHECK_FUNCS(sysctl, [have_sysctl="yes"], [have_sysctl="no"])
945 AC_CHECK_FUNCS(sysctlbyname, [have_sysctlbyname="yes"], [have_sysctlbyname="no"])
946 AC_CHECK_FUNCS(host_statistics, [have_host_statistics="yes"], [have_host_statistics="no"])
947 AC_CHECK_FUNCS(processor_info, [have_processor_info="yes"], [have_processor_info="no"])
948 AC_CHECK_FUNCS(thread_info, [have_thread_info="yes"], [have_thread_info="no"])
949 AC_CHECK_FUNCS(statfs, [have_statfs="yes"], [have_statfs="no"])
950 AC_CHECK_FUNCS(statvfs, [have_statvfs="yes"], [have_statvfs="no"])
951 AC_CHECK_FUNCS(getifaddrs, [have_getifaddrs="yes"], [have_getifaddrs="no"])
952 AC_CHECK_FUNCS(getloadavg, [have_getloadavg="yes"], [have_getloadavg="no"])
953 AC_CHECK_FUNCS(syslog, [have_syslog="yes"], [have_syslog="no"])
954 AC_CHECK_FUNCS(getutent, [have_getutent="yes"], [have_getutent="no"])
955 AC_CHECK_FUNCS(getutxent, [have_getutxent="yes"], [have_getutxent="no"])
956
957 # Check for strptime {{{
958 if test "x$GCC" = "xyes"
959 then
960         SAVE_CFLAGS="$CFLAGS"
961         CFLAGS="$CFLAGS -Wall -Wextra -Werror"
962 fi
963
964 AC_CHECK_FUNCS(strptime, [have_strptime="yes"], [have_strptime="no"])
965 if test "x$have_strptime" = "xyes"
966 then
967         AC_CACHE_CHECK([whether strptime is exported by default],
968                        [c_cv_have_strptime_default],
969                        AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
970 [[[
971 #include <time.h>
972 ]]],
973 [[[
974  struct tm stm;
975  (void) strptime ("2010-12-30%13:42:42", "%Y-%m-%dT%T", &stm);
976 ]]]
977                        )],
978                        [c_cv_have_strptime_default="yes"],
979                        [c_cv_have_strptime_default="no"]))
980 fi
981 if test "x$have_strptime" = "xyes" && test "x$c_cv_have_strptime_default" = "xno"
982 then
983         AC_CACHE_CHECK([whether strptime needs standards mode],
984                        [c_cv_have_strptime_standards],
985                        AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
986 [[[
987 #ifndef _ISOC99_SOURCE
988 # define _ISOC99_SOURCE 1
989 #endif
990 #ifndef _POSIX_C_SOURCE
991 # define _POSIX_C_SOURCE 200112L
992 #endif
993 #ifndef _XOPEN_SOURCE
994 # define _XOPEN_SOURCE 500
995 #endif
996 #include <time.h>
997 ]]],
998 [[[
999  struct tm stm;
1000  (void) strptime ("2010-12-30%13:42:42", "%Y-%m-%dT%T", &stm);
1001 ]]]
1002                        )],
1003                        [c_cv_have_strptime_standards="yes"],
1004                        [c_cv_have_strptime_standards="no"]))
1005
1006         if test "x$c_cv_have_strptime_standards" = "xyes"
1007         then
1008                 AC_DEFINE([STRPTIME_NEEDS_STANDARDS], 1, [Set to true if strptime is only exported in X/Open mode (GNU libc).])
1009         else
1010                 have_strptime="no"
1011         fi
1012 fi
1013
1014 if test "x$GCC" = "xyes"
1015 then
1016         CFLAGS="$SAVE_CFLAGS"
1017 fi
1018 # }}} Check for strptime
1019
1020 AC_CHECK_FUNCS(swapctl, [have_swapctl="yes"], [have_swapctl="no"])
1021 if test "x$have_swapctl" = "xyes"; then
1022         AC_CACHE_CHECK([whether swapctl takes two arguments],
1023                 [c_cv_have_swapctl_two_args],
1024                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1025 [[[
1026 #if HAVE_SYS_SWAP_H && !defined(_LP64) && _FILE_OFFSET_BITS == 64
1027 #  undef _FILE_OFFSET_BITS
1028 #  undef _LARGEFILE64_SOURCE
1029 #endif
1030 #include <sys/stat.h>
1031 #include <sys/param.h>
1032 #include <sys/swap.h>
1033 #include <unistd.h>
1034 ]]],
1035 [[[
1036 int num = swapctl(0, NULL);
1037 ]]]
1038                         )],
1039                         [c_cv_have_swapctl_two_args="yes"],
1040                         [c_cv_have_swapctl_two_args="no"]
1041                 )
1042         )
1043         AC_CACHE_CHECK([whether swapctl takes three arguments],
1044                 [c_cv_have_swapctl_three_args],
1045                 AC_COMPILE_IFELSE(
1046                         [AC_LANG_PROGRAM(
1047 [[[
1048 #if HAVE_SYS_SWAP_H && !defined(_LP64) && _FILE_OFFSET_BITS == 64
1049 #  undef _FILE_OFFSET_BITS
1050 #  undef _LARGEFILE64_SOURCE
1051 #endif
1052 #include <sys/stat.h>
1053 #include <sys/param.h>
1054 #include <sys/swap.h>
1055 #include <unistd.h>
1056 ]]],
1057 [[[
1058 int num = swapctl(0, NULL, 0);
1059 ]]]
1060                         )],
1061                         [c_cv_have_swapctl_three_args="yes"],
1062                         [c_cv_have_swapctl_three_args="no"]
1063                 )
1064         )
1065 fi
1066 # Check for different versions of `swapctl' here..
1067 if test "x$have_swapctl" = "xyes"; then
1068         if test "x$c_cv_have_swapctl_two_args" = "xyes"; then
1069                 AC_DEFINE(HAVE_SWAPCTL_TWO_ARGS, 1,
1070                           [Define if the function swapctl exists and takes two arguments.])
1071         fi
1072         if test "x$c_cv_have_swapctl_three_args" = "xyes"; then
1073                 AC_DEFINE(HAVE_SWAPCTL_THREE_ARGS, 1,
1074                           [Define if the function swapctl exists and takes three arguments.])
1075         fi
1076 fi
1077
1078 # Check for NAN
1079 AC_ARG_WITH(nan-emulation, [AS_HELP_STRING([--with-nan-emulation], [use emulated NAN. For crosscompiling only.])],
1080 [
1081  if test "x$withval" = "xno"; then
1082          nan_type="none"
1083  else if test "x$withval" = "xyes"; then
1084          nan_type="zero"
1085  else
1086          nan_type="$withval"
1087  fi; fi
1088 ],
1089 [nan_type="none"])
1090 if test "x$nan_type" = "xnone"; then
1091   AC_CACHE_CHECK([whether NAN is defined by default],
1092     [c_cv_have_nan_default],
1093     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1094 [[[
1095 #include <stdlib.h>
1096 #include <math.h>
1097 static double foo = NAN;
1098 ]]],
1099 [[[
1100        if (isnan (foo))
1101         return 0;
1102        else
1103         return 1;
1104 ]]]
1105       )],
1106       [c_cv_have_nan_default="yes"],
1107       [c_cv_have_nan_default="no"]
1108     )
1109   )
1110   if test "x$c_cv_have_nan_default" = "xyes"
1111   then
1112     nan_type="default"
1113   fi
1114 fi
1115 if test "x$nan_type" = "xnone"; then
1116   AC_CACHE_CHECK([whether NAN is defined by __USE_ISOC99],
1117     [c_cv_have_nan_isoc],
1118     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1119 [[[
1120 #include <stdlib.h>
1121 #define __USE_ISOC99 1
1122 #include <math.h>
1123 static double foo = NAN;
1124 ]]],
1125 [[[
1126        if (isnan (foo))
1127         return 0;
1128        else
1129         return 1;
1130 ]]]
1131       )],
1132       [c_cv_have_nan_isoc="yes"],
1133       [c_cv_have_nan_isoc="no"]
1134     )
1135   )
1136   if test "x$c_cv_have_nan_isoc" = "xyes"
1137   then
1138     nan_type="isoc99"
1139   fi
1140 fi
1141 if test "x$nan_type" = "xnone"; then
1142   SAVE_LDFLAGS=$LDFLAGS
1143   LDFLAGS="$LDFLAGS -lm"
1144   AC_CACHE_CHECK([whether NAN can be defined by 0/0],
1145     [c_cv_have_nan_zero],
1146     AC_RUN_IFELSE([AC_LANG_PROGRAM(
1147 [[[
1148 #include <stdlib.h>
1149 #include <math.h>
1150 #ifdef NAN
1151 # undef NAN
1152 #endif
1153 #define NAN (0.0 / 0.0)
1154 #ifndef isnan
1155 # define isnan(f) ((f) != (f))
1156 #endif
1157 static double foo = NAN;
1158 ]]],
1159 [[[
1160        if (isnan (foo))
1161         return 0;
1162        else
1163         return 1;
1164 ]]]
1165       )],
1166       [c_cv_have_nan_zero="yes"],
1167       [c_cv_have_nan_zero="no"]
1168     )
1169   )
1170   LDFLAGS=$SAVE_LDFLAGS
1171   if test "x$c_cv_have_nan_zero" = "xyes"
1172   then
1173     nan_type="zero"
1174   fi
1175 fi
1176
1177 if test "x$nan_type" = "xdefault"; then
1178   AC_DEFINE(NAN_STATIC_DEFAULT, 1,
1179     [Define if NAN is defined by default and can initialize static variables.])
1180 else if test "x$nan_type" = "xisoc99"; then
1181   AC_DEFINE(NAN_STATIC_ISOC, 1,
1182     [Define if NAN is defined by __USE_ISOC99 and can initialize static variables.])
1183 else if test "x$nan_type" = "xzero"; then
1184   AC_DEFINE(NAN_ZERO_ZERO, 1,
1185     [Define if NAN can be defined as (0.0 / 0.0)])
1186 else
1187   AC_MSG_ERROR([Didn't find out how to statically initialize variables to NAN. Sorry.])
1188 fi; fi; fi
1189
1190 AC_ARG_WITH(fp-layout, [AS_HELP_STRING([--with-fp-layout], [set the memory layout of doubles. For crosscompiling only.])],
1191 [
1192  if test "x$withval" = "xnothing"; then
1193         fp_layout_type="nothing"
1194  else if test "x$withval" = "xendianflip"; then
1195         fp_layout_type="endianflip"
1196  else if test "x$withval" = "xintswap"; then
1197         fp_layout_type="intswap"
1198  else
1199         AC_MSG_ERROR([Invalid argument for --with-fp-layout. Valid arguments are: nothing, endianflip, intswap]);
1200 fi; fi; fi
1201 ],
1202 [fp_layout_type="unknown"])
1203
1204 if test "x$fp_layout_type" = "xunknown"; then
1205   AC_CACHE_CHECK([if doubles are stored in x86 representation],
1206     [c_cv_fp_layout_need_nothing],
1207     AC_RUN_IFELSE([AC_LANG_PROGRAM(
1208 [[[
1209 #include <stdlib.h>
1210 #include <stdio.h>
1211 #include <string.h>
1212 #if HAVE_STDINT_H
1213 # include <stdint.h>
1214 #endif
1215 #if HAVE_INTTYPES_H
1216 # include <inttypes.h>
1217 #endif
1218 #if HAVE_STDBOOL_H
1219 # include <stdbool.h>
1220 #endif
1221 ]]],
1222 [[[
1223         uint64_t i0;
1224         uint64_t i1;
1225         uint8_t c[8];
1226         double d;
1227
1228         d = 8.642135e130;
1229         memcpy ((void *) &i0, (void *) &d, 8);
1230
1231         i1 = i0;
1232         memcpy ((void *) c, (void *) &i1, 8);
1233
1234         if ((c[0] == 0x2f) && (c[1] == 0x25)
1235                         && (c[2] == 0xc0) && (c[3] == 0xc7)
1236                         && (c[4] == 0x43) && (c[5] == 0x2b)
1237                         && (c[6] == 0x1f) && (c[7] == 0x5b))
1238                 return (0);
1239         else
1240                 return (1);
1241 ]]]
1242       )],
1243       [c_cv_fp_layout_need_nothing="yes"],
1244       [c_cv_fp_layout_need_nothing="no"]
1245     )
1246   )
1247   if test "x$c_cv_fp_layout_need_nothing" = "xyes"; then
1248     fp_layout_type="nothing"
1249   fi
1250 fi
1251 if test "x$fp_layout_type" = "xunknown"; then
1252   AC_CACHE_CHECK([if endianflip converts to x86 representation],
1253     [c_cv_fp_layout_need_endianflip],
1254     AC_RUN_IFELSE([AC_LANG_PROGRAM(
1255 [[[
1256 #include <stdlib.h>
1257 #include <stdio.h>
1258 #include <string.h>
1259 #if HAVE_STDINT_H
1260 # include <stdint.h>
1261 #endif
1262 #if HAVE_INTTYPES_H
1263 # include <inttypes.h>
1264 #endif
1265 #if HAVE_STDBOOL_H
1266 # include <stdbool.h>
1267 #endif
1268 #define endianflip(A) ((((uint64_t)(A) & 0xff00000000000000LL) >> 56) | \
1269                        (((uint64_t)(A) & 0x00ff000000000000LL) >> 40) | \
1270                        (((uint64_t)(A) & 0x0000ff0000000000LL) >> 24) | \
1271                        (((uint64_t)(A) & 0x000000ff00000000LL) >> 8)  | \
1272                        (((uint64_t)(A) & 0x00000000ff000000LL) << 8)  | \
1273                        (((uint64_t)(A) & 0x0000000000ff0000LL) << 24) | \
1274                        (((uint64_t)(A) & 0x000000000000ff00LL) << 40) | \
1275                        (((uint64_t)(A) & 0x00000000000000ffLL) << 56))
1276 ]]],
1277 [[[
1278         uint64_t i0;
1279         uint64_t i1;
1280         uint8_t c[8];
1281         double d;
1282
1283         d = 8.642135e130;
1284         memcpy ((void *) &i0, (void *) &d, 8);
1285
1286         i1 = endianflip (i0);
1287         memcpy ((void *) c, (void *) &i1, 8);
1288
1289         if ((c[0] == 0x2f) && (c[1] == 0x25)
1290                         && (c[2] == 0xc0) && (c[3] == 0xc7)
1291                         && (c[4] == 0x43) && (c[5] == 0x2b)
1292                         && (c[6] == 0x1f) && (c[7] == 0x5b))
1293                 return (0);
1294         else
1295                 return (1);
1296 ]]]
1297       )],
1298       [c_cv_fp_layout_need_endianflip="yes"],
1299       [c_cv_fp_layout_need_endianflip="no"]
1300     )
1301   )
1302   if test "x$c_cv_fp_layout_need_endianflip" = "xyes"; then
1303     fp_layout_type="endianflip"
1304   fi
1305 fi
1306 if test "x$fp_layout_type" = "xunknown"; then
1307   AC_CACHE_CHECK([if intswap converts to x86 representation],
1308     [c_cv_fp_layout_need_intswap],
1309     AC_RUN_IFELSE([AC_LANG_PROGRAM(
1310 [[[
1311 #include <stdlib.h>
1312 #include <stdio.h>
1313 #include <string.h>
1314 #if HAVE_STDINT_H
1315 # include <stdint.h>
1316 #endif
1317 #if HAVE_INTTYPES_H
1318 # include <inttypes.h>
1319 #endif
1320 #if HAVE_STDBOOL_H
1321 # include <stdbool.h>
1322 #endif
1323 #define intswap(A)    ((((uint64_t)(A) & 0xffffffff00000000LL) >> 32) | \
1324                        (((uint64_t)(A) & 0x00000000ffffffffLL) << 32))
1325 ]]],
1326 [[[
1327         uint64_t i0;
1328         uint64_t i1;
1329         uint8_t c[8];
1330         double d;
1331
1332         d = 8.642135e130;
1333         memcpy ((void *) &i0, (void *) &d, 8);
1334
1335         i1 = intswap (i0);
1336         memcpy ((void *) c, (void *) &i1, 8);
1337
1338         if ((c[0] == 0x2f) && (c[1] == 0x25)
1339                         && (c[2] == 0xc0) && (c[3] == 0xc7)
1340                         && (c[4] == 0x43) && (c[5] == 0x2b)
1341                         && (c[6] == 0x1f) && (c[7] == 0x5b))
1342                 return (0);
1343         else
1344                 return (1);
1345 ]]]
1346       )],
1347       [c_cv_fp_layout_need_intswap="yes"],
1348       [c_cv_fp_layout_need_intswap="no"]
1349     )
1350   )
1351   if test "x$c_cv_fp_layout_need_intswap" = "xyes"; then
1352     fp_layout_type="intswap"
1353   fi
1354 fi
1355
1356 if test "x$fp_layout_type" = "xnothing"; then
1357   AC_DEFINE(FP_LAYOUT_NEED_NOTHING, 1,
1358   [Define if doubles are stored in x86 representation.])
1359 else if test "x$fp_layout_type" = "xendianflip"; then
1360   AC_DEFINE(FP_LAYOUT_NEED_ENDIANFLIP, 1,
1361   [Define if endianflip is needed to convert to x86 representation.])
1362 else if test "x$fp_layout_type" = "xintswap"; then
1363   AC_DEFINE(FP_LAYOUT_NEED_INTSWAP, 1,
1364   [Define if intswap is needed to convert to x86 representation.])
1365 else
1366   AC_MSG_ERROR([Didn't find out how doubles are stored in memory. Sorry.])
1367 fi; fi; fi
1368
1369 # --with-useragent {{{
1370 AC_ARG_WITH(useragent, [AS_HELP_STRING([--with-useragent@<:@=AGENT@:>@], [User agent to use on http requests])],
1371 [
1372     if test "x$withval" != "xno" && test "x$withval" != "xyes"
1373     then
1374         AC_DEFINE_UNQUOTED(COLLECTD_USERAGENT, ["$withval"], [User agent for http requests])
1375     fi
1376 ])
1377
1378 # }}}
1379
1380 have_getfsstat="no"
1381 AC_CHECK_FUNCS(getfsstat, [have_getfsstat="yes"])
1382 have_getvfsstat="no"
1383 AC_CHECK_FUNCS(getvfsstat, [have_getvfsstat="yes"])
1384 have_listmntent="no"
1385 AC_CHECK_FUNCS(listmntent, [have_listmntent="yes"])
1386 have_getmntent_r="no"
1387 AC_CHECK_FUNCS(getmntent_r, [have_getmntent_r="yes"])
1388
1389 have_getmntent="no"
1390 AC_CHECK_FUNCS(getmntent, [have_getmntent="c"])
1391 if test "x$have_getmntent" = "xno"; then
1392         AC_CHECK_LIB(sun, getmntent, [have_getmntent="sun"])
1393 fi
1394 if test "x$have_getmntent" = "xno"; then
1395         AC_CHECK_LIB(seq, getmntent, [have_getmntent="seq"])
1396 fi
1397 if test "x$have_getmntent" = "xno"; then
1398         AC_CHECK_LIB(gen, getmntent, [have_getmntent="gen"])
1399 fi
1400
1401 if test "x$have_getmntent" = "xc"; then
1402         AC_CACHE_CHECK([whether getmntent takes one argument],
1403                 [c_cv_have_one_getmntent],
1404                 AC_COMPILE_IFELSE(
1405                         [AC_LANG_PROGRAM(
1406 [[[
1407 #include "$srcdir/src/utils_mount.h"
1408 ]]],
1409 [[[
1410 FILE *fh;
1411 struct mntent *me;
1412 fh = setmntent ("/etc/mtab", "r");
1413 me = getmntent (fh);
1414 return(me->mnt_passno);
1415 ]]]
1416                         )],
1417                         [c_cv_have_one_getmntent="yes"],
1418                         [c_cv_have_one_getmntent="no"]
1419                 )
1420         )
1421         AC_CACHE_CHECK([whether getmntent takes two arguments],
1422                 [c_cv_have_two_getmntent],
1423                 AC_COMPILE_IFELSE(
1424                         [AC_LANG_PROGRAM(
1425 [[[
1426 #include "$srcdir/src/utils_mount.h"
1427 ]]],
1428 [[[
1429                                  FILE *fh;
1430                                  struct mnttab mt;
1431                                  int status;
1432                                  fh = fopen ("/etc/mnttab", "r");
1433                                  status = getmntent (fh, &mt);
1434                                  return(status);
1435 ]]]
1436                         )],
1437                         [c_cv_have_two_getmntent="yes"],
1438                         [c_cv_have_two_getmntent="no"]
1439                 )
1440         )
1441 fi
1442
1443 # Check for different versions of `getmntent' here..
1444
1445 if test "x$have_getmntent" = "xc"; then
1446         if test "x$c_cv_have_one_getmntent" = "xyes"; then
1447                 AC_DEFINE(HAVE_ONE_GETMNTENT, 1,
1448                           [Define if the function getmntent exists and takes one argument.])
1449         fi
1450         if test "x$c_cv_have_two_getmntent" = "xyes"; then
1451                 AC_DEFINE(HAVE_TWO_GETMNTENT, 1,
1452                           [Define if the function getmntent exists and takes two arguments.])
1453         fi
1454 fi
1455 if test "x$have_getmntent" = "xsun"; then
1456         AC_DEFINE(HAVE_SUN_GETMNTENT, 1,
1457                   [Define if the function getmntent exists. It's the version from libsun.])
1458 fi
1459 if test "x$have_getmntent" = "xseq"; then
1460         AC_DEFINE(HAVE_SEQ_GETMNTENT, 1,
1461                   [Define if the function getmntent exists. It's the version from libseq.])
1462 fi
1463 if test "x$have_getmntent" = "xgen"; then
1464         AC_DEFINE(HAVE_GEN_GETMNTENT, 1,
1465                   [Define if the function getmntent exists. It's the version from libgen.])
1466 fi
1467
1468 # Check for htonll
1469 AC_CACHE_CHECK([if have htonll defined],
1470                   [c_cv_have_htonll],
1471                   AC_LINK_IFELSE([AC_LANG_PROGRAM(
1472 [[[
1473 #include <sys/types.h>
1474 #include <netinet/in.h>
1475 #if HAVE_INTTYPES_H
1476 # include <inttypes.h>
1477 #endif
1478 ]]],
1479 [[[
1480           return htonll(0);
1481 ]]]
1482     )],
1483     [c_cv_have_htonll="yes"],
1484     [c_cv_have_htonll="no"]
1485   )
1486 )
1487 if test "x$c_cv_have_htonll" = "xyes"
1488 then
1489     AC_DEFINE(HAVE_HTONLL, 1, [Define if the function htonll exists.])
1490 fi
1491
1492 # Check for structures
1493 AC_CHECK_MEMBERS([struct if_data.ifi_ibytes, struct if_data.ifi_opackets, struct if_data.ifi_ierrors],
1494         [AC_DEFINE(HAVE_STRUCT_IF_DATA, 1, [Define if struct if_data exists and is usable.])],
1495         [],
1496         [
1497         #include <sys/types.h>
1498         #include <sys/socket.h>
1499         #include <net/if.h>
1500         ])
1501 AC_CHECK_MEMBERS([struct net_device_stats.rx_bytes, struct net_device_stats.tx_packets, struct net_device_stats.rx_errors],
1502         [AC_DEFINE(HAVE_STRUCT_NET_DEVICE_STATS, 1, [Define if struct net_device_stats exists and is usable.])],
1503         [],
1504         [
1505         #include <sys/types.h>
1506         #include <sys/socket.h>
1507         #include <linux/if.h>
1508         #include <linux/netdevice.h>
1509         ])
1510 AC_CHECK_MEMBERS([struct inet_diag_req.id, struct inet_diag_req.idiag_states],
1511         [AC_DEFINE(HAVE_STRUCT_LINUX_INET_DIAG_REQ, 1, [Define if struct inet_diag_req exists and is usable.])],
1512         [],
1513         [
1514         #include <linux/inet_diag.h>
1515         ])
1516
1517
1518 AC_CHECK_MEMBERS([struct ip_mreqn.imr_ifindex], [],
1519         [],
1520         [
1521         #include <netinet/in.h>
1522         #include <net/if.h>
1523         ])
1524
1525 AC_CHECK_MEMBERS([struct kinfo_proc.ki_pid, struct kinfo_proc.ki_rssize, struct kinfo_proc.ki_rusage],
1526         [
1527                 AC_DEFINE(HAVE_STRUCT_KINFO_PROC_FREEBSD, 1,
1528                         [Define if struct kinfo_proc exists in the FreeBSD variant.])
1529                 have_struct_kinfo_proc_freebsd="yes"
1530         ],
1531         [
1532                 have_struct_kinfo_proc_freebsd="no"
1533         ],
1534         [
1535 #include <kvm.h>
1536 #include <sys/param.h>
1537 #include <sys/sysctl.h>
1538 #include <sys/user.h>
1539         ])
1540
1541 AC_CHECK_MEMBERS([struct kinfo_proc.p_pid, struct kinfo_proc.p_vm_rssize],
1542         [
1543                 AC_DEFINE(HAVE_STRUCT_KINFO_PROC_OPENBSD, 1,
1544                         [Define if struct kinfo_proc exists in the OpenBSD variant.])
1545                 have_struct_kinfo_proc_openbsd="yes"
1546         ],
1547         [
1548                 have_struct_kinfo_proc_openbsd="no"
1549         ],
1550         [
1551 #include <sys/param.h>
1552 #include <sys/sysctl.h>
1553 #include <kvm.h>
1554         ])
1555
1556
1557 AC_CHECK_MEMBERS([struct kinfo_proc2.p_pid, struct kinfo_proc2.p_uru_maxrss],
1558         [
1559                 AC_DEFINE(HAVE_STRUCT_KINFO_PROC2_NETBSD, 1,
1560                         [Define if struct kinfo_proc2 exists in the NetBSD variant.])
1561                 have_struct_kinfo_proc2_netbsd="yes"
1562         ],
1563         [
1564                 have_struct_kinfo_proc2_netbsd="no"
1565         ],
1566         [
1567 #include <sys/param.h>
1568 #include <sys/sysctl.h>
1569 #include <kvm.h>
1570         ])
1571
1572
1573
1574 AC_CHECK_MEMBERS([struct udphdr.uh_dport, struct udphdr.uh_sport], [], [],
1575 [#define _BSD_SOURCE
1576 #define _DEFAULT_SOURCE
1577 #if HAVE_STDINT_H
1578 # include <stdint.h>
1579 #endif
1580 #if HAVE_SYS_TYPES_H
1581 # include <sys/types.h>
1582 #endif
1583 #if HAVE_NETINET_IN_SYSTM_H
1584 # include <netinet/in_systm.h>
1585 #endif
1586 #if HAVE_NETINET_IN_H
1587 # include <netinet/in.h>
1588 #endif
1589 #if HAVE_NETINET_IP_H
1590 # include <netinet/ip.h>
1591 #endif
1592 #if HAVE_NETINET_UDP_H
1593 # include <netinet/udp.h>
1594 #endif
1595 ])
1596 AC_CHECK_MEMBERS([struct udphdr.dest, struct udphdr.source], [], [],
1597 [#define _BSD_SOURCE
1598 #define _DEFAULT_SOURCE
1599 #if HAVE_STDINT_H
1600 # include <stdint.h>
1601 #endif
1602 #if HAVE_SYS_TYPES_H
1603 # include <sys/types.h>
1604 #endif
1605 #if HAVE_NETINET_IN_SYSTM_H
1606 # include <netinet/in_systm.h>
1607 #endif
1608 #if HAVE_NETINET_IN_H
1609 # include <netinet/in.h>
1610 #endif
1611 #if HAVE_NETINET_IP_H
1612 # include <netinet/ip.h>
1613 #endif
1614 #if HAVE_NETINET_UDP_H
1615 # include <netinet/udp.h>
1616 #endif
1617 ])
1618
1619 AC_CHECK_MEMBERS([kstat_io_t.nwritten, kstat_io_t.writes, kstat_io_t.nwrites, kstat_io_t.wtime],
1620         [],
1621         [],
1622         [
1623 #if HAVE_KSTAT_H
1624 # include <kstat.h>
1625 #endif
1626         ])
1627
1628 #
1629 # Checks for libraries begin here
1630 #
1631
1632 with_libresolv="yes"
1633 AC_CHECK_LIB(resolv, res_search,
1634 [
1635         AC_DEFINE(HAVE_LIBRESOLV, 1, [Define to 1 if you have the 'resolv' library (-lresolv).])
1636 ],
1637 [with_libresolv="no"])
1638 AM_CONDITIONAL(BUILD_WITH_LIBRESOLV, test "x$with_libresolv" = "xyes")
1639
1640 dnl Check for HAL (hardware abstraction library)
1641 with_libhal="yes"
1642 AC_CHECK_LIB(hal,libhal_device_property_exists,
1643              [AC_DEFINE(HAVE_LIBHAL, 1, [Define to 1 if you have 'hal' library])],
1644              [with_libhal="no"])
1645 if test "x$with_libhal" = "xyes"; then
1646         if test "x$PKG_CONFIG" != "x"; then
1647                 BUILD_WITH_LIBHAL_CFLAGS="`$PKG_CONFIG --cflags hal`"
1648                 BUILD_WITH_LIBHAL_LIBS="`$PKG_CONFIG --libs hal`"
1649                 AC_SUBST(BUILD_WITH_LIBHAL_CFLAGS)
1650                 AC_SUBST(BUILD_WITH_LIBHAL_LIBS)
1651         fi
1652 fi
1653
1654 SAVE_LIBS="$LIBS"
1655 AC_CHECK_LIB([pthread],
1656   [pthread_create],
1657   [],
1658   [AC_MSG_ERROR([Symbol 'pthread_create' not found in libpthread"])],
1659   []
1660 )
1661 PTHREAD_LIBS="$LIBS"
1662 LIBS="$SAVE_LIBS"
1663
1664 AC_CHECK_HEADERS([pthread.h],
1665   [],
1666   [AC_MSG_ERROR([pthread.h not found])]
1667 )
1668 AC_SUBST([PTHREAD_LIBS])
1669
1670 m4_divert_once([HELP_WITH], [
1671 collectd additional packages:])
1672
1673 if test "x$ac_system" = "xAIX"
1674 then
1675         with_perfstat="yes"
1676         with_procinfo="yes"
1677 else
1678         with_perfstat="no (AIX only)"
1679         with_procinfo="no (AIX only)"
1680 fi
1681
1682 if test "x$with_perfstat" = "xyes"
1683 then
1684         AC_CHECK_LIB(perfstat, perfstat_reset, [with_perfstat="yes"], [with_perfstat="no (perfstat not found)"], [])
1685 #       AC_CHECK_HEADERS(sys/protosw.h libperfstat.h,, [with_perfstat="no (perfstat not found)"])
1686 fi
1687 if test "x$with_perfstat" = "xyes"
1688 then
1689          AC_DEFINE(HAVE_PERFSTAT, 1, [Define to 1 if you have the 'perfstat' library (-lperfstat)])
1690          # struct members pertaining to donation have been added to libperfstat somewhere between AIX5.3ML5 and AIX5.3ML9
1691          AC_CHECK_MEMBER([perfstat_partition_type_t.b.donate_enabled], [], [], [[#include <libperfstat.h]])
1692          if test "x$av_cv_member_perfstat_partition_type_t_b_donate_enabled" = "xyes"
1693          then
1694                 AC_DEFINE(PERFSTAT_SUPPORTS_DONATION, 1, [Define to 1 if your version of the 'perfstat' library supports donation])
1695          fi
1696 fi
1697 AM_CONDITIONAL(BUILD_WITH_PERFSTAT, test "x$with_perfstat" = "xyes")
1698
1699 # Processes plugin under AIX.
1700 if test "x$with_procinfo" = "xyes"
1701 then
1702         AC_CHECK_HEADERS(procinfo.h,, [with_procinfo="no (procinfo.h not found)"])
1703 fi
1704 if test "x$with_procinfo" = "xyes"
1705 then
1706          AC_DEFINE(HAVE_PROCINFO_H, 1, [Define to 1 if you have the procinfo.h])
1707 fi
1708
1709 if test "x$ac_system" = "xSolaris"
1710 then
1711         with_kstat="yes"
1712         with_devinfo="yes"
1713 else
1714         with_kstat="no (Solaris only)"
1715         with_devinfo="no (Solaris only)"
1716 fi
1717
1718 if test "x$with_kstat" = "xyes"
1719 then
1720         AC_CHECK_LIB(kstat, kstat_open, [with_kstat="yes"], [with_kstat="no (libkstat not found)"], [])
1721 fi
1722 if test "x$with_kstat" = "xyes"
1723 then
1724         AC_CHECK_LIB(devinfo, di_init, [with_devinfo="yes"], [with_devinfo="no (not found)"], [])
1725         AC_CHECK_HEADERS(kstat.h,, [with_kstat="no (kstat.h not found)"])
1726 fi
1727 if test "x$with_kstat" = "xyes"
1728 then
1729         AC_DEFINE(HAVE_LIBKSTAT, 1,
1730                   [Define to 1 if you have the 'kstat' library (-lkstat)])
1731 fi
1732 AM_CONDITIONAL(BUILD_WITH_LIBKSTAT, test "x$with_kstat" = "xyes")
1733 AM_CONDITIONAL(BUILD_WITH_LIBDEVINFO, test "x$with_devinfo" = "xyes")
1734
1735 with_libiokit="no"
1736 if test "x$ac_system" = "xDarwin"
1737 then
1738         with_libiokit="yes"
1739 else
1740         with_libiokit="no"
1741 fi
1742 AM_CONDITIONAL(BUILD_WITH_LIBIOKIT, test "x$with_libiokit" = "xyes")
1743
1744 with_libkvm="no"
1745 AC_CHECK_LIB(kvm, kvm_getprocs, [with_kvm_getprocs="yes"], [with_kvm_getprocs="no"])
1746 if test "x$with_kvm_getprocs" = "xyes"
1747 then
1748         AC_DEFINE(HAVE_LIBKVM_GETPROCS, 1,
1749                   [Define to 1 if you have the 'kvm' library with the 'kvm_getprocs' symbol (-lkvm)])
1750         with_libkvm="yes"
1751 fi
1752 AM_CONDITIONAL(BUILD_WITH_LIBKVM_GETPROCS, test "x$with_kvm_getprocs" = "xyes")
1753
1754 AC_CHECK_LIB(kvm, kvm_getswapinfo, [with_kvm_getswapinfo="yes"], [with_kvm_getswapinfo="no"])
1755 if test "x$with_kvm_getswapinfo" = "xyes"
1756 then
1757         AC_DEFINE(HAVE_LIBKVM_GETSWAPINFO, 1,
1758                   [Define to 1 if you have the 'kvm' library with the 'kvm_getswapinfo' symbol (-lkvm)])
1759         with_libkvm="yes"
1760 fi
1761 AM_CONDITIONAL(BUILD_WITH_LIBKVM_GETSWAPINFO, test "x$with_kvm_getswapinfo" = "xyes")
1762
1763 AC_CHECK_LIB(kvm, kvm_nlist, [with_kvm_nlist="yes"], [with_kvm_nlist="no"])
1764 if test "x$with_kvm_nlist" = "xyes"
1765 then
1766         AC_CHECK_HEADERS(bsd/nlist.h nlist.h)
1767         AC_DEFINE(HAVE_LIBKVM_NLIST, 1,
1768                   [Define to 1 if you have the 'kvm' library with the 'kvm_nlist' symbol (-lkvm)])
1769         with_libkvm="yes"
1770 fi
1771 AM_CONDITIONAL(BUILD_WITH_LIBKVM_NLIST, test "x$with_kvm_nlist" = "xyes")
1772
1773 AC_CHECK_LIB(kvm, kvm_openfiles, [with_kvm_openfiles="yes"], [with_kvm_openfiles="no"])
1774 if test "x$with_kvm_openfiles" = "xyes"
1775 then
1776         AC_DEFINE(HAVE_LIBKVM_NLIST, 1,
1777                   [Define to 1 if you have the 'kvm' library with the 'kvm_openfiles' symbol (-lkvm)])
1778         with_libkvm="yes"
1779 fi
1780 AM_CONDITIONAL(BUILD_WITH_LIBKVM_OPENFILES, test "x$with_kvm_openfiles" = "xyes")
1781
1782 # --with-libaquaero5 {{{
1783 AC_ARG_WITH(libaquaero5, [AS_HELP_STRING([--with-libaquaero5@<:@=PREFIX@:>@], [Path to aquatools-ng source code.])],
1784 [
1785  if test "x$withval" = "xyes"
1786  then
1787          with_libaquaero5="yes"
1788  else if test "x$withval" = "xno"
1789  then
1790          with_libaquaero5="no"
1791  else
1792          with_libaquaero5="yes"
1793          LIBAQUAERO5_CFLAGS="$LIBAQUAERO5_CFLAGS -I$withval/src"
1794          LIBAQUAERO5_LDFLAGS="$LIBAQUAERO5_LDFLAGS -L$withval/obj"
1795  fi; fi
1796 ],
1797 [with_libaquaero5="yes"])
1798
1799 SAVE_CPPFLAGS="$CPPFLAGS"
1800 SAVE_LDFLAGS="$LDFLAGS"
1801
1802 CPPFLAGS="$CPPFLAGS $LIBAQUAERO5_CFLAGS"
1803 LDFLAGS="$LDFLAGS $LIBAQUAERO5_LDFLAGS"
1804
1805 if test "x$with_libaquaero5" = "xyes"
1806 then
1807         if test "x$LIBAQUAERO5_CFLAGS" != "x"
1808         then
1809                 AC_MSG_NOTICE([libaquaero5 CPPFLAGS: $LIBAQUAERO5_CFLAGS])
1810         fi
1811         AC_CHECK_HEADERS(libaquaero5.h,
1812         [with_libaquaero5="yes"],
1813         [with_libaquaero5="no (libaquaero5.h not found)"])
1814 fi
1815 if test "x$with_libaquaero5" = "xyes"
1816 then
1817         if test "x$LIBAQUAERO5_LDFLAGS" != "x"
1818         then
1819                 AC_MSG_NOTICE([libaquaero5 LDFLAGS: $LIBAQUAERO5_LDFLAGS])
1820         fi
1821         AC_CHECK_LIB(aquaero5, libaquaero5_poll,
1822         [with_libaquaero5="yes"],
1823         [with_libaquaero5="no (symbol 'libaquaero5_poll' not found)"])
1824 fi
1825
1826 CPPFLAGS="$SAVE_CPPFLAGS"
1827 LDFLAGS="$SAVE_LDFLAGS"
1828
1829 if test "x$with_libaquaero5" = "xyes"
1830 then
1831         BUILD_WITH_LIBAQUAERO5_CFLAGS="$LIBAQUAERO5_CFLAGS"
1832         BUILD_WITH_LIBAQUAERO5_LDFLAGS="$LIBAQUAERO5_LDFLAGS"
1833         AC_SUBST(BUILD_WITH_LIBAQUAERO5_CFLAGS)
1834         AC_SUBST(BUILD_WITH_LIBAQUAERO5_LDFLAGS)
1835 fi
1836 AM_CONDITIONAL(BUILD_WITH_LIBAQUAERO5, test "x$with_libaquaero5" = "xyes")
1837 # }}}
1838
1839 # --with-libhiredis {{{
1840 AC_ARG_WITH(libhiredis, [AS_HELP_STRING([--with-libhiredis@<:@=PREFIX@:>@],
1841       [Path to libhiredis.])],
1842 [
1843  if test "x$withval" = "xyes"
1844  then
1845          with_libhiredis="yes"
1846  else if test "x$withval" = "xno"
1847  then
1848          with_libhiredis="no"
1849  else
1850          with_libhiredis="yes"
1851          LIBHIREDIS_CPPFLAGS="$LIBHIREDIS_CPPFLAGS -I$withval/include"
1852          LIBHIREDIS_LDFLAGS="$LIBHIREDIS_LDFLAGS -L$withval/lib"
1853  fi; fi
1854 ],
1855 [with_libhiredis="yes"])
1856
1857 SAVE_CPPFLAGS="$CPPFLAGS"
1858 SAVE_LDFLAGS="$LDFLAGS"
1859
1860 CPPFLAGS="$CPPFLAGS $LIBHIREDIS_CPPFLAGS"
1861 LDFLAGS="$LDFLAGS $LIBHIREDIS_LDFLAGS"
1862
1863 if test "x$with_libhiredis" = "xyes"
1864 then
1865         if test "x$LIBHIREDIS_CPPFLAGS" != "x"
1866         then
1867                 AC_MSG_NOTICE([libhiredis CPPFLAGS: $LIBHIREDIS_CPPFLAGS])
1868         fi
1869         AC_CHECK_HEADERS(hiredis/hiredis.h,
1870         [with_libhiredis="yes"],
1871         [with_libhiredis="no (hiredis.h not found)"])
1872 fi
1873 if test "x$with_libhiredis" = "xyes"
1874 then
1875         if test "x$LIBHIREDIS_LDFLAGS" != "x"
1876         then
1877                 AC_MSG_NOTICE([libhiredis LDFLAGS: $LIBHIREDIS_LDFLAGS])
1878         fi
1879         AC_CHECK_LIB(hiredis, redisCommand,
1880         [with_libhiredis="yes"],
1881         [with_libhiredis="no (symbol 'redisCommand' not found)"])
1882
1883 fi
1884
1885 CPPFLAGS="$SAVE_CPPFLAGS"
1886 LDFLAGS="$SAVE_LDFLAGS"
1887
1888 if test "x$with_libhiredis" = "xyes"
1889 then
1890         BUILD_WITH_LIBHIREDIS_CPPFLAGS="$LIBHIREDIS_CPPFLAGS"
1891         BUILD_WITH_LIBHIREDIS_LDFLAGS="$LIBHIREDIS_LDFLAGS"
1892         AC_SUBST(BUILD_WITH_LIBHIREDIS_CPPFLAGS)
1893         AC_SUBST(BUILD_WITH_LIBHIREDIS_LDFLAGS)
1894 fi
1895 AM_CONDITIONAL(BUILD_WITH_LIBHIREDIS, test "x$with_libhiredis" = "xyes")
1896 # }}}
1897
1898 # --with-libcurl {{{
1899 with_curl_config="curl-config"
1900 with_curl_cflags=""
1901 with_curl_libs=""
1902 AC_ARG_WITH(libcurl, [AS_HELP_STRING([--with-libcurl@<:@=PREFIX@:>@], [Path to libcurl.])],
1903 [
1904         if test "x$withval" = "xno"
1905         then
1906                 with_libcurl="no"
1907         else if test "x$withval" = "xyes"
1908         then
1909                 with_libcurl="yes"
1910         else
1911                 if test -f "$withval" && test -x "$withval"
1912                 then
1913                         with_curl_config="$withval"
1914                         with_libcurl="yes"
1915                 else if test -x "$withval/bin/curl-config"
1916                 then
1917                         with_curl_config="$withval/bin/curl-config"
1918                         with_libcurl="yes"
1919                 fi; fi
1920                 with_libcurl="yes"
1921         fi; fi
1922 ],
1923 [
1924         with_libcurl="yes"
1925 ])
1926 if test "x$with_libcurl" = "xyes"
1927 then
1928         with_curl_cflags=`$with_curl_config --cflags 2>/dev/null`
1929         curl_config_status=$?
1930
1931         if test $curl_config_status -ne 0
1932         then
1933                 with_libcurl="no ($with_curl_config failed)"
1934         else
1935                 SAVE_CPPFLAGS="$CPPFLAGS"
1936                 CPPFLAGS="$CPPFLAGS $with_curl_cflags"
1937
1938                 AC_CHECK_HEADERS(curl/curl.h, [], [with_libcurl="no (curl/curl.h not found)"], [])
1939
1940                 CPPFLAGS="$SAVE_CPPFLAGS"
1941         fi
1942 fi
1943 if test "x$with_libcurl" = "xyes"
1944 then
1945         with_curl_libs=`$with_curl_config --libs 2>/dev/null`
1946         curl_config_status=$?
1947
1948         if test $curl_config_status -ne 0
1949         then
1950                 with_libcurl="no ($with_curl_config failed)"
1951         else
1952                 AC_CHECK_LIB(curl, curl_easy_init,
1953                  [with_libcurl="yes"],
1954                  [with_libcurl="no (symbol 'curl_easy_init' not found)"],
1955                  [$with_curl_libs])
1956                 AC_CHECK_DECL(CURLOPT_USERNAME,
1957                  [have_curlopt_username="yes"],
1958                  [have_curlopt_username="no"],
1959                  [[#include <curl/curl.h>]])
1960                 AC_CHECK_DECL(CURLOPT_TIMEOUT_MS,
1961                  [have_curlopt_timeout="yes"],
1962                  [have_curlopt_timeout="no"],
1963                  [[#include <curl/curl.h>]])
1964         fi
1965 fi
1966 if test "x$with_libcurl" = "xyes"
1967 then
1968         SAVE_CPPFLAGS="$CPPFLAGS"
1969         SAVE_LDFLAGS="$LDFLAGS"
1970         CPPFLAGS="$CPPFLAGS $with_curl_cflags"
1971         LDFLAGS="$LDFLAGS $with_curl_libs"
1972         AC_CACHE_CHECK([for CURLINFO_APPCONNECT_TIME],
1973                 [c_cv_have_curlinfo_appconnect_time],
1974                 AC_LINK_IFELSE([AC_LANG_PROGRAM(
1975 [[
1976 #include <curl/curl.h>
1977 ]],
1978 [[
1979 int val = CURLINFO_APPCONNECT_TIME;
1980 return val;
1981 ]]
1982                         )],
1983                         [c_cv_have_curlinfo_appconnect_time="yes"],
1984                         [c_cv_have_curlinfo_appconnect_time="no"]
1985                 )
1986         )
1987         CPPFLAGS="$SAVE_CPPFLAGS"
1988         LDFLAGS="$SAVE_LDFLAGS"
1989 fi
1990 AM_CONDITIONAL(BUILD_WITH_LIBCURL, test "x$with_libcurl" = "xyes")
1991 if test "x$c_cv_have_curlinfo_appconnect_time" = "xyes"
1992 then
1993         AC_DEFINE(HAVE_CURLINFO_APPCONNECT_TIME, 1, [Define if curl.h defines CURLINFO_APPCONNECT_TIME.])
1994 fi
1995
1996 if test "x$with_libcurl" = "xyes"
1997 then
1998         BUILD_WITH_LIBCURL_CFLAGS="$with_curl_cflags"
1999         BUILD_WITH_LIBCURL_LIBS="$with_curl_libs"
2000         AC_SUBST(BUILD_WITH_LIBCURL_CFLAGS)
2001         AC_SUBST(BUILD_WITH_LIBCURL_LIBS)
2002
2003         if test "x$have_curlopt_username" = "xyes"
2004         then
2005                 AC_DEFINE(HAVE_CURLOPT_USERNAME, 1, [Define if libcurl supports CURLOPT_USERNAME option.])
2006         fi
2007
2008         if test "x$have_curlopt_timeout" = "xyes"
2009         then
2010                 AC_DEFINE(HAVE_CURLOPT_TIMEOUT_MS, 1, [Define if libcurl supports CURLOPT_TIMEOUT_MS option.])
2011         fi
2012 fi
2013 # }}}
2014
2015 # --with-libdbi {{{
2016 with_libdbi_cppflags=""
2017 with_libdbi_ldflags=""
2018 AC_ARG_WITH(libdbi, [AS_HELP_STRING([--with-libdbi@<:@=PREFIX@:>@], [Path to libdbi.])],
2019 [
2020         if test "x$withval" != "xno" && test "x$withval" != "xyes"
2021         then
2022                 with_libdbi_cppflags="-I$withval/include"
2023                 with_libdbi_ldflags="-L$withval/lib"
2024                 with_libdbi="yes"
2025         else
2026                 with_libdbi="$withval"
2027         fi
2028 ],
2029 [
2030         with_libdbi="yes"
2031 ])
2032 if test "x$with_libdbi" = "xyes"
2033 then
2034         SAVE_CPPFLAGS="$CPPFLAGS"
2035         CPPFLAGS="$CPPFLAGS $with_libdbi_cppflags"
2036
2037         AC_CHECK_HEADERS(dbi/dbi.h, [with_libdbi="yes"], [with_libdbi="no (dbi/dbi.h not found)"])
2038
2039         CPPFLAGS="$SAVE_CPPFLAGS"
2040 fi
2041 if test "x$with_libdbi" = "xyes"
2042 then
2043         SAVE_CPPFLAGS="$CPPFLAGS"
2044         SAVE_LDFLAGS="$LDFLAGS"
2045         CPPFLAGS="$CPPFLAGS $with_libdbi_cppflags"
2046         LDFLAGS="$LDFLAGS $with_libdbi_ldflags"
2047
2048         AC_CHECK_LIB(dbi, dbi_initialize, [with_libdbi="yes"], [with_libdbi="no (Symbol 'dbi_initialize' not found)"])
2049
2050         CPPFLAGS="$SAVE_CPPFLAGS"
2051         LDFLAGS="$SAVE_LDFLAGS"
2052 fi
2053 if test "x$with_libdbi" = "xyes"
2054 then
2055         BUILD_WITH_LIBDBI_CPPFLAGS="$with_libdbi_cppflags"
2056         BUILD_WITH_LIBDBI_LDFLAGS="$with_libdbi_ldflags"
2057         BUILD_WITH_LIBDBI_LIBS="-ldbi"
2058         AC_SUBST(BUILD_WITH_LIBDBI_CPPFLAGS)
2059         AC_SUBST(BUILD_WITH_LIBDBI_LDFLAGS)
2060         AC_SUBST(BUILD_WITH_LIBDBI_LIBS)
2061 fi
2062 AM_CONDITIONAL(BUILD_WITH_LIBDBI, test "x$with_libdbi" = "xyes")
2063 # }}}
2064
2065 # --with-libesmtp {{{
2066 AC_ARG_WITH(libesmtp, [AS_HELP_STRING([--with-libesmtp@<:@=PREFIX@:>@], [Path to libesmtp.])],
2067 [
2068         if test "x$withval" != "xno" && test "x$withval" != "xyes"
2069         then
2070                 LDFLAGS="$LDFLAGS -L$withval/lib"
2071                 CPPFLAGS="$CPPFLAGS -I$withval/include -D_THREAD_SAFE"
2072                 with_libesmtp="yes"
2073         else
2074                 with_libesmtp="$withval"
2075         fi
2076 ],
2077 [
2078         with_libesmtp="yes"
2079 ])
2080 if test "x$with_libesmtp" = "xyes"
2081 then
2082         AC_CHECK_LIB(esmtp, smtp_create_session,
2083         [
2084                 AC_DEFINE(HAVE_LIBESMTP, 1, [Define to 1 if you have the esmtp library (-lesmtp).])
2085         ], [with_libesmtp="no (libesmtp not found)"])
2086 fi
2087 if test "x$with_libesmtp" = "xyes"
2088 then
2089         AC_CHECK_HEADERS(libesmtp.h,
2090         [
2091                 AC_DEFINE(HAVE_LIBESMTP_H, 1, [Define to 1 if you have the <libesmtp.h> header file.])
2092         ], [with_libesmtp="no (libesmtp.h not found)"])
2093 fi
2094 if test "x$with_libesmtp" = "xyes"
2095 then
2096         collect_libesmtp=1
2097 else
2098         collect_libesmtp=0
2099 fi
2100 AC_DEFINE_UNQUOTED(COLLECT_LIBESMTP, [$collect_libesmtp],
2101         [Wether or not to use the esmtp library])
2102 AM_CONDITIONAL(BUILD_WITH_LIBESMTP, test "x$with_libesmtp" = "xyes")
2103 # }}}
2104
2105 # --with-libganglia {{{
2106 AC_ARG_WITH(libganglia, [AS_HELP_STRING([--with-libganglia@<:@=PREFIX@:>@], [Path to libganglia.])],
2107 [
2108  if test -f "$withval" && test -x "$withval"
2109  then
2110          with_libganglia_config="$withval"
2111          with_libganglia="yes"
2112  else if test -f "$withval/bin/ganglia-config" && test -x "$withval/bin/ganglia-config"
2113  then
2114          with_libganglia_config="$withval/bin/ganglia-config"
2115          with_libganglia="yes"
2116  else if test -d "$withval"
2117  then
2118          GANGLIA_CPPFLAGS="-I$withval/include"
2119          GANGLIA_LDFLAGS="-L$withval/lib"
2120          with_libganglia="yes"
2121  else
2122          with_libganglia="$withval"
2123  fi; fi; fi
2124 ],
2125 [
2126  with_libganglia="yes"
2127 ])
2128
2129 if test "x$with_libganglia" = "xyes"
2130 then
2131         if test "x$with_libganglia_config" != "x"
2132         then
2133                 if test "x$GANGLIA_CPPFLAGS" = "x"
2134                 then
2135                         GANGLIA_CPPFLAGS=`"$with_libganglia_config" --cflags 2>/dev/null`
2136                 fi
2137
2138                 if test "x$GANGLIA_LDFLAGS" = "x"
2139                 then
2140                         GANGLIA_LDFLAGS=`"$with_libganglia_config" --ldflags 2>/dev/null`
2141                 fi
2142
2143                 if test "x$GANGLIA_LIBS" = "x"
2144                 then
2145                         GANGLIA_LIBS=`"$with_libganglia_config" --libs 2>/dev/null`
2146                 fi
2147         else
2148                 GANGLIA_LIBS="-lganglia"
2149         fi
2150 fi
2151
2152 SAVE_CPPFLAGS="$CPPFLAGS"
2153 SAVE_LDFLAGS="$LDFLAGS"
2154 CPPFLAGS="$CPPFLAGS $GANGLIA_CPPFLAGS"
2155 LDFLAGS="$LDFLAGS $GANGLIA_LDFLAGS"
2156
2157 if test "x$with_libganglia" = "xyes"
2158 then
2159         AC_CHECK_HEADERS(gm_protocol.h,
2160         [
2161                 AC_DEFINE(HAVE_GM_PROTOCOL_H, 1,
2162                           [Define to 1 if you have the <gm_protocol.h> header file.])
2163         ], [with_libganglia="no (gm_protocol.h not found)"])
2164 fi
2165
2166 if test "x$with_libganglia" = "xyes"
2167 then
2168         AC_CHECK_LIB(ganglia, xdr_Ganglia_value_msg,
2169         [
2170                 AC_DEFINE(HAVE_LIBGANGLIA, 1,
2171                           [Define to 1 if you have the ganglia library (-lganglia).])
2172         ], [with_libganglia="no (symbol xdr_Ganglia_value_msg not found)"])
2173 fi
2174
2175 CPPFLAGS="$SAVE_CPPFLAGS"
2176 LDFLAGS="$SAVE_LDFLAGS"
2177
2178 AC_SUBST(GANGLIA_CPPFLAGS)
2179 AC_SUBST(GANGLIA_LDFLAGS)
2180 AC_SUBST(GANGLIA_LIBS)
2181 AM_CONDITIONAL(BUILD_WITH_LIBGANGLIA, test "x$with_libganglia" = "xyes")
2182 # }}}
2183
2184 # --with-libgcrypt {{{
2185 GCRYPT_CPPFLAGS="$GCRYPT_CPPFLAGS"
2186 GCRYPT_LDFLAGS="$GCRYPT_LDFLAGS"
2187 GCRYPT_LIBS="$GCRYPT_LIBS"
2188 AC_ARG_WITH(libgcrypt, [AS_HELP_STRING([--with-libgcrypt@<:@=PREFIX@:>@], [Path to libgcrypt.])],
2189 [
2190  if test -f "$withval" && test -x "$withval"
2191  then
2192          with_libgcrypt_config="$withval"
2193          with_libgcrypt="yes"
2194  else if test -f "$withval/bin/gcrypt-config" && test -x "$withval/bin/gcrypt-config"
2195  then
2196          with_libgcrypt_config="$withval/bin/gcrypt-config"
2197          with_libgcrypt="yes"
2198  else if test -d "$withval"
2199  then
2200          GCRYPT_CPPFLAGS="$GCRYPT_CPPFLAGS -I$withval/include"
2201          GCRYPT_LDFLAGS="$GCRYPT_LDFLAGS -L$withval/lib"
2202          with_libgcrypt="yes"
2203  else
2204          with_libgcrypt_config="gcrypt-config"
2205          with_libgcrypt="$withval"
2206  fi; fi; fi
2207 ],
2208 [
2209  with_libgcrypt_config="libgcrypt-config"
2210  with_libgcrypt="yes"
2211 ])
2212
2213 if test "x$with_libgcrypt" = "xyes" && test "x$with_libgcrypt_config" != "x"
2214 then
2215         if test "x$GCRYPT_CPPFLAGS" = "x"
2216         then
2217                 GCRYPT_CPPFLAGS=`"$with_libgcrypt_config" --cflags 2>/dev/null`
2218         fi
2219
2220         if test "x$GCRYPT_LIBS" = "x"
2221         then
2222                 GCRYPT_LIBS=`"$with_libgcrypt_config" --libs 2>/dev/null`
2223         fi
2224 fi
2225
2226 SAVE_CPPFLAGS="$CPPFLAGS"
2227 SAVE_LDFLAGS="$LDFLAGS"
2228 SAVE_LIBS="$LIBS"
2229 CPPFLAGS="$CPPFLAGS $GCRYPT_CPPFLAGS"
2230 LDFLAGS="$LDFLAGS $GCRYPT_LDFLAGS"
2231 LIBS="$LIBS $GCRYPT_LIBS"
2232
2233 if test "x$with_libgcrypt" = "xyes"
2234 then
2235         if test "x$GCRYPT_CPPFLAGS" != "x"
2236         then
2237                 AC_MSG_NOTICE([gcrypt CPPFLAGS: $GCRYPT_CPPFLAGS])
2238         fi
2239         AC_CHECK_HEADERS(gcrypt.h,
2240                 [with_libgcrypt="yes"],
2241                 [with_libgcrypt="no (gcrypt.h not found)"])
2242 fi
2243
2244 if test "x$with_libgcrypt" = "xyes"
2245 then
2246         AC_CHECK_LIB(gcrypt, gcry_md_hash_buffer,
2247                 [with_libgcrypt="yes"],
2248                 [with_libgcrypt="no (symbol gcry_md_hash_buffer not found)"])
2249 fi
2250
2251 CPPFLAGS="$SAVE_CPPFLAGS"
2252 LDFLAGS="$SAVE_LDFLAGS"
2253 LIBS="$SAVE_LIBS"
2254
2255 if test "x$with_libgcrypt" = "xyes"
2256 then
2257         AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to 1 if you have the gcrypt library (-lgcrypt).])
2258 fi
2259
2260 AC_SUBST(GCRYPT_CPPFLAGS)
2261 AC_SUBST(GCRYPT_LDFLAGS)
2262 AC_SUBST(GCRYPT_LIBS)
2263 AM_CONDITIONAL(BUILD_WITH_LIBGCRYPT, test "x$with_libgcrypt" = "xyes")
2264 # }}}
2265
2266 # --with-grpc {{{
2267 AC_ARG_WITH(grpc, [AS_HELP_STRING([--without-grpc], [Disable gRPC (default: autodetect).])],
2268 [
2269         with_grpc="$withval"
2270 ],
2271 [
2272         with_grpc="yes"
2273 ])
2274
2275 if test "x$with_grpc" = "xyes"
2276 then
2277         if test "x$have_protoc3" != "xyes"
2278         then
2279                 with_grpc="no (requires protoc 3.0.0+)"
2280         else if test "x$GRPC_CPP_PLUGIN" = "x"
2281         then
2282                 with_grpc"no (requires grpc_cpp_plugin)"
2283         fi; fi
2284 fi
2285
2286 if test "x$with_grpc" = "xyes"
2287 then
2288         AC_MSG_CHECKING([whether $CXX accepts -std=c++11])
2289         if test_cxx_flags -std=c++11; then
2290                 AC_MSG_RESULT([yes])
2291         else
2292                 AC_MSG_RESULT([no])
2293                 with_grpc="no (requires C++11 support)"
2294         fi
2295 fi
2296
2297 if test "x$with_grpc" = "xyes"
2298 then
2299         AC_LANG_PUSH(C++)
2300         SAVE_CPPFLAGS="$CPPFLAGS"
2301         SAVE_CXXFLAGS="$CXXFLAGS"
2302         CPPFLAGS="$CPPFLAGS -std=c++11"
2303         CXXFLAGS="$CXXFLAGS -std=c++11"
2304         AC_CHECK_HEADERS([grpc++/grpc++.h], [],
2305                         [with_grpc="no (grpc++/grpc++.h not found)"])
2306         CPPFLAGS="$SAVE_CPPFLAGS"
2307         CXXFLAGS="$SAVE_CXXFLAGS"
2308         AC_LANG_POP(C++)
2309 fi
2310 with_libgrpc="no"
2311 if test "x$with_grpc" = "xyes"
2312 then
2313         AC_LANG_PUSH(C++)
2314         AC_CHECK_LIB([grpc], [grpc_register_plugin],
2315                         [with_libgrpc="yes"],
2316                         [with_grpc="no (libgrpc not found)"],
2317                         [-lgpr -lprotobuf])
2318         AC_LANG_POP(C++)
2319 fi
2320 # }}}
2321
2322 # --with-libiptc {{{
2323 AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to libiptc.])],
2324 [
2325         if test "x$withval" = "xyes"
2326         then
2327                 with_libiptc="pkgconfig"
2328         else if test "x$withval" = "xno"
2329         then
2330                 with_libiptc="no"
2331         else
2332                 with_libiptc="yes"
2333                 with_libiptc_cflags="-I$withval/include"
2334                 with_libiptc_libs="-L$withval/lib"
2335         fi; fi
2336 ],
2337 [
2338         if test "x$ac_system" = "xLinux"
2339         then
2340                 with_libiptc="pkgconfig"
2341         else
2342                 with_libiptc="no (Linux only)"
2343         fi
2344 ])
2345
2346 if test "x$with_libiptc" = "xpkgconfig" && test "x$PKG_CONFIG" = "x"
2347 then
2348         with_libiptc="no (Don't have pkg-config)"
2349 fi
2350
2351 if test "x$with_libiptc" = "xpkgconfig"
2352 then
2353         $PKG_CONFIG --exists 'libiptc' 2>/dev/null
2354         if test $? -ne 0
2355         then
2356                 with_libiptc="no (pkg-config doesn't know libiptc)"
2357         fi
2358 fi
2359 if test "x$with_libiptc" = "xpkgconfig"
2360 then
2361         with_libiptc_cflags="`$PKG_CONFIG --cflags 'libiptc'`"
2362         if test $? -ne 0
2363         then
2364                 with_libiptc="no ($PKG_CONFIG failed)"
2365         fi
2366         with_libiptc_libs="`$PKG_CONFIG --libs 'libiptc'`"
2367         if test $? -ne 0
2368         then
2369                 with_libiptc="no ($PKG_CONFIG failed)"
2370         fi
2371 fi
2372
2373 SAVE_CPPFLAGS="$CPPFLAGS"
2374 CPPFLAGS="$CPPFLAGS $with_libiptc_cflags"
2375
2376 # check whether the header file for libiptc is available.
2377 if test "x$with_libiptc" = "xpkgconfig"
2378 then
2379         AC_CHECK_HEADERS(libiptc/libiptc.h libiptc/libip6tc.h, ,
2380                         [with_libiptc="no (header file missing)"])
2381 fi
2382 # If the header file is available, check for the required type declaractions.
2383 # They may be missing in old versions of libiptc. In that case, they will be
2384 # declared in the iptables plugin.
2385 if test "x$with_libiptc" = "xpkgconfig"
2386 then
2387         AC_CHECK_TYPES([iptc_handle_t, ip6tc_handle_t], [], [])
2388 fi
2389 # Check for the iptc_init symbol in the library.
2390 # This could be in iptc or ip4tc
2391 if test "x$with_libiptc" = "xpkgconfig"
2392 then
2393         SAVE_LIBS="$LIBS"
2394         AC_SEARCH_LIBS(iptc_init, [iptc ip4tc],
2395                         [with_libiptc="pkgconfig"],
2396                         [with_libiptc="no"],
2397                         [$with_libiptc_libs])
2398         LIBS="$SAVE_LIBS"
2399 fi
2400 if test "x$with_libiptc" = "xpkgconfig"
2401 then
2402         with_libiptc="yes"
2403 fi
2404
2405 CPPFLAGS="$SAVE_CPPFLAGS"
2406
2407 AM_CONDITIONAL(BUILD_WITH_LIBIPTC, test "x$with_libiptc" = "xyes")
2408 if test "x$with_libiptc" = "xyes"
2409 then
2410         BUILD_WITH_LIBIPTC_CPPFLAGS="$with_libiptc_cflags"
2411         BUILD_WITH_LIBIPTC_LDFLAGS="$with_libiptc_libs"
2412         AC_SUBST(BUILD_WITH_LIBIPTC_CPPFLAGS)
2413         AC_SUBST(BUILD_WITH_LIBIPTC_LDFLAGS)
2414 fi
2415 # }}}
2416
2417 # --with-java {{{
2418 with_java_home="$JAVA_HOME"
2419 if test "x$with_java_home" = "x"
2420 then
2421         with_java_home="/usr/lib/jvm"
2422 fi
2423 JAVAC="$JAVAC"
2424 JAR="$JAR"
2425 AC_ARG_WITH(java, [AS_HELP_STRING([--with-java@<:@=PREFIX@:>@], [Path to Java home.])],
2426 [
2427         if test "x$withval" = "xno"
2428         then
2429                 with_java="no"
2430         else if test "x$withval" = "xyes"
2431         then
2432                 with_java="yes"
2433         else
2434                 with_java_home="$withval"
2435                 with_java="yes"
2436         fi; fi
2437 ],
2438 [with_java="yes"])
2439 if test "x$with_java" = "xyes"
2440 then
2441         if test -d "$with_java_home"
2442         then
2443                 AC_MSG_CHECKING([for jni.h])
2444                 TMPVAR=`find -L "$with_java_home" -name jni.h -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1`
2445                 if test "x$TMPVAR" != "x"
2446                 then
2447                         AC_MSG_RESULT([found in $TMPVAR])
2448                         JAVA_CPPFLAGS="$JAVA_CPPFLAGS -I$TMPVAR"
2449                 else
2450                         AC_MSG_RESULT([not found])
2451                 fi
2452
2453                 AC_MSG_CHECKING([for jni_md.h])
2454                 TMPVAR=`find -L "$with_java_home" -name jni_md.h -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1`
2455                 if test "x$TMPVAR" != "x"
2456                 then
2457                         AC_MSG_RESULT([found in $TMPVAR])
2458                         JAVA_CPPFLAGS="$JAVA_CPPFLAGS -I$TMPVAR"
2459                 else
2460                         AC_MSG_RESULT([not found])
2461                 fi
2462
2463                 AC_MSG_CHECKING([for libjvm.so])
2464                 TMPVAR=`find -L "$with_java_home" -type f \( -name libjvm.so -o -name libjvm.dylib \) -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1`
2465                 if test "x$TMPVAR" != "x"
2466                 then
2467                         AC_MSG_RESULT([found in $TMPVAR])
2468                         JAVA_LDFLAGS="$JAVA_LDFLAGS -L$TMPVAR -Wl,-rpath -Wl,$TMPVAR"
2469                 else
2470                         AC_MSG_RESULT([not found])
2471                 fi
2472
2473                 if test "x$JAVAC" = "x"
2474                 then
2475                         AC_MSG_CHECKING([for javac])
2476                         TMPVAR=`find -L "$with_java_home" -name javac -type f 2>/dev/null | head -n 1`
2477                         if test "x$TMPVAR" != "x"
2478                         then
2479                                 JAVAC="$TMPVAR"
2480                                 AC_MSG_RESULT([$JAVAC])
2481                         else
2482                                 AC_MSG_RESULT([not found])
2483                         fi
2484                 fi
2485                 if test "x$JAR" = "x"
2486                 then
2487                         AC_MSG_CHECKING([for jar])
2488                         TMPVAR=`find -L "$with_java_home" -name jar -type f 2>/dev/null | head -n 1`
2489                         if test "x$TMPVAR" != "x"
2490                         then
2491                                 JAR="$TMPVAR"
2492                                 AC_MSG_RESULT([$JAR])
2493                         else
2494                                 AC_MSG_RESULT([not found])
2495                         fi
2496                 fi
2497         else if test "x$with_java_home" != "x"
2498         then
2499                 AC_MSG_WARN([JAVA_HOME: No such directory: $with_java_home])
2500         fi; fi
2501 fi
2502
2503 if test "x$JAVA_CPPFLAGS" != "x"
2504 then
2505         AC_MSG_NOTICE([Building with JAVA_CPPFLAGS set to: $JAVA_CPPFLAGS])
2506 fi
2507 if test "x$JAVA_CFLAGS" != "x"
2508 then
2509         AC_MSG_NOTICE([Building with JAVA_CFLAGS set to: $JAVA_CFLAGS])
2510 fi
2511 if test "x$JAVA_LDFLAGS" != "x"
2512 then
2513         AC_MSG_NOTICE([Building with JAVA_LDFLAGS set to: $JAVA_LDFLAGS])
2514 fi
2515 if test "x$JAVA_LIBS" != "x"
2516 then
2517         AC_MSG_NOTICE([Building with JAVA_LIBS set to: $JAVA_LIBS])
2518 fi
2519 if test "x$JAVAC" = "x"
2520 then
2521         with_javac_path="$PATH"
2522         if test "x$with_java_home" != "x"
2523         then
2524                 with_javac_path="$with_java_home:with_javac_path"
2525                 if test -d "$with_java_home/bin"
2526                 then
2527                         with_javac_path="$with_java_home/bin:with_javac_path"
2528                 fi
2529         fi
2530
2531         AC_PATH_PROG(JAVAC, javac, [], "$with_javac_path")
2532 fi
2533 if test "x$JAVAC" = "x"
2534 then
2535         with_java="no (javac not found)"
2536 fi
2537 if test "x$JAR" = "x"
2538 then
2539         with_jar_path="$PATH"
2540         if test "x$with_java_home" != "x"
2541         then
2542                 with_jar_path="$with_java_home:$with_jar_path"
2543                 if test -d "$with_java_home/bin"
2544                 then
2545                         with_jar_path="$with_java_home/bin:$with_jar_path"
2546                 fi
2547         fi
2548
2549         AC_PATH_PROG(JAR, jar, [], "$with_jar_path")
2550 fi
2551 if test "x$JAR" = "x"
2552 then
2553         with_java="no (jar not found)"
2554 fi
2555
2556 SAVE_CPPFLAGS="$CPPFLAGS"
2557 SAVE_CFLAGS="$CFLAGS"
2558 SAVE_LDFLAGS="$LDFLAGS"
2559 SAVE_LIBS="$LIBS"
2560 CPPFLAGS="$CPPFLAGS $JAVA_CPPFLAGS"
2561 CFLAGS="$CFLAGS $JAVA_CFLAGS"
2562 LDFLAGS="$LDFLAGS $JAVA_LDFLAGS"
2563 LIBS="$LIBS $JAVA_LIBS"
2564
2565 if test "x$with_java" = "xyes"
2566 then
2567         AC_CHECK_HEADERS(jni.h, [], [with_java="no (jni.h not found)"])
2568 fi
2569 if test "x$with_java" = "xyes"
2570 then
2571         AC_CHECK_LIB(jvm, JNI_CreateJavaVM,
2572         [with_java="yes"],
2573         [with_java="no (Symbol 'JNI_CreateJavaVM' not found)"],
2574         [$JAVA_LIBS $PTHREAD_LIBS])
2575 fi
2576 if test "x$with_java" = "xyes"
2577 then
2578         JAVA_LIBS="$JAVA_LIBS -ljvm"
2579         AC_MSG_NOTICE([Building with JAVA_LIBS set to: $JAVA_LIBS])
2580 fi
2581
2582 CPPFLAGS="$SAVE_CPPFLAGS"
2583 CFLAGS="$SAVE_CFLAGS"
2584 LDFLAGS="$SAVE_LDFLAGS"
2585 LIBS="$SAVE_LIBS"
2586
2587 AC_SUBST(JAVA_CPPFLAGS)
2588 AC_SUBST(JAVA_CFLAGS)
2589 AC_SUBST(JAVA_LDFLAGS)
2590 AC_SUBST(JAVA_LIBS)
2591 AM_CONDITIONAL(BUILD_WITH_JAVA, test "x$with_java" = "xyes")
2592 # }}}
2593
2594 # --with-libldap {{{
2595 AC_ARG_WITH(libldap, [AS_HELP_STRING([--with-libldap@<:@=PREFIX@:>@], [Path to libldap.])],
2596 [
2597  if test "x$withval" = "xyes"
2598  then
2599          with_libldap="yes"
2600  else if test "x$withval" = "xno"
2601  then
2602          with_libldap="no"
2603  else
2604          with_libldap="yes"
2605          LIBLDAP_CPPFLAGS="$LIBLDAP_CPPFLAGS -I$withval/include"
2606          LIBLDAP_LDFLAGS="$LIBLDAP_LDFLAGS -L$withval/lib"
2607  fi; fi
2608 ],
2609 [with_libldap="yes"])
2610
2611 SAVE_CPPFLAGS="$CPPFLAGS"
2612 SAVE_LDFLAGS="$LDFLAGS"
2613
2614 CPPFLAGS="$CPPFLAGS $LIBLDAP_CPPFLAGS"
2615 LDFLAGS="$LDFLAGS $LIBLDAP_LDFLAGS"
2616
2617 if test "x$with_libldap" = "xyes"
2618 then
2619         if test "x$LIBLDAP_CPPFLAGS" != "x"
2620         then
2621                 AC_MSG_NOTICE([libldap CPPFLAGS: $LIBLDAP_CPPFLAGS])
2622         fi
2623         AC_CHECK_HEADERS(ldap.h,
2624         [with_libldap="yes"],
2625         [with_libldap="no ('ldap.h' not found)"])
2626 fi
2627 if test "x$with_libldap" = "xyes"
2628 then
2629         if test "x$LIBLDAP_LDFLAGS" != "x"
2630         then
2631                 AC_MSG_NOTICE([libldap LDFLAGS: $LIBLDAP_LDFLAGS])
2632         fi
2633         AC_CHECK_LIB(ldap, ldap_initialize,
2634         [with_libldap="yes"],
2635         [with_libldap="no (symbol 'ldap_initialize' not found)"])
2636
2637 fi
2638
2639 CPPFLAGS="$SAVE_CPPFLAGS"
2640 LDFLAGS="$SAVE_LDFLAGS"
2641
2642 if test "x$with_libldap" = "xyes"
2643 then
2644         BUILD_WITH_LIBLDAP_CPPFLAGS="$LIBLDAP_CPPFLAGS"
2645         BUILD_WITH_LIBLDAP_LDFLAGS="$LIBLDAP_LDFLAGS"
2646         AC_SUBST(BUILD_WITH_LIBLDAP_CPPFLAGS)
2647         AC_SUBST(BUILD_WITH_LIBLDAP_LDFLAGS)
2648 fi
2649 AM_CONDITIONAL(BUILD_WITH_LIBLDAP, test "x$with_libldap" = "xyes")
2650 # }}}
2651
2652 # --with-liblvm2app {{{
2653 with_liblvm2app_cppflags=""
2654 with_liblvm2app_ldflags=""
2655 AC_ARG_WITH(liblvm2app, [AS_HELP_STRING([--with-liblvm2app@<:@=PREFIX@:>@], [Path to liblvm2app.])],
2656 [
2657         if test "x$withval" = "xno"
2658         then
2659                 with_liblvm2app="no"
2660         else
2661                 with_liblvm2app="yes"
2662                 if test "x$withval" != "xyes"
2663                 then
2664                         with_liblvm2app_cppflags="-I$withval/include"
2665                         with_liblvm2app_ldflags="-L$withval/lib"
2666                 fi
2667         fi
2668 ],
2669 [
2670         if test "x$ac_system" = "xLinux"
2671         then
2672                 with_liblvm2app="yes"
2673         else
2674                 with_liblvm2app="no (Linux only library)"
2675         fi
2676 ])
2677 if test "x$with_liblvm2app" = "xyes"
2678 then
2679         SAVE_CPPFLAGS="$CPPFLAGS"
2680         CPPFLAGS="$CPPFLAGS $with_liblvm2app_cppflags"
2681
2682         AC_CHECK_HEADERS(lvm2app.h, [with_liblvm2app="yes"], [with_liblvm2app="no (lvm2app.h not found)"])
2683
2684         CPPFLAGS="$SAVE_CPPFLAGS"
2685 fi
2686
2687 if test "x$with_liblvm2app" = "xyes"
2688 then
2689         SAVE_CPPFLAGS="$CPPFLAGS"
2690         SAVE_LDFLAGS="$LDFLAGS"
2691         CPPFLAGS="$CPPFLAGS $with_liblvm2app_cppflags"
2692         LDFLAGS="$LDFLAGS $with_liblvm2app_ldflags"
2693
2694         AC_CHECK_LIB(lvm2app, lvm_lv_get_property, [with_liblvm2app="yes"], [with_liblvm2app="no (Symbol 'lvm_lv_get_property' not found)"])
2695
2696         CPPFLAGS="$SAVE_CPPFLAGS"
2697         LDFLAGS="$SAVE_LDFLAGS"
2698 fi
2699 if test "x$with_liblvm2app" = "xyes"
2700 then
2701         BUILD_WITH_LIBLVM2APP_CPPFLAGS="$with_liblvm2app_cppflags"
2702         BUILD_WITH_LIBLVM2APP_LDFLAGS="$with_liblvm2app_ldflags"
2703         BUILD_WITH_LIBLVM2APP_LIBS="-llvm2app"
2704         AC_SUBST(BUILD_WITH_LIBLVM2APP_CPPFLAGS)
2705         AC_SUBST(BUILD_WITH_LIBLVM2APP_LDFLAGS)
2706         AC_SUBST(BUILD_WITH_LIBLVM2APP_LIBS)
2707         AC_DEFINE(HAVE_LIBLVM2APP, 1, [Define if liblvm2app is present and usable.])
2708 fi
2709 AM_CONDITIONAL(BUILD_WITH_LIBLVM2APP, test "x$with_liblvm2app" = "xyes")
2710 # }}}
2711
2712 # --with-libmemcached {{{
2713 with_libmemcached_cppflags=""
2714 with_libmemcached_ldflags=""
2715 AC_ARG_WITH(libmemcached, [AS_HELP_STRING([--with-libmemcached@<:@=PREFIX@:>@], [Path to libmemcached.])],
2716 [
2717         if test "x$withval" != "xno" && test "x$withval" != "xyes"
2718         then
2719                 with_libmemcached_cppflags="-I$withval/include"
2720                 with_libmemcached_ldflags="-L$withval/lib"
2721                 with_libmemcached="yes"
2722         else
2723                 with_libmemcached="$withval"
2724         fi
2725 ],
2726 [
2727         with_libmemcached="yes"
2728 ])
2729 if test "x$with_libmemcached" = "xyes"
2730 then
2731         SAVE_CPPFLAGS="$CPPFLAGS"
2732         CPPFLAGS="$CPPFLAGS $with_libmemcached_cppflags"
2733
2734         AC_CHECK_HEADERS(libmemcached/memcached.h, [with_libmemcached="yes"], [with_libmemcached="no (libmemcached/memcached.h not found)"])
2735
2736         CPPFLAGS="$SAVE_CPPFLAGS"
2737 fi
2738 if test "x$with_libmemcached" = "xyes"
2739 then
2740         SAVE_CPPFLAGS="$CPPFLAGS"
2741         SAVE_LDFLAGS="$LDFLAGS"
2742         CPPFLAGS="$CPPFLAGS $with_libmemcached_cppflags"
2743         LDFLAGS="$LDFLAGS $with_libmemcached_ldflags"
2744
2745         AC_CHECK_LIB(memcached, memcached_create, [with_libmemcached="yes"], [with_libmemcached="no (Symbol 'memcached_create' not found)"])
2746
2747         CPPFLAGS="$SAVE_CPPFLAGS"
2748         LDFLAGS="$SAVE_LDFLAGS"
2749 fi
2750 if test "x$with_libmemcached" = "xyes"
2751 then
2752         BUILD_WITH_LIBMEMCACHED_CPPFLAGS="$with_libmemcached_cppflags"
2753         BUILD_WITH_LIBMEMCACHED_LDFLAGS="$with_libmemcached_ldflags"
2754         BUILD_WITH_LIBMEMCACHED_LIBS="-lmemcached"
2755         AC_SUBST(BUILD_WITH_LIBMEMCACHED_CPPFLAGS)
2756         AC_SUBST(BUILD_WITH_LIBMEMCACHED_LDFLAGS)
2757         AC_SUBST(BUILD_WITH_LIBMEMCACHED_LIBS)
2758         AC_DEFINE(HAVE_LIBMEMCACHED, 1, [Define if libmemcached is present and usable.])
2759 fi
2760 AM_CONDITIONAL(BUILD_WITH_LIBMEMCACHED, test "x$with_libmemcached" = "xyes")
2761 # }}}
2762
2763 # --with-libmodbus {{{
2764 with_libmodbus_config=""
2765 with_libmodbus_cflags=""
2766 with_libmodbus_libs=""
2767 AC_ARG_WITH(libmodbus, [AS_HELP_STRING([--with-libmodbus@<:@=PREFIX@:>@], [Path to the modbus library.])],
2768 [
2769         if test "x$withval" = "xno"
2770         then
2771                 with_libmodbus="no"
2772         else if test "x$withval" = "xyes"
2773         then
2774                 with_libmodbus="use_pkgconfig"
2775         else if test -d "$with_libmodbus/lib"
2776         then
2777                 AC_MSG_NOTICE([Not checking for libmodbus: Manually configured])
2778                 with_libmodbus_cflags="-I$withval/include"
2779                 with_libmodbus_libs="-L$withval/lib -lmodbus"
2780                 with_libmodbus="yes"
2781         fi; fi; fi
2782 ],
2783 [with_libmodbus="use_pkgconfig"])
2784
2785 # configure using pkg-config
2786 if test "x$with_libmodbus" = "xuse_pkgconfig"
2787 then
2788         if test "x$PKG_CONFIG" = "x"
2789         then
2790                 with_libmodbus="no (Don't have pkg-config)"
2791         fi
2792 fi
2793 if test "x$with_libmodbus" = "xuse_pkgconfig"
2794 then
2795         AC_MSG_NOTICE([Checking for libmodbus using $PKG_CONFIG])
2796         $PKG_CONFIG --exists 'libmodbus' 2>/dev/null
2797         if test $? -ne 0
2798         then
2799                 with_libmodbus="no (pkg-config doesn't know libmodbus)"
2800         fi
2801 fi
2802 if test "x$with_libmodbus" = "xuse_pkgconfig"
2803 then
2804         with_libmodbus_cflags="`$PKG_CONFIG --cflags 'libmodbus'`"
2805         if test $? -ne 0
2806         then
2807                 with_libmodbus="no ($PKG_CONFIG failed)"
2808         fi
2809         with_libmodbus_libs="`$PKG_CONFIG --libs 'libmodbus'`"
2810         if test $? -ne 0
2811         then
2812                 with_libmodbus="no ($PKG_CONFIG failed)"
2813         fi
2814 fi
2815 if test "x$with_libmodbus" = "xuse_pkgconfig"
2816 then
2817         with_libmodbus="yes"
2818 fi
2819
2820 # with_libmodbus_cflags and with_libmodbus_libs are set up now, let's do
2821 # the actual checks.
2822 if test "x$with_libmodbus" = "xyes"
2823 then
2824         SAVE_CPPFLAGS="$CPPFLAGS"
2825         CPPFLAGS="$CPPFLAGS $with_libmodbus_cflags"
2826
2827         AC_CHECK_HEADERS(modbus.h, [], [with_libmodbus="no (modbus.h not found)"])
2828
2829         CPPFLAGS="$SAVE_CPPFLAGS"
2830 fi
2831 if test "x$with_libmodbus" = "xyes"
2832 then
2833         SAVE_CPPFLAGS="$CPPFLAGS"
2834         SAVE_LDFLAGS="$LDFLAGS"
2835
2836         CPPFLAGS="$CPPFLAGS $with_libmodbus_cflags"
2837         LDFLAGS="$LDFLAGS $with_libmodbus_libs"
2838
2839         AC_CHECK_LIB(modbus, modbus_connect,
2840                      [with_libmodbus="yes"],
2841                      [with_libmodbus="no (symbol modbus_connect not found)"])
2842
2843         CPPFLAGS="$SAVE_CPPFLAGS"
2844         LDFLAGS="$SAVE_LDFLAGS"
2845 fi
2846 if test "x$with_libmodbus" = "xyes"
2847 then
2848         BUILD_WITH_LIBMODBUS_CFLAGS="$with_libmodbus_cflags"
2849         BUILD_WITH_LIBMODBUS_LIBS="$with_libmodbus_libs"
2850         AC_SUBST(BUILD_WITH_LIBMODBUS_CFLAGS)
2851         AC_SUBST(BUILD_WITH_LIBMODBUS_LIBS)
2852 fi
2853 # }}}
2854
2855 # --with-libmongoc {{{
2856 AC_ARG_WITH(libmongoc, [AS_HELP_STRING([--with-libmongoc@<:@=PREFIX@:>@], [Path to libmongoc.])],
2857 [
2858  if test "x$withval" = "xyes"
2859  then
2860          with_libmongoc="yes"
2861  else if test "x$withval" = "xno"
2862  then
2863          with_libmongoc="no"
2864  else
2865          with_libmongoc="yes"
2866          LIBMONGOC_CPPFLAGS="$LIBMONGOC_CPPFLAGS -I$withval/include"
2867          LIBMONGOC_LDFLAGS="$LIBMONGOC_LDFLAGS -L$withval/lib"
2868  fi; fi
2869 ],
2870 [with_libmongoc="yes"])
2871
2872 SAVE_CPPFLAGS="$CPPFLAGS"
2873 SAVE_LDFLAGS="$LDFLAGS"
2874
2875 CPPFLAGS="$CPPFLAGS $LIBMONGOC_CPPFLAGS"
2876 LDFLAGS="$LDFLAGS $LIBMONGOC_LDFLAGS"
2877
2878 if test "x$with_libmongoc" = "xyes"
2879 then
2880         if test "x$LIBMONGOC_CPPFLAGS" != "x"
2881         then
2882                 AC_MSG_NOTICE([libmongoc CPPFLAGS: $LIBMONGOC_CPPFLAGS])
2883         fi
2884         AC_CHECK_HEADERS(mongo.h,
2885         [with_libmongoc="yes"],
2886         [with_libmongoc="no ('mongo.h' not found)"],
2887 [#if HAVE_STDINT_H
2888 # define MONGO_HAVE_STDINT 1
2889 #else
2890 # define MONGO_USE_LONG_LONG_INT 1
2891 #endif
2892 ])
2893 fi
2894 if test "x$with_libmongoc" = "xyes"
2895 then
2896         if test "x$LIBMONGOC_LDFLAGS" != "x"
2897         then
2898                 AC_MSG_NOTICE([libmongoc LDFLAGS: $LIBMONGOC_LDFLAGS])
2899         fi
2900         AC_CHECK_LIB(mongoc, mongo_run_command,
2901         [with_libmongoc="yes"],
2902         [with_libmongoc="no (symbol 'mongo_run_command' not found)"])
2903 fi
2904
2905 CPPFLAGS="$SAVE_CPPFLAGS"
2906 LDFLAGS="$SAVE_LDFLAGS"
2907
2908 if test "x$with_libmongoc" = "xyes"
2909 then
2910         BUILD_WITH_LIBMONGOC_CPPFLAGS="$LIBMONGOC_CPPFLAGS"
2911         BUILD_WITH_LIBMONGOC_LDFLAGS="$LIBMONGOC_LDFLAGS"
2912         AC_SUBST(BUILD_WITH_LIBMONGOC_CPPFLAGS)
2913         AC_SUBST(BUILD_WITH_LIBMONGOC_LDFLAGS)
2914 fi
2915 AM_CONDITIONAL(BUILD_WITH_LIBMONGOC, test "x$with_libmongoc" = "xyes")
2916 # }}}
2917
2918 # --with-libmosquitto {{{
2919 with_libmosquitto_cppflags=""
2920 with_libmosquitto_ldflags=""
2921 AC_ARG_WITH(libmosquitto, [AS_HELP_STRING([--with-libmosquitto@<:@=PREFIX@:>@], [Path to libmosquitto.])],
2922 [
2923         if test "x$withval" != "xno" && test "x$withval" != "xyes"
2924         then
2925                 with_libmosquitto_cppflags="-I$withval/include"
2926                 with_libmosquitto_ldflags="-L$withval/lib"
2927                 with_libmosquitto="yes"
2928         else
2929                 with_libmosquitto="$withval"
2930         fi
2931 ],
2932 [
2933         with_libmosquitto="yes"
2934 ])
2935 if test "x$with_libmosquitto" = "xyes"
2936 then
2937         SAVE_CPPFLAGS="$CPPFLAGS"
2938         CPPFLAGS="$CPPFLAGS $with_libmosquitto_cppflags"
2939
2940         AC_CHECK_HEADERS(mosquitto.h, [with_libmosquitto="yes"], [with_libmosquitto="no (mosquitto.h not found)"])
2941
2942         CPPFLAGS="$SAVE_CPPFLAGS"
2943 fi
2944 if test "x$with_libmosquitto" = "xyes"
2945 then
2946         SAVE_LDFLAGS="$LDFLAGS"
2947         SAVE_CPPFLAGS="$CPPFLAGS"
2948         LDFLAGS="$LDFLAGS $with_libmosquitto_ldflags"
2949         CPPFLAGS="$CPPFLAGS $with_libmosquitto_cppflags"
2950
2951         AC_CHECK_LIB(mosquitto, mosquitto_connect, [with_libmosquitto="yes"], [with_libmosquitto="no (libmosquitto not found)"])
2952
2953         LDFLAGS="$SAVE_LDFLAGS"
2954         CPPFLAGS="$SAVE_CPPFLAGS"
2955 fi
2956 if test "x$with_libmosquitto" = "xyes"
2957 then
2958         BUILD_WITH_LIBMOSQUITTO_CPPFLAGS="$with_libmosquitto_cppflags"
2959         BUILD_WITH_LIBMOSQUITTO_LDFLAGS="$with_libmosquitto_ldflags"
2960         BUILD_WITH_LIBMOSQUITTO_LIBS="-lmosquitto"
2961         AC_SUBST(BUILD_WITH_LIBMOSQUITTO_CPPFLAGS)
2962         AC_SUBST(BUILD_WITH_LIBMOSQUITTO_LDFLAGS)
2963         AC_SUBST(BUILD_WITH_LIBMOSQUITTO_LIBS)
2964 fi
2965 # }}}
2966
2967 # --with-libmysql {{{
2968 with_mysql_config="mysql_config"
2969 with_mysql_cflags=""
2970 with_mysql_libs=""
2971 AC_ARG_WITH(libmysql, [AS_HELP_STRING([--with-libmysql@<:@=PREFIX@:>@], [Path to libmysql.])],
2972 [
2973         if test "x$withval" = "xno"
2974         then
2975                 with_libmysql="no"
2976         else if test "x$withval" = "xyes"
2977         then
2978                 with_libmysql="yes"
2979         else
2980                 if test -f "$withval" && test -x "$withval";
2981                 then
2982                         with_mysql_config="$withval"
2983                 else if test -x "$withval/bin/mysql_config"
2984                 then
2985                         with_mysql_config="$withval/bin/mysql_config"
2986                 fi; fi
2987                 with_libmysql="yes"
2988         fi; fi
2989 ],
2990 [
2991         with_libmysql="yes"
2992 ])
2993 if test "x$with_libmysql" = "xyes"
2994 then
2995         with_mysql_cflags=`$with_mysql_config --include 2>/dev/null`
2996         mysql_config_status=$?
2997
2998         if test $mysql_config_status -ne 0
2999         then
3000                 with_libmysql="no ($with_mysql_config failed)"
3001         else
3002                 SAVE_CPPFLAGS="$CPPFLAGS"
3003                 CPPFLAGS="$CPPFLAGS $with_mysql_cflags"
3004
3005                 have_mysql_h="no"
3006                 have_mysql_mysql_h="no"
3007                 AC_CHECK_HEADERS(mysql.h, [have_mysql_h="yes"])
3008
3009                 if test "x$have_mysql_h" = "xno"
3010                 then
3011                         AC_CHECK_HEADERS(mysql/mysql.h, [have_mysql_mysql_h="yes"])
3012                 fi
3013
3014                 if test "x$have_mysql_h$have_mysql_mysql_h" = "xnono"
3015                 then
3016                         with_libmysql="no (mysql.h not found)"
3017                 fi
3018
3019                 CPPFLAGS="$SAVE_CPPFLAGS"
3020         fi
3021 fi
3022 if test "x$with_libmysql" = "xyes"
3023 then
3024         with_mysql_libs=`$with_mysql_config --libs_r 2>/dev/null`
3025         mysql_config_status=$?
3026
3027         if test $mysql_config_status -ne 0
3028         then
3029                 with_libmysql="no ($with_mysql_config failed)"
3030         else
3031                 SAVE_CPPFLAGS="$CPPFLAGS"
3032                 CPPFLAGS="$CPPFLAGS $with_mysql_cflags"
3033                 SAVE_LIBS="$LIBS"
3034                 LIBS="$with_mysql_libs"
3035                 AC_SEARCH_LIBS([mysql_get_server_version],
3036                  [],
3037                  [with_libmysql="yes"],
3038                  [with_libmysql="no (symbol 'mysql_get_server_version' not found)"],
3039                  [])
3040                 CPPFLAGS="$SAVE_CPPFLAGS"
3041                 LIBS="$SAVE_LIBS"
3042         fi
3043 fi
3044 if test "x$with_libmysql" = "xyes"
3045 then
3046         BUILD_WITH_LIBMYSQL_CFLAGS="$with_mysql_cflags"
3047         BUILD_WITH_LIBMYSQL_LIBS="$with_mysql_libs"
3048         AC_SUBST(BUILD_WITH_LIBMYSQL_CFLAGS)
3049         AC_SUBST(BUILD_WITH_LIBMYSQL_LIBS)
3050 fi
3051 AM_CONDITIONAL(BUILD_WITH_LIBMYSQL, test "x$with_libmysql" = "xyes")
3052 # }}}
3053
3054 # --with-libmnl {{{
3055 with_libmnl_cflags=""
3056 with_libmnl_libs=""
3057 AC_ARG_WITH(libmnl, [AS_HELP_STRING([--with-libmnl@<:@=PREFIX@:>@], [Path to libmnl.])],
3058 [
3059  echo "libmnl: withval = $withval"
3060  if test "x$withval" = "xyes"
3061  then
3062          with_libmnl="yes"
3063  else if test "x$withval" = "xno"
3064  then
3065          with_libmnl="no"
3066  else
3067          if test -d "$withval/include"
3068          then
3069                  with_libmnl_cflags="-I$withval/include"
3070                  with_libmnl_libs="-L$withval/lib -lmnl"
3071                  with_libmnl="yes"
3072          else
3073                  AC_MSG_ERROR("no such directory: $withval/include")
3074          fi
3075  fi; fi
3076 ],
3077 [
3078  if test "x$ac_system" = "xLinux"
3079  then
3080          with_libmnl="yes"
3081  else
3082          with_libmnl="no (Linux only library)"
3083  fi
3084 ])
3085 if test "x$PKG_CONFIG" = "x"
3086 then
3087         with_libmnl="no (Don't have pkg-config)"
3088 fi
3089 if test "x$with_libmnl" = "xyes"
3090 then
3091         if $PKG_CONFIG --exists libmnl 2>/dev/null; then
3092           with_libmnl_cflags="$with_libmnl_ldflags `$PKG_CONFIG --cflags libmnl`"
3093           with_libmnl_libs="$with_libmnl_libs `$PKG_CONFIG --libs libmnl`"
3094         fi
3095
3096         AC_CHECK_HEADERS(libmnl.h libmnl/libmnl.h,
3097         [
3098          with_libmnl="yes"
3099          break
3100         ], [],
3101 [#include <stdio.h>
3102 #include <sys/types.h>
3103 #include <asm/types.h>
3104 #include <sys/socket.h>
3105 #include <linux/netlink.h>
3106 #include <linux/rtnetlink.h>])
3107         AC_CHECK_HEADERS(linux/gen_stats.h linux/pkt_sched.h, [], [],
3108 [#include <stdio.h>
3109 #include <sys/types.h>
3110 #include <asm/types.h>
3111 #include <sys/socket.h>])
3112
3113         AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
3114 [[
3115 #include <stdio.h>
3116 #include <sys/types.h>
3117 #include <asm/types.h>
3118 #include <sys/socket.h>
3119 #include <linux/netlink.h>
3120 #include <linux/rtnetlink.h>
3121 ]],
3122 [[
3123 int retval = TCA_STATS2;
3124 return (retval);
3125 ]]
3126         )],
3127         [AC_DEFINE([HAVE_TCA_STATS2], [1], [True if the enum-member TCA_STATS2 exists])])
3128
3129         AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
3130 [[
3131 #include <stdio.h>
3132 #include <sys/types.h>
3133 #include <asm/types.h>
3134 #include <sys/socket.h>
3135 #include <linux/netlink.h>
3136 #include <linux/rtnetlink.h>
3137 ]],
3138 [[
3139 int retval = TCA_STATS;
3140 return (retval);
3141 ]]
3142         )],
3143         [AC_DEFINE([HAVE_TCA_STATS], 1, [True if the enum-member TCA_STATS exists])])
3144 fi
3145 if test "x$with_libmnl" = "xyes"
3146 then
3147         AC_CHECK_MEMBERS([struct rtnl_link_stats64.tx_window_errors],
3148         [AC_DEFINE(HAVE_RTNL_LINK_STATS64, 1, [Define if struct rtnl_link_stats64 exists and is usable.])],
3149         [],
3150         [
3151         #include <linux/if_link.h>
3152         ])
3153 fi
3154 if test "x$with_libmnl" = "xyes"
3155 then
3156         AC_CHECK_LIB(mnl, mnl_nlmsg_get_payload,
3157                      [with_libmnl="yes"],
3158                      [with_libmnl="no (symbol 'mnl_nlmsg_get_payload' not found)"],
3159                      [$with_libmnl_libs])
3160 fi
3161 if test "x$with_libmnl" = "xyes"
3162 then
3163         AC_DEFINE(HAVE_LIBMNL, 1, [Define if libmnl is present and usable.])
3164         BUILD_WITH_LIBMNL_CFLAGS="$with_libmnl_cflags"
3165         BUILD_WITH_LIBMNL_LIBS="$with_libmnl_libs"
3166         AC_SUBST(BUILD_WITH_LIBMNL_CFLAGS)
3167         AC_SUBST(BUILD_WITH_LIBMNL_LIBS)
3168 fi
3169 AM_CONDITIONAL(BUILD_WITH_LIBMNL, test "x$with_libmnl" = "xyes")
3170 # }}}
3171
3172 # --with-libnetapp {{{
3173 AC_ARG_VAR([LIBNETAPP_CPPFLAGS], [C preprocessor flags required to build with libnetapp])
3174 AC_ARG_VAR([LIBNETAPP_LDFLAGS],  [Linker flags required to build with libnetapp])
3175 AC_ARG_VAR([LIBNETAPP_LIBS],     [Other libraries required to link against libnetapp])
3176 LIBNETAPP_CPPFLAGS="$LIBNETAPP_CPPFLAGS"
3177 LIBNETAPP_LDFLAGS="$LIBNETAPP_LDFLAGS"
3178 LIBNETAPP_LIBS="$LIBNETAPP_LIBS"
3179 AC_ARG_WITH(libnetapp, [AS_HELP_STRING([--with-libnetapp@<:@=PREFIX@:>@], [Path to libnetapp.])],
3180 [
3181  if test -d "$withval"
3182  then
3183          LIBNETAPP_CPPFLAGS="$LIBNETAPP_CPPFLAGS -I$withval/include"
3184          LIBNETAPP_LDFLAGS="$LIBNETAPP_LDFLAGS -L$withval/lib"
3185          with_libnetapp="yes"
3186  else
3187          with_libnetapp="$withval"
3188  fi
3189 ],
3190 [
3191  with_libnetapp="yes"
3192 ])
3193
3194 SAVE_CPPFLAGS="$CPPFLAGS"
3195 SAVE_LDFLAGS="$LDFLAGS"
3196 CPPFLAGS="$CPPFLAGS $LIBNETAPP_CPPFLAGS"
3197 LDFLAGS="$LDFLAGS $LIBNETAPP_LDFLAGS"
3198
3199 if test "x$with_libnetapp" = "xyes"
3200 then
3201         if test "x$LIBNETAPP_CPPFLAGS" != "x"
3202         then
3203                 AC_MSG_NOTICE([netapp CPPFLAGS: $LIBNETAPP_CPPFLAGS])
3204         fi
3205         AC_CHECK_HEADERS(netapp_api.h,
3206                 [with_libnetapp="yes"],
3207                 [with_libnetapp="no (netapp_api.h not found)"])
3208 fi
3209
3210 if test "x$with_libnetapp" = "xyes"
3211 then
3212         if test "x$LIBNETAPP_LDFLAGS" != "x"
3213         then
3214                 AC_MSG_NOTICE([netapp LDFLAGS: $LIBNETAPP_LDFLAGS])
3215         fi
3216
3217         if test "x$LIBNETAPP_LIBS" = "x"
3218         then
3219                 LIBNETAPP_LIBS="$PTHREAD_LIBS -lxml -ladt -lssl -lm -lcrypto -lz"
3220         fi
3221         AC_MSG_NOTICE([netapp LIBS: $LIBNETAPP_LIBS])
3222
3223         AC_CHECK_LIB(netapp, na_server_invoke_elem,
3224                 [with_libnetapp="yes"],
3225                 [with_libnetapp="no (symbol na_server_invoke_elem not found)"],
3226                 [$LIBNETAPP_LIBS])
3227         LIBNETAPP_LIBS="-lnetapp $LIBNETAPP_LIBS"
3228 fi
3229
3230 CPPFLAGS="$SAVE_CPPFLAGS"
3231 LDFLAGS="$SAVE_LDFLAGS"
3232
3233 if test "x$with_libnetapp" = "xyes"
3234 then
3235         AC_DEFINE(HAVE_LIBNETAPP, 1, [Define to 1 if you have the netapp library (-lnetapp).])
3236 fi
3237
3238 AC_SUBST(LIBNETAPP_CPPFLAGS)
3239 AC_SUBST(LIBNETAPP_LDFLAGS)
3240 AC_SUBST(LIBNETAPP_LIBS)
3241 AM_CONDITIONAL(BUILD_WITH_LIBNETAPP, test "x$with_libnetapp" = "xyes")
3242 # }}}
3243
3244 # --with-libnetsnmp {{{
3245 with_snmp_config="net-snmp-config"
3246 with_snmp_cflags=""
3247 with_snmp_libs=""
3248 AC_ARG_WITH(libnetsnmp, [AS_HELP_STRING([--with-libnetsnmp@<:@=PREFIX@:>@], [Path to the Net-SNMPD library.])],
3249 [
3250         if test "x$withval" = "xno"
3251         then
3252                 with_libnetsnmp="no"
3253         else if test "x$withval" = "xyes"
3254         then
3255                 with_libnetsnmp="yes"
3256         else
3257                 if test -x "$withval"
3258                 then
3259                         with_snmp_config="$withval"
3260                         with_libnetsnmp="yes"
3261                 else
3262                         with_snmp_config="$withval/bin/net-snmp-config"
3263                         with_libnetsnmp="yes"
3264                 fi
3265         fi; fi
3266 ],
3267 [with_libnetsnmp="yes"])
3268 if test "x$with_libnetsnmp" = "xyes"
3269 then
3270         with_snmp_cflags=`$with_snmp_config --cflags 2>/dev/null`
3271         snmp_config_status=$?
3272
3273         if test $snmp_config_status -ne 0
3274         then
3275                 with_libnetsnmp="no ($with_snmp_config failed)"
3276         else
3277                 SAVE_CPPFLAGS="$CPPFLAGS"
3278                 CPPFLAGS="$CPPFLAGS $with_snmp_cflags"
3279
3280                 AC_CHECK_HEADERS(net-snmp/net-snmp-config.h, [], [with_libnetsnmp="no (net-snmp/net-snmp-config.h not found)"])
3281
3282                 CPPFLAGS="$SAVE_CPPFLAGS"
3283         fi
3284 fi
3285 if test "x$with_libnetsnmp" = "xyes"
3286 then
3287         with_snmp_libs=`$with_snmp_config --libs 2>/dev/null`
3288         snmp_config_status=$?
3289
3290         if test $snmp_config_status -ne 0
3291         then
3292                 with_libnetsnmp="no ($with_snmp_config failed)"
3293         else
3294                 AC_CHECK_LIB(netsnmp, init_snmp,
3295                 [with_libnetsnmp="yes"],
3296                 [with_libnetsnmp="no (libnetsnmp not found)"],
3297                 [$with_snmp_libs])
3298         fi
3299 fi
3300 if test "x$with_libnetsnmp" = "xyes"
3301 then
3302         BUILD_WITH_LIBSNMP_CFLAGS="$with_snmp_cflags"
3303         BUILD_WITH_LIBSNMP_LIBS="$with_snmp_libs"
3304         AC_SUBST(BUILD_WITH_LIBSNMP_CFLAGS)
3305         AC_SUBST(BUILD_WITH_LIBSNMP_LIBS)
3306 fi
3307 AM_CONDITIONAL(BUILD_WITH_LIBNETSNMP, test "x$with_libnetsnmp" = "xyes")
3308 # }}}
3309
3310 # --with-liboconfig {{{
3311 with_own_liboconfig="no"
3312 liboconfig_LDFLAGS="$LDFLAGS"
3313 liboconfig_CPPFLAGS="$CPPFLAGS"
3314 AC_ARG_WITH(liboconfig, [AS_HELP_STRING([--with-liboconfig@<:@=PREFIX@:>@], [Path to liboconfig.])],
3315 [
3316         if test "x$withval" != "xno" && test "x$withval" != "xyes"
3317         then
3318                 if test -d "$withval/lib"
3319                 then
3320                         liboconfig_LDFLAGS="$LDFLAGS -L$withval/lib"
3321                 fi
3322                 if test -d "$withval/include"
3323                 then
3324                         liboconfig_CPPFLAGS="$CPPFLAGS -I$withval/include"
3325                 fi
3326         fi
3327         if test "x$withval" = "xno"
3328         then
3329                 AC_MSG_ERROR("liboconfig is required")
3330         fi
3331 ],
3332 [
3333         with_liboconfig="yes"
3334 ])
3335
3336 save_LDFLAGS="$LDFLAGS"
3337 save_CPPFLAGS="$CPPFLAGS"
3338 LDFLAGS="$liboconfig_LDFLAGS"
3339 CPPFLAGS="$liboconfig_CPPFLAGS"
3340 AC_CHECK_LIB(oconfig, oconfig_parse_fh,
3341 [
3342         with_liboconfig="yes"
3343         with_own_liboconfig="no"
3344 ],
3345 [
3346         with_liboconfig="yes"
3347         with_own_liboconfig="yes"
3348         LDFLAGS="$save_LDFLAGS"
3349         CPPFLAGS="$save_CPPFLAGS"
3350 ])
3351
3352 AM_CONDITIONAL(BUILD_WITH_OWN_LIBOCONFIG, test "x$with_own_liboconfig" = "xyes")
3353 if test "x$with_own_liboconfig" = "xyes"
3354 then
3355         with_liboconfig="yes (shipped version)"
3356 fi
3357 # }}}
3358
3359 # --with-liboping {{{
3360 AC_ARG_WITH(liboping, [AS_HELP_STRING([--with-liboping@<:@=PREFIX@:>@], [Path to liboping.])],
3361 [
3362  if test "x$withval" = "xyes"
3363  then
3364          with_liboping="yes"
3365  else if test "x$withval" = "xno"
3366  then
3367          with_liboping="no"
3368  else
3369          with_liboping="yes"
3370          LIBOPING_CPPFLAGS="$LIBOPING_CPPFLAGS -I$withval/include"
3371          LIBOPING_LDFLAGS="$LIBOPING_LDFLAGS -L$withval/lib"
3372  fi; fi
3373 ],
3374 [with_liboping="yes"])
3375
3376 SAVE_CPPFLAGS="$CPPFLAGS"
3377 SAVE_LDFLAGS="$LDFLAGS"
3378
3379 CPPFLAGS="$CPPFLAGS $LIBOPING_CPPFLAGS"
3380 LDFLAGS="$LDFLAGS $LIBOPING_LDFLAGS"
3381
3382 if test "x$with_liboping" = "xyes"
3383 then
3384         if test "x$LIBOPING_CPPFLAGS" != "x"
3385         then
3386                 AC_MSG_NOTICE([liboping CPPFLAGS: $LIBOPING_CPPFLAGS])
3387         fi
3388         AC_CHECK_HEADERS(oping.h,
3389         [with_liboping="yes"],
3390         [with_liboping="no (oping.h not found)"])
3391 fi
3392 if test "x$with_liboping" = "xyes"
3393 then
3394         if test "x$LIBOPING_LDFLAGS" != "x"
3395         then
3396                 AC_MSG_NOTICE([liboping LDFLAGS: $LIBOPING_LDFLAGS])
3397         fi
3398         AC_CHECK_LIB(oping, ping_construct,
3399         [with_liboping="yes"],
3400         [with_liboping="no (symbol 'ping_construct' not found)"])
3401 fi
3402
3403 CPPFLAGS="$SAVE_CPPFLAGS"
3404 LDFLAGS="$SAVE_LDFLAGS"
3405
3406 if test "x$with_liboping" = "xyes"
3407 then
3408         BUILD_WITH_LIBOPING_CPPFLAGS="$LIBOPING_CPPFLAGS"
3409         BUILD_WITH_LIBOPING_LDFLAGS="$LIBOPING_LDFLAGS"
3410         AC_SUBST(BUILD_WITH_LIBOPING_CPPFLAGS)
3411         AC_SUBST(BUILD_WITH_LIBOPING_LDFLAGS)
3412 fi
3413 AM_CONDITIONAL(BUILD_WITH_LIBOPING, test "x$with_liboping" = "xyes")
3414 # }}}
3415
3416 # --with-oracle {{{
3417 with_oracle_cppflags=""
3418 with_oracle_libs=""
3419 AC_ARG_WITH(oracle, [AS_HELP_STRING([--with-oracle@<:@=ORACLE_HOME@:>@], [Path to Oracle.])],
3420 [
3421         if test "x$withval" = "xyes"
3422         then
3423                 if test "x$ORACLE_HOME" = "x"
3424                 then
3425                         AC_MSG_WARN([Use of the Oracle library has been forced, but the environment variable ORACLE_HOME is not set.])
3426                 fi
3427                 with_oracle="yes"
3428         else if test "x$withval" = "xno"
3429         then
3430                 with_oracle="no"
3431         else
3432                 with_oracle="yes"
3433                 ORACLE_HOME="$withval"
3434         fi; fi
3435 ],
3436 [
3437         if test "x$ORACLE_HOME" = "x"
3438         then
3439                 with_oracle="no (ORACLE_HOME is not set)"
3440         else
3441                 with_oracle="yes"
3442         fi
3443 ])
3444 if test "x$ORACLE_HOME" != "x"
3445 then
3446         with_oracle_cppflags="-I$ORACLE_HOME/rdbms/public"
3447
3448         if test -e "$ORACLE_HOME/lib/ldflags"
3449         then
3450                 with_oracle_libs=`cat "$ORACLE_HOME/lib/ldflags"`
3451         fi
3452         #with_oracle_libs="-L$ORACLE_HOME/lib $with_oracle_libs -lclntsh"
3453         with_oracle_libs="-L$ORACLE_HOME/lib -lclntsh"
3454 fi
3455 if test "x$with_oracle" = "xyes"
3456 then
3457         SAVE_CPPFLAGS="$CPPFLAGS"
3458         CPPFLAGS="$CPPFLAGS $with_oracle_cppflags"
3459
3460         AC_CHECK_HEADERS(oci.h, [with_oracle="yes"], [with_oracle="no (oci.h not found)"])
3461
3462         CPPFLAGS="$SAVE_CPPFLAGS"
3463 fi
3464 if test "x$with_oracle" = "xyes"
3465 then
3466         SAVE_CPPFLAGS="$CPPFLAGS"
3467         SAVE_LIBS="$LIBS"
3468         CPPFLAGS="$CPPFLAGS $with_oracle_cppflags"
3469         LIBS="$LIBS $with_oracle_libs"
3470
3471         AC_CHECK_FUNC(OCIEnvCreate, [with_oracle="yes"], [with_oracle="no (Symbol 'OCIEnvCreate' not found)"])
3472
3473         CPPFLAGS="$SAVE_CPPFLAGS"
3474         LIBS="$SAVE_LIBS"
3475 fi
3476 if test "x$with_oracle" = "xyes"
3477 then
3478         BUILD_WITH_ORACLE_CPPFLAGS="$with_oracle_cppflags"
3479         BUILD_WITH_ORACLE_LIBS="$with_oracle_libs"
3480         AC_SUBST(BUILD_WITH_ORACLE_CPPFLAGS)
3481         AC_SUBST(BUILD_WITH_ORACLE_LIBS)
3482 fi
3483 # }}}
3484
3485 # --with-libowcapi {{{
3486 with_libowcapi_cppflags=""
3487 with_libowcapi_ldflags=""
3488 AC_ARG_WITH(libowcapi, [AS_HELP_STRING([--with-libowcapi@<:@=PREFIX@:>@], [Path to libowcapi.])],
3489 [
3490         if test "x$withval" != "xno" && test "x$withval" != "xyes"
3491         then
3492                 with_libowcapi_cppflags="-I$withval/include"
3493                 with_libowcapi_ldflags="-L$withval/lib"
3494                 with_libowcapi="yes"
3495         else
3496                 with_libowcapi="$withval"
3497         fi
3498 ],
3499 [
3500         with_libowcapi="yes"
3501 ])
3502 if test "x$with_libowcapi" = "xyes"
3503 then
3504         SAVE_CPPFLAGS="$CPPFLAGS"
3505         CPPFLAGS="$CPPFLAGS $with_libowcapi_cppflags"
3506
3507         AC_CHECK_HEADERS(owcapi.h, [with_libowcapi="yes"], [with_libowcapi="no (owcapi.h not found)"])
3508
3509         CPPFLAGS="$SAVE_CPPFLAGS"
3510 fi
3511 if test "x$with_libowcapi" = "xyes"
3512 then
3513         SAVE_LDFLAGS="$LDFLAGS"
3514         SAVE_CPPFLAGS="$CPPFLAGS"
3515         LDFLAGS="$LDFLAGS $with_libowcapi_ldflags"
3516         CPPFLAGS="$with_libowcapi_cppflags"
3517
3518         AC_CHECK_LIB(owcapi, OW_get, [with_libowcapi="yes"], [with_libowcapi="no (libowcapi not found)"])
3519
3520         LDFLAGS="$SAVE_LDFLAGS"
3521         CPPFLAGS="$SAVE_CPPFLAGS"
3522 fi
3523 if test "x$with_libowcapi" = "xyes"
3524 then
3525         BUILD_WITH_LIBOWCAPI_CPPFLAGS="$with_libowcapi_cppflags"
3526         BUILD_WITH_LIBOWCAPI_LDFLAGS="$with_libowcapi_ldflags"
3527         BUILD_WITH_LIBOWCAPI_LIBS="-lowcapi"
3528         AC_SUBST(BUILD_WITH_LIBOWCAPI_CPPFLAGS)
3529         AC_SUBST(BUILD_WITH_LIBOWCAPI_LDFLAGS)
3530         AC_SUBST(BUILD_WITH_LIBOWCAPI_LIBS)
3531 fi
3532 # }}}
3533
3534 # --with-libpcap {{{
3535 AC_ARG_WITH(libpcap, [AS_HELP_STRING([--with-libpcap@<:@=PREFIX@:>@], [Path to libpcap.])],
3536 [
3537         if test "x$withval" != "xno" && test "x$withval" != "xyes"
3538         then
3539                 LDFLAGS="$LDFLAGS -L$withval/lib"
3540                 CPPFLAGS="$CPPFLAGS -I$withval/include"
3541                 with_libpcap="yes"
3542         else
3543                 with_libpcap="$withval"
3544         fi
3545 ],
3546 [
3547         with_libpcap="yes"
3548 ])
3549 if test "x$with_libpcap" = "xyes"
3550 then
3551         AC_CHECK_LIB(pcap, pcap_open_live,
3552         [
3553                 AC_DEFINE(HAVE_LIBPCAP, 1, [Define to 1 if you have the pcap library (-lpcap).])
3554         ], [with_libpcap="no (libpcap not found)"])
3555 fi
3556 if test "x$with_libpcap" = "xyes"
3557 then
3558         AC_CHECK_HEADERS(pcap.h,,
3559                          [with_libpcap="no (pcap.h not found)"])
3560 fi
3561 if test "x$with_libpcap" = "xyes"
3562 then
3563         AC_CACHE_CHECK([whether libpcap has PCAP_ERROR_IFACE_NOT_UP],
3564                        [c_cv_libpcap_have_pcap_error_iface_not_up],
3565                        AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
3566 [[[
3567 #include <pcap.h>
3568 ]]],
3569 [[[
3570   int val = PCAP_ERROR_IFACE_NOT_UP;
3571   return(val);
3572 ]]]
3573                        )],
3574                        [c_cv_libpcap_have_pcap_error_iface_not_up="yes"],
3575                        [c_cv_libpcap_have_pcap_error_iface_not_up="no"]))
3576 fi
3577 if test "x$c_cv_libpcap_have_pcap_error_iface_not_up" != "xyes"
3578 then
3579                 with_libpcap="no (pcap.h misses PCAP_ERROR_IFACE_NOT_UP)"
3580 fi
3581 AM_CONDITIONAL(BUILD_WITH_LIBPCAP, test "x$with_libpcap" = "xyes")
3582 # }}}
3583
3584 # --with-libperl {{{
3585 perl_interpreter="perl"
3586 AC_ARG_WITH(libperl, [AS_HELP_STRING([--with-libperl@<:@=PREFIX@:>@], [Path to libperl.])],
3587 [
3588         if test -f "$withval" && test -x "$withval"
3589         then
3590                 perl_interpreter="$withval"
3591                 with_libperl="yes"
3592         else if test "x$withval" != "xno" && test "x$withval" != "xyes"
3593         then
3594                 LDFLAGS="$LDFLAGS -L$withval/lib"
3595                 CPPFLAGS="$CPPFLAGS -I$withval/include"
3596                 perl_interpreter="$withval/bin/perl"
3597                 with_libperl="yes"
3598         else
3599                 with_libperl="$withval"
3600         fi; fi
3601 ],
3602 [
3603         with_libperl="yes"
3604 ])
3605
3606 AC_MSG_CHECKING([for perl])
3607 perl_interpreter=`which "$perl_interpreter" 2> /dev/null`
3608 if test -x "$perl_interpreter"
3609 then
3610         AC_MSG_RESULT([yes ($perl_interpreter)])
3611 else
3612         perl_interpreter=""
3613         AC_MSG_RESULT([no])
3614 fi
3615
3616 AC_SUBST(PERL, "$perl_interpreter")
3617
3618 if test "x$with_libperl" = "xyes" \
3619         && test -n "$perl_interpreter"
3620 then
3621   SAVE_CFLAGS="$CFLAGS"
3622   SAVE_LIBS="$LIBS"
3623 dnl ARCHFLAGS="" -> disable multi -arch on OSX (see Config_heavy.pl:fetch_string)
3624   PERL_CFLAGS=`ARCHFLAGS="" $perl_interpreter -MExtUtils::Embed -e ccopts`
3625   PERL_LIBS=`ARCHFLAGS="" $perl_interpreter -MExtUtils::Embed -e ldopts`
3626   CFLAGS="$CFLAGS $PERL_CFLAGS"
3627   LIBS="$LIBS $PERL_LIBS"
3628
3629   AC_CACHE_CHECK([for libperl],
3630     [c_cv_have_libperl],
3631     AC_LINK_IFELSE([AC_LANG_PROGRAM(
3632 [[[
3633 #define PERL_NO_GET_CONTEXT
3634 #include <EXTERN.h>
3635 #include <perl.h>
3636 #include <XSUB.h>
3637 ]]],
3638 [[[
3639        dTHX;
3640        load_module (PERL_LOADMOD_NOIMPORT,
3641                          newSVpv ("Collectd::Plugin::FooBar", 24),
3642                          Nullsv);
3643 ]]]
3644       )],
3645       [c_cv_have_libperl="yes"],
3646       [c_cv_have_libperl="no"]
3647     )
3648   )
3649
3650   if test "x$c_cv_have_libperl" = "xyes"
3651   then
3652           AC_DEFINE(HAVE_LIBPERL, 1, [Define if libperl is present and usable.])
3653           AC_SUBST(PERL_CFLAGS)
3654           AC_SUBST(PERL_LIBS)
3655   else
3656           with_libperl="no"
3657   fi
3658
3659   CFLAGS="$SAVE_CFLAGS"
3660   LIBS="$SAVE_LIBS"
3661 else if test -z "$perl_interpreter"; then
3662   with_libperl="no (no perl interpreter found)"
3663   c_cv_have_libperl="no"
3664 fi; fi
3665 AM_CONDITIONAL(BUILD_WITH_LIBPERL, test "x$with_libperl" = "xyes")
3666
3667 if test "x$with_libperl" = "xyes"
3668 then
3669         SAVE_CFLAGS="$CFLAGS"
3670         SAVE_LIBS="$LIBS"
3671         CFLAGS="$CFLAGS $PERL_CFLAGS"
3672         LIBS="$LIBS $PERL_LIBS"
3673
3674         AC_CACHE_CHECK([if perl supports ithreads],
3675                 [c_cv_have_perl_ithreads],
3676                 AC_LINK_IFELSE([AC_LANG_PROGRAM(
3677 [[[
3678 #include <EXTERN.h>
3679 #include <perl.h>
3680 #include <XSUB.h>
3681
3682 #if !defined(USE_ITHREADS)
3683 # error "Perl does not support ithreads!"
3684 #endif /* !defined(USE_ITHREADS) */
3685 ]]],
3686 [[[ ]]]
3687                         )],
3688                         [c_cv_have_perl_ithreads="yes"],
3689                         [c_cv_have_perl_ithreads="no"]
3690                 )
3691         )
3692
3693         if test "x$c_cv_have_perl_ithreads" = "xyes"
3694         then
3695                 AC_DEFINE(HAVE_PERL_ITHREADS, 1, [Define if Perl supports ithreads.])
3696         fi
3697
3698         CFLAGS="$SAVE_CFLAGS"
3699         LIBS="$SAVE_LIBS"
3700 fi
3701
3702 if test "x$with_libperl" = "xyes"
3703 then
3704         SAVE_CFLAGS="$CFLAGS"
3705         SAVE_LIBS="$LIBS"
3706         # trigger an error if Perl_load_module*() uses __attribute__nonnull__(3)
3707         # (see issues #41 and #42)
3708         CFLAGS="$CFLAGS $PERL_CFLAGS -Wall -Werror"
3709         LIBS="$LIBS $PERL_LIBS"
3710
3711         AC_CACHE_CHECK([for broken Perl_load_module()],
3712                 [c_cv_have_broken_perl_load_module],
3713                 AC_LINK_IFELSE([AC_LANG_PROGRAM(
3714 [[[
3715 #define PERL_NO_GET_CONTEXT
3716 #include <EXTERN.h>
3717 #include <perl.h>
3718 #include <XSUB.h>
3719 ]]],
3720 [[[
3721                          dTHX;
3722                          load_module (PERL_LOADMOD_NOIMPORT,
3723                              newSVpv ("Collectd::Plugin::FooBar", 24),
3724                              Nullsv);
3725 ]]]
3726                         )],
3727                         [c_cv_have_broken_perl_load_module="no"],
3728                         [c_cv_have_broken_perl_load_module="yes"]
3729                 )
3730         )
3731
3732         CFLAGS="$SAVE_CFLAGS"
3733         LIBS="$SAVE_LIBS"
3734 fi
3735 AM_CONDITIONAL(HAVE_BROKEN_PERL_LOAD_MODULE,
3736                 test "x$c_cv_have_broken_perl_load_module" = "xyes")
3737
3738 if test "x$with_libperl" = "xyes"
3739 then
3740         SAVE_CFLAGS="$CFLAGS"
3741         SAVE_LIBS="$LIBS"
3742         CFLAGS="$CFLAGS $PERL_CFLAGS"
3743         LIBS="$LIBS $PERL_LIBS"
3744
3745         AC_CHECK_MEMBER(
3746                 [struct mgvtbl.svt_local],
3747                 [have_struct_mgvtbl_svt_local="yes"],
3748                 [have_struct_mgvtbl_svt_local="no"],
3749                 [
3750 #include <EXTERN.h>
3751 #include <perl.h>
3752 #include <XSUB.h>
3753                 ])
3754
3755         if test "x$have_struct_mgvtbl_svt_local" = "xyes"
3756         then
3757                 AC_DEFINE(HAVE_PERL_STRUCT_MGVTBL_SVT_LOCAL, 1,
3758                                   [Define if Perl's struct mgvtbl has member svt_local.])
3759         fi
3760
3761         CFLAGS="$SAVE_CFLAGS"
3762         LIBS="$SAVE_LIBS"
3763 fi
3764 # }}}
3765
3766 # --with-libpq {{{
3767 with_pg_config="pg_config"
3768 with_libpq_includedir=""
3769 with_libpq_libdir=""
3770 with_libpq_cppflags=""
3771 with_libpq_ldflags=""
3772 AC_ARG_WITH(libpq, [AS_HELP_STRING([--with-libpq@<:@=PREFIX@:>@],
3773         [Path to libpq.])],
3774 [
3775         if test "x$withval" = "xno"
3776         then
3777                 with_libpq="no"
3778         else if test "x$withval" = "xyes"
3779         then
3780                 with_libpq="yes"
3781         else
3782                 if test -f "$withval" && test -x "$withval";
3783                 then
3784                         with_pg_config="$withval"
3785                 else if test -x "$withval/bin/pg_config"
3786                 then
3787                         with_pg_config="$withval/bin/pg_config"
3788                 fi; fi
3789                 with_libpq="yes"
3790         fi; fi
3791 ],
3792 [
3793         with_libpq="yes"
3794 ])
3795 if test "x$with_libpq" = "xyes"
3796 then
3797         with_libpq_includedir=`$with_pg_config --includedir 2> /dev/null`
3798         pg_config_status=$?
3799
3800         if test $pg_config_status -eq 0
3801         then
3802                 if test -n "$with_libpq_includedir"; then
3803                         for dir in $with_libpq_includedir; do
3804                                 with_libpq_cppflags="$with_libpq_cppflags -I$dir"
3805                         done
3806                 fi
3807         else
3808                 AC_MSG_WARN([$with_pg_config returned with status $pg_config_status])
3809         fi
3810
3811         SAVE_CPPFLAGS="$CPPFLAGS"
3812         CPPFLAGS="$CPPFLAGS $with_libpq_cppflags"
3813
3814         AC_CHECK_HEADERS(libpq-fe.h, [],
3815                 [with_libpq="no (libpq-fe.h not found)"], [])
3816
3817         CPPFLAGS="$SAVE_CPPFLAGS"
3818 fi
3819 if test "x$with_libpq" = "xyes"
3820 then
3821         with_libpq_libdir=`$with_pg_config --libdir 2> /dev/null`
3822         pg_config_status=$?
3823
3824         if test $pg_config_status -eq 0
3825         then
3826                 if test -n "$with_libpq_libdir"; then
3827                         for dir in $with_libpq_libdir; do
3828                                 with_libpq_ldflags="$with_libpq_ldflags -L$dir"
3829                         done
3830                 fi
3831         else
3832                 AC_MSG_WARN([$with_pg_config returned with status $pg_config_status])
3833         fi
3834
3835         SAVE_LDFLAGS="$LDFLAGS"
3836         LDFLAGS="$LDFLAGS $with_libpq_ldflags"
3837
3838         AC_CHECK_LIB(pq, PQconnectdb,
3839                 [with_libpq="yes"],
3840                 [with_libpq="no (symbol 'PQconnectdb' not found)"])
3841
3842         AC_CHECK_LIB(pq, PQserverVersion,
3843                 [with_libpq="yes"],
3844                 [with_libpq="no (symbol 'PQserverVersion' not found)"])
3845
3846         LDFLAGS="$SAVE_LDFLAGS"
3847 fi
3848 if test "x$with_libpq" = "xyes"
3849 then
3850         BUILD_WITH_LIBPQ_CPPFLAGS="$with_libpq_cppflags"
3851         BUILD_WITH_LIBPQ_LDFLAGS="$with_libpq_ldflags"
3852         AC_SUBST(BUILD_WITH_LIBPQ_CPPFLAGS)
3853         AC_SUBST(BUILD_WITH_LIBPQ_LDFLAGS)
3854 fi
3855 AM_CONDITIONAL(BUILD_WITH_LIBPQ, test "x$with_libpq" = "xyes")
3856 # }}}
3857
3858 # --with-python {{{
3859 with_python_prog=""
3860 with_python_path="$PATH"
3861 AC_ARG_WITH(python, [AS_HELP_STRING([--with-python@<:@=PREFIX@:>@], [Path to the python interpreter.])],
3862 [
3863  if test "x$withval" = "xyes" || test "x$withval" = "xno"
3864  then
3865          with_python="$withval"
3866  else if test -x "$withval"
3867  then
3868          with_python_prog="$withval"
3869          with_python_path="`dirname \"$withval\"`$PATH_SEPARATOR$with_python_path"
3870          with_python="yes"
3871  else if test -d "$withval"
3872  then
3873          with_python_path="$withval$PATH_SEPARATOR$with_python_path"
3874          with_python="yes"
3875  else
3876          AC_MSG_WARN([Argument not recognized: $withval])
3877  fi; fi; fi
3878 ], [with_python="yes"])
3879
3880 SAVE_PATH="$PATH"
3881 SAVE_CPPFLAGS="$CPPFLAGS"
3882 SAVE_LDFLAGS="$LDFLAGS"
3883 SAVE_LIBS="$LIBS"
3884
3885 PATH="$with_python_path"
3886
3887 if test "x$with_python" = "xyes" && test "x$with_python_prog" = "x"
3888 then
3889         AC_MSG_CHECKING([for python])
3890         with_python_prog="`which python 2>/dev/null`"
3891         if test "x$with_python_prog" = "x"
3892         then
3893                 AC_MSG_RESULT([not found])
3894                 with_python="no (interpreter not found)"
3895         else
3896                 AC_MSG_RESULT([$with_python_prog])
3897         fi
3898 fi
3899
3900 if test "x$with_python" = "xyes"
3901 then
3902         AC_MSG_CHECKING([for Python CPPFLAGS])
3903         python_include_path=`echo "import distutils.sysconfig;import sys;sys.stdout.write(distutils.sysconfig.get_python_inc())" | "$with_python_prog" 2>&1`
3904         python_config_status=$?
3905
3906         if test "$python_config_status" -ne 0 || test "x$python_include_path" = "x"
3907         then
3908                 AC_MSG_RESULT([failed with status $python_config_status (output: $python_include_path)])
3909                 with_python="no"
3910         else
3911                 AC_MSG_RESULT([$python_include_path])
3912         fi
3913 fi
3914
3915 if test "x$with_python" = "xyes"
3916 then
3917         CPPFLAGS="-I$python_include_path $CPPFLAGS"
3918         AC_CHECK_HEADERS(Python.h,
3919                          [with_python="yes"],
3920                          [with_python="no ('Python.h' not found)"])
3921 fi
3922
3923 if test "x$with_python" = "xyes"
3924 then
3925         AC_MSG_CHECKING([for Python LDFLAGS])
3926         python_library_path=`echo "import distutils.sysconfig;import sys;sys.stdout.write(distutils.sysconfig.get_config_vars(\"LIBDIR\").__getitem__(0))" | "$with_python_prog" 2>&1`
3927         python_config_status=$?
3928
3929         if test "$python_config_status" -ne 0 || test "x$python_library_path" = "x"
3930         then
3931                 AC_MSG_RESULT([failed with status $python_config_status (output: $python_library_path)])
3932                 with_python="no"
3933         else
3934                 AC_MSG_RESULT([$python_library_path])
3935         fi
3936 fi
3937
3938 if test "x$with_python" = "xyes"
3939 then
3940         AC_MSG_CHECKING([for Python LIBS])
3941         python_library_flags=`echo "import distutils.sysconfig;import sys;sys.stdout.write(distutils.sysconfig.get_config_vars(\"BLDLIBRARY\").__getitem__(0))" | "$with_python_prog" 2>&1`
3942         python_config_status=$?
3943
3944         if test "$python_config_status" -ne 0 || test "x$python_library_flags" = "x"
3945         then
3946                 AC_MSG_RESULT([failed with status $python_config_status (output: $python_library_flags)])
3947                 with_python="no"
3948         else
3949                 AC_MSG_RESULT([$python_library_flags])
3950         fi
3951 fi
3952
3953 if test "x$with_python" = "xyes"
3954 then
3955         LDFLAGS="-L$python_library_path $LDFLAGS"
3956         LIBS="$python_library_flags $LIBS"
3957
3958         AC_CHECK_FUNC(PyObject_CallFunction,
3959                       [with_python="yes"],
3960                       [with_python="no (Symbol 'PyObject_CallFunction' not found)"])
3961 fi
3962
3963 PATH="$SAVE_PATH"
3964 CPPFLAGS="$SAVE_CPPFLAGS"
3965 LDFLAGS="$SAVE_LDFLAGS"
3966 LIBS="$SAVE_LIBS"
3967
3968 if test "x$with_python" = "xyes"
3969 then
3970         BUILD_WITH_PYTHON_CPPFLAGS="-I$python_include_path"
3971         BUILD_WITH_PYTHON_LDFLAGS="-L$python_library_path"
3972         BUILD_WITH_PYTHON_LIBS="$python_library_flags"
3973         AC_SUBST(BUILD_WITH_PYTHON_CPPFLAGS)
3974         AC_SUBST(BUILD_WITH_PYTHON_LDFLAGS)
3975         AC_SUBST(BUILD_WITH_PYTHON_LIBS)
3976 fi
3977 # }}} --with-python
3978
3979 # --with-librabbitmq {{{
3980 with_librabbitmq_cppflags=""
3981 with_librabbitmq_ldflags=""
3982 AC_ARG_WITH(librabbitmq, [AS_HELP_STRING([--with-librabbitmq@<:@=PREFIX@:>@], [Path to librabbitmq.])],
3983 [
3984         if test "x$withval" != "xno" && test "x$withval" != "xyes"
3985         then
3986                 with_librabbitmq_cppflags="-I$withval/include"
3987                 with_librabbitmq_ldflags="-L$withval/lib"
3988                 with_librabbitmq="yes"
3989         else
3990                 with_librabbitmq="$withval"
3991         fi
3992 ],
3993 [
3994         with_librabbitmq="yes"
3995 ])
3996 SAVE_CPPFLAGS="$CPPFLAGS"
3997 SAVE_LDFLAGS="$LDFLAGS"
3998 CPPFLAGS="$CPPFLAGS $with_librabbitmq_cppflags"
3999 LDFLAGS="$LDFLAGS $with_librabbitmq_ldflags"
4000 if test "x$with_librabbitmq" = "xyes"
4001 then
4002         AC_CHECK_HEADERS(amqp.h, [with_librabbitmq="yes"], [with_librabbitmq="no (amqp.h not found)"])
4003 fi
4004 if test "x$with_librabbitmq" = "xyes"
4005 then
4006         # librabbitmq up to version 0.9.1 provides "library_errno", later
4007         # versions use "library_error". The library does not provide a version
4008         # macro :( Use "AC_CHECK_MEMBERS" (plural) for automatic defines.
4009         AC_CHECK_MEMBERS([amqp_rpc_reply_t.library_errno],,,
4010                          [
4011 #if HAVE_STDLIB_H
4012 # include <stdlib.h>
4013 #endif
4014 #if HAVE_STDIO_H
4015 # include <stdio.h>
4016 #endif
4017 #if HAVE_STDINT_H
4018 # include <stdint.h>
4019 #endif
4020 #if HAVE_INTTYPES_H
4021 # include <inttypes.h>
4022 #endif
4023 #include <amqp.h>
4024                          ])
4025 fi
4026 if test "x$with_librabbitmq" = "xyes"
4027 then
4028         AC_CHECK_LIB(rabbitmq, amqp_basic_publish, [with_librabbitmq="yes"], [with_librabbitmq="no (Symbol 'amqp_basic_publish' not found)"])
4029 fi
4030 if test "x$with_librabbitmq" = "xyes"
4031 then
4032         BUILD_WITH_LIBRABBITMQ_CPPFLAGS="$with_librabbitmq_cppflags"
4033         BUILD_WITH_LIBRABBITMQ_LDFLAGS="$with_librabbitmq_ldflags"
4034         BUILD_WITH_LIBRABBITMQ_LIBS="-lrabbitmq"
4035         AC_SUBST(BUILD_WITH_LIBRABBITMQ_CPPFLAGS)
4036         AC_SUBST(BUILD_WITH_LIBRABBITMQ_LDFLAGS)
4037         AC_SUBST(BUILD_WITH_LIBRABBITMQ_LIBS)
4038         AC_DEFINE(HAVE_LIBRABBITMQ, 1, [Define if librabbitmq is present and usable.])
4039 fi
4040 CPPFLAGS="$SAVE_CPPFLAGS"
4041 LDFLAGS="$SAVE_LDFLAGS"
4042 AM_CONDITIONAL(BUILD_WITH_LIBRABBITMQ, test "x$with_librabbitmq" = "xyes")
4043
4044 with_amqp_tcp_socket="no"
4045 if test "x$with_librabbitmq" = "xyes"
4046 then
4047         SAVE_CPPFLAGS="$CPPFLAGS"
4048         SAVE_LDFLAGS="$LDFLAGS"
4049         SAVE_LIBS="$LIBS"
4050         CPPFLAGS="$CPPFLAGS $with_librabbitmq_cppflags"
4051         LDFLAGS="$LDFLAGS $with_librabbitmq_ldflags"
4052         LIBS="-lrabbitmq"
4053
4054         AC_CHECK_HEADERS(amqp_tcp_socket.h amqp_socket.h)
4055         AC_CHECK_FUNC(amqp_tcp_socket_new, [with_amqp_tcp_socket="yes"], [with_amqp_tcp_socket="no"])
4056         if test "x$with_amqp_tcp_socket" = "xyes"
4057         then
4058                 AC_DEFINE(HAVE_AMQP_TCP_SOCKET, 1,
4059                                 [Define if librabbitmq provides the new TCP socket interface.])
4060         fi
4061
4062         AC_CHECK_DECLS(amqp_socket_close,
4063                                 [amqp_socket_close_decl="yes"], [amqp_socket_close_decl="no"],
4064                                 [[
4065 #include <amqp.h>
4066 #ifdef HAVE_AMQP_TCP_SOCKET_H
4067 # include <amqp_tcp_socket.h>
4068 #endif
4069 #ifdef HAVE_AMQP_SOCKET_H
4070 # include <amqp_socket.h>
4071 #endif
4072                                 ]])
4073
4074         CPPFLAGS="$SAVE_CPPFLAGS"
4075         LDFLAGS="$SAVE_LDFLAGS"
4076         LIBS="$SAVE_LIBS"
4077 fi
4078 # }}}
4079
4080 # --with-librdkafka {{{
4081 AC_ARG_WITH(librdkafka, [AS_HELP_STRING([--with-librdkafka@<:@=PREFIX@:>@], [Path to librdkafka.])],
4082 [
4083   if test "x$withval" != "xno" && test "x$withval" != "xyes"
4084   then
4085     with_librdkafka_cppflags="-I$withval/include"
4086     with_librdkafka_ldflags="-L$withval/lib"
4087     with_librdkafka_rpath="$withval/lib"
4088     with_librdkafka="yes"
4089   else
4090     with_librdkafka="$withval"
4091   fi
4092 ],
4093 [
4094   with_librdkafka="yes"
4095 ])
4096 SAVE_CPPFLAGS="$CPPFLAGS"
4097 SAVE_LDFLAGS="$LDFLAGS"
4098
4099 CPPFLAGS="$CPPFLAGS $with_librdkafka_cppflags"
4100 LDFLAGS="$LDFLAGS $with_librdkafka_ldflags"
4101
4102 if test "x$with_librdkafka" = "xyes"
4103 then
4104         AC_CHECK_HEADERS(librdkafka/rdkafka.h, [with_librdkafka="yes"], [with_librdkafka="no (librdkafka/rdkafka.h not found)"])
4105 fi
4106
4107 if test "x$with_librdkafka" = "xyes"
4108 then
4109         AC_CHECK_LIB(rdkafka, rd_kafka_new, [with_librdkafka="yes"], [with_librdkafka="no (Symbol 'rd_kafka_new' not found)"])
4110   AC_CHECK_LIB(rdkafka, rd_kafka_conf_set_log_cb, [with_librdkafka_log_cb="yes"], [with_librdkafka_log_cb="no"])
4111   AC_CHECK_LIB(rdkafka, rd_kafka_set_logger, [with_librdkafka_logger="yes"], [with_librdkafka_logger="no"])
4112 fi
4113 if test "x$with_librdkafka" = "xyes"
4114 then
4115         BUILD_WITH_LIBRDKAFKA_CPPFLAGS="$with_librdkafka_cppflags"
4116         BUILD_WITH_LIBRDKAFKA_LDFLAGS="$with_librdkafka_ldflags"
4117         if test "x$with_librdkafka_rpath" != "x"
4118         then
4119                 BUILD_WITH_LIBRDKAFKA_LIBS="-Wl,-rpath,$with_librdkafka_rpath -lrdkafka"
4120         else
4121                 BUILD_WITH_LIBRDKAFKA_LIBS="-lrdkafka"
4122         fi
4123         AC_SUBST(BUILD_WITH_LIBRDKAFKA_CPPFLAGS)
4124         AC_SUBST(BUILD_WITH_LIBRDKAFKA_LDFLAGS)
4125         AC_SUBST(BUILD_WITH_LIBRDKAFKA_LIBS)
4126         AC_DEFINE(HAVE_LIBRDKAFKA, 1, [Define if librdkafka is present and usable.])
4127   if test "x$with_librdkafka_log_cb" = "xyes"
4128   then
4129         AC_DEFINE(HAVE_LIBRDKAFKA_LOG_CB, 1, [Define if librdkafka log facility is present and usable.])
4130   fi
4131   if test "x$with_librdkafka_logger" = "xyes"
4132   then
4133         AC_DEFINE(HAVE_LIBRDKAFKA_LOGGER, 1, [Define if librdkafka log facility is present and usable.])
4134   fi
4135 fi
4136 CPPFLAGS="$SAVE_CPPFLAGS"
4137 LDFLAGS="$SAVE_LDFLAGS"
4138 AM_CONDITIONAL(BUILD_WITH_LIBRDKAFKA, test "x$with_librdkafka" = "xyes")
4139
4140 # }}}
4141
4142 # --with-librouteros {{{
4143 AC_ARG_WITH(librouteros, [AS_HELP_STRING([--with-librouteros@<:@=PREFIX@:>@], [Path to librouteros.])],
4144 [
4145  if test "x$withval" = "xyes"
4146  then
4147          with_librouteros="yes"
4148  else if test "x$withval" = "xno"
4149  then
4150          with_librouteros="no"
4151  else
4152          with_librouteros="yes"
4153          LIBROUTEROS_CPPFLAGS="$LIBROUTEROS_CPPFLAGS -I$withval/include"
4154          LIBROUTEROS_LDFLAGS="$LIBROUTEROS_LDFLAGS -L$withval/lib"
4155  fi; fi
4156 ],
4157 [with_librouteros="yes"])
4158
4159 SAVE_CPPFLAGS="$CPPFLAGS"
4160 SAVE_LDFLAGS="$LDFLAGS"
4161
4162 CPPFLAGS="$CPPFLAGS $LIBROUTEROS_CPPFLAGS"
4163 LDFLAGS="$LDFLAGS $LIBROUTEROS_LDFLAGS"
4164
4165 if test "x$with_librouteros" = "xyes"
4166 then
4167         if test "x$LIBROUTEROS_CPPFLAGS" != "x"
4168         then
4169                 AC_MSG_NOTICE([librouteros CPPFLAGS: $LIBROUTEROS_CPPFLAGS])
4170         fi
4171         AC_CHECK_HEADERS(routeros_api.h,
4172         [with_librouteros="yes"],
4173         [with_librouteros="no (routeros_api.h not found)"])
4174 fi
4175 if test "x$with_librouteros" = "xyes"
4176 then
4177         if test "x$LIBROUTEROS_LDFLAGS" != "x"
4178         then
4179                 AC_MSG_NOTICE([librouteros LDFLAGS: $LIBROUTEROS_LDFLAGS])
4180         fi
4181         AC_CHECK_LIB(routeros, ros_interface,
4182         [with_librouteros="yes"],
4183         [with_librouteros="no (symbol 'ros_interface' not found)"])
4184 fi
4185
4186 CPPFLAGS="$SAVE_CPPFLAGS"
4187 LDFLAGS="$SAVE_LDFLAGS"
4188
4189 if test "x$with_librouteros" = "xyes"
4190 then
4191         BUILD_WITH_LIBROUTEROS_CPPFLAGS="$LIBROUTEROS_CPPFLAGS"
4192         BUILD_WITH_LIBROUTEROS_LDFLAGS="$LIBROUTEROS_LDFLAGS"
4193         AC_SUBST(BUILD_WITH_LIBROUTEROS_CPPFLAGS)
4194         AC_SUBST(BUILD_WITH_LIBROUTEROS_LDFLAGS)
4195 fi
4196 AM_CONDITIONAL(BUILD_WITH_LIBROUTEROS, test "x$with_librouteros" = "xyes")
4197 # }}}
4198
4199 # --with-librrd {{{
4200 librrd_cflags=""
4201 librrd_ldflags=""
4202 librrd_threadsafe="no"
4203 librrd_rrdc_update="no"
4204 AC_ARG_WITH(librrd,
4205   [AS_HELP_STRING([--with-librrd@<:@=PREFIX@:>@], [Path to rrdtool.])],
4206   [
4207     if test "x$withval" != "xno" && test "x$withval" != "xyes"
4208     then
4209       librrd_cflags="-I$withval/include"
4210       librrd_ldflags="-L$withval/lib"
4211       with_librrd="yes"
4212     else
4213       with_librrd="$withval"
4214     fi
4215   ],
4216   [with_librrd="yes"]
4217 )
4218
4219 if test "x$with_librrd" = "xyes"
4220 then
4221   SAVE_LDFLAGS="$LDFLAGS"
4222   LDFLAGS="$LDFLAGS $librrd_ldflags"
4223   PKG_CHECK_MODULES([RRD], [librrd >= 1.6.0],
4224     [
4225       AC_CHECK_LIB([rrd], [rrd_update_r],
4226         [librrd_threadsafe="yes"],
4227         [:]
4228       )
4229       AC_CHECK_LIB([rrd], [rrdc_update],
4230         [librrd_rrdc_update="yes"],
4231         [:]
4232       )
4233     ],[:]
4234   )
4235   LDFLAGS="$SAVE_LDFLAGS"
4236
4237   SAVE_CPPFLAGS="$CPPFLAGS"
4238   CPPFLAGS="$CPPFLAGS $RRD_CFLAGS $librrd_cflags"
4239
4240   AC_CHECK_HEADERS([rrd.h],, [with_librrd="no (rrd.h not found)"])
4241
4242   CPPFLAGS="$SAVE_CPPFLAGS"
4243 fi
4244
4245 if test "x$with_librrd" = "xyes" && test "x$librrd_threadsafe" = "xno"
4246 then
4247   SAVE_LDFLAGS="$LDFLAGS"
4248   LDFLAGS="$LDFLAGS $librrd_ldflags"
4249
4250   AC_CHECK_LIB([rrd_th], [rrd_update_r],
4251     [
4252       librrd_ldflags="$librrd_ldflags -lrrd_th"
4253       librrd_threadsafe="yes"
4254       AC_CHECK_LIB([rrd_th], [rrdc_update],
4255         [librrd_rrdc_update="yes"],
4256         [:],
4257       )
4258     ],
4259     [:]
4260   )
4261   LDFLAGS="$SAVE_LDFLAGS"
4262 fi
4263
4264 if test "x$with_librrd" = "xyes" && test "x$librrd_threadsafe" = "xno"
4265 then
4266   SAVE_LDFLAGS="$LDFLAGS"
4267   LDFLAGS="$LDFLAGS $librrd_ldflags"
4268
4269   AC_CHECK_LIB([rrd], [rrd_update],
4270     [
4271       librrd_ldflags="$librrd_ldflags -lrrd"
4272       AC_CHECK_LIB([rrd], [rrdc_update],
4273         [librrd_rrdc_update="yes"],
4274         [:]
4275       )
4276     ],
4277     [with_librrd="no (symbol 'rrd_update' not found)"]
4278   )
4279   LDFLAGS="$SAVE_LDFLAGS"
4280 fi
4281
4282 if test "x$with_librrd" = "xyes"
4283 then
4284   BUILD_WITH_LIBRRD_CFLAGS="$RRD_CFLAGS $librrd_cflags"
4285   BUILD_WITH_LIBRRD_LDFLAGS="$librrd_ldflags"
4286   BUILD_WITH_LIBRRD_LIBS="$RRD_LIBS"
4287   AC_SUBST(BUILD_WITH_LIBRRD_CFLAGS)
4288   AC_SUBST(BUILD_WITH_LIBRRD_LDFLAGS)
4289   AC_SUBST(BUILD_WITH_LIBRRD_LIBS)
4290 fi
4291 if test "x$librrd_threadsafe" = "xyes"
4292 then
4293   AC_DEFINE([HAVE_THREADSAFE_LIBRRD], [1],
4294     [Define to 1 if the rrd library is thread-safe]
4295   )
4296 fi
4297 # }}}
4298
4299 # --with-libsensors {{{
4300 with_sensors_cflags=""
4301 with_sensors_ldflags=""
4302 AC_ARG_WITH(libsensors, [AS_HELP_STRING([--with-libsensors@<:@=PREFIX@:>@], [Path to lm_sensors.])],
4303 [
4304         if test "x$withval" = "xno"
4305         then
4306                 with_libsensors="no"
4307         else
4308                 with_libsensors="yes"
4309                 if test "x$withval" != "xyes"
4310                 then
4311                         with_sensors_cflags="-I$withval/include"
4312                         with_sensors_ldflags="-L$withval/lib"
4313                         with_libsensors="yes"
4314                 fi
4315         fi
4316 ],
4317 [
4318         if test "x$ac_system" = "xLinux"
4319         then
4320                 with_libsensors="yes"
4321         else
4322                 with_libsensors="no (Linux only library)"
4323         fi
4324 ])
4325 if test "x$with_libsensors" = "xyes"
4326 then
4327         SAVE_CPPFLAGS="$CPPFLAGS"
4328         CPPFLAGS="$CPPFLAGS $with_sensors_cflags"
4329
4330         AC_CHECK_HEADERS(sensors/sensors.h, [], [with_libsensors="no (sensors/sensors.h not found)"])
4331
4332         CPPFLAGS="$SAVE_CPPFLAGS"
4333 fi
4334 if test "x$with_libsensors" = "xyes"
4335 then
4336         SAVE_CPPFLAGS="$CPPFLAGS"
4337         SAVE_LDFLAGS="$LDFLAGS"
4338         CPPFLAGS="$CPPFLAGS $with_sensors_cflags"
4339         LDFLAGS="$LDFLAGS $with_sensors_ldflags"
4340
4341         AC_CHECK_LIB(sensors, sensors_init,
4342         [
4343                 AC_DEFINE(HAVE_LIBSENSORS, 1, [Define to 1 if you have the sensors library (-lsensors).])
4344         ],
4345         [with_libsensors="no (libsensors not found)"])
4346
4347         CPPFLAGS="$SAVE_CPPFLAGS"
4348         LDFLAGS="$SAVE_LDFLAGS"
4349 fi
4350 if test "x$with_libsensors" = "xyes"
4351 then
4352         BUILD_WITH_LIBSENSORS_CFLAGS="$with_sensors_cflags"
4353         BUILD_WITH_LIBSENSORS_LDFLAGS="$with_sensors_ldflags"
4354         AC_SUBST(BUILD_WITH_LIBSENSORS_CFLAGS)
4355         AC_SUBST(BUILD_WITH_LIBSENSORS_LDFLAGS)
4356 fi
4357 AM_CONDITIONAL(BUILD_WITH_LM_SENSORS, test "x$with_libsensors" = "xyes")
4358 # }}}
4359
4360 # --with-libsigrok {{{
4361 with_libsigrok_cflags=""
4362 with_libsigrok_ldflags=""
4363 AC_ARG_WITH(libsigrok, [AS_HELP_STRING([--with-libsigrok@<:@=PREFIX@:>@], [Path to libsigrok.])],
4364 [
4365         if test "x$withval" = "xno"
4366         then
4367                 with_libsigrok="no"
4368         else
4369                 with_libsigrok="yes"
4370                 if test "x$withval" != "xyes"
4371                 then
4372                         with_libsigrok_cflags="-I$withval/include"
4373                         with_libsigrok_ldflags="-L$withval/lib"
4374                 fi
4375         fi
4376 ],[with_libsigrok="yes"])
4377
4378 # libsigrok has a glib dependency
4379 if test "x$with_libsigrok" = "xyes"
4380 then
4381 m4_ifdef([AM_PATH_GLIB_2_0],
4382         [
4383          AM_PATH_GLIB_2_0([2.28.0],
4384                 [with_libsigrok_cflags="$with_libsigrok_cflags $GLIB_CFLAGS"; with_libsigrok_ldflags="$with_libsigrok_ldflags $GLIB_LIBS"])
4385         ],
4386         [
4387          with_libsigrok="no (glib not available)"
4388         ]
4389 )
4390 fi
4391
4392 # libsigrok headers
4393 if test "x$with_libsigrok" = "xyes"
4394 then
4395         SAVE_CPPFLAGS="$CPPFLAGS"
4396         CPPFLAGS="$CPPFLAGS $with_libsigrok_cflags"
4397
4398         AC_CHECK_HEADERS(libsigrok/libsigrok.h, [], [with_libsigrok="no (libsigrok/libsigrok.h not found)"])
4399
4400         CPPFLAGS="$SAVE_CPPFLAGS"
4401 fi
4402
4403 # libsigrok library
4404 if test "x$with_libsigrok" = "xyes"
4405 then
4406         SAVE_CPPFLAGS="$CPPFLAGS"
4407         SAVE_LDFLAGS="$LDFLAGS"
4408         CPPFLAGS="$CPPFLAGS $with_libsigrok_cflags"
4409         LDFLAGS="$LDFLAGS $with_libsigrok_ldflags"
4410
4411         AC_CHECK_LIB(sigrok, sr_init,
4412         [
4413                 AC_DEFINE(HAVE_LIBSIGROK, 1, [Define to 1 if you have the sigrok library (-lsigrok).])
4414         ],
4415         [with_libsigrok="no (libsigrok not found)"])
4416
4417         CPPFLAGS="$SAVE_CPPFLAGS"
4418         LDFLAGS="$SAVE_LDFLAGS"
4419 fi
4420 if test "x$with_libsigrok" = "xyes"
4421 then
4422         BUILD_WITH_LIBSIGROK_CFLAGS="$with_libsigrok_cflags"
4423         BUILD_WITH_LIBSIGROK_LDFLAGS="$with_libsigrok_ldflags"
4424         AC_SUBST(BUILD_WITH_LIBSIGROK_CFLAGS)
4425         AC_SUBST(BUILD_WITH_LIBSIGROK_LDFLAGS)
4426 fi
4427 AM_CONDITIONAL(BUILD_WITH_LIBSIGROK, test "x$with_libsigrok" = "xyes")
4428 # }}}
4429
4430 # --with-libstatgrab {{{
4431 with_libstatgrab_cflags=""
4432 with_libstatgrab_ldflags=""
4433 AC_ARG_WITH(libstatgrab, [AS_HELP_STRING([--with-libstatgrab@<:@=PREFIX@:>@], [Path to libstatgrab.])],
4434 [
4435  if test "x$withval" != "xno" \
4436    && test "x$withval" != "xyes"
4437  then
4438    with_libstatgrab_cflags="-I$withval/include"
4439    with_libstatgrab_ldflags="-L$withval/lib -lstatgrab"
4440    with_libstatgrab="yes"
4441    with_libstatgrab_pkg_config="no"
4442  else
4443    with_libstatgrab="$withval"
4444    with_libstatgrab_pkg_config="yes"
4445  fi
4446  ],
4447 [
4448  with_libstatgrab="yes"
4449  with_libstatgrab_pkg_config="yes"
4450 ])
4451
4452 if test "x$with_libstatgrab" = "xyes" \
4453   && test "x$with_libstatgrab_pkg_config" = "xyes"
4454 then
4455   if test "x$PKG_CONFIG" != "x"
4456   then
4457     AC_MSG_CHECKING([pkg-config for libstatgrab])
4458     temp_result="found"
4459     $PKG_CONFIG --exists libstatgrab 2>/dev/null
4460     if test "$?" != "0"
4461     then
4462       with_libstatgrab_pkg_config="no"
4463       with_libstatgrab="no (pkg-config doesn't know libstatgrab)"
4464       temp_result="not found"
4465     fi
4466     AC_MSG_RESULT([$temp_result])
4467   else
4468     AC_MSG_NOTICE([pkg-config not available, trying to guess flags for the statgrab library.])
4469     with_libstatgrab_pkg_config="no"
4470     with_libstatgrab_ldflags="$with_libstatgrab_ldflags -lstatgrab"
4471   fi
4472 fi
4473
4474 if test "x$with_libstatgrab" = "xyes" \
4475   && test "x$with_libstatgrab_pkg_config" = "xyes" \
4476   && test "x$with_libstatgrab_cflags" = "x"
4477 then
4478   AC_MSG_CHECKING([for libstatgrab CFLAGS])
4479   temp_result="`$PKG_CONFIG --cflags libstatgrab`"
4480   if test "$?" = "0"
4481   then
4482     with_libstatgrab_cflags="$temp_result"
4483   else
4484     with_libstatgrab="no ($PKG_CONFIG --cflags libstatgrab failed)"
4485     temp_result="$PKG_CONFIG --cflags libstatgrab failed"
4486   fi
4487   AC_MSG_RESULT([$temp_result])
4488 fi
4489
4490 if test "x$with_libstatgrab" = "xyes" \
4491   && test "x$with_libstatgrab_pkg_config" = "xyes" \
4492   && test "x$with_libstatgrab_ldflags" = "x"
4493 then
4494   AC_MSG_CHECKING([for libstatgrab LDFLAGS])
4495   temp_result="`$PKG_CONFIG --libs libstatgrab`"
4496   if test "$?" = "0"
4497   then
4498     with_libstatgrab_ldflags="$temp_result"
4499   else
4500     with_libstatgrab="no ($PKG_CONFIG --libs libstatgrab failed)"
4501     temp_result="$PKG_CONFIG --libs libstatgrab failed"
4502   fi
4503   AC_MSG_RESULT([$temp_result])
4504 fi
4505
4506 if test "x$with_libstatgrab" = "xyes"
4507 then
4508   SAVE_CPPFLAGS="$CPPFLAGS"
4509   CPPFLAGS="$CPPFLAGS $with_libstatgrab_cflags"
4510
4511   AC_CHECK_HEADERS(statgrab.h,
4512                    [with_libstatgrab="yes"],
4513                    [with_libstatgrab="no (statgrab.h not found)"])
4514
4515   CPPFLAGS="$SAVE_CPPFLAGS"
4516 fi
4517
4518 if test "x$with_libstatgrab" = "xyes"
4519 then
4520   SAVE_CFLAGS="$CFLAGS"
4521   SAVE_LDFLAGS="$LDFLAGS"
4522
4523   CFLAGS="$CFLAGS $with_libstatgrab_cflags"
4524   LDFLAGS="$LDFLAGS $with_libstatgrab_ldflags"
4525
4526   AC_CHECK_LIB(statgrab, sg_init,
4527                [with_libstatgrab="yes"],
4528                [with_libstatgrab="no (symbol sg_init not found)"])
4529
4530   CFLAGS="$SAVE_CFLAGS"
4531   LDFLAGS="$SAVE_LDFLAGS"
4532 fi
4533
4534 if test "x$with_libstatgrab" = "xyes"
4535 then
4536   SAVE_CFLAGS="$CFLAGS"
4537   SAVE_LDFLAGS="$LDFLAGS"
4538   SAVE_LIBS="$LIBS"
4539
4540   CFLAGS="$CFLAGS $with_libstatgrab_cflags"
4541   LDFLAGS="$LDFLAGS $with_libstatgrab_ldflags"
4542   LIBS="-lstatgrab $LIBS"
4543
4544   AC_CACHE_CHECK([if libstatgrab >= 0.90],
4545           [c_cv_have_libstatgrab_0_90],
4546           AC_LINK_IFELSE([AC_LANG_PROGRAM(
4547 [[[
4548 #include <stdio.h>
4549 #include <statgrab.h>
4550 ]]],
4551 [[[
4552       if (sg_init()) return 0;
4553 ]]]
4554     )],
4555     [c_cv_have_libstatgrab_0_90="no"],
4556     [c_cv_have_libstatgrab_0_90="yes"]
4557           )
4558   )
4559
4560   CFLAGS="$SAVE_CFLAGS"
4561   LDFLAGS="$SAVE_LDFLAGS"
4562   LIBS="$SAVE_LIBS"
4563 fi
4564
4565 AM_CONDITIONAL(BUILD_WITH_LIBSTATGRAB, test "x$with_libstatgrab" = "xyes")
4566 if test "x$with_libstatgrab" = "xyes"
4567 then
4568   AC_DEFINE(HAVE_LIBSTATGRAB, 1, [Define to 1 if you have the 'statgrab' library (-lstatgrab)])
4569   BUILD_WITH_LIBSTATGRAB_CFLAGS="$with_libstatgrab_cflags"
4570   BUILD_WITH_LIBSTATGRAB_LDFLAGS="$with_libstatgrab_ldflags"
4571   AC_SUBST(BUILD_WITH_LIBSTATGRAB_CFLAGS)
4572   AC_SUBST(BUILD_WITH_LIBSTATGRAB_LDFLAGS)
4573   if test "x$c_cv_have_libstatgrab_0_90" = "xyes"
4574   then
4575         AC_DEFINE(HAVE_LIBSTATGRAB_0_90, 1, [Define to 1 if libstatgrab version >= 0.90])
4576   fi
4577 fi
4578 # }}}
4579
4580 # --with-libtokyotyrant {{{
4581 with_libtokyotyrant_cppflags=""
4582 with_libtokyotyrant_ldflags=""
4583 with_libtokyotyrant_libs=""
4584 AC_ARG_WITH(libtokyotyrant, [AS_HELP_STRING([--with-libtokyotyrant@<:@=PREFIX@:>@], [Path to libtokyotyrant.])],
4585 [
4586   if test "x$withval" = "xno"
4587   then
4588     with_libtokyotyrant="no"
4589   else if test "x$withval" = "xyes"
4590   then
4591     with_libtokyotyrant="yes"
4592   else
4593     with_libtokyotyrant_cppflags="-I$withval/include"
4594     with_libtokyotyrant_ldflags="-L$withval/include"
4595     with_libtokyotyrant_libs="-ltokyotyrant"
4596     with_libtokyotyrant="yes"
4597   fi; fi
4598 ],
4599 [
4600   with_libtokyotyrant="yes"
4601 ])
4602
4603 if test "x$with_libtokyotyrant" = "xyes"
4604 then
4605   if $PKG_CONFIG --exists tokyotyrant
4606   then
4607     with_libtokyotyrant_cppflags="$with_libtokyotyrant_cppflags `$PKG_CONFIG --cflags tokyotyrant`"
4608     with_libtokyotyrant_ldflags="$with_libtokyotyrant_ldflags `$PKG_CONFIG --libs-only-L tokyotyrant`"
4609     with_libtokyotyrant_libs="$with_libtokyotyrant_libs `$PKG_CONFIG --libs-only-l tokyotyrant`"
4610   fi
4611 fi
4612
4613 SAVE_CPPFLAGS="$CPPFLAGS"
4614 SAVE_LDFLAGS="$LDFLAGS"
4615 CPPFLAGS="$CPPFLAGS $with_libtokyotyrant_cppflags"
4616 LDFLAGS="$LDFLAGS $with_libtokyotyrant_ldflags"
4617
4618 if test "x$with_libtokyotyrant" = "xyes"
4619 then
4620   AC_CHECK_HEADERS(tcrdb.h,
4621   [
4622           AC_DEFINE(HAVE_TCRDB_H, 1,
4623                     [Define to 1 if you have the <tcrdb.h> header file.])
4624   ], [with_libtokyotyrant="no (tcrdb.h not found)"])
4625 fi
4626
4627 if test "x$with_libtokyotyrant" = "xyes"
4628 then
4629   AC_CHECK_LIB(tokyotyrant, tcrdbrnum,
4630   [
4631           AC_DEFINE(HAVE_LIBTOKYOTYRANT, 1,
4632                     [Define to 1 if you have the tokyotyrant library (-ltokyotyrant).])
4633   ],
4634   [with_libtokyotyrant="no (symbol tcrdbrnum not found)"],
4635   [$with_libtokyotyrant_libs])
4636 fi
4637
4638 CPPFLAGS="$SAVE_CPPFLAGS"
4639 LDFLAGS="$SAVE_LDFLAGS"
4640
4641 if test "x$with_libtokyotyrant" = "xyes"
4642 then
4643   BUILD_WITH_LIBTOKYOTYRANT_CPPFLAGS="$with_libtokyotyrant_cppflags"
4644   BUILD_WITH_LIBTOKYOTYRANT_LDFLAGS="$with_libtokyotyrant_ldflags"
4645   BUILD_WITH_LIBTOKYOTYRANT_LIBS="$with_libtokyotyrant_libs"
4646   AC_SUBST(BUILD_WITH_LIBTOKYOTYRANT_CPPFLAGS)
4647   AC_SUBST(BUILD_WITH_LIBTOKYOTYRANT_LDFLAGS)
4648   AC_SUBST(BUILD_WITH_LIBTOKYOTYRANT_LIBS)
4649 fi
4650 AM_CONDITIONAL(BUILD_WITH_LIBTOKYOTYRANT, test "x$with_libtokyotyrant" = "xyes")
4651 # }}}
4652
4653 # --with-libudev {{{
4654 with_libudev_cflags=""
4655 with_libudev_ldflags=""
4656 AC_ARG_WITH(libudev, [AS_HELP_STRING([--with-libudev@<:@=PREFIX@:>@], [Path to libudev.])],
4657 [
4658         if test "x$withval" = "xno"
4659         then
4660                 with_libudev="no"
4661         else
4662                 with_libudev="yes"
4663                 if test "x$withval" != "xyes"
4664                 then
4665                         with_libudev_cflags="-I$withval/include"
4666                         with_libudev_ldflags="-L$withval/lib"
4667                         with_libudev="yes"
4668                 fi
4669         fi
4670 ],
4671 [
4672         if test "x$ac_system" = "xLinux"
4673         then
4674                 with_libudev="yes"
4675         else
4676                 with_libudev="no (Linux only library)"
4677         fi
4678 ])
4679 if test "x$with_libudev" = "xyes"
4680 then
4681         SAVE_CPPFLAGS="$CPPFLAGS"
4682         CPPFLAGS="$CPPFLAGS $with_libudev_cflags"
4683
4684         AC_CHECK_HEADERS(libudev.h, [], [with_libudev="no (libudev.h not found)"])
4685
4686         CPPFLAGS="$SAVE_CPPFLAGS"
4687 fi
4688 if test "x$with_libudev" = "xyes"
4689 then
4690         SAVE_CPPFLAGS="$CPPFLAGS"
4691         SAVE_LDFLAGS="$LDFLAGS"
4692         CPPFLAGS="$CPPFLAGS $with_libudev_cflags"
4693         LDFLAGS="$LDFLAGS $with_libudev_ldflags"
4694
4695         AC_CHECK_LIB(udev, udev_new,
4696         [
4697                 AC_DEFINE(HAVE_LIBUDEV, 1, [Define to 1 if you have the udev library (-ludev).])
4698         ],
4699         [with_libudev="no (libudev not found)"])
4700
4701         CPPFLAGS="$SAVE_CPPFLAGS"
4702         LDFLAGS="$SAVE_LDFLAGS"
4703 fi
4704 if test "x$with_libudev" = "xyes"
4705 then
4706         BUILD_WITH_LIBUDEV_CFLAGS="$with_libudev_cflags"
4707         BUILD_WITH_LIBUDEV_LDFLAGS="$with_libudev_ldflags"
4708         BUILD_WITH_LIBUDEV_LIBS="-ludev"
4709         AC_SUBST(BUILD_WITH_LIBUDEV_CFLAGS)
4710         AC_SUBST(BUILD_WITH_LIBUDEV_LDFLAGS)
4711         AC_SUBST(BUILD_WITH_LIBUDEV_LIBS)
4712 fi
4713 AM_CONDITIONAL(BUILD_WITH_LIBUDEV, test "x$with_libudev" = "xyes")
4714 # }}}
4715
4716 # --with-libupsclient {{{
4717 with_libupsclient_config=""
4718 with_libupsclient_cflags=""
4719 with_libupsclient_libs=""
4720 AC_ARG_WITH(libupsclient, [AS_HELP_STRING([--with-libupsclient@<:@=PREFIX@:>@], [Path to the upsclient library.])],
4721 [
4722         if test "x$withval" = "xno"
4723         then
4724                 with_libupsclient="no"
4725         else if test "x$withval" = "xyes"
4726         then
4727                 with_libupsclient="use_pkgconfig"
4728         else
4729                 if test -x "$withval"
4730                 then
4731                         with_libupsclient_config="$withval"
4732                         with_libupsclient="use_libupsclient_config"
4733                 else if test -x "$withval/bin/libupsclient-config"
4734                 then
4735                         with_libupsclient_config="$withval/bin/libupsclient-config"
4736                         with_libupsclient="use_libupsclient_config"
4737                 else
4738                         AC_MSG_NOTICE([Not checking for libupsclient: Manually configured])
4739                         with_libupsclient_cflags="-I$withval/include"
4740                         with_libupsclient_libs="-L$withval/lib -lupsclient"
4741                         with_libupsclient="yes"
4742                 fi; fi
4743         fi; fi
4744 ],
4745 [with_libupsclient="use_pkgconfig"])
4746
4747 # configure using libupsclient-config
4748 if test "x$with_libupsclient" = "xuse_libupsclient_config"
4749 then
4750         AC_MSG_NOTICE([Checking for libupsclient using $with_libupsclient_config])
4751         with_libupsclient_cflags="`$with_libupsclient_config --cflags`"
4752         if test $? -ne 0
4753         then
4754                 with_libupsclient="no ($with_libupsclient_config failed)"
4755         fi
4756         with_libupsclient_libs="`$with_libupsclient_config --libs`"
4757         if test $? -ne 0
4758         then
4759                 with_libupsclient="no ($with_libupsclient_config failed)"
4760         fi
4761 fi
4762 if test "x$with_libupsclient" = "xuse_libupsclient_config"
4763 then
4764         with_libupsclient="yes"
4765 fi
4766
4767 # configure using pkg-config
4768 if test "x$with_libupsclient" = "xuse_pkgconfig"
4769 then
4770         if test "x$PKG_CONFIG" = "x"
4771         then
4772                 with_libupsclient="no (Don't have pkg-config)"
4773         fi
4774 fi
4775 if test "x$with_libupsclient" = "xuse_pkgconfig"
4776 then
4777         AC_MSG_NOTICE([Checking for libupsclient using $PKG_CONFIG])
4778         $PKG_CONFIG --exists 'libupsclient' 2>/dev/null
4779         if test $? -ne 0
4780         then
4781                 with_libupsclient="no (pkg-config doesn't know libupsclient)"
4782         fi
4783 fi
4784 if test "x$with_libupsclient" = "xuse_pkgconfig"
4785 then
4786         with_libupsclient_cflags="`$PKG_CONFIG --cflags 'libupsclient'`"
4787         if test $? -ne 0
4788         then
4789                 with_libupsclient="no ($PKG_CONFIG failed)"
4790         fi
4791         with_libupsclient_libs="`$PKG_CONFIG --libs 'libupsclient'`"
4792         if test $? -ne 0
4793         then
4794                 with_libupsclient="no ($PKG_CONFIG failed)"
4795         fi
4796 fi
4797 if test "x$with_libupsclient" = "xuse_pkgconfig"
4798 then
4799         with_libupsclient="yes"
4800 fi
4801
4802 # with_libupsclient_cflags and with_libupsclient_libs are set up now, let's do
4803 # the actual checks.
4804 if test "x$with_libupsclient" = "xyes"
4805 then
4806         SAVE_CPPFLAGS="$CPPFLAGS"
4807         CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
4808
4809         AC_CHECK_HEADERS(upsclient.h, [], [with_libupsclient="no (upsclient.h not found)"])
4810
4811         CPPFLAGS="$SAVE_CPPFLAGS"
4812 fi
4813 if test "x$with_libupsclient" = "xyes"
4814 then
4815         SAVE_CPPFLAGS="$CPPFLAGS"
4816         SAVE_LDFLAGS="$LDFLAGS"
4817
4818         CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
4819         LDFLAGS="$LDFLAGS $with_libupsclient_libs"
4820
4821         AC_CHECK_LIB(upsclient, upscli_connect,
4822                      [with_libupsclient="yes"],
4823                      [with_libupsclient="no (symbol upscli_connect not found)"])
4824
4825         CPPFLAGS="$SAVE_CPPFLAGS"
4826         LDFLAGS="$SAVE_LDFLAGS"
4827 fi
4828 if test "x$with_libupsclient" = "xyes"
4829 then
4830         SAVE_CPPFLAGS="$CPPFLAGS"
4831         CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
4832
4833         AC_CHECK_TYPES([UPSCONN_t, UPSCONN], [], [],
4834 [#include <stdlib.h>
4835 #include <stdio.h>
4836 #include <upsclient.h>])
4837
4838         CPPFLAGS="$SAVE_CPPFLAGS"
4839 fi
4840 if test "x$with_libupsclient" = "xyes"
4841 then
4842         BUILD_WITH_LIBUPSCLIENT_CFLAGS="$with_libupsclient_cflags"
4843         BUILD_WITH_LIBUPSCLIENT_LIBS="$with_libupsclient_libs"
4844         AC_SUBST(BUILD_WITH_LIBUPSCLIENT_CFLAGS)
4845         AC_SUBST(BUILD_WITH_LIBUPSCLIENT_LIBS)
4846 fi
4847 # }}}
4848
4849 # --with-libxenctrl {{{
4850 with_libxenctrl_cppflags=""
4851 with_libxenctrl_ldflags=""
4852 AC_ARG_WITH(libxenctrl, [AS_HELP_STRING([--with-libxenctrl@<:@=PREFIX@:>@], [Path to libxenctrl.])],
4853 [
4854         if test "x$withval" != "xno" && test "x$withval" != "xyes"
4855         then
4856                 with_libxenctrl_cppflags="-I$withval/include"
4857                 with_libxenctrl_ldflags="-L$withval/lib"
4858                 with_libxenctrl="yes"
4859         else
4860                 with_libxenctrl="$withval"
4861         fi
4862 ],
4863 [
4864         with_libxenctrl="yes"
4865 ])
4866 if test "x$with_libxenctrl" = "xyes"
4867 then
4868         SAVE_CPPFLAGS="$CPPFLAGS"
4869         CPPFLAGS="$CPPFLAGS $with_libxenctrl_cppflags"
4870
4871         AC_CHECK_HEADERS(xenctrl.h, [with_libxenctrl="yes"], [with_libxenctrl="no (xenctrl.h not found)"])
4872
4873         CPPFLAGS="$SAVE_CPPFLAGS"
4874 fi
4875 if test "x$with_libxenctrl" = "xyes"
4876 then
4877         SAVE_CPPFLAGS="$CPPFLAGS"
4878         SAVE_LDFLAGS="$LDFLAGS"
4879         CPPFLAGS="$CPPFLAGS $with_libxenctrl_cppflags"
4880         LDFLAGS="$LDFLAGS $with_libxenctrl_ldflags"
4881
4882         #Xen versions older than 3.4 has no xc_getcpuinfo()
4883         AC_CHECK_LIB(xenctrl, xc_getcpuinfo, [with_libxenctrl="yes"], [with_libxenctrl="no (symbol 'xc_getcpuinfo' not found)"], [])
4884
4885         CPPFLAGS="$SAVE_CPPFLAGS"
4886         LDFLAGS="$SAVE_LDFLAGS"
4887         LIBXENCTL_CPPFLAGS="$with_libxenctl_cppflags"
4888         LIBXENCTL_LDFLAGS="$with_libxenctl_ldflags"
4889         AC_SUBST(LIBXENCTL_CPPFLAGS)
4890         AC_SUBST(LIBXENCTL_LDFLAGS)
4891 fi
4892 # }}}
4893
4894 # --with-libxmms {{{
4895 with_xmms_config="xmms-config"
4896 with_xmms_cflags=""
4897 with_xmms_libs=""
4898 AC_ARG_WITH(libxmms, [AS_HELP_STRING([--with-libxmms@<:@=PREFIX@:>@], [Path to libxmms.])],
4899 [
4900         if test "x$withval" != "xno" \
4901                 && test "x$withval" != "xyes"
4902         then
4903                 if test -f "$withval" && test -x "$withval";
4904                 then
4905                         with_xmms_config="$withval"
4906                 else if test -x "$withval/bin/xmms-config"
4907                 then
4908                         with_xmms_config="$withval/bin/xmms-config"
4909                 fi; fi
4910                 with_libxmms="yes"
4911         else if test "x$withval" = "xno"
4912         then
4913                 with_libxmms="no"
4914         else
4915                 with_libxmms="yes"
4916         fi; fi
4917 ],
4918 [
4919         with_libxmms="yes"
4920 ])
4921 if test "x$with_libxmms" = "xyes"
4922 then
4923         with_xmms_cflags=`$with_xmms_config --cflags 2>/dev/null`
4924         xmms_config_status=$?
4925
4926         if test $xmms_config_status -ne 0
4927         then
4928                 with_libxmms="no"
4929         fi
4930 fi
4931 if test "x$with_libxmms" = "xyes"
4932 then
4933         with_xmms_libs=`$with_xmms_config --libs 2>/dev/null`
4934         xmms_config_status=$?
4935
4936         if test $xmms_config_status -ne 0
4937         then
4938                 with_libxmms="no"
4939         fi
4940 fi
4941 if test "x$with_libxmms" = "xyes"
4942 then
4943         AC_CHECK_LIB(xmms, xmms_remote_get_info,
4944         [
4945                 BUILD_WITH_LIBXMMS_CFLAGS="$with_xmms_cflags"
4946                 BUILD_WITH_LIBXMMS_LIBS="$with_xmms_libs"
4947                 AC_SUBST(BUILD_WITH_LIBXMMS_CFLAGS)
4948                 AC_SUBST(BUILD_WITH_LIBXMMS_LIBS)
4949         ],
4950         [
4951                 with_libxmms="no"
4952         ],
4953         [$with_xmms_libs])
4954 fi
4955 with_libxmms_numeric=0
4956 if test "x$with_libxmms" = "xyes"
4957 then
4958         with_libxmms_numeric=1
4959 fi
4960 AC_DEFINE_UNQUOTED(HAVE_LIBXMMS, [$with_libxmms_numeric], [Define to 1 if you have the 'xmms' library (-lxmms).])
4961 AM_CONDITIONAL(BUILD_WITH_LIBXMMS, test "x$with_libxmms" = "xyes")
4962 # }}}
4963
4964 # --with-libyajl {{{
4965 with_libyajl_cppflags=""
4966 with_libyajl_ldflags=""
4967 AC_ARG_WITH(libyajl, [AS_HELP_STRING([--with-libyajl@<:@=PREFIX@:>@], [Path to libyajl.])],
4968 [
4969         if test "x$withval" != "xno" && test "x$withval" != "xyes"
4970         then
4971                 with_libyajl_cppflags="-I$withval/include"
4972                 with_libyajl_ldflags="-L$withval/lib"
4973                 with_libyajl="yes"
4974         else
4975                 with_libyajl="$withval"
4976         fi
4977 ],
4978 [
4979         with_libyajl="yes"
4980 ])
4981 if test "x$with_libyajl" = "xyes"
4982 then
4983         SAVE_CPPFLAGS="$CPPFLAGS"
4984         CPPFLAGS="$CPPFLAGS $with_libyajl_cppflags"
4985
4986         AC_CHECK_HEADERS(yajl/yajl_parse.h, [with_libyajl="yes"], [with_libyajl="no (yajl/yajl_parse.h not found)"])
4987         AC_CHECK_HEADERS(yajl/yajl_version.h)
4988
4989         CPPFLAGS="$SAVE_CPPFLAGS"
4990 fi
4991 if test "x$with_libyajl" = "xyes"
4992 then
4993         SAVE_CPPFLAGS="$CPPFLAGS"
4994         SAVE_LDFLAGS="$LDFLAGS"
4995         CPPFLAGS="$CPPFLAGS $with_libyajl_cppflags"
4996         LDFLAGS="$LDFLAGS $with_libyajl_ldflags"
4997
4998         AC_CHECK_LIB(yajl, yajl_alloc, [with_libyajl="yes"], [with_libyajl="no (Symbol 'yajl_alloc' not found)"])
4999
5000         CPPFLAGS="$SAVE_CPPFLAGS"
5001         LDFLAGS="$SAVE_LDFLAGS"
5002 fi
5003 if test "x$with_libyajl" = "xyes"
5004 then
5005         BUILD_WITH_LIBYAJL_CPPFLAGS="$with_libyajl_cppflags"
5006         BUILD_WITH_LIBYAJL_LDFLAGS="$with_libyajl_ldflags"
5007         BUILD_WITH_LIBYAJL_LIBS="-lyajl"
5008         AC_SUBST(BUILD_WITH_LIBYAJL_CPPFLAGS)
5009         AC_SUBST(BUILD_WITH_LIBYAJL_LDFLAGS)
5010         AC_SUBST(BUILD_WITH_LIBYAJL_LIBS)
5011         AC_DEFINE(HAVE_LIBYAJL, 1, [Define if libyajl is present and usable.])
5012 fi
5013 AM_CONDITIONAL(BUILD_WITH_LIBYAJL, test "x$with_libyajl" = "xyes")
5014 # }}}
5015
5016 # --with-mic {{{
5017 with_mic_cflags="-I/opt/intel/mic/sysmgmt/sdk/include"
5018 with_mic_ldpath="-L/opt/intel/mic/sysmgmt/sdk/lib/Linux"
5019 with_mic_libs=""
5020 AC_ARG_WITH(mic,[AS_HELP_STRING([--with-mic@<:@=PREFIX@:>@], [Path to Intel MIC Access API.])],
5021 [
5022         if test "x$withval" = "xno"
5023         then
5024                 with_mic="no"
5025         else if test "x$withval" = "xyes"
5026         then
5027                 with_mic="yes"
5028         else if test -d "$with_mic/lib"
5029         then
5030                 AC_MSG_NOTICE([Not checking for Intel Mic: Manually configured])
5031                 with_mic_cflags="-I$withval/include"
5032                 with_mic_ldpath="-L$withval/lib/Linux"
5033                 with_mic_libs="$PTHREAD_LIBS -lMicAccessSDK -lscif"
5034                 with_mic="yes"
5035         fi; fi; fi
5036 ],
5037 [with_mic="yes"])
5038 if test "x$with_mic" = "xyes"
5039 then
5040         SAVE_CPPFLAGS="$CPPFLAGS"
5041         CPPFLAGS="$CPPFLAGS $with_mic_cflags"
5042         AC_CHECK_HEADERS(MicAccessApi.h,[],[with_mic="no (MicAccessApi not found)"])
5043         CPPFLAGS="$SAVE_CPPFLAGS"
5044 fi
5045 if test "x$with_mic" = "xyes"
5046 then
5047         SAVE_CPPFLAGS="$CPPFLAGS"
5048         SAVE_LDFLAGS="$LDFLAGS"
5049
5050         CPPFLAGS="$CPPFLAGS $with_mic_cflags"
5051         LDFLAGS="$LDFLAGS $with_mic_ldpath"
5052
5053         AC_CHECK_LIB(MicAccessSDK, MicInitAPI,
5054                         [with_mic_ldpath="$with_mic_ldpath"
5055                         with_mic_libs="$PTHREAD_LIBS -lMicAccessSDK -lscif"],
5056                         [with_mic="no (symbol MicInitAPI not found)"],[$PTHREAD_LIBS -lscif])
5057
5058         CPPFLAGS="$SAVE_CPPFLAGS"
5059         LDFLAGS="$SAVE_LDFLAGS"
5060 fi
5061
5062 if test "x$with_mic" = "xyes"
5063 then
5064         BUILD_WITH_MIC_CPPFLAGS="$with_mic_cflags"
5065         BUILD_WITH_MIC_LIBPATH="$with_mic_ldpath"
5066         BUILD_WITH_MIC_LDADD="$with_mic_libs"
5067         AC_SUBST(BUILD_WITH_MIC_CPPFLAGS)
5068         AC_SUBST(BUILD_WITH_MIC_LIBPATH)
5069         AC_SUBST(BUILD_WITH_MIC_LDADD)
5070 fi
5071 #}}}
5072
5073 # --with-libvarnish {{{
5074 with_libvarnish_cppflags=""
5075 with_libvarnish_cflags=""
5076 with_libvarnish_libs=""
5077 AC_ARG_WITH(libvarnish, [AS_HELP_STRING([--with-libvarnish@<:@=PREFIX@:>@], [Path to libvarnish.])],
5078 [
5079         if test "x$withval" = "xno"
5080         then
5081                 with_libvarnish="no"
5082         else if test "x$withval" = "xyes"
5083         then
5084                 with_libvarnish="use_pkgconfig"
5085         else if test -d "$with_libvarnish/lib"
5086         then
5087                 AC_MSG_NOTICE([Not checking for libvarnish: Manually configured])
5088                 with_libvarnish_cflags="-I$withval/include"
5089                 with_libvarnish_libs="-L$withval/lib -lvarnishapi"
5090                 with_libvarnish="yes"
5091         fi; fi; fi
5092 ],
5093 [with_libvarnish="use_pkgconfig"])
5094
5095 # configure using pkg-config
5096 if test "x$with_libvarnish" = "xuse_pkgconfig"
5097 then
5098         if test "x$PKG_CONFIG" = "x"
5099         then
5100                 with_libvarnish="no (Don't have pkg-config)"
5101         fi
5102 fi
5103 if test "x$with_libvarnish" = "xuse_pkgconfig"
5104 then
5105         AC_MSG_NOTICE([Checking for varnishapi using $PKG_CONFIG])
5106         $PKG_CONFIG --exists 'varnishapi' 2>/dev/null
5107         if test $? -ne 0
5108         then
5109                 with_libvarnish="no (pkg-config doesn't know varnishapi)"
5110         fi
5111 fi
5112 if test "x$with_libvarnish" = "xuse_pkgconfig"
5113 then
5114         with_libvarnish_cflags="`$PKG_CONFIG --cflags 'varnishapi'`"
5115         if test $? -ne 0
5116         then
5117                 with_libvarnish="no ($PKG_CONFIG failed)"
5118         fi
5119         with_libvarnish_libs="`$PKG_CONFIG --libs 'varnishapi'`"
5120         if test $? -ne 0
5121         then
5122                 with_libvarnish="no ($PKG_CONFIG failed)"
5123         fi
5124 fi
5125 if test "x$with_libvarnish" = "xuse_pkgconfig"
5126 then
5127         with_libvarnish="yes"
5128 fi
5129
5130 # with_libvarnish_cflags and with_libvarnish_libs are set up now, let's do
5131 # the actual checks.
5132 if test "x$with_libvarnish" = "xyes"
5133 then
5134         SAVE_CPPFLAGS="$CPPFLAGS"
5135
5136         CPPFLAGS="$CPPFLAGS $with_libvarnish_cflags"
5137
5138         AC_CHECK_HEADERS(vapi/vsc.h,
5139                 [AC_DEFINE([HAVE_VARNISH_V4], [1], [Varnish 4 API support])],
5140                 [AC_CHECK_HEADERS(vsc.h,
5141                         [AC_DEFINE([HAVE_VARNISH_V3], [1], [Varnish 3 API support])],
5142                         [AC_CHECK_HEADERS(varnishapi.h,
5143                                 [AC_DEFINE([HAVE_VARNISH_V2], [1], [Varnish 2 API support])],
5144                                 [with_libvarnish="no (found none of the varnish header files)"])])])
5145
5146         CPPFLAGS="$SAVE_CPPFLAGS"
5147 fi
5148 if test "x$with_libvarnish" = "xyes"
5149 then
5150         BUILD_WITH_LIBVARNISH_CFLAGS="$with_libvarnish_cflags"
5151         BUILD_WITH_LIBVARNISH_LIBS="$with_libvarnish_libs"
5152         AC_SUBST(BUILD_WITH_LIBVARNISH_CFLAGS)
5153         AC_SUBST(BUILD_WITH_LIBVARNISH_LIBS)
5154 fi
5155 # }}}
5156
5157 # pkg-config --exists 'libxml-2.0'; pkg-config --exists libvirt {{{
5158 with_libxml2="no (pkg-config isn't available)"
5159 with_libxml2_cflags=""
5160 with_libxml2_ldflags=""
5161 with_libvirt="no (pkg-config isn't available)"
5162 with_libvirt_cflags=""
5163 with_libvirt_ldflags=""
5164 if test "x$PKG_CONFIG" != "x"
5165 then
5166         $PKG_CONFIG --exists 'libxml-2.0' 2>/dev/null
5167         if test "$?" = "0"
5168         then
5169                 with_libxml2="yes"
5170         else
5171                 with_libxml2="no (pkg-config doesn't know libxml-2.0)"
5172         fi
5173
5174         $PKG_CONFIG --exists libvirt 2>/dev/null
5175         if test "$?" = "0"
5176         then
5177                 with_libvirt="yes"
5178         else
5179                 with_libvirt="no (pkg-config doesn't know libvirt)"
5180         fi
5181 fi
5182 if test "x$with_libxml2" = "xyes"
5183 then
5184         with_libxml2_cflags="`$PKG_CONFIG --cflags libxml-2.0`"
5185         if test $? -ne 0
5186         then
5187                 with_libxml2="no"
5188         fi
5189         with_libxml2_ldflags="`$PKG_CONFIG --libs libxml-2.0`"
5190         if test $? -ne 0
5191         then
5192                 with_libxml2="no"
5193         fi
5194 fi
5195 if test "x$with_libxml2" = "xyes"
5196 then
5197         SAVE_CPPFLAGS="$CPPFLAGS"
5198         CPPFLAGS="$CPPFLAGS $with_libxml2_cflags"
5199
5200         AC_CHECK_HEADERS(libxml/parser.h, [],
5201                       [with_libxml2="no (libxml/parser.h not found)"])
5202
5203         CPPFLAGS="$SAVE_CPPFLAGS"
5204 fi
5205 if test "x$with_libxml2" = "xyes"
5206 then
5207         SAVE_CFLAGS="$CFLAGS"
5208         SAVE_LDFLAGS="$LDFLAGS"
5209
5210         CFLAGS="$CFLAGS $with_libxml2_cflags"
5211         LDFLAGS="$LDFLAGS $with_libxml2_ldflags"
5212
5213         AC_CHECK_LIB(xml2, xmlXPathEval,
5214                      [with_libxml2="yes"],
5215                      [with_libxml2="no (symbol xmlXPathEval not found)"])
5216
5217         CFLAGS="$SAVE_CFLAGS"
5218         LDFLAGS="$SAVE_LDFLAGS"
5219 fi
5220 dnl Add the right compiler flags and libraries.
5221 if test "x$with_libxml2" = "xyes"; then
5222         BUILD_WITH_LIBXML2_CFLAGS="$with_libxml2_cflags"
5223         BUILD_WITH_LIBXML2_LIBS="$with_libxml2_ldflags"
5224         AC_SUBST(BUILD_WITH_LIBXML2_CFLAGS)
5225         AC_SUBST(BUILD_WITH_LIBXML2_LIBS)
5226 fi
5227 if test "x$with_libvirt" = "xyes"
5228 then
5229         with_libvirt_cflags="`$PKG_CONFIG --cflags libvirt`"
5230         if test $? -ne 0
5231         then
5232                 with_libvirt="no"
5233         fi
5234         with_libvirt_ldflags="`$PKG_CONFIG --libs libvirt`"
5235         if test $? -ne 0
5236         then
5237                 with_libvirt="no"
5238         fi
5239 fi
5240 if test "x$with_libvirt" = "xyes"
5241 then
5242         SAVE_CPPFLAGS="$CPPFLAGS"
5243         CPPFLAGS="$CPPFLAGS $with_libvirt_cflags"
5244
5245         AC_CHECK_HEADERS(libvirt/libvirt.h, [],
5246                       [with_libvirt="no (libvirt/libvirt.h not found)"])
5247
5248         CPPFLAGS="$SAVE_CPPFLAGS"
5249 fi
5250 if test "x$with_libvirt" = "xyes"
5251 then
5252         SAVE_CFLAGS="$CFLAGS"
5253         SAVE_LDFLAGS="$LDFLAGS"
5254
5255         CFLAGS="$CFLAGS $with_libvirt_cflags"
5256         LDFLAGS="$LDFLAGS $with_libvirt_ldflags"
5257
5258         AC_CHECK_LIB(virt, virDomainBlockStats,
5259                      [with_libvirt="yes"],
5260                      [with_libvirt="no (symbol virDomainBlockStats not found)"])
5261
5262         CFLAGS="$SAVE_CFLAGS"
5263         LDFLAGS="$SAVE_LDFLAGS"
5264 fi
5265 dnl Add the right compiler flags and libraries.
5266 if test "x$with_libvirt" = "xyes"; then
5267         BUILD_WITH_LIBVIRT_CFLAGS="$with_libvirt_cflags"
5268         BUILD_WITH_LIBVIRT_LIBS="$with_libvirt_ldflags"
5269         AC_SUBST(BUILD_WITH_LIBVIRT_CFLAGS)
5270         AC_SUBST(BUILD_WITH_LIBVIRT_LIBS)
5271 fi
5272 # }}}
5273
5274 # $PKG_CONFIG --exists OpenIPMIpthread {{{
5275 with_libopenipmipthread="yes"
5276 with_libopenipmipthread_cflags=""
5277 with_libopenipmipthread_libs=""
5278
5279 AC_MSG_CHECKING([for pkg-config])
5280 temp_result="no"
5281 if test "x$PKG_CONFIG" = "x"
5282 then
5283         with_libopenipmipthread="no"
5284         temp_result="no"
5285 else
5286         temp_result="$PKG_CONFIG"
5287 fi
5288 AC_MSG_RESULT([$temp_result])
5289
5290 if test "x$with_libopenipmipthread" = "xyes"
5291 then
5292         AC_MSG_CHECKING([for libOpenIPMIpthread])
5293         $PKG_CONFIG --exists OpenIPMIpthread 2>/dev/null
5294         if test "$?" != "0"
5295         then
5296                 with_libopenipmipthread="no (pkg-config doesn't know OpenIPMIpthread)"
5297         fi
5298         AC_MSG_RESULT([$with_libopenipmipthread])
5299 fi
5300
5301 if test "x$with_libopenipmipthread" = "xyes"
5302 then
5303         AC_MSG_CHECKING([for libOpenIPMIpthread CFLAGS])
5304         temp_result="`$PKG_CONFIG --cflags OpenIPMIpthread`"
5305         if test "$?" = "0"
5306         then
5307                 with_libopenipmipthread_cflags="$temp_result"
5308         else
5309                 with_libopenipmipthread="no ($PKG_CONFIG --cflags OpenIPMIpthread failed)"
5310                 temp_result="$PKG_CONFIG --cflags OpenIPMIpthread failed"
5311         fi
5312         AC_MSG_RESULT([$temp_result])
5313 fi
5314
5315 if test "x$with_libopenipmipthread" = "xyes"
5316 then
5317         AC_MSG_CHECKING([for libOpenIPMIpthread LDFLAGS])
5318         temp_result="`$PKG_CONFIG --libs OpenIPMIpthread`"
5319         if test "$?" = "0"
5320         then
5321                 with_libopenipmipthread_ldflags="$temp_result"
5322         else
5323                 with_libopenipmipthread="no ($PKG_CONFIG --libs OpenIPMIpthread failed)"
5324                 temp_result="$PKG_CONFIG --libs OpenIPMIpthread failed"
5325         fi
5326         AC_MSG_RESULT([$temp_result])
5327 fi
5328
5329 if test "x$with_libopenipmipthread" = "xyes"
5330 then
5331         SAVE_CPPFLAGS="$CPPFLAGS"
5332         CPPFLAGS="$CPPFLAGS $with_libopenipmipthread_cflags"
5333
5334         AC_CHECK_HEADERS(OpenIPMI/ipmi_smi.h,
5335                          [with_libopenipmipthread="yes"],
5336                          [with_libopenipmipthread="no (OpenIPMI/ipmi_smi.h not found)"],
5337 [#include <OpenIPMI/ipmiif.h>
5338 #include <OpenIPMI/ipmi_err.h>
5339 #include <OpenIPMI/ipmi_posix.h>
5340 #include <OpenIPMI/ipmi_conn.h>
5341 ])
5342
5343         CPPFLAGS="$SAVE_CPPFLAGS"
5344 fi
5345
5346 if test "x$with_libopenipmipthread" = "xyes"
5347 then
5348         BUILD_WITH_OPENIPMI_CFLAGS="$with_libopenipmipthread_cflags"
5349         BUILD_WITH_OPENIPMI_LIBS="$with_libopenipmipthread_ldflags"
5350         AC_SUBST(BUILD_WITH_OPENIPMI_CFLAGS)
5351         AC_SUBST(BUILD_WITH_OPENIPMI_LIBS)
5352 fi
5353 # }}}
5354
5355 # --with-libatasmart {{{
5356 with_libatasmart_cppflags=""
5357 with_libatasmart_ldflags=""
5358 AC_ARG_WITH(libatasmart, [AS_HELP_STRING([--with-libatasmart@<:@=PREFIX@:>@], [Path to libatasmart.])],
5359 [
5360         if test "x$withval" != "xno" && test "x$withval" != "xyes"
5361         then
5362                 with_libatasmart_cppflags="-I$withval/include"
5363                 with_libatasmart_ldflags="-L$withval/lib"
5364                 with_libatasmart="yes"
5365         else
5366                 with_libatasmart="$withval"
5367         fi
5368 ],
5369 [
5370         if test "x$ac_system" = "xLinux"
5371         then
5372                 with_libatasmart="yes"
5373         else
5374                 with_libatasmart="no (Linux only library)"
5375         fi
5376 ])
5377 if test "x$with_libatasmart" = "xyes"
5378 then
5379         SAVE_CPPFLAGS="$CPPFLAGS"
5380         CPPFLAGS="$CPPFLAGS $with_libatasmart_cppflags"
5381
5382         AC_CHECK_HEADERS(atasmart.h, [with_libatasmart="yes"], [with_libatasmart="no (atasmart.h not found)"])
5383
5384         CPPFLAGS="$SAVE_CPPFLAGS"
5385 fi
5386 if test "x$with_libatasmart" = "xyes"
5387 then
5388         SAVE_CPPFLAGS="$CPPFLAGS"
5389         SAVE_LDFLAGS="$LDFLAGS"
5390         CPPFLAGS="$CPPFLAGS $with_libatasmart_cppflags"
5391         LDFLAGS="$LDFLAGS $with_libatasmart_ldflags"
5392
5393         AC_CHECK_LIB(atasmart, sk_disk_open, [with_libatasmart="yes"], [with_libatasmart="no (Symbol 'sk_disk_open' not found)"])
5394
5395         CPPFLAGS="$SAVE_CPPFLAGS"
5396         LDFLAGS="$SAVE_LDFLAGS"
5397 fi
5398 if test "x$with_libatasmart" = "xyes"
5399 then
5400         BUILD_WITH_LIBATASMART_CPPFLAGS="$with_libatasmart_cppflags"
5401         BUILD_WITH_LIBATASMART_LDFLAGS="$with_libatasmart_ldflags"
5402         BUILD_WITH_LIBATASMART_LIBS="-latasmart"
5403         AC_SUBST(BUILD_WITH_LIBATASMART_CPPFLAGS)
5404         AC_SUBST(BUILD_WITH_LIBATASMART_LDFLAGS)
5405         AC_SUBST(BUILD_WITH_LIBATASMART_LIBS)
5406         AC_DEFINE(HAVE_LIBATASMART, 1, [Define if libatasmart is present and usable.])
5407 fi
5408 AM_CONDITIONAL(BUILD_WITH_LIBATASMART, test "x$with_libatasmart" = "xyes")
5409 # }}}
5410
5411 PKG_CHECK_MODULES([LIBNOTIFY], [libnotify],
5412                 [with_libnotify="yes"],
5413                 [with_libnotify="no (pkg-config doesn't know libnotify)"]
5414 )
5415
5416 PKG_CHECK_MODULES([LIBRIEMANN_CLIENT], [riemann-client >= 1.8.0],
5417  [with_libriemann_client="yes"],
5418  [with_libriemann_client="no (pkg-config doesn't know libriemann-client)"])
5419
5420 # Check for enabled/disabled features
5421 #
5422
5423 # AC_COLLECTD(name, enable/disable, info-text, feature/module)
5424 # ------------------------------------------------------------
5425 dnl
5426 m4_define([my_toupper], [m4_translit([$1], m4_defn([m4_cr_letters]), m4_defn([m4_cr_LETTERS]))])
5427 dnl
5428 AC_DEFUN(
5429         [AC_COLLECTD],
5430         [
5431         m4_if([$1], [], [AC_FATAL([AC_COLLECTD([$1], [$2], [$3], [$4]): 1st argument must not be empty])])dnl
5432         m4_if(
5433                 [$2],
5434                 [enable],
5435                 [dnl
5436                 m4_define([EnDis],[disabled])dnl
5437                 m4_define([YesNo],[no])dnl
5438                 ],dnl
5439                 [m4_if(
5440                         [$2],
5441                         [disable],
5442                         [dnl
5443                         m4_define([EnDis],[enabled])dnl
5444                         m4_define([YesNo],[yes])dnl
5445                         ],
5446                         [dnl
5447                         AC_FATAL([AC_COLLECTD([$1], [$2], [$3], [$4]): 2nd argument must be either enable or disable])dnl
5448                         ]dnl
5449                 )]dnl
5450         )dnl
5451         m4_if([$3], [feature], [],
5452                 [m4_if(
5453                         [$3], [module], [],
5454                         [dnl
5455                         AC_FATAL([AC_COLLECTD([$1], [$2], [$3], [$4]): 3rd argument must be either feature or disable])dnl
5456                         ]dnl
5457                 )]dnl
5458         )dnl
5459         AC_ARG_ENABLE(
5460                 [$1],
5461                 AS_HELP_STRING([--$2-$1], [$2 $4 (EnDis by def)]),
5462                 [],
5463                 enable_$1='[YesNo]'dnl
5464         )# AC_ARG_ENABLE
5465 if test "x$enable_$1" = "xno"
5466 then
5467         collectd_$1=0
5468 else
5469         if test "x$enable_$1" = "xyes"
5470         then
5471                 collectd_$1=1
5472         else
5473                 AC_MSG_NOTICE([please specify either --enable-$1 or --disable-$1; enabling $1.])
5474                 collectd_$1=1
5475                 enable_$1='yes'
5476         fi
5477 fi
5478         AC_DEFINE_UNQUOTED([COLLECT_]my_toupper([$1]), [$collectd_$1], [wether or not to enable $3 $4])
5479         AM_CONDITIONAL([BUILD_]my_toupper([$3])[_]my_toupper([$1]), [test "x$enable_$1" = "xyes"])dnl
5480         ]dnl
5481 )# AC_COLLECTD(name, enable/disable, info-text, feature/module)
5482
5483 # AC_PLUGIN(name, default, info)
5484 # ------------------------------------------------------------
5485 dnl
5486 AC_DEFUN(
5487   [AC_PLUGIN],
5488   [
5489     enable_plugin="no"
5490     force="no"
5491     AC_ARG_ENABLE([$1], AS_HELP_STRING([--enable-$1],[$3]),
5492     [
5493      if test "x$enableval" = "xyes"
5494      then
5495              enable_plugin="yes"
5496      else if test "x$enableval" = "xforce"
5497      then
5498              enable_plugin="yes"
5499              force="yes"
5500      else
5501              enable_plugin="no (disabled on command line)"
5502      fi; fi
5503     ],
5504     [
5505          if test "x$enable_all_plugins" = "xauto"
5506          then
5507              if test "x$2" = "xyes"
5508              then
5509                      enable_plugin="yes"
5510              else
5511                      enable_plugin="$2"
5512              fi
5513          else
5514              enable_plugin="$enable_all_plugins"
5515          fi
5516     ])
5517     if test "x$enable_plugin" = "xyes"
5518     then
5519             if test "x$2" = "xyes" || test "x$force" = "xyes"
5520             then
5521                     AC_DEFINE([HAVE_PLUGIN_]my_toupper([$1]), 1, [Define to 1 if the $1 plugin is enabled.])
5522                     if test "x$2" != "xyes"
5523                     then
5524                             dependency_warning="yes"
5525                     fi
5526             else # User passed "yes" but dependency checking yielded "no" => Dependency problem.
5527                     dependency_error="yes"
5528                     enable_plugin="$2 (dependency error)"
5529             fi
5530     fi
5531     AM_CONDITIONAL([BUILD_PLUGIN_]my_toupper([$1]), test "x$enable_plugin" = "xyes")
5532     enable_$1="$enable_plugin"
5533   ]
5534 )# AC_PLUGIN(name, default, info)
5535
5536 m4_divert_once([HELP_ENABLE], [
5537 collectd features:])
5538 # FIXME: Remove these calls to `AC_COLLECTD' and then remove that macro.
5539 AC_COLLECTD([debug],     [enable],  [feature], [debugging])
5540 AC_COLLECTD([daemon],    [disable], [feature], [daemon mode])
5541 AC_COLLECTD([getifaddrs],[enable],  [feature], [getifaddrs under Linux])
5542 AC_COLLECTD([werror],    [disable], [feature], [building with -Werror])
5543
5544 dependency_warning="no"
5545 dependency_error="no"
5546
5547 plugin_ascent="no"
5548 plugin_barometer="no"
5549 plugin_battery="no"
5550 plugin_bind="no"
5551 plugin_ceph="no"
5552 plugin_cgroups="no"
5553 plugin_conntrack="no"
5554 plugin_contextswitch="no"
5555 plugin_cpu="no"
5556 plugin_cpufreq="no"
5557 plugin_cpusleep="no"
5558 plugin_curl_json="no"
5559 plugin_curl_xml="no"
5560 plugin_df="no"
5561 plugin_disk="no"
5562 plugin_drbd="no"
5563 plugin_entropy="no"
5564 plugin_ethstat="no"
5565 plugin_fhcount="no"
5566 plugin_fscache="no"
5567 plugin_interface="no"
5568 plugin_ipmi="no"
5569 plugin_ipvs="no"
5570 plugin_irq="no"
5571 plugin_load="no"
5572 plugin_log_logstash="no"
5573 plugin_memory="no"
5574 plugin_multimeter="no"
5575 plugin_nfs="no"
5576 plugin_numa="no"
5577 plugin_perl="no"
5578 plugin_processes="no"
5579 plugin_protocols="no"
5580 plugin_serial="no"
5581 plugin_smart="no"
5582 plugin_swap="no"
5583 plugin_tape="no"
5584 plugin_tcpconns="no"
5585 plugin_ted="no"
5586 plugin_thermal="no"
5587 plugin_turbostat="no"
5588 plugin_uptime="no"
5589 plugin_users="no"
5590 plugin_virt="no"
5591 plugin_vmem="no"
5592 plugin_vserver="no"
5593 plugin_wireless="no"
5594 plugin_xencpu="no"
5595 plugin_zfs_arc="no"
5596 plugin_zone="no"
5597 plugin_zookeeper="no"
5598
5599 # Linux
5600 if test "x$ac_system" = "xLinux"
5601 then
5602         plugin_battery="yes"
5603         plugin_cgroups="yes"
5604         plugin_conntrack="yes"
5605         plugin_contextswitch="yes"
5606         plugin_cpu="yes"
5607         plugin_cpufreq="yes"
5608         plugin_disk="yes"
5609         plugin_drbd="yes"
5610         plugin_entropy="yes"
5611         plugin_fhcount="yes"
5612         plugin_fscache="yes"
5613         plugin_interface="yes"
5614         plugin_ipc="yes"
5615         plugin_irq="yes"
5616         plugin_load="yes"
5617         plugin_lvm="yes"
5618         plugin_memory="yes"
5619         plugin_nfs="yes"
5620         plugin_numa="yes"
5621         plugin_processes="yes"
5622         plugin_protocols="yes"
5623         plugin_serial="yes"
5624         plugin_swap="yes"
5625         plugin_tcpconns="yes"
5626         plugin_thermal="yes"
5627         plugin_uptime="yes"
5628         plugin_vmem="yes"
5629         plugin_vserver="yes"
5630         plugin_wireless="yes"
5631         plugin_zfs_arc="yes"
5632
5633         if test "x$have_linux_ip_vs_h" = "xyes" || test "x$have_net_ip_vs_h" = "xyes" || test "x$have_ip_vs_h" = "xyes"
5634         then
5635                 plugin_ipvs="yes"
5636         fi
5637         if test "x$c_cv_have_usable_asm_msrindex_h" = "xyes" && test "x$have_cpuid_h" = "xyes"
5638         then
5639                 plugin_turbostat="yes"
5640         fi
5641         
5642         if test "x$c_cv_have_clock_boottime_monotonic" = "xyes"
5643         then
5644                 plugin_cpusleep="yes"
5645         fi
5646 fi
5647
5648 if test "x$ac_system" = "xOpenBSD"
5649 then
5650         plugin_tcpconns="yes"
5651 fi
5652
5653 if test "x$ac_system" = "xNetBSD"
5654 then
5655         plugin_disk="yes"
5656         plugin_entropy="yes"
5657         plugin_irq="yes"
5658         plugin_processes="yes"
5659 fi
5660
5661 # Mac OS X devices
5662 if test "x$with_libiokit" = "xyes"
5663 then
5664         plugin_battery="yes"
5665         plugin_disk="yes"
5666 fi
5667
5668 # AIX
5669
5670 if test "x$ac_system" = "xAIX"
5671 then
5672         plugin_ipc="yes"
5673         plugin_tcpconns="yes"
5674 fi
5675
5676 # FreeBSD
5677
5678 if test "x$ac_system" = "xFreeBSD"
5679 then
5680         plugin_disk="yes"
5681         plugin_zfs_arc="yes"
5682 fi
5683
5684
5685 if test "x$with_perfstat" = "xyes"
5686 then
5687         plugin_contextswitch="yes"
5688         plugin_cpu="yes"
5689         plugin_disk="yes"
5690         plugin_interface="yes"
5691         plugin_load="yes"
5692         plugin_memory="yes"
5693         plugin_swap="yes"
5694         plugin_uptime="yes"
5695 fi
5696
5697 if test "x$with_procinfo" = "xyes"
5698 then
5699         plugin_processes="yes"
5700 fi
5701
5702 # Solaris
5703 if test "x$with_kstat" = "xyes"
5704 then
5705         plugin_nfs="yes"
5706         plugin_processes="yes"
5707         plugin_uptime="yes"
5708         plugin_zfs_arc="yes"
5709         plugin_zone="yes"
5710 fi
5711
5712 if test "x$with_devinfo$with_kstat" = "xyesyes"
5713 then
5714         plugin_cpu="yes"
5715         plugin_disk="yes"
5716         plugin_interface="yes"
5717         plugin_memory="yes"
5718         plugin_tape="yes"
5719 fi
5720
5721 # libi2c-dev
5722 if test "x$ac_system" = "xLinux"
5723 then
5724 AC_CHECK_DECL(i2c_smbus_read_i2c_block_data,
5725         [with_libi2c="yes"],
5726         [with_libi2c="no (symbol i2c_smbus_read_i2c_block_data not found - have you installed libi2c-dev ?)"],
5727         [[#include <stdlib.h>
5728         #include <linux/i2c-dev.h>]])
5729 else
5730         with_libi2c="no (Linux only)"
5731 fi
5732
5733 if test "x$with_libi2c" = "xyes"
5734 then
5735         plugin_barometer="yes"
5736 fi
5737
5738
5739 # libstatgrab
5740 if test "x$with_libstatgrab" = "xyes"
5741 then
5742         plugin_cpu="yes"
5743         plugin_disk="yes"
5744         plugin_interface="yes"
5745         plugin_load="yes"
5746         plugin_memory="yes"
5747         plugin_swap="yes"
5748         plugin_users="yes"
5749 fi
5750
5751 if test "x$with_libcurl" = "xyes" && test "x$with_libxml2" = "xyes"
5752 then
5753         plugin_ascent="yes"
5754         if test "x$have_strptime" = "xyes"
5755         then
5756                 plugin_bind="yes"
5757         fi
5758 fi
5759
5760 if test "x$with_libopenipmipthread" = "xyes"
5761 then
5762         plugin_ipmi="yes"
5763 fi
5764
5765 if test "x$with_libcurl" = "xyes" && test "x$with_libyajl" = "xyes"
5766 then
5767         plugin_curl_json="yes"
5768 fi
5769
5770 if test "x$with_libcurl" = "xyes" && test "x$with_libxml2" = "xyes"
5771 then
5772         plugin_curl_xml="yes"
5773 fi
5774
5775 if test "x$with_libyajl" = "xyes"
5776 then
5777         plugin_ceph="yes"
5778 fi
5779
5780 if test "x$have_processor_info" = "xyes"
5781 then
5782         plugin_cpu="yes"
5783 fi
5784 if test "x$have_sysctl" = "xyes"
5785 then
5786         plugin_cpu="yes"
5787         plugin_memory="yes"
5788         plugin_uptime="yes"
5789         if test "x$ac_system" = "xDarwin"
5790         then
5791                 plugin_swap="yes"
5792         fi
5793 fi
5794 if test "x$have_sysctlbyname" = "xyes"
5795 then
5796         plugin_contextswitch="yes"
5797         plugin_cpu="yes"
5798         plugin_memory="yes"
5799         plugin_tcpconns="yes"
5800 fi
5801
5802 # Df plugin: Check if we know how to determine mount points first.
5803 #if test "x$have_listmntent" = "xyes"; then
5804 #       plugin_df="yes"
5805 #fi
5806 if test "x$have_getvfsstat" = "xyes" || test "x$have_getfsstat" = "xyes"
5807 then
5808         plugin_df="yes"
5809 fi
5810 if test "x$c_cv_have_two_getmntent" = "xyes" || test "x$have_getmntent" = "xgen" || test "x$have_getmntent" = "xsun"
5811 then
5812         plugin_df="yes"
5813 fi
5814 #if test "x$have_getmntent" = "xseq"
5815 #then
5816 #       plugin_df="yes"
5817 #fi
5818 if test "x$c_cv_have_one_getmntent" = "xyes"
5819 then
5820         plugin_df="yes"
5821 fi
5822
5823 if test "x$c_cv_have_getmntent_r" = "xyes"
5824 then
5825         plugin_df="yes"
5826 fi
5827
5828 # Df plugin: Check if we have either `statfs' or `statvfs' second.
5829 if test "x$plugin_df" = "xyes"
5830 then
5831         plugin_df="no"
5832         if test "x$have_statfs" = "xyes"
5833         then
5834                 plugin_df="yes"
5835         fi
5836         if test "x$have_statvfs" = "xyes"
5837         then
5838                 plugin_df="yes"
5839         fi
5840 fi
5841
5842 if test "x$have_linux_sockios_h$have_linux_ethtool_h" = "xyesyes"
5843 then
5844         plugin_ethstat="yes"
5845 fi
5846
5847 if test "x$have_getifaddrs" = "xyes"
5848 then
5849         plugin_interface="yes"
5850 fi
5851
5852 if test "x$have_getloadavg" = "xyes"
5853 then
5854         plugin_load="yes"
5855 fi
5856
5857 if test "x$with_libyajl" = "xyes"
5858 then
5859         plugin_log_logstash="yes"
5860 fi
5861
5862 if test "x$c_cv_have_libperl$c_cv_have_perl_ithreads" = "xyesyes"
5863 then
5864         plugin_perl="yes"
5865 fi
5866
5867 # Mac OS X memory interface
5868 if test "x$have_host_statistics" = "xyes"
5869 then
5870         plugin_memory="yes"
5871 fi
5872
5873 if test "x$have_termios_h" = "xyes"
5874 then
5875         if test "x$ac_system" != "xAIX"
5876         then
5877                 plugin_multimeter="yes"
5878         fi
5879         plugin_ted="yes"
5880 fi
5881
5882 if test "x$have_thread_info" = "xyes"
5883 then
5884         plugin_processes="yes"
5885 fi
5886
5887 if test "x$with_kvm_getprocs" = "xyes" && test "x$have_struct_kinfo_proc_freebsd" = "xyes"
5888 then
5889         plugin_processes="yes"
5890 fi
5891
5892 if test "x$with_kvm_getprocs" = "xyes" && test "x$have_struct_kinfo_proc_openbsd" = "xyes"
5893 then
5894         plugin_processes="yes"
5895 fi
5896
5897 if test "x$with_libatasmart" = "xyes" && test "x$with_libudev" = "xyes"
5898 then
5899         plugin_smart="yes"
5900 fi
5901
5902 if test "x$with_kvm_getswapinfo" = "xyes"
5903 then
5904         plugin_swap="yes"
5905 fi
5906
5907 if test "x$have_swapctl" = "xyes" && test "x$c_cv_have_swapctl_two_args" = "xyes"
5908 then
5909         plugin_swap="yes"
5910 fi
5911
5912 if test "x$have_swapctl" = "xyes" && test "x$c_cv_have_swapctl_three_args" = "xyes"
5913 then
5914         plugin_swap="yes"
5915 fi
5916
5917 if test "x$with_kvm_openfiles$with_kvm_nlist" = "xyesyes"
5918 then
5919         plugin_tcpconns="yes"
5920 fi
5921
5922 if test "x$have_getutent" = "xyes"
5923 then
5924         plugin_users="yes"
5925 fi
5926 if test "x$have_getutxent" = "xyes"
5927 then
5928         plugin_users="yes"
5929 fi
5930
5931 if test "x$with_libxml2" = "xyes" && test "x$with_libvirt" = "xyes"
5932 then
5933         plugin_virt="yes"
5934 fi
5935
5936 if test "x$with_libxenctrl" = "xyes"
5937 then
5938   plugin_xencpu="yes"
5939 fi
5940
5941 m4_divert_once([HELP_ENABLE], [
5942 collectd plugins:])
5943
5944 AC_ARG_ENABLE([all-plugins],
5945                 AS_HELP_STRING([--enable-all-plugins],[enable all plugins (auto by def)]),
5946                 [
5947                  if test "x$enableval" = "xyes"
5948                  then
5949                          enable_all_plugins="yes"
5950                  else if test "x$enableval" = "xauto"
5951                  then
5952                          enable_all_plugins="auto"
5953                  else
5954                          enable_all_plugins="no"
5955                  fi; fi
5956                 ],
5957                 [enable_all_plugins="auto"])
5958
5959 m4_divert_once([HELP_ENABLE], [])
5960
5961 AC_PLUGIN([aggregation],         [yes],                     [Aggregation plugin])
5962 AC_PLUGIN([amqp],                [$with_librabbitmq],       [AMQP output plugin])
5963 AC_PLUGIN([apache],              [$with_libcurl],           [Apache httpd statistics])
5964 AC_PLUGIN([apcups],              [yes],                     [Statistics of UPSes by APC])
5965 AC_PLUGIN([apple_sensors],       [$with_libiokit],          [Apple hardware sensors])
5966 AC_PLUGIN([aquaero],             [$with_libaquaero5],       [Aquaero hardware sensors])
5967 AC_PLUGIN([ascent],              [$plugin_ascent],          [AscentEmu player statistics])
5968 AC_PLUGIN([barometer],           [$plugin_barometer],       [Barometer sensor on I2C])
5969 AC_PLUGIN([battery],             [$plugin_battery],         [Battery statistics])
5970 AC_PLUGIN([bind],                [$plugin_bind],            [ISC Bind nameserver statistics])
5971 AC_PLUGIN([ceph],                [$plugin_ceph],            [Ceph daemon statistics])
5972 AC_PLUGIN([cgroups],             [$plugin_cgroups],         [CGroups CPU usage accounting])
5973 AC_PLUGIN([chrony],              [yes],                     [Chrony statistics])
5974 AC_PLUGIN([conntrack],           [$plugin_conntrack],       [nf_conntrack statistics])
5975 AC_PLUGIN([contextswitch],       [$plugin_contextswitch],   [context switch statistics])
5976 AC_PLUGIN([cpu],                 [$plugin_cpu],             [CPU usage statistics])
5977 AC_PLUGIN([cpufreq],             [$plugin_cpufreq],         [CPU frequency statistics])
5978 AC_PLUGIN([cpusleep],            [$plugin_cpusleep],        [CPU sleep statistics])
5979 AC_PLUGIN([csv],                 [yes],                     [CSV output plugin])
5980 AC_PLUGIN([curl],                [$with_libcurl],           [CURL generic web statistics])
5981 AC_PLUGIN([curl_json],           [$plugin_curl_json],       [CouchDB statistics])
5982 AC_PLUGIN([curl_xml],            [$plugin_curl_xml],        [CURL generic xml statistics])
5983 AC_PLUGIN([dbi],                 [$with_libdbi],            [General database statistics])
5984 AC_PLUGIN([df],                  [$plugin_df],              [Filesystem usage statistics])
5985 AC_PLUGIN([disk],                [$plugin_disk],            [Disk usage statistics])
5986 AC_PLUGIN([dns],                 [$with_libpcap],           [DNS traffic analysis])
5987 AC_PLUGIN([drbd],                [$plugin_drbd],            [DRBD statistics])
5988 AC_PLUGIN([email],               [yes],                     [EMail statistics])
5989 AC_PLUGIN([entropy],             [$plugin_entropy],         [Entropy statistics])
5990 AC_PLUGIN([ethstat],             [$plugin_ethstat],         [Stats from NIC driver])
5991 AC_PLUGIN([exec],                [yes],                     [Execution of external programs])
5992 AC_PLUGIN([fhcount],             [$plugin_fhcount],         [File handles statistics])
5993 AC_PLUGIN([filecount],           [yes],                     [Count files in directories])
5994 AC_PLUGIN([fscache],             [$plugin_fscache],         [fscache statistics])
5995 AC_PLUGIN([gmond],               [$with_libganglia],        [Ganglia plugin])
5996 AC_PLUGIN([grpc],                [$with_grpc],              [gRPC plugin])
5997 AC_PLUGIN([hddtemp],             [yes],                     [Query hddtempd])
5998 AC_PLUGIN([interface],           [$plugin_interface],       [Interface traffic statistics])
5999 AC_PLUGIN([ipc],                 [$plugin_ipc],             [IPC statistics])
6000 AC_PLUGIN([ipmi],                [$plugin_ipmi],            [IPMI sensor statistics])
6001 AC_PLUGIN([iptables],            [$with_libiptc],           [IPTables rule counters])
6002 AC_PLUGIN([ipvs],                [$plugin_ipvs],            [IPVS connection statistics])
6003 AC_PLUGIN([irq],                 [$plugin_irq],             [IRQ statistics])
6004 AC_PLUGIN([java],                [$with_java],              [Embed the Java Virtual Machine])
6005 AC_PLUGIN([load],                [$plugin_load],            [System load])
6006 AC_PLUGIN([log_logstash],        [$plugin_log_logstash],    [Logstash json_event compatible logging])
6007 AC_PLUGIN([logfile],             [yes],                     [File logging plugin])
6008 AC_PLUGIN([lpar],                [$with_perfstat],          [AIX logical partitions statistics])
6009 AC_PLUGIN([lvm],                 [$with_liblvm2app],        [LVM statistics])
6010 AC_PLUGIN([madwifi],             [$have_linux_wireless_h],  [Madwifi wireless statistics])
6011 AC_PLUGIN([match_empty_counter], [yes],                     [The empty counter match])
6012 AC_PLUGIN([match_hashed],        [yes],                     [The hashed match])
6013 AC_PLUGIN([match_regex],         [yes],                     [The regex match])
6014 AC_PLUGIN([match_timediff],      [yes],                     [The timediff match])
6015 AC_PLUGIN([match_value],         [yes],                     [The value match])
6016 AC_PLUGIN([mbmon],               [yes],                     [Query mbmond])
6017 AC_PLUGIN([md],                  [$have_linux_raid_md_u_h], [md (Linux software RAID) devices])
6018 AC_PLUGIN([memcachec],           [$with_libmemcached],      [memcachec statistics])
6019 AC_PLUGIN([memcached],           [yes],                     [memcached statistics])
6020 AC_PLUGIN([memory],              [$plugin_memory],          [Memory usage])
6021 AC_PLUGIN([mic],                 [$with_mic],               [Intel Many Integrated Core stats])
6022 AC_PLUGIN([modbus],              [$with_libmodbus],         [Modbus plugin])
6023 AC_PLUGIN([mqtt],                [$with_libmosquitto],      [MQTT output plugin])
6024 AC_PLUGIN([multimeter],          [$plugin_multimeter],      [Read multimeter values])
6025 AC_PLUGIN([mysql],               [$with_libmysql],          [MySQL statistics])
6026 AC_PLUGIN([netapp],              [$with_libnetapp],         [NetApp plugin])
6027 AC_PLUGIN([netlink],             [$with_libmnl],            [Enhanced Linux network statistics])
6028 AC_PLUGIN([network],             [yes],                     [Network communication plugin])
6029 AC_PLUGIN([nfs],                 [$plugin_nfs],             [NFS statistics])
6030 AC_PLUGIN([nginx],               [$with_libcurl],           [nginx statistics])
6031 AC_PLUGIN([notify_desktop],      [$with_libnotify],         [Desktop notifications])
6032 AC_PLUGIN([notify_email],        [$with_libesmtp],          [Email notifier])
6033 AC_PLUGIN([notify_nagios],       [yes],                     [Nagios notification plugin])
6034 AC_PLUGIN([ntpd],                [yes],                     [NTPd statistics])
6035 AC_PLUGIN([numa],                [$plugin_numa],            [NUMA virtual memory statistics])
6036 AC_PLUGIN([nut],                 [$with_libupsclient],      [Network UPS tools statistics])
6037 AC_PLUGIN([olsrd],               [yes],                     [olsrd statistics])
6038 AC_PLUGIN([onewire],             [$with_libowcapi],         [OneWire sensor statistics])
6039 AC_PLUGIN([openldap],            [$with_libldap],           [OpenLDAP statistics])
6040 AC_PLUGIN([openvpn],             [yes],                     [OpenVPN client statistics])
6041 AC_PLUGIN([oracle],              [$with_oracle],            [Oracle plugin])
6042 AC_PLUGIN([perl],                [$plugin_perl],            [Embed a Perl interpreter])
6043 AC_PLUGIN([pf],                  [$have_net_pfvar_h],       [BSD packet filter (PF) statistics])
6044 # FIXME: Check for libevent, too.
6045 AC_PLUGIN([pinba],               [$have_protoc_c],          [Pinba statistics])
6046 AC_PLUGIN([ping],                [$with_liboping],          [Network latency statistics])
6047 AC_PLUGIN([postgresql],          [$with_libpq],             [PostgreSQL database statistics])
6048 AC_PLUGIN([powerdns],            [yes],                     [PowerDNS statistics])
6049 AC_PLUGIN([processes],           [$plugin_processes],       [Process statistics])
6050 AC_PLUGIN([protocols],           [$plugin_protocols],       [Protocol (IP, TCP, ...) statistics])
6051 AC_PLUGIN([python],              [$with_python],            [Embed a Python interpreter])
6052 AC_PLUGIN([redis],               [$with_libhiredis],        [Redis plugin])
6053 AC_PLUGIN([routeros],            [$with_librouteros],       [RouterOS plugin])
6054 AC_PLUGIN([rrdcached],           [$librrd_rrdc_update],     [RRDTool output plugin])
6055 AC_PLUGIN([rrdtool],             [$with_librrd],            [RRDTool output plugin])
6056 AC_PLUGIN([sensors],             [$with_libsensors],        [lm_sensors statistics])
6057 AC_PLUGIN([serial],              [$plugin_serial],          [serial port traffic])
6058 AC_PLUGIN([sigrok],              [$with_libsigrok],         [sigrok acquisition sources])
6059 AC_PLUGIN([smart],               [$plugin_smart],           [SMART statistics])
6060 AC_PLUGIN([snmp],                [$with_libnetsnmp],        [SNMP querying plugin])
6061 AC_PLUGIN([statsd],              [yes],                     [StatsD plugin])
6062 AC_PLUGIN([swap],                [$plugin_swap],            [Swap usage statistics])
6063 AC_PLUGIN([syslog],              [$have_syslog],            [Syslog logging plugin])
6064 AC_PLUGIN([table],               [yes],                     [Parsing of tabular data])
6065 AC_PLUGIN([tail],                [yes],                     [Parsing of logfiles])
6066 AC_PLUGIN([tail_csv],            [yes],                     [Parsing of CSV files])
6067 AC_PLUGIN([tape],                [$plugin_tape],            [Tape drive statistics])
6068 AC_PLUGIN([target_notification], [yes],                     [The notification target])
6069 AC_PLUGIN([target_replace],      [yes],                     [The replace target])
6070 AC_PLUGIN([target_scale],        [yes],                     [The scale target])
6071 AC_PLUGIN([target_set],          [yes],                     [The set target])
6072 AC_PLUGIN([target_v5upgrade],    [yes],                     [The v5upgrade target])
6073 AC_PLUGIN([tcpconns],            [$plugin_tcpconns],        [TCP connection statistics])
6074 AC_PLUGIN([teamspeak2],          [yes],                     [TeamSpeak2 server statistics])
6075 AC_PLUGIN([ted],                 [$plugin_ted],             [Read The Energy Detective values])
6076 AC_PLUGIN([thermal],             [$plugin_thermal],         [Linux ACPI thermal zone statistics])
6077 AC_PLUGIN([threshold],           [yes],                     [Threshold checking plugin])
6078 AC_PLUGIN([tokyotyrant],         [$with_libtokyotyrant],    [TokyoTyrant database statistics])
6079 AC_PLUGIN([turbostat],           [$plugin_turbostat],       [Advanced statistic on Intel cpu states])
6080 AC_PLUGIN([unixsock],            [yes],                     [Unixsock communication plugin])
6081 AC_PLUGIN([uptime],              [$plugin_uptime],          [Uptime statistics])
6082 AC_PLUGIN([users],               [$plugin_users],           [User statistics])
6083 AC_PLUGIN([uuid],                [yes],                     [UUID as hostname plugin])
6084 AC_PLUGIN([varnish],             [$with_libvarnish],        [Varnish cache statistics])
6085 AC_PLUGIN([virt],                [$plugin_virt],            [Virtual machine statistics])
6086 AC_PLUGIN([vmem],                [$plugin_vmem],            [Virtual memory statistics])
6087 AC_PLUGIN([vserver],             [$plugin_vserver],         [Linux VServer statistics])
6088 AC_PLUGIN([wireless],            [$plugin_wireless],        [Wireless statistics])
6089 AC_PLUGIN([write_graphite],      [yes],                     [Graphite / Carbon output plugin])
6090 AC_PLUGIN([write_http],          [$with_libcurl],           [HTTP output plugin])
6091 AC_PLUGIN([write_kafka],         [$with_librdkafka],        [Kafka output plugin])
6092 AC_PLUGIN([write_log],           [yes],                     [Log output plugin])
6093 AC_PLUGIN([write_mongodb],       [$with_libmongoc],         [MongoDB output plugin])
6094 AC_PLUGIN([write_redis],         [$with_libhiredis],        [Redis output plugin])
6095 AC_PLUGIN([write_riemann],       [$with_libriemann_client], [Riemann output plugin])
6096 AC_PLUGIN([write_sensu],         [yes],                     [Sensu output plugin])
6097 AC_PLUGIN([write_tsdb],          [yes],                     [TSDB output plugin])
6098 AC_PLUGIN([xencpu],              [$plugin_xencpu],          [Xen Host CPU usage])
6099 AC_PLUGIN([xmms],                [$with_libxmms],           [XMMS statistics])
6100 AC_PLUGIN([zfs_arc],             [$plugin_zfs_arc],         [ZFS ARC statistics])
6101 AC_PLUGIN([zone],                [$plugin_zone],            [Solaris container statistics])
6102 AC_PLUGIN([zookeeper],           [yes],                     [Zookeeper statistics])
6103
6104 dnl Default configuration file
6105 # Load either syslog or logfile
6106 LOAD_PLUGIN_SYSLOG=""
6107 LOAD_PLUGIN_LOGFILE=""
6108 LOAD_PLUGIN_LOG_LOGSTASH=""
6109
6110 AC_MSG_CHECKING([which default log plugin to load])
6111 default_log_plugin="none"
6112 if test "x$enable_syslog" = "xyes"
6113 then
6114         default_log_plugin="syslog"
6115 else
6116         LOAD_PLUGIN_SYSLOG="##"
6117 fi
6118
6119 if test "x$enable_logfile" = "xyes"
6120 then
6121         if test "x$default_log_plugin" = "xnone"
6122         then
6123                 default_log_plugin="logfile"
6124         else
6125                 LOAD_PLUGIN_LOGFILE="#"
6126         fi
6127 else
6128         LOAD_PLUGIN_LOGFILE="##"
6129 fi
6130
6131 if test "x$enable_log_logstash" = "xyes"
6132 then
6133   LOAD_PLUGIN_LOG_LOGSTASH="#"
6134 else
6135   LOAD_PLUGIN_LOG_LOGSTASH="##"
6136 fi
6137
6138
6139 AC_MSG_RESULT([$default_log_plugin])
6140
6141 AC_SUBST(LOAD_PLUGIN_SYSLOG)
6142 AC_SUBST(LOAD_PLUGIN_LOGFILE)
6143 AC_SUBST(LOAD_PLUGIN_LOG_LOGSTASH)
6144
6145 DEFAULT_LOG_LEVEL="info"
6146 if test "x$enable_debug" = "xyes"
6147 then
6148         DEFAULT_LOG_LEVEL="debug"
6149 fi
6150 AC_SUBST(DEFAULT_LOG_LEVEL)
6151
6152 # Load only one of rrdtool, network, csv in the default config.
6153 LOAD_PLUGIN_RRDTOOL=""
6154 LOAD_PLUGIN_NETWORK=""
6155 LOAD_PLUGIN_CSV=""
6156
6157 AC_MSG_CHECKING([which default write plugin to load])
6158 default_write_plugin="none"
6159 if test "x$enable_rrdtool" = "xyes"
6160 then
6161         default_write_plugin="rrdtool"
6162 else
6163         LOAD_PLUGIN_RRDTOOL="##"
6164 fi
6165
6166 if test "x$enable_network" = "xyes"
6167 then
6168         if test "x$default_write_plugin" = "xnone"
6169         then
6170                 default_write_plugin="network"
6171         else
6172                 LOAD_PLUGIN_NETWORK="#"
6173         fi
6174 else
6175         LOAD_PLUGIN_NETWORK="##"
6176 fi
6177
6178 if test "x$enable_csv" = "xyes"
6179 then
6180         if test "x$default_write_plugin" = "xnone"
6181         then
6182                 default_write_plugin="csv"
6183         else
6184                 LOAD_PLUGIN_CSV="#"
6185         fi
6186 else
6187         LOAD_PLUGIN_CSV="##"
6188 fi
6189 AC_MSG_RESULT([$default_write_plugin])
6190
6191 AC_SUBST(LOAD_PLUGIN_RRDTOOL)
6192 AC_SUBST(LOAD_PLUGIN_NETWORK)
6193 AC_SUBST(LOAD_PLUGIN_CSV)
6194
6195 dnl ip_vs.h
6196 if test "x$ac_system" = "xLinux" \
6197         && test "x$have_linux_ip_vs_h$have_net_ip_vs_h$have_ip_vs_h" = "xnonono"
6198 then
6199         enable_ipvs="$enable_ipvs (ip_vs.h not found)"
6200 fi
6201
6202 if test "x$ip_vs_h_needs_kernel_cflags" = "xyes"
6203 then
6204         enable_ipvs="$enable_ipvs (needs $KERNEL_CFLAGS)"
6205 fi
6206
6207 dnl Perl bindings
6208 PERL_BINDINGS_OPTIONS="PREFIX=${prefix}"
6209 AC_ARG_WITH(perl-bindings, [AS_HELP_STRING([--with-perl-bindings@<:@=OPTIONS@:>@], [Options passed to "perl Makefile.PL".])],
6210 [
6211         if test "x$withval" != "xno" && test "x$withval" != "xyes"
6212         then
6213                 PERL_BINDINGS_OPTIONS="$withval"
6214                 with_perl_bindings="yes"
6215         else
6216                 with_perl_bindings="$withval"
6217         fi
6218 ],
6219 [
6220         if test -n "$perl_interpreter"
6221         then
6222                 with_perl_bindings="yes"
6223         else
6224                 with_perl_bindings="no (no perl interpreter found)"
6225         fi
6226 ])
6227 if test "x$with_perl_bindings" = "xyes"
6228 then
6229         PERL_BINDINGS="perl"
6230 else
6231         PERL_BINDINGS=""
6232 fi
6233 AC_SUBST(PERL_BINDINGS)
6234 AC_SUBST(PERL_BINDINGS_OPTIONS)
6235
6236 dnl libcollectdclient
6237 LCC_VERSION_MAJOR=`echo $PACKAGE_VERSION | cut -d'.' -f1`
6238 LCC_VERSION_MINOR=`echo $PACKAGE_VERSION | cut -d'.' -f2`
6239 LCC_VERSION_PATCH=`echo $PACKAGE_VERSION | cut -d'.' -f3`
6240
6241 LCC_VERSION_EXTRA=`echo $PACKAGE_VERSION | cut -d'.' -f4-`
6242
6243 LCC_VERSION_STRING="$LCC_VERSION_MAJOR.$LCC_VERSION_MINOR.$LCC_VERSION_PATCH"
6244
6245 AC_SUBST(LCC_VERSION_MAJOR)
6246 AC_SUBST(LCC_VERSION_MINOR)
6247 AC_SUBST(LCC_VERSION_PATCH)
6248 AC_SUBST(LCC_VERSION_EXTRA)
6249 AC_SUBST(LCC_VERSION_STRING)
6250
6251 AC_CONFIG_FILES(src/libcollectdclient/collectd/lcc_features.h)
6252
6253 AM_CFLAGS="-Wall"
6254 AM_CXXFLAGS="-Wall"
6255 if test "x$enable_werror" != "xno"
6256 then
6257         AM_CFLAGS="$AM_CFLAGS -Werror"
6258         AM_CXXFLAGS="$AM_CXXFLAGS -Werror"
6259 fi
6260 AC_SUBST([AM_CFLAGS])
6261 AC_SUBST([AM_CXXFLAGS])
6262
6263 AC_CONFIG_FILES([Makefile proto/Makefile src/Makefile src/daemon/Makefile src/collectd.conf src/libcollectdclient/Makefile src/libcollectdclient/libcollectdclient.pc src/liboconfig/Makefile bindings/Makefile bindings/java/Makefile])
6264 AC_OUTPUT
6265
6266 if test "x$with_librrd" = "xyes" \
6267         && test "x$librrd_threadsafe" != "xyes"
6268 then
6269         with_librrd="yes (warning: librrd is not thread-safe)"
6270 fi
6271
6272 if test "x$with_libperl" = "xyes"
6273 then
6274         with_libperl="yes (version `$perl_interpreter -MConfig -e 'print $Config{version};'`)"
6275 else
6276         enable_perl="no (needs libperl)"
6277 fi
6278
6279 if test "x$enable_perl" = "xno" && test "x$c_cv_have_perl_ithreads" = "xno"
6280 then
6281         enable_perl="no (libperl doesn't support ithreads)"
6282 fi
6283
6284 if test "x$with_perl_bindings" = "xyes" \
6285         && test "x$PERL_BINDINGS_OPTIONS" != "x"
6286 then
6287         with_perl_bindings="yes ($PERL_BINDINGS_OPTIONS)"
6288 fi
6289
6290 AC_MSG_RESULT()
6291 AC_MSG_RESULT([Configuration:])
6292 AC_MSG_RESULT([  Build:])
6293 AC_MSG_RESULT([    Platform  . . . . . . $ac_system])
6294 AC_MSG_RESULT([    CC  . . . . . . . . . $CC])
6295 AC_MSG_RESULT([    CFLAGS  . . . . . . . $AM_CFLAGS $CFLAGS])
6296 AC_MSG_RESULT([    CXXFLAGS  . . . . . . $AM_CXXFLAGS $CXXFLAGS])
6297 AC_MSG_RESULT([    CPP . . . . . . . . . $CPP])
6298 AC_MSG_RESULT([    CPPFLAGS  . . . . . . $CPPFLAGS])
6299 AC_MSG_RESULT([    GRPC_CPP_PLUGIN . . . $GRPC_CPP_PLUGIN])
6300 AC_MSG_RESULT([    LD  . . . . . . . . . $LD])
6301 AC_MSG_RESULT([    LDFLAGS . . . . . . . $LDFLAGS])
6302 AC_MSG_RESULT([    PROTOC  . . . . . . . $PROTOC])
6303 AC_MSG_RESULT([    YACC  . . . . . . . . $YACC])
6304 AC_MSG_RESULT([    YFLAGS  . . . . . . . $YFLAGS])
6305 AC_MSG_RESULT()
6306 AC_MSG_RESULT([  Libraries:])
6307 AC_MSG_RESULT([    intel mic . . . . . . $with_mic])
6308 AC_MSG_RESULT([    libaquaero5 . . . . . $with_libaquaero5])
6309 AC_MSG_RESULT([    libatasmart . . . . . $with_libatasmart])
6310 AC_MSG_RESULT([    libcurl . . . . . . . $with_libcurl])
6311 AC_MSG_RESULT([    libdbi  . . . . . . . $with_libdbi])
6312 AC_MSG_RESULT([    libesmtp  . . . . . . $with_libesmtp])
6313 AC_MSG_RESULT([    libganglia  . . . . . $with_libganglia])
6314 AC_MSG_RESULT([    libgcrypt . . . . . . $with_libgcrypt])
6315 AC_MSG_RESULT([    libgrpc . . . . . . . $with_libgrpc])
6316 AC_MSG_RESULT([    libhal  . . . . . . . $with_libhal])
6317 AC_MSG_RESULT([    libhiredis  . . . . . $with_libhiredis])
6318 AC_MSG_RESULT([    libi2c-dev  . . . . . $with_libi2c])
6319 AC_MSG_RESULT([    libiokit  . . . . . . $with_libiokit])
6320 AC_MSG_RESULT([    libiptc . . . . . . . $with_libiptc])
6321 AC_MSG_RESULT([    libjvm  . . . . . . . $with_java])
6322 AC_MSG_RESULT([    libkstat  . . . . . . $with_kstat])
6323 AC_MSG_RESULT([    libkvm  . . . . . . . $with_libkvm])
6324 AC_MSG_RESULT([    libldap . . . . . . . $with_libldap])
6325 AC_MSG_RESULT([    liblvm2app  . . . . . $with_liblvm2app])
6326 AC_MSG_RESULT([    libmemcached  . . . . $with_libmemcached])
6327 AC_MSG_RESULT([    libmnl  . . . . . . . $with_libmnl])
6328 AC_MSG_RESULT([    libmodbus . . . . . . $with_libmodbus])
6329 AC_MSG_RESULT([    libmongoc . . . . . . $with_libmongoc])
6330 AC_MSG_RESULT([    libmosquitto  . . . . $with_libmosquitto])
6331 AC_MSG_RESULT([    libmysql  . . . . . . $with_libmysql])
6332 AC_MSG_RESULT([    libnetapp . . . . . . $with_libnetapp])
6333 AC_MSG_RESULT([    libnetsnmp  . . . . . $with_libnetsnmp])
6334 AC_MSG_RESULT([    libnotify . . . . . . $with_libnotify])
6335 AC_MSG_RESULT([    liboconfig  . . . . . $with_liboconfig])
6336 AC_MSG_RESULT([    libopenipmi . . . . . $with_libopenipmipthread])
6337 AC_MSG_RESULT([    liboping  . . . . . . $with_liboping])
6338 AC_MSG_RESULT([    libowcapi . . . . . . $with_libowcapi])
6339 AC_MSG_RESULT([    libpcap . . . . . . . $with_libpcap])
6340 AC_MSG_RESULT([    libperfstat . . . . . $with_perfstat])
6341 AC_MSG_RESULT([    libperl . . . . . . . $with_libperl])
6342 AC_MSG_RESULT([    libpq . . . . . . . . $with_libpq])
6343 AC_MSG_RESULT([    librabbitmq . . . . . $with_librabbitmq])
6344 AC_MSG_RESULT([    libriemann-client . . $with_libriemann_client])
6345 AC_MSG_RESULT([    librdkafka  . . . . . $with_librdkafka])
6346 AC_MSG_RESULT([    librouteros . . . . . $with_librouteros])
6347 AC_MSG_RESULT([    librrd  . . . . . . . $with_librrd])
6348 AC_MSG_RESULT([    libsensors  . . . . . $with_libsensors])
6349 AC_MSG_RESULT([    libsigrok   . . . . . $with_libsigrok])
6350 AC_MSG_RESULT([    libstatgrab . . . . . $with_libstatgrab])
6351 AC_MSG_RESULT([    libtokyotyrant  . . . $with_libtokyotyrant])
6352 AC_MSG_RESULT([    libudev . . . . . . . $with_libudev])
6353 AC_MSG_RESULT([    libupsclient  . . . . $with_libupsclient])
6354 AC_MSG_RESULT([    libvarnish  . . . . . $with_libvarnish])
6355 AC_MSG_RESULT([    libvirt . . . . . . . $with_libvirt])
6356 AC_MSG_RESULT([    libxenctrl  . . . . . $with_libxenctrl])
6357 AC_MSG_RESULT([    libxml2 . . . . . . . $with_libxml2])
6358 AC_MSG_RESULT([    libxmms . . . . . . . $with_libxmms])
6359 AC_MSG_RESULT([    libyajl . . . . . . . $with_libyajl])
6360 AC_MSG_RESULT([    oracle  . . . . . . . $with_oracle])
6361 AC_MSG_RESULT([    protobuf-c  . . . . . $have_protoc_c])
6362 AC_MSG_RESULT([    protoc 3  . . . . . . $protoc3])
6363 AC_MSG_RESULT([    python  . . . . . . . $with_python])
6364 AC_MSG_RESULT()
6365 AC_MSG_RESULT([  Features:])
6366 AC_MSG_RESULT([    daemon mode . . . . . $enable_daemon])
6367 AC_MSG_RESULT([    debug . . . . . . . . $enable_debug])
6368 AC_MSG_RESULT()
6369 AC_MSG_RESULT([  Bindings:])
6370 AC_MSG_RESULT([    perl  . . . . . . . . $with_perl_bindings])
6371 AC_MSG_RESULT()
6372 AC_MSG_RESULT([  Modules:])
6373 AC_MSG_RESULT([    aggregation . . . . . $enable_aggregation])
6374 AC_MSG_RESULT([    amqp    . . . . . . . $enable_amqp])
6375 AC_MSG_RESULT([    apache  . . . . . . . $enable_apache])
6376 AC_MSG_RESULT([    apcups  . . . . . . . $enable_apcups])
6377 AC_MSG_RESULT([    apple_sensors . . . . $enable_apple_sensors])
6378 AC_MSG_RESULT([    aquaero . . . . . . . $enable_aquaero])
6379 AC_MSG_RESULT([    ascent  . . . . . . . $enable_ascent])
6380 AC_MSG_RESULT([    barometer . . . . . . $enable_barometer])
6381 AC_MSG_RESULT([    battery . . . . . . . $enable_battery])
6382 AC_MSG_RESULT([    bind  . . . . . . . . $enable_bind])
6383 AC_MSG_RESULT([    ceph  . . . . . . . . $enable_ceph])
6384 AC_MSG_RESULT([    cgroups . . . . . . . $enable_cgroups])
6385 AC_MSG_RESULT([    chrony. . . . . . . . $enable_chrony])
6386 AC_MSG_RESULT([    conntrack . . . . . . $enable_conntrack])
6387 AC_MSG_RESULT([    contextswitch . . . . $enable_contextswitch])
6388 AC_MSG_RESULT([    cpu . . . . . . . . . $enable_cpu])
6389 AC_MSG_RESULT([    cpufreq . . . . . . . $enable_cpufreq])
6390 AC_MSG_RESULT([    cpusleep  . . . . . . $enable_cpusleep])
6391 AC_MSG_RESULT([    csv . . . . . . . . . $enable_csv])
6392 AC_MSG_RESULT([    curl  . . . . . . . . $enable_curl])
6393 AC_MSG_RESULT([    curl_json . . . . . . $enable_curl_json])
6394 AC_MSG_RESULT([    curl_xml  . . . . . . $enable_curl_xml])
6395 AC_MSG_RESULT([    dbi . . . . . . . . . $enable_dbi])
6396 AC_MSG_RESULT([    df  . . . . . . . . . $enable_df])
6397 AC_MSG_RESULT([    disk  . . . . . . . . $enable_disk])
6398 AC_MSG_RESULT([    dns . . . . . . . . . $enable_dns])
6399 AC_MSG_RESULT([    drbd  . . . . . . . . $enable_drbd])
6400 AC_MSG_RESULT([    email . . . . . . . . $enable_email])
6401 AC_MSG_RESULT([    entropy . . . . . . . $enable_entropy])
6402 AC_MSG_RESULT([    ethstat . . . . . . . $enable_ethstat])
6403 AC_MSG_RESULT([    exec  . . . . . . . . $enable_exec])
6404 AC_MSG_RESULT([    fhcount . . . . . . . $enable_fhcount])
6405 AC_MSG_RESULT([    filecount . . . . . . $enable_filecount])
6406 AC_MSG_RESULT([    fscache . . . . . . . $enable_fscache])
6407 AC_MSG_RESULT([    gmond . . . . . . . . $enable_gmond])
6408 AC_MSG_RESULT([    grpc  . . . . . . . . $enable_grpc])
6409 AC_MSG_RESULT([    hddtemp . . . . . . . $enable_hddtemp])
6410 AC_MSG_RESULT([    interface . . . . . . $enable_interface])
6411 AC_MSG_RESULT([    ipc . . . . . . . . . $enable_ipc])
6412 AC_MSG_RESULT([    ipmi  . . . . . . . . $enable_ipmi])
6413 AC_MSG_RESULT([    iptables  . . . . . . $enable_iptables])
6414 AC_MSG_RESULT([    ipvs  . . . . . . . . $enable_ipvs])
6415 AC_MSG_RESULT([    irq . . . . . . . . . $enable_irq])
6416 AC_MSG_RESULT([    java  . . . . . . . . $enable_java])
6417 AC_MSG_RESULT([    load  . . . . . . . . $enable_load])
6418 AC_MSG_RESULT([    logfile . . . . . . . $enable_logfile])
6419 AC_MSG_RESULT([    log_logstash  . . . . $enable_log_logstash])
6420 AC_MSG_RESULT([    lpar  . . . . . . . . $enable_lpar])
6421 AC_MSG_RESULT([    lvm . . . . . . . . . $enable_lvm])
6422 AC_MSG_RESULT([    madwifi . . . . . . . $enable_madwifi])
6423 AC_MSG_RESULT([    match_empty_counter . $enable_match_empty_counter])
6424 AC_MSG_RESULT([    match_hashed  . . . . $enable_match_hashed])
6425 AC_MSG_RESULT([    match_regex . . . . . $enable_match_regex])
6426 AC_MSG_RESULT([    match_timediff  . . . $enable_match_timediff])
6427 AC_MSG_RESULT([    match_value . . . . . $enable_match_value])
6428 AC_MSG_RESULT([    mbmon . . . . . . . . $enable_mbmon])
6429 AC_MSG_RESULT([    md  . . . . . . . . . $enable_md])
6430 AC_MSG_RESULT([    memcachec . . . . . . $enable_memcachec])
6431 AC_MSG_RESULT([    memcached . . . . . . $enable_memcached])
6432 AC_MSG_RESULT([    memory  . . . . . . . $enable_memory])
6433 AC_MSG_RESULT([    mic . . . . . . . . . $enable_mic])
6434 AC_MSG_RESULT([    modbus  . . . . . . . $enable_modbus])
6435 AC_MSG_RESULT([    mqtt  . . . . . . . . $enable_mqtt])
6436 AC_MSG_RESULT([    multimeter  . . . . . $enable_multimeter])
6437 AC_MSG_RESULT([    mysql . . . . . . . . $enable_mysql])
6438 AC_MSG_RESULT([    netapp  . . . . . . . $enable_netapp])
6439 AC_MSG_RESULT([    netlink . . . . . . . $enable_netlink])
6440 AC_MSG_RESULT([    network . . . . . . . $enable_network])
6441 AC_MSG_RESULT([    nfs . . . . . . . . . $enable_nfs])
6442 AC_MSG_RESULT([    nginx . . . . . . . . $enable_nginx])
6443 AC_MSG_RESULT([    notify_desktop  . . . $enable_notify_desktop])
6444 AC_MSG_RESULT([    notify_email  . . . . $enable_notify_email])
6445 AC_MSG_RESULT([    notify_nagios . . . . $enable_notify_nagios])
6446 AC_MSG_RESULT([    ntpd  . . . . . . . . $enable_ntpd])
6447 AC_MSG_RESULT([    numa  . . . . . . . . $enable_numa])
6448 AC_MSG_RESULT([    nut . . . . . . . . . $enable_nut])
6449 AC_MSG_RESULT([    olsrd . . . . . . . . $enable_olsrd])
6450 AC_MSG_RESULT([    onewire . . . . . . . $enable_onewire])
6451 AC_MSG_RESULT([    openldap  . . . . . . $enable_openldap])
6452 AC_MSG_RESULT([    openvpn . . . . . . . $enable_openvpn])
6453 AC_MSG_RESULT([    oracle  . . . . . . . $enable_oracle])
6454 AC_MSG_RESULT([    perl  . . . . . . . . $enable_perl])
6455 AC_MSG_RESULT([    pf  . . . . . . . . . $enable_pf])
6456 AC_MSG_RESULT([    pinba . . . . . . . . $enable_pinba])
6457 AC_MSG_RESULT([    ping  . . . . . . . . $enable_ping])
6458 AC_MSG_RESULT([    postgresql  . . . . . $enable_postgresql])
6459 AC_MSG_RESULT([    powerdns  . . . . . . $enable_powerdns])
6460 AC_MSG_RESULT([    processes . . . . . . $enable_processes])
6461 AC_MSG_RESULT([    protocols . . . . . . $enable_protocols])
6462 AC_MSG_RESULT([    python  . . . . . . . $enable_python])
6463 AC_MSG_RESULT([    redis . . . . . . . . $enable_redis])
6464 AC_MSG_RESULT([    routeros  . . . . . . $enable_routeros])
6465 AC_MSG_RESULT([    rrdcached . . . . . . $enable_rrdcached])
6466 AC_MSG_RESULT([    rrdtool . . . . . . . $enable_rrdtool])
6467 AC_MSG_RESULT([    sensors . . . . . . . $enable_sensors])
6468 AC_MSG_RESULT([    serial  . . . . . . . $enable_serial])
6469 AC_MSG_RESULT([    sigrok  . . . . . . . $enable_sigrok])
6470 AC_MSG_RESULT([    smart . . . . . . . . $enable_smart])
6471 AC_MSG_RESULT([    snmp  . . . . . . . . $enable_snmp])
6472 AC_MSG_RESULT([    statsd  . . . . . . . $enable_statsd])
6473 AC_MSG_RESULT([    swap  . . . . . . . . $enable_swap])
6474 AC_MSG_RESULT([    syslog  . . . . . . . $enable_syslog])
6475 AC_MSG_RESULT([    table . . . . . . . . $enable_table])
6476 AC_MSG_RESULT([    tail_csv  . . . . . . $enable_tail_csv])
6477 AC_MSG_RESULT([    tail  . . . . . . . . $enable_tail])
6478 AC_MSG_RESULT([    tape  . . . . . . . . $enable_tape])
6479 AC_MSG_RESULT([    target_notification . $enable_target_notification])
6480 AC_MSG_RESULT([    target_replace  . . . $enable_target_replace])
6481 AC_MSG_RESULT([    target_scale  . . . . $enable_target_scale])
6482 AC_MSG_RESULT([    target_set  . . . . . $enable_target_set])
6483 AC_MSG_RESULT([    target_v5upgrade  . . $enable_target_v5upgrade])
6484 AC_MSG_RESULT([    tcpconns  . . . . . . $enable_tcpconns])
6485 AC_MSG_RESULT([    teamspeak2  . . . . . $enable_teamspeak2])
6486 AC_MSG_RESULT([    ted . . . . . . . . . $enable_ted])
6487 AC_MSG_RESULT([    thermal . . . . . . . $enable_thermal])
6488 AC_MSG_RESULT([    threshold . . . . . . $enable_threshold])
6489 AC_MSG_RESULT([    tokyotyrant . . . . . $enable_tokyotyrant])
6490 AC_MSG_RESULT([    turbostat . . . . . . $enable_turbostat])
6491 AC_MSG_RESULT([    unixsock  . . . . . . $enable_unixsock])
6492 AC_MSG_RESULT([    uptime  . . . . . . . $enable_uptime])
6493 AC_MSG_RESULT([    users . . . . . . . . $enable_users])
6494 AC_MSG_RESULT([    uuid  . . . . . . . . $enable_uuid])
6495 AC_MSG_RESULT([    varnish . . . . . . . $enable_varnish])
6496 AC_MSG_RESULT([    virt  . . . . . . . . $enable_virt])
6497 AC_MSG_RESULT([    vmem  . . . . . . . . $enable_vmem])
6498 AC_MSG_RESULT([    vserver . . . . . . . $enable_vserver])
6499 AC_MSG_RESULT([    wireless  . . . . . . $enable_wireless])
6500 AC_MSG_RESULT([    write_graphite  . . . $enable_write_graphite])
6501 AC_MSG_RESULT([    write_http  . . . . . $enable_write_http])
6502 AC_MSG_RESULT([    write_kafka . . . . . $enable_write_kafka])
6503 AC_MSG_RESULT([    write_log . . . . . . $enable_write_log])
6504 AC_MSG_RESULT([    write_mongodb . . . . $enable_write_mongodb])
6505 AC_MSG_RESULT([    write_redis . . . . . $enable_write_redis])
6506 AC_MSG_RESULT([    write_riemann . . . . $enable_write_riemann])
6507 AC_MSG_RESULT([    write_sensu . . . . . $enable_write_sensu])
6508 AC_MSG_RESULT([    write_tsdb  . . . . . $enable_write_tsdb])
6509 AC_MSG_RESULT([    xencpu  . . . . . . . $enable_xencpu])
6510 AC_MSG_RESULT([    xmms  . . . . . . . . $enable_xmms])
6511 AC_MSG_RESULT([    zfs_arc . . . . . . . $enable_zfs_arc])
6512 AC_MSG_RESULT([    zone  . . . . . . . . $enable_zone])
6513 AC_MSG_RESULT([    zookeeper . . . . . . $enable_zookeeper])
6514 AC_MSG_RESULT()
6515
6516 if test "x$dependency_error" = "xyes"; then
6517         AC_MSG_ERROR("Some plugins are missing dependencies - see the summary above for details")
6518 fi
6519
6520 if test "x$dependency_warning" = "xyes"; then
6521         AC_MSG_WARN("Some plugins seem to have missing dependencies but have been enabled forcibly - see the summary above for details")
6522 fi
6523
6524 # vim: set fdm=marker :