]> git.ipfire.org Git - thirdparty/collectd.git/blame - configure.in
plugin.c: Fix an endless loop.
[thirdparty/collectd.git] / configure.in
CommitLineData
86ca149a 1dnl Process this file with autoconf to produce a configure script.
005b6639 2AC_INIT(collectd, 3.11.3)
6e765a02
FF
3AC_CONFIG_SRCDIR(src/collectd.c)
4AC_CONFIG_HEADERS(src/config.h)
5AM_INIT_AUTOMAKE(dist-bzip2)
86ca149a
FF
6AC_LANG(C)
7
8AC_PREFIX_DEFAULT("/opt/collectd")
9
15996f86
FF
10#
11# Checks for programs.
12#
86ca149a
FF
13AC_PROG_CC
14AC_PROG_CPP
15AC_PROG_INSTALL
16AC_PROG_LN_S
17AC_PROG_MAKE_SET
586eed68 18AM_CONDITIONAL(COMPILER_IS_GCC, test "x$GCC" = "xyes")
86ca149a
FF
19
20dnl configure libtool
21AC_DISABLE_STATIC
6e765a02
FF
22AC_LIBLTDL_CONVENIENCE
23AC_SUBST(LTDLINCL)
24AC_SUBST(LIBLTDL)
86ca149a
FF
25AC_LIBTOOL_DLOPEN
26AC_PROG_LIBTOOL
108c20b2
FF
27AC_PROG_LEX
28AC_PROG_YACC
bcd78ed9 29AC_CONFIG_SUBDIRS(libltdl)
86ca149a 30
15996f86
FF
31#
32# Checks for header files.
33#
e708ae9b 34AC_HEADER_STDC
86ca149a 35AC_HEADER_SYS_WAIT
6e765a02 36AC_HEADER_DIRENT
6934b3d0 37AC_CHECK_HEADERS(stdint.h)
1842a7a7 38AC_CHECK_HEADERS(stdio.h)
586eed68 39AC_CHECK_HEADERS(errno.h)
3e481d27 40AC_CHECK_HEADERS(math.h)
586eed68 41AC_CHECK_HEADERS(syslog.h)
6e765a02 42AC_CHECK_HEADERS(fcntl.h)
86ca149a 43AC_CHECK_HEADERS(signal.h)
586eed68
FF
44AC_CHECK_HEADERS(assert.h)
45AC_CHECK_HEADERS(sys/types.h)
86ca149a
FF
46AC_CHECK_HEADERS(sys/socket.h)
47AC_CHECK_HEADERS(sys/select.h)
63450476 48AC_CHECK_HEADERS(poll.h)
86ca149a 49AC_CHECK_HEADERS(netdb.h)
586eed68 50AC_CHECK_HEADERS(arpa/inet.h)
86ca149a 51AC_CHECK_HEADERS(sys/resource.h)
c988f52c 52AC_CHECK_HEADERS(sys/param.h)
15996f86 53
c9a5b034 54# For ping library
6934b3d0
FF
55AC_CHECK_HEADERS(netinet/in_systm.h, [], [],
56[#if HAVE_STDINT_H
57# include <stdint.h>
58#endif
ac491e03
FF
59#if HAVE_SYS_TYPES_H
60# include <sys/types.h>
61#endif
6934b3d0 62])
c9a5b034 63AC_CHECK_HEADERS(netinet/in.h, [], [],
6934b3d0
FF
64[#if HAVE_STDINT_H
65# include <stdint.h>
66#endif
ac491e03
FF
67#if HAVE_SYS_TYPES_H
68# include <sys/types.h>
69#endif
6934b3d0 70#if HAVE_NETINET_IN_SYSTM_H
c9a5b034
FF
71# include <netinet/in_systm.h>
72#endif
73])
74AC_CHECK_HEADERS(netinet/ip.h, [], [],
6934b3d0
FF
75[#if HAVE_STDINT_H
76# include <stdint.h>
77#endif
ac491e03
FF
78#if HAVE_SYS_TYPES_H
79# include <sys/types.h>
80#endif
6934b3d0 81#if HAVE_NETINET_IN_SYSTM_H
c9a5b034
FF
82# include <netinet/in_systm.h>
83#endif
84#if HAVE_NETINET_IN_H
85# include <netinet/in.h>
86#endif
87])
88AC_CHECK_HEADERS(netinet/ip_icmp.h, [], [],
6934b3d0
FF
89[#if HAVE_STDINT_H
90# include <stdint.h>
91#endif
ac491e03
FF
92#if HAVE_SYS_TYPES_H
93# include <sys/types.h>
94#endif
6934b3d0 95#if HAVE_NETINET_IN_SYSTM_H
c9a5b034
FF
96# include <netinet/in_systm.h>
97#endif
98#if HAVE_NETINET_IN_H
99# include <netinet/in.h>
100#endif
101#if HAVE_NETINET_IP_H
102# include <netinet/ip.h>
103#endif
104])
105AC_CHECK_HEADERS(netinet/ip_var.h, [], [],
6934b3d0
FF
106[#if HAVE_STDINT_H
107# include <stdint.h>
108#endif
ac491e03
FF
109#if HAVE_SYS_TYPES_H
110# include <sys/types.h>
111#endif
6934b3d0 112#if HAVE_NETINET_IN_SYSTM_H
c9a5b034
FF
113# include <netinet/in_systm.h>
114#endif
115#if HAVE_NETINET_IN_H
116# include <netinet/in.h>
117#endif
118#if HAVE_NETINET_IP_H
119# include <netinet/ip.h>
120#endif
121])
122AC_CHECK_HEADERS(netinet/ip6.h, [], [],
6934b3d0
FF
123[#if HAVE_STDINT_H
124# include <stdint.h>
125#endif
6fe07031
FF
126#if HAVE_SYS_TYPES_H
127# include <sys/types.h>
128#endif
6934b3d0 129#if HAVE_NETINET_IN_SYSTM_H
c9a5b034
FF
130# include <netinet/in_systm.h>
131#endif
132#if HAVE_NETINET_IN_H
133# include <netinet/in.h>
134#endif
135])
136AC_CHECK_HEADERS(netinet/icmp6.h, [], [],
6934b3d0
FF
137[#if HAVE_STDINT_H
138# include <stdint.h>
139#endif
6fe07031
FF
140#if HAVE_SYS_TYPES_H
141# include <sys/types.h>
142#endif
6934b3d0 143#if HAVE_NETINET_IN_SYSTM_H
c9a5b034
FF
144# include <netinet/in_systm.h>
145#endif
146#if HAVE_NETINET_IN_H
147# include <netinet/in.h>
148#endif
149#if HAVE_NETINET_IP6_H
150# include <netinet/ip6.h>
151#endif
152])
79d36d9e
FF
153AC_CHECK_HEADERS(netinet/tcp.h, [], [],
154[#if HAVE_STDINT_H
155# include <stdint.h>
156#endif
157#if HAVE_SYS_TYPES_H
158# include <sys/types.h>
159#endif
160#if HAVE_NETINET_IN_SYSTM_H
161# include <netinet/in_systm.h>
162#endif
163#if HAVE_NETINET_IN_H
164# include <netinet/in.h>
165#endif
166#if HAVE_NETINET_IP_H
167# include <netinet/ip.h>
168#endif
169])
5b9d0a2b
FF
170AC_CHECK_HEADERS(netinet/udp.h, [], [],
171[#if HAVE_STDINT_H
172# include <stdint.h>
173#endif
174#if HAVE_SYS_TYPES_H
175# include <sys/types.h>
176#endif
177#if HAVE_NETINET_IN_SYSTM_H
178# include <netinet/in_systm.h>
179#endif
180#if HAVE_NETINET_IN_H
181# include <netinet/in.h>
182#endif
183#if HAVE_NETINET_IP_H
184# include <netinet/ip.h>
185#endif
186])
c9a5b034 187
e1d497b7
FF
188# For cpu modules
189AC_CHECK_HEADERS(sys/sysctl.h sys/dkstat.h)
daf3a589
FF
190AC_CHECK_HEADERS(mach/mach_init.h)
191AC_CHECK_HEADERS(mach/host_priv.h)
a0d73172 192AC_CHECK_HEADERS(mach/mach_error.h)
907f1439
FF
193AC_CHECK_HEADERS(mach/mach_host.h)
194AC_CHECK_HEADERS(mach/mach_port.h)
195AC_CHECK_HEADERS(mach/mach_types.h)
196AC_CHECK_HEADERS(mach/message.h)
197AC_CHECK_HEADERS(mach/processor_set.h)
daf3a589 198AC_CHECK_HEADERS(mach/processor.h)
907f1439
FF
199AC_CHECK_HEADERS(mach/processor_info.h)
200AC_CHECK_HEADERS(mach/task.h)
201AC_CHECK_HEADERS(mach/thread_act.h)
202AC_CHECK_HEADERS(mach/vm_region.h)
203AC_CHECK_HEADERS(mach/vm_map.h)
204AC_CHECK_HEADERS(mach/vm_prot.h)
54800675 205AC_CHECK_HEADERS(mach/vm_statistics.h)
907f1439 206AC_CHECK_HEADERS(mach/kern_return.h)
e1d497b7 207
46ed2804
FF
208# For hddtemp module
209AC_CHECK_HEADERS(linux/major.h)
210
dc42e3e0 211# For the apple_sensors module
adaf6ca0
FF
212AC_CHECK_HEADERS(CoreFoundation/CoreFoundation.h)
213AC_CHECK_HEADERS(IOKit/IOKitLib.h)
214AC_CHECK_HEADERS(IOKit/IOTypes.h)
215
11265296
FF
216# For the battery plugin
217AC_CHECK_HEADERS(IOKit/ps/IOPowerSources.h, [], [],
218[
219#if HAVE_IOKIT_IOKITLIB_H
220# include <IOKit/IOKitLib.h>
221#endif
222#if HAVE_IOKIT_IOTYPES_H
223# include <IOKit/IOTypes.h>
224#endif
225])
226AC_CHECK_HEADERS(IOKit/ps/IOPSKeys.h)
227
ce5ce8ad
FF
228# For the `disk' plugin
229AC_CHECK_HEADERS(IOKit/IOBSD.h)
230AC_CHECK_HEADERS(IOKit/storage/IOBlockStorageDriver.h)
231
15996f86
FF
232# For load module
233AC_CHECK_HEADERS(sys/loadavg.h)
234
44a3f33a
FF
235# For the processes plugin
236AC_CHECK_HEADERS(linux/config.h)
237
daedf582
FF
238# For the swap module
239AC_CHECK_HEADERS(sys/swap.h)
240
15996f86 241# For users module
82d65d87 242AC_CHECK_HEADERS(utmp.h)
6e481905 243AC_CHECK_HEADERS(utmpx.h)
86ca149a 244
3268a333 245# For interface plugin
a05e34a0 246AC_CHECK_HEADERS(ifaddrs.h)
cd377858
FF
247AC_CHECK_HEADERS(net/if.h, [], [],
248[
249#if HAVE_SYS_TYPES_H
250# include <sys/types.h>
251#endif
252#if HAVE_SYS_SOCKET_H
253# include <sys/socket.h>
254#endif
255])
a05e34a0
FF
256AC_CHECK_HEADERS(linux/if.h, [], [],
257[
258#if HAVE_SYS_TYPES_H
259# include <sys/types.h>
260#endif
261#if HAVE_SYS_SOCKET_H
262# include <sys/socket.h>
263#endif
264])
265AC_CHECK_HEADERS(linux/netdevice.h, [], [],
266[
267#if HAVE_SYS_TYPES_H
268# include <sys/types.h>
269#endif
270#if HAVE_SYS_SOCKET_H
271# include <sys/socket.h>
272#endif
273#if HAVE_LINUX_IF_H
274# include <linux/if.h>
275#endif
276])
277
a8025575
FF
278# For apache plugin
279AC_CHECK_HEADERS(curl/curl.h)
280
6e765a02
FF
281# For quota module
282AC_CHECK_HEADERS(grp.h pwd.h sys/ucred.h)
283AC_CHECK_HEADERS(ctype.h)
284AC_CHECK_HEADERS(limits.h)
285AC_CHECK_HEADERS(sys/quota.h)
286AC_CHECK_HEADERS(xfs/xqm.h)
287
288# For mount interface
289AC_CHECK_HEADERS(fs_info.h)
290AC_CHECK_HEADERS(fshelp.h)
291AC_CHECK_HEADERS(paths.h)
292AC_CHECK_HEADERS(mntent.h)
293AC_CHECK_HEADERS(mnttab.h)
294AC_CHECK_HEADERS(sys/fstyp.h)
295AC_CHECK_HEADERS(sys/fs_types.h)
296AC_CHECK_HEADERS(sys/mntent.h)
297AC_CHECK_HEADERS(sys/mnttab.h)
298AC_CHECK_HEADERS(sys/mount.h)
299AC_CHECK_HEADERS(sys/statfs.h)
2d03e4e3 300AC_CHECK_HEADERS(sys/statvfs.h)
6e765a02
FF
301AC_CHECK_HEADERS(sys/vfs.h)
302AC_CHECK_HEADERS(sys/vfstab.h)
303
28c5e282
FF
304# For the swap plugin, FreeBSD
305AC_CHECK_HEADERS(kvm.h)
306
fc257d86
SH
307# For the email plugin
308AC_CHECK_HEADERS(linux/un.h, [], [],
309[
310#if HAVE_SYS_SOCKET_H
311# include <sys/socket.h>
312#endif
313])
314AC_CHECK_HEADERS(sys/un.h)
8389947b 315AC_CHECK_HEADERS(grp.h)
fc257d86 316
6e765a02
FF
317# For debugging interface (variable number of arguments)
318AC_CHECK_HEADERS(stdarg.h)
319
ec88fb0e
FF
320# Regular expressions for the ignorelist.
321AC_CHECK_HEADERS(regex.h)
322
fdfbf887 323# For the dns plugin
c4377c1e 324AC_CHECK_HEADERS(arpa/nameser.h arpa/nameser_compat.h)
c4377c1e
FF
325
326AC_CHECK_HEADERS(net/if_arp.h)
9e137cdb 327AC_CHECK_HEADERS(net/if_ppp.h)
c4377c1e 328AC_CHECK_HEADERS(netinet/if_ether.h)
dd7a9bc9 329
51e70a99
FF
330# For the multimeter plugin
331AC_CHECK_HEADERS(termios.h)
332AC_CHECK_HEADERS(sys/ioctl.h)
333
8de91034
FF
334#
335# Checking for libraries
336#
86ca149a
FF
337AC_CHECK_LIB(m, ext)
338
15996f86
FF
339#
340# Checks for typedefs, structures, and compiler characteristics.
341#
86ca149a
FF
342AC_C_CONST
343AC_TYPE_PID_T
344AC_TYPE_SIZE_T
7df03651 345AC_TYPE_UID_T
86ca149a
FF
346AC_HEADER_TIME
347
15996f86
FF
348#
349# Checks for library functions.
350#
86ca149a 351AC_PROG_GCC_TRADITIONAL
6e765a02 352AC_CHECK_FUNCS(gettimeofday select strdup strtol)
586eed68 353AC_CHECK_FUNCS(getaddrinfo getnameinfo)
86ca149a 354AC_CHECK_FUNCS(strchr memcpy strstr strcmp strncmp strncpy strlen)
6e765a02 355AC_CHECK_FUNCS(strncasecmp strcasecmp)
c988f52c 356AC_CHECK_FUNCS(openlog syslog closelog)
15996f86 357
d89f6dc3
FF
358socket_needs_socket="no"
359AC_CHECK_FUNCS(socket, [], AC_CHECK_LIB(socket, socket, [socket_needs_socket="yes"], AC_MSG_ERROR(cannot find socket)))
360AM_CONDITIONAL(BUILD_WITH_LIBSOCKET, test "x$socket_needs_socket" = "xyes")
361
4ca5457f
FF
362nanosleep_needs_rt="no"
363AC_CHECK_FUNCS(nanosleep, [], AC_CHECK_LIB(rt, nanosleep, [nanosleep_needs_rt="yes"], AC_MSG_ERROR(cannot find nanosleep)))
364AM_CONDITIONAL(BUILD_WITH_LIBRT, test "x$nanosleep_needs_rt" = "xyes")
365
ec88fb0e
FF
366# Regular expressions for the ignorelist.
367AC_CHECK_FUNCS(regcomp regerror regexec regfree)
368
e1d497b7
FF
369# For cpu module
370AC_CHECK_FUNCS(sysctlbyname, [have_sysctlbyname="yes"], [have_sysctlbyname="no"])
371
2d03e4e3
FF
372# For df module
373AC_CHECK_FUNCS(statfs statvfs)
374
15996f86
FF
375# For load module
376AC_CHECK_FUNCS(getloadavg, [have_getloadavg="yes"], [have_getloadavg="no"])
377
256810b6
FF
378# For the `processes' plugin
379AC_CHECK_FUNCS(thread_info)
380
15996f86 381# For users module
b898eac6 382AC_CHECK_FUNCS(getutent getutxent)
86ca149a 383
6e765a02
FF
384# For quota module
385AC_CHECK_FUNCS(quotactl)
386AC_CHECK_FUNCS(getgrgid getpwuid)
387
3268a333 388# For interface module
a05e34a0
FF
389AC_CHECK_FUNCS(getifaddrs)
390
e91c40b8
FF
391# Check for NAN
392nan_type="none"
393if test "x$nan_type" = "xnone"; then
394 AC_CACHE_CHECK([whether NAN is defined by default],
395 [have_nan_default],
396 AC_COMPILE_IFELSE(
397 AC_LANG_PROGRAM(
398 [[
399#include <stdlib.h>
400#include <math.h>
401static float foo = NAN;
402 ]],
403 [[
404 if (isnan (foo))
405 return 0;
406 else
407 return 1;
408 ]]),
409 [have_nan_default="yes"],
410 [have_nan_default="no"]
411 )
412 )
413 if test "x$have_nan_default" = "xyes"
414 then
415 nan_type="default"
416 AC_DEFINE(NAN_STATIC_DEFAULT, 1,
417 [Define if NAN is defined by default and can initialize static variables.])
418 fi
419fi
420if test "x$nan_type" = "xnone"; then
421 AC_CACHE_CHECK([whether NAN is defined by __USE_ISOC99],
422 [have_nan_isoc],
423 AC_COMPILE_IFELSE(
424 AC_LANG_PROGRAM(
425 [[
426#include <stdlib.h>
427#define __USE_ISOC99 1
428#include <math.h>
429static float foo = NAN;
430 ]],
431 [[
432 if (isnan (foo))
433 return 0;
434 else
435 return 1;
436 ]]),
437 [have_nan_isoc="yes"],
438 [have_nan_isoc="no"]
439 )
440 )
441 if test "x$have_nan_isoc" = "xyes"
442 then
443 nan_type="isoc99"
444 AC_DEFINE(NAN_STATIC_ISOC, 1,
445 [Define if NAN is defined by __USE_ISOC99 and can initialize static variables.])
446 fi
447fi
448if test "x$nan_type" = "xnone"; then
449 AC_CACHE_CHECK([whether NAN can be defined by 0/0],
450 [have_nan_zero],
451 AC_RUN_IFELSE(
452 AC_LANG_PROGRAM(
453 [[
454#include <stdlib.h>
455#include <math.h>
456#define NAN (0.0 / 0.0)
457#ifndef isnan
458# define isnan(f) ((f) != (f))
459#endif
460static float foo = NAN;
461 ]],
462 [[
463 if (isnan (foo))
464 return 0;
465 else
466 return 1;
467 ]]),
468 [have_nan_zero="yes"],
469 [have_nan_zero="no"]
470 )
471 )
472 if test "x$have_nan_zero" = "xyes"
473 then
474 nan_type="zero"
475 AC_DEFINE(NAN_ZERO_ZERO, 1,
476 [Define if NAN can be defined as (0.0 / 0.0)])
477 fi
478fi
479if test "x$nan_type" = "xnone"; then
480 AC_MSG_ERROR([Didn't find out how to statically initialize variables to NAN. Sorry.])
481fi
482
6e765a02 483# For mount interface
2dc3f07b
FF
484#AC_CHECK_FUNCS(getfsent getvfsent)
485
486have_getfsstat="no"
487AC_CHECK_FUNCS(getfsstat, [have_getfsstat="yes"])
488have_getvfsstat="no"
489AC_CHECK_FUNCS(getvfsstat, [have_getvfsstat="yes"])
490have_listmntent="no"
491AC_CHECK_FUNCS(listmntent, [have_listmntent="yes"])
492
493have_getmntent="no"
494AC_CHECK_FUNCS(getmntent, [have_getmntent="c"])
495if test "x$have_getmntent" = "xno"; then
496 AC_CHECK_LIB(sun, getmntent, [have_getmntent="sun"])
c9a5b034 497fi
2dc3f07b
FF
498if test "x$have_getmntent" = "xno"; then
499 AC_CHECK_LIB(seq, getmntent, [have_getmntent="seq"])
c9a5b034 500fi
2dc3f07b
FF
501if test "x$have_getmntent" = "xno"; then
502 AC_CHECK_LIB(gen, getmntent, [have_getmntent="gen"])
c9a5b034
FF
503fi
504
2dc3f07b 505if test "x$have_getmntent" = "xc"; then
6e765a02 506 AC_CACHE_CHECK([whether getmntent takes one argument],
2dc3f07b 507 [have_one_getmntent],
6e765a02
FF
508 AC_COMPILE_IFELSE(
509 AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT
2dc3f07b 510#include <mntent.h>
6e765a02 511#include "$srcdir/src/utils_mount.h"]],
2dc3f07b
FF
512 [[
513 FILE *fh;
514 struct mntent *me;
515 fh = setmntent ("/etc/mtab", "r");
516 me = getmntent (fh);
517 ]]
6e765a02 518 ),
2dc3f07b
FF
519 [have_one_getmntent="yes"],
520 [have_one_getmntent="no"]
6e765a02
FF
521 )
522 )
2dc3f07b
FF
523 AC_CACHE_CHECK([whether getmntent takes two arguments],
524 [have_two_getmntent],
525 AC_COMPILE_IFELSE(
526 AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT
527#include <sys/mnttab.h>
6e765a02 528#include "$srcdir/src/utils_mount.h"]],
2dc3f07b
FF
529 [[
530 FILE *fh;
531 struct mnttab mt;
532 int status;
533 fh = fopen ("/etc/mnttab", "r");
534 status = getmntent (fh, &mt);
535 ]]
536 ),
537 [have_two_getmntent="yes"],
538 [have_two_getmntent="no"]
6e765a02 539 )
2dc3f07b
FF
540 )
541fi
542
543# Check for different versions of `getmntent' here..
544
545if test "x$have_getmntent" = "xc"; then
546 if test "x$have_one_getmntent" = "xyes"; then
547 AC_DEFINE(HAVE_ONE_GETMNTENT, 1,
548 [Define if the function getmntent exists and takes one argument.])
549 fi
550 if test "x$have_two_getmntent" = "xyes"; then
551 AC_DEFINE(HAVE_TWO_GETMNTENT, 1,
552 [Define if the function getmntent exists and takes two arguments.])
6e765a02 553 fi
6e765a02 554fi
2dc3f07b
FF
555if test "x$have_getmntent" = "xsun"; then
556 AC_DEFINE(HAVE_SUN_GETMNTENT, 1,
557 [Define if the function getmntent exists. It's the version from libsun.])
6e765a02 558fi
2dc3f07b
FF
559if test "x$have_getmntent" = "xseq"; then
560 AC_DEFINE(HAVE_SEQ_GETMNTENT, 1,
561 [Define if the function getmntent exists. It's the version from libseq.])
562fi
563if test "x$have_getmntent" = "xgen"; then
564 AC_DEFINE(HAVE_GEN_GETMNTENT, 1,
565 [Define if the function getmntent exists. It's the version from libgen.])
6e765a02
FF
566fi
567
a05e34a0 568# Check for structures
906bea76 569AC_CHECK_MEMBERS([struct if_data.ifi_ibytes, struct if_data.ifi_opackets, struct if_data.ifi_ierrors],
a05e34a0
FF
570 [AC_DEFINE(HAVE_STRUCT_IF_DATA, 1, [Define if struct if_data exists and is usable.])],
571 [],
cd377858
FF
572 [
573 #include <sys/types.h>
574 #include <sys/socket.h>
575 #include <net/if.h>
576 ])
906bea76 577AC_CHECK_MEMBERS([struct net_device_stats.rx_bytes, struct net_device_stats.tx_packets, struct net_device_stats.rx_errors],
a05e34a0
FF
578 [AC_DEFINE(HAVE_STRUCT_NET_DEVICE_STATS, 1, [Define if struct net_device_stats exists and is usable.])],
579 [],
580 [
581 #include <sys/types.h>
582 #include <sys/socket.h>
583 #include <linux/if.h>
584 #include <linux/netdevice.h>
585 ])
586
5b9d0a2b
FF
587AC_CHECK_MEMBERS([struct udphdr.uh_dport, struct udphdr.uh_sport], [], [],
588[#if HAVE_STDINT_H
589# include <stdint.h>
590#endif
591#if HAVE_SYS_TYPES_H
592# include <sys/types.h>
593#endif
594#if HAVE_NETINET_IN_SYSTM_H
595# include <netinet/in_systm.h>
596#endif
597#if HAVE_NETINET_IN_H
598# include <netinet/in.h>
599#endif
600#if HAVE_NETINET_IP_H
601# include <netinet/ip.h>
602#endif
603#if HAVE_NETINET_UDP_H
604# include <netinet/udp.h>
605#endif
606])
607AC_CHECK_MEMBERS([struct udphdr.dest, struct udphdr.source], [], [],
608[#if HAVE_STDINT_H
609# include <stdint.h>
610#endif
611#if HAVE_SYS_TYPES_H
612# include <sys/types.h>
613#endif
614#if HAVE_NETINET_IN_SYSTM_H
615# include <netinet/in_systm.h>
616#endif
617#if HAVE_NETINET_IN_H
618# include <netinet/in.h>
619#endif
620#if HAVE_NETINET_IP_H
621# include <netinet/ip.h>
622#endif
623#if HAVE_NETINET_UDP_H
624# include <netinet/udp.h>
625#endif
626])
2aff261d 627
86ca149a
FF
628AC_MSG_CHECKING([for kernel type ($host_os)])
629case $host_os in
630 *linux*)
256810b6 631 AC_DEFINE([KERNEL_LINUX], 1, [True if program is to be compiled for a Linux kernel])
86ca149a
FF
632 ac_system="Linux"
633 ;;
634 *solaris*)
256810b6 635 AC_DEFINE([KERNEL_SOLARIS], 1, [True if program is to be compiled for a Solaris kernel])
86ca149a
FF
636 ac_system="Solaris"
637 ;;
638 *)
639 ac_system="unknown"
640esac
641AC_MSG_RESULT([$ac_system])
642
a58af051
FF
643with_libresolv="yes"
644AC_CHECK_LIB(resolv, res_search,
645[
646 AC_DEFINE(HAVE_LIBRESOLV, 1, [Define to 1 if you have the 'resolv' library (-lresolv).])
647],
648[with_libresolv="no"])
649AM_CONDITIONAL(BUILD_WITH_LIBRESOLV, test "x$with_libresolv" = "xyes")
86ca149a 650
125bdc00 651
c27cdba8
NW
652m4_divert_once([HELP_WITH], [
653collectd additional packages:])
654
86ca149a 655# AC_ARG_WITH (package, help-string, [action-if-given], [action-if-not-given])
3c12e8a6 656AC_ARG_WITH(rrdtool, [AS_HELP_STRING([--with-rrdtool@<:@=PREFIX@:>@], [Path to rrdtool.])],
42e281c5 657[ if test "x$withval" != "xno" && test "x$withval" != "xyes"
86ca149a
FF
658 then
659 LDFLAGS="$LDFLAGS -L$withval/lib"
660 CPPFLAGS="$CPPFLAGS -I$withval/include"
661 with_rrdtool="yes"
662 fi
663], [with_rrdtool="yes"])
664if test "x$with_rrdtool" = "xyes"
665then
a58af051
FF
666 AC_CHECK_LIB(rrd, rrd_update,
667 [
668 AC_DEFINE(HAVE_LIBRRD, 1, [Define to 1 if you have the rrd library (-lrrd).])
669 ],
670 [with_rrdtool="no (librrd not found)"], [-lm])
86ca149a
FF
671fi
672if test "x$with_rrdtool" = "xyes"
673then
3c12e8a6 674 AC_CHECK_HEADERS(rrd.h,, [with_rrdtool="no (rrd.h not found)"])
86ca149a 675fi
b898eac6
NW
676if test "x$with_rrdtool" = "xyes"
677then
678 collect_rrdtool=1
679else
680 collect_rrdtool=0
681fi
682AC_DEFINE_UNQUOTED(COLLECT_RRDTOOL, [$collect_rrdtool],
683 [Wether or not to use rrdtool library])
86ca149a
FF
684AM_CONDITIONAL(BUILD_WITH_RRDTOOL, test "x$with_rrdtool" = "xyes")
685
c4377c1e
FF
686AC_ARG_WITH(libpthread, [AS_HELP_STRING([--with-libpthread=@<:@=PREFIX@:>@], [Path to libpthread.])],
687[ if test "x$withval" != "xno" -a "x$withval" != "xyes"
9e137cdb
FF
688 then
689 LDFLAGS="$LDFLAGS -L$withval/lib"
690 CPPFLAGS="$CPPFLAGS -I$withval/include"
c4377c1e
FF
691 with_libpthread="yes"
692 else
693 if test "x$withval" = "xno"
694 then
695 with_libpthread="no (disabled)"
696 fi
9e137cdb 697 fi
06bafec5 698], [with_libpthread="yes"])
c4377c1e 699if test "x$with_libpthread" = "xyes"
9e137cdb 700then
c4377c1e 701 AC_CHECK_LIB(pthread, pthread_create, [with_libpthread="yes"], [with_libpthread="no (libpthread not found)"], [])
9e137cdb 702fi
c4377c1e 703if test "x$with_libpthread" = "xyes"
9e137cdb 704then
c4377c1e 705 AC_CHECK_HEADERS(pthread.h,, [with_libpthread="no (pthread.h not found)"])
9e137cdb 706fi
c4377c1e 707if test "x$with_libpthread" = "xyes"
9e137cdb
FF
708then
709 collect_pthread=1
710else
711 collect_pthread=0
712fi
713AC_DEFINE_UNQUOTED(HAVE_LIBPTHREAD, [$collect_pthread],
714 [Wether or not to use pthread (POSIX threads) library])
c4377c1e 715AM_CONDITIONAL(BUILD_WITH_LIBPTHREAD, test "x$with_libpthread" = "xyes")
6e765a02 716
86ca149a
FF
717if test "$ac_system" = "Solaris"
718then
719 with_kstat="yes"
d89f6dc3 720 with_devinfo="yes"
3c12e8a6
NW
721else
722 with_kstat="no (Solaris only)"
d89f6dc3 723 with_devinfo="no (Solaris only)"
3c12e8a6 724fi
d89f6dc3 725
3c12e8a6
NW
726if test "x$with_kstat" = "xyes"
727then
080df026 728 AC_CHECK_LIB(kstat, kstat_open, [with_kstat="yes"], [with_kstat="no (libkstat not found)"], [])
3c12e8a6
NW
729fi
730if test "x$with_kstat" = "xyes"
731then
080df026 732 AC_CHECK_LIB(devinfo, di_init, [with_devinfo="yes"], [with_devinfo="no (not found)"], [])
86ca149a 733 AC_CHECK_HEADERS(kstat.h,, [with_kstat="no (kstat.h not found)"])
86ca149a 734fi
b898eac6
NW
735if test "x$with_kstat" = "xyes"
736then
27adc320
FF
737 AC_DEFINE(HAVE_LIBKSTAT, 1,
738 [Define to 1 if you have the 'kstat' library (-lkstat)])
b898eac6 739fi
d89f6dc3
FF
740AM_CONDITIONAL(BUILD_WITH_LIBKSTAT, test "x$with_kstat" = "xyes")
741AM_CONDITIONAL(BUILD_WITH_LIBDEVINFO, test "x$with_devinfo" = "xyes")
86ca149a 742
1842a7a7
FF
743### BEGIN of check for libcurl ###
744with_curl_config="curl-config"
745with_curl_prefix=0
746with_curl_libs=""
747AC_ARG_WITH(libcurl, [AS_HELP_STRING([--with-libcurl@<:@=PREFIX@:>@], [Path to libcurl.])],
748[
749 if test "x$withval" != "xno" -a "x$withval" != "xyes"
750 then
751 if test -x "$withval/bin/curl-config"
752 then
753 with_curl_config="$withval/bin/curl-config"
754 with_curl_prefix=1
755 fi
756 fi
757 if test "x$withval" = "xno"
758 then
759 with_libcurl="no"
760 else
761 with_libcurl="yes"
762 fi
763],
764[
765 with_libcurl="yes"
766])
767if test "x$with_libcurl" = "xyes"
768then
769 with_curl_libs=`$with_curl_config --libs 2>/dev/null`
770 curl_config_status=$?
771
772 if test $curl_config_status -ne 0
773 then
774 with_libcurl="no"
775 else
776 AC_CHECK_LIB(curl, curl_easy_init,
777 [
778 BUILD_WITH_LIBCURL_LIBS="$with_curl_libs"
779 AC_SUBST(BUILD_WITH_LIBCURL_LIBS)
780 ],
781 [
782 with_libcurl="no"
783 ],
784 [$with_curl_libs])
785 fi
786fi
787if test "x$with_libcurl" = "xyes" -a $with_curl_prefix -ne 0
788then
789 with_curl_prefix=`$with_curl_config --libs 2>/dev/null`
790 curl_config_status=$?
791
792 if test $curl_config_status -ne 0
793 then
794 with_libcurl="no"
795 else
796 if test -d "$with_curl_prefix/include"
797 then
798 CPPFLAGS="$CPPFLAGS -I$with_curl_prefix/include"
799 fi
800 fi
801fi
802
803with_libcurl_numeric=0
804if test "x$with_libcurl" = "xyes"
805then
806 with_libcurl_numeric=1
807fi
808AC_DEFINE_UNQUOTED(HAVE_LIBCURL, [$with_libcurl_numeric], [Define to 1 if you have the 'curl' library (-lcurl).])
809AM_CONDITIONAL(BUILD_WITH_LIBCURL, test "x$with_libcurl" = "xyes")
810### END of check for libcurl ###
811
adaf6ca0
FF
812with_libiokit="no"
813collectd_libiokit=0
814AC_CHECK_LIB(IOKit, IOServiceGetMatchingServices,
815[
816 with_libiokit="yes"
817 collectd_libiokit=1
818],
819[
820 with_libiokit="no"
821 collectd_libiokit=0
822])
823AC_DEFINE_UNQUOTED(COLLECT_LIBIOKIT, [$collect_libiokit], [Wether or not to use the IOKit library])
824AM_CONDITIONAL(BUILD_WITH_LIBIOKIT, test "x$with_libiokit" = "xyes")
825
0aa63f0c
FF
826with_libstatgrab="yes"
827with_libdevstat="no"
3c12e8a6 828AC_ARG_WITH(libstatgrab, [AS_HELP_STRING([--with-libstatgrab@<:@=PREFIX@:>@], [Path to libstatgrab.])],
86ca149a 829[
1842a7a7 830 if test "x$withval" != "xno" -a "x$withval" != "xyes"
86ca149a 831 then
42e281c5
NW
832 LDFLAGS="$LDFLAGS -L$withval/lib"
833 CPPFLAGS="$CPPFLAGS -I$withval/include"
834 with_libstatgrab="yes"
86ca149a
FF
835 fi
836],
837[
f830bd02 838 if test "x$ac_system" == "xunknown"
86ca149a 839 then
86ca149a 840 with_libstatgrab="yes"
f830bd02
NW
841 else
842 with_libstatgrab="no"
86ca149a
FF
843 fi
844])
845if test "x$with_libstatgrab" = "xyes"
846then
0aa63f0c 847 AC_CHECK_LIB(statgrab, sg_init, [with_libstatgrab="yes"], [with_libstatgrab="no (libstatgrab not found)"])
3c12e8a6
NW
848fi
849if test "x$with_libstatgrab" = "xyes"
850then
176d5f79 851 AC_CHECK_HEADERS(statgrab.h,, [with_libstatgrab="no (statgrab.h not found)"])
86ca149a 852fi
176d5f79 853if test "x$with_libstatgrab" = "xyes"
0aa63f0c
FF
854then
855 AC_CHECK_LIB(devstat, getdevs, [with_libdevstat="yes"], [with_libdevstat="no"])
0aa63f0c
FF
856fi
857if test "x$with_libstatgrab" = "xyes"
176d5f79
NW
858then
859 collect_libstatgrab=1
860else
861 collect_libstatgrab=0
862fi
863AC_DEFINE_UNQUOTED(COLLECT_LIBSTATGRAB, [$collect_libstatgrab],
864 [Wether or not to use statgrab library])
865AM_CONDITIONAL(BUILD_WITH_LIBSTATGRAB, test "x$with_libstatgrab" = "xyes")
0aa63f0c 866AM_CONDITIONAL(BUILD_WITH_LIBDEVSTAT, test "x$with_libdevstat" = "xyes")
28c5e282
FF
867
868AC_CHECK_LIB(kvm, kvm_getswapinfo, [with_libkvm="yes"], [with_libkvm="no"])
869if test "x$with_libkvm" = "xyes"
870then
871 AC_DEFINE(HAVE_LIBKVM, 1, [Define to 1 if you have the 'kvm' library (-lkvm)])
872fi
873AM_CONDITIONAL(BUILD_WITH_LIBKVM, test "x$with_libkvm" = "xyes")
86ca149a 874
3c12e8a6 875AC_ARG_WITH(lm-sensors, [AS_HELP_STRING([--with-lm-sensors@<:@=PREFIX@:>@], [Path to lm_sensors.])],
86ca149a 876[
56a554e8 877 if test "x$withval" != "xno" && test "x$withval" != "xyes"
86ca149a 878 then
56a554e8
NW
879 LDFLAGS="$LDFLAGS -L$withval/lib"
880 CPPFLAGS="$CPPFLAGS -I$withval/include"
881 with_lm_sensors="yes"
86ca149a
FF
882 fi
883],
884[
86ca149a
FF
885 if test "x$ac_system" = "xLinux"
886 then
887 with_lm_sensors="yes"
888 else
889 with_lm_sensors="no"
890 fi
891])
892if test "x$with_lm_sensors" = "xyes"
893then
894 AC_CHECK_LIB(sensors, sensors_init,
895 [
86ca149a
FF
896 AC_DEFINE(HAVE_LIBSENSORS, 1, [Define to 1 if you have the sensors library (-lsensors).])
897 ],
56a554e8 898 [with_lm_sensors="no (libsensors not found)"])
3c12e8a6
NW
899fi
900if test "x$with_lm_sensors" = "xyes"
901then
86ca149a
FF
902 AC_CHECK_HEADERS(sensors/sensors.h,
903 [
86ca149a
FF
904 AC_DEFINE(HAVE_SENSORS_SENSORS_H, 1, [Define to 1 if you have the <sensors/sensors.h> header file.])
905 ],
56a554e8
NW
906 [with_lm_sensors="no (sensors/sensors.h not found)"])
907fi
908if test "x$with_lm_sensors" = "xyes"
909then
910 collect_lm_sensors=1
911else
912 collect_lm_sensors=0
86ca149a 913fi
56a554e8
NW
914AC_DEFINE_UNQUOTED(COLLECT_LM_SENSORS, [$collect_lm_sensors],
915 [Wether or not to use sensors library])
916AM_CONDITIONAL(BUILD_WITH_LM_SENSORS, test "x$with_lm_sensors" = "xyes")
86ca149a 917
e4303e15
FF
918AC_ARG_WITH(libmysql, [AS_HELP_STRING([--with-libmysql@<:@=PREFIX@:>@], [Path to libmysql.])],
919[
920 if test "x$withval" != "xno" && test "x$withval" != "xyes"
921 then
922 LDFLAGS="$LDFLAGS -L$withval/lib"
923 CPPFLAGS="$CPPFLAGS -I$withval/include"
924 with_libmysql="yes"
925 fi
926],
927[
928 with_libmysql="yes"
929])
930if test "x$with_libmysql" = "xyes"
931then
2bb1a064
FF
932 AC_CHECK_LIB(mysqlclient, mysql_init,
933 [
934 AC_DEFINE(HAVE_LIBMYSQLCLIENT, 1, [Define to 1 if you have the mysqlclient library (-lmysqlclient).])
935 ], [with_libmysql="no (libmysql not found)"])
e4303e15
FF
936fi
937if test "x$with_libmysql" = "xyes"
938then
2bb1a064
FF
939 AC_CHECK_HEADERS(mysql/mysql.h,
940 [
941 AC_DEFINE(HAVE_MYSQL_MYSQL_H, 1, [Define to 1 if you have the <mysql/mysql.h> header file.])
942 ], [with_libmysql="no (mysql/mysql.h not found)"])
e4303e15
FF
943fi
944if test "x$with_libmysql" = "xyes"
945then
946 collect_libmysql=1
947else
948 collect_libmysql=0
949fi
950AC_DEFINE_UNQUOTED(COLLECT_LIBMYSQL, [$collect_libmysql],
951 [Wether or not to use mysql library])
952AM_CONDITIONAL(BUILD_WITH_LIBMYSQL, test "x$with_libmysql" = "xyes")
86ca149a 953
6997fb33
FF
954#with_liboping="yes"
955with_own_liboping="no"
956liboping_LDFLAGS="$LDFLAGS"
957liboping_CPPFLAGS="$CPPFLAGS"
958AC_ARG_WITH(liboping, [AS_HELP_STRING([--with-liboping@<:@=PREFIX@:>@], [Path to liboping.])],
959[
960 if test "x$withval" != "xno" && test "x$withval" != "xyes"
961 then
962 if test -d "$withval/lib"
963 then
964 liboping_LDFLAGS="$LDFLAGS -L$withval/lib"
965 fi
966 if test -d "$withval/include"
967 then
968 liboping_CPPFLAGS="$CPPFLAGS -I$withval/include"
969 fi
970 fi
971 if test "x$withval" = "xno"
972 then
973 with_liboping="no"
974 with_own_liboping="no"
975 fi
976],
977[
978 #753
979 with_liboping="yes"
980])
981
982if test "x$with_liboping" = "xyes"
983then
984 save_LDFLAGS="$LDFLAGS"
985 save_CPPFLAGS="$CPPFLAGS"
986 LDFLAGS="$liboping_LDFLAGS"
987 CPPFLAGS="$liboping_CPPFLAGS"
988 AC_CHECK_LIB(oping, ping_construct,
989 [
990 with_liboping="yes"
991 with_own_liboping="no"
992 ],
993 [
994 with_liboping="yes"
995 with_own_liboping="yes"
996 LDFLAGS="$save_LDFLAGS"
997 CPPFLAGS="$save_CPPFLAGS"
998 ])
999fi
1000AM_CONDITIONAL(BUILD_WITH_LIBOPING, test "x$with_liboping" = "xyes")
1001AM_CONDITIONAL(BUILD_WITH_OWN_LIBOPING, test "x$with_own_liboping" = "xyes")
1002if test "x$with_liboping" = "xyes" -a "x$with_own_liboping" = "xyes"
1003then
1004 with_liboping="yes (shipped version)"
1005fi
1006
dd7a9bc9
FF
1007AC_ARG_WITH(libpcap, [AS_HELP_STRING([--with-libpcap@<:@=PREFIX@:>@], [Path to libpcap.])],
1008[
1009 if test "x$withval" != "xno" && test "x$withval" != "xyes"
1010 then
1011 LDFLAGS="$LDFLAGS -L$withval/lib"
1012 CPPFLAGS="$CPPFLAGS -I$withval/include"
1013 with_libpcap="yes"
1014 fi
1015],
1016[
1017 with_libpcap="yes"
1018])
1019if test "x$with_libpcap" = "xyes"
1020then
1021 AC_CHECK_LIB(pcap, pcap_open_live,
1022 [
1023 AC_DEFINE(HAVE_LIBPCAP, 1, [Define to 1 if you have the pcap library (-lpcap).])
1024 ], [with_libpcap="no (libpcap not found)"])
1025fi
1026if test "x$with_libpcap" = "xyes"
1027then
1028 AC_CHECK_HEADERS(pcap.h,
1029 [
1030 AC_DEFINE(HAVE_PCAP_H, 1, [Define to 1 if you have the <pcap.h> header file.])
1031 ], [with_libpcap="no (pcap.h not found)"])
1032fi
1033if test "x$with_libpcap" = "xyes"
1034then
1035 collect_libpcap=1
1036else
1037 collect_libpcap=0
1038fi
92f43553 1039AC_DEFINE_UNQUOTED(COLLECT_LIBPCAP, [$collect_libpcap],
dd7a9bc9 1040 [Wether or not to use the pcap library])
92f43553 1041AM_CONDITIONAL(BUILD_WITH_LIBPCAP, test "x$with_libpcap" = "xyes")
dd7a9bc9 1042
8de91034
FF
1043AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to libiptc.])],
1044[
1045 if test "x$withval" != "xno" && test "x$withval" != "xyes"
1046 then
1047 LDFLAGS="$LDFLAGS -L$withval/lib"
1048 CPPFLAGS="$CPPFLAGS -I$withval/include"
1049 with_libiptc="yes"
1050 fi
1051],
1052[
1053 if test "x$ac_system" = "xLinux"
1054 then
1055 with_libiptc="yes"
1056 else
1057 with_libiptc="no (Linux only)"
1058 fi
1059])
1060if test "x$with_libiptc" = "xyes"
1061then
1062 AC_CHECK_LIB(iptc, iptc_init,
1063 [
1064 AC_DEFINE(HAVE_LIBIPTC, 1, [Define to 1 if you have the iptc library (-liptc).])
1065 ], [with_libiptc="no (libiptc not found)"])
1066fi
1067if test "x$with_libiptc" = "xyes"
1068then
1069 AC_CHECK_HEADERS(libiptc/libiptc.h,
1070 [
1071 AC_DEFINE(HAVE_LIBIPTC_LIBIPTC_H, 1, [Define to 1 if you have the <libiptc/libiptc.h> header file.])
1072 ], [with_libiptc="no (libiptc/libiptc.h not found)"])
1073fi
1074if test "x$with_libiptc" = "xyes"
1075then
1076 collect_libiptc=1
1077else
1078 collect_libiptc=0
1079fi
1080AM_CONDITIONAL(BUILD_WITH_LIBIPTC, test "x$with_libiptc" = "xyes")
1081
bc2d9402
FF
1082AC_ARG_WITH(libupsclient, [AS_HELP_STRING([--with-libupsclient@<:@=PREFIX@:>@], [Path to libupsclient.])],
1083[
1084 if test "x$withval" != "xno" && test "x$withval" != "xyes"
1085 then
1086 LDFLAGS="$LDFLAGS -L$withval/lib"
1087 CPPFLAGS="$CPPFLAGS -I$withval/include"
1088 with_libupsclient="yes"
1089 fi
1090],
1091[
1092 with_libupsclient="yes"
1093])
1094if test "x$with_libupsclient" = "xyes"
1095then
1096 AC_CHECK_LIB(upsclient, upscli_connect,
1097 [
1098 AC_DEFINE(HAVE_LIBUPSCLIENT, 1, [Define to 1 if you have the upsclient library (-lupsclient).])
1099 ], [with_libupsclient="no (libupsclient not found)"])
1100fi
1101if test "x$with_libupsclient" = "xyes"
1102then
1103 AC_CHECK_HEADERS(upsclient.h,
1104 [
1105 AC_DEFINE(HAVE_UPSCLIENT_H, 1, [Define to 1 if you have the <upsclient.h> header file.])
1106 ], [with_libupsclient="no (upsclient.h not found)"])
1107fi
1108AM_CONDITIONAL(BUILD_WITH_LIBUPSCLIENT, test "x$with_libupsclient" = "xyes")
1109
86ca149a
FF
1110# Check for enabled/disabled features
1111#
6e765a02 1112
3c12e8a6
NW
1113# AC_COLLECTD(name, enable/disable, info-text, feature/module)
1114# ------------------------------------------------------------
1115dnl
1116m4_define([my_toupper], [m4_translit([$1], m4_defn([m4_cr_letters]), m4_defn([m4_cr_LETTERS]))])
1117dnl
1118AC_DEFUN(
1119 [AC_COLLECTD],
1120 [
1121 m4_if([$1], [], [AC_FATAL([AC_COLLECTD([$1], [$2], [$3], [$4]): 1st argument must not be empty])])dnl
1122 m4_if(
1123 [$2],
1124 [enable],
1125 [dnl
1126 m4_define([EnDis],[disabled])dnl
1127 m4_define([YesNo],[no])dnl
1128 ],dnl
1129 [m4_if(
1130 [$2],
1131 [disable],
1132 [dnl
1133 m4_define([EnDis],[enabled])dnl
1134 m4_define([YesNo],[yes])dnl
1135 ],
1136 [dnl
1137 AC_FATAL([AC_COLLECTD([$1], [$2], [$3], [$4]): 2nd argument must be either enable or disable])dnl
1138 ]dnl
1139 )]dnl
1140 )dnl
1141 m4_if([$3], [feature], [],
1142 [m4_if(
1143 [$3], [module], [],
1144 [dnl
1145 AC_FATAL([AC_COLLECTD([$1], [$2], [$3], [$4]): 3rd argument must be either feature or disable])dnl
1146 ]dnl
1147 )]dnl
1148 )dnl
1149 AC_ARG_ENABLE(
1150 [$1],
1151 AS_HELP_STRING([--$2-$1], [$2 $4 (EnDis by def)]),
1152 [],
1153 enable_$1='[YesNo]'dnl
1154 )# AC_ARG_ENABLE
1155if test "x$enable_$1" = "xno"
1156then
1157 collectd_$1=0
6e765a02 1158else
3c12e8a6 1159 if test "x$enable_$1" = "xyes"
6e765a02 1160 then
3c12e8a6 1161 collectd_$1=1
6e765a02 1162 else
3c12e8a6
NW
1163 AC_MSG_NOTICE([please specify either --enable-$1 or --disable-$1; enabling $1.])
1164 collectd_$1=1
1165 enable_$1='yes'
6e765a02
FF
1166 fi
1167fi
3c12e8a6
NW
1168 AC_DEFINE_UNQUOTED([COLLECT_]my_toupper([$1]), [$collectd_$1], [wether or not to enable $3 $4])
1169 AM_CONDITIONAL([BUILD_]my_toupper([$3])[_]my_toupper([$1]), [test "x$enable_$1" = "xyes"])dnl
1170 ]dnl
1171)# AC_COLLECTD(name, enable/disable, info-text, feature/module)
1172
3c12e8a6
NW
1173m4_divert_once([HELP_ENABLE], [
1174collectd features:])
3c12e8a6
NW
1175AC_COLLECTD([debug], [enable], [feature], [debugging])
1176AC_COLLECTD([daemon], [disable], [feature], [daemon mode])
14740db4 1177AC_COLLECTD([getifaddrs],[enable], [feature], [getifaddrs under Linux])
6e765a02 1178
f9ee71b2
NW
1179m4_divert_once([HELP_ENABLE], [
1180collectd modules:])
a8025575 1181AC_COLLECTD([apache], [disable], [module], [Apache httpd statistics])
bfec4e6f 1182AC_COLLECTD([apcups], [disable], [module], [Statistics of UPSes by APC])
dc42e3e0 1183AC_COLLECTD([apple_sensors], [disable], [module], [Apple's hardware sensors])
84b0b421 1184AC_COLLECTD([battery], [disable], [module], [battery statistics])
96cf2ccb 1185AC_COLLECTD([cpu], [disable], [module], [cpu usage statistics])
55b43947
FF
1186AC_COLLECTD([cpufreq], [disable], [module], [system cpu frequency statistics])
1187AC_COLLECTD([disk], [disable], [module], [disk/partition statistics])
f5b4f424 1188AC_COLLECTD([csv], [disable], [module], [csv output plugin])
2d03e4e3 1189AC_COLLECTD([df], [disable], [module], [df statistics])
fdfbf887 1190AC_COLLECTD([dns], [disable], [module], [dns statistics])
fc257d86 1191AC_COLLECTD([email], [disable], [module], [email statistics])
1cc2a825 1192AC_COLLECTD([entropy], [disable], [module], [entropy statistics])
11770688 1193AC_COLLECTD([exec], [disable], [module], [exec of external programs])
55b43947 1194AC_COLLECTD([hddtemp], [disable], [module], [hdd temperature statistics])
3268a333 1195AC_COLLECTD([interface], [disable], [module], [interface statistics])
863dfcdf 1196AC_COLLECTD([iptables], [disable], [module], [IPtables statistics])
f21bcfdc 1197AC_COLLECTD([irq], [disable], [module], [irq statistics])
55b43947 1198AC_COLLECTD([load], [disable], [module], [system load statistics])
c8e76316 1199AC_COLLECTD([mbmon], [disable], [module], [motherboard monitor statistics])
55b43947 1200AC_COLLECTD([memory], [disable], [module], [memory statistics])
9a5e1523 1201AC_COLLECTD([multimeter],[disable], [module], [multimeter statistics])
e4303e15 1202AC_COLLECTD([mysql], [disable], [module], [mysql statistics])
63450476 1203AC_COLLECTD([network], [disable], [module], [network functionality])
55b43947 1204AC_COLLECTD([nfs], [disable], [module], [nfs statistics])
ab71d6d2 1205AC_COLLECTD([ntpd], [disable], [module], [ntpd statistics])
bc2d9402 1206AC_COLLECTD([nut], [disable], [module], [network UPS tools statistics])
55b43947
FF
1207AC_COLLECTD([ping], [disable], [module], [ping statistics])
1208AC_COLLECTD([processes], [disable], [module], [processes statistics])
1209AC_COLLECTD([sensors], [disable], [module], [lm_sensors statistics])
1210AC_COLLECTD([serial], [disable], [module], [serial statistics])
1edbe3e5 1211AC_COLLECTD([logfile], [disable], [module], [logfile log facility])
55b43947 1212AC_COLLECTD([swap], [disable], [module], [swap statistics])
5bc935fb 1213AC_COLLECTD([syslog], [disable], [module], [syslog log facility])
55b43947 1214AC_COLLECTD([tape], [disable], [module], [tape statistics])
86090b3d 1215AC_COLLECTD([unixsock], [disable], [module], [UNIX socket plugin])
55b43947 1216AC_COLLECTD([users], [disable], [module], [user count statistics])
5e70f2e0 1217AC_COLLECTD([vserver], [disable], [module], [vserver statistics])
08037975 1218AC_COLLECTD([wireless], [disable], [module], [wireless link statistics])
55b43947 1219
108c20b2 1220AC_OUTPUT(Makefile src/Makefile src/collectd.conf src/liboconfig/Makefile src/liboping/Makefile)
86ca149a
FF
1221
1222cat <<EOF;
1223
1224Configuration:
1225 Libraries:
a8025575 1226 libcurl . . . . . . $with_libcurl
adaf6ca0 1227 libiokit . . . . . $with_libiokit
86ccc162 1228 libiptc . . . . . . $with_libiptc
86ca149a 1229 libkstat . . . . . $with_kstat
e4303e15 1230 libmysql . . . . . $with_libmysql
86ccc162 1231 liboping . . . . . $with_liboping
dd7a9bc9 1232 libpcap . . . . . . $with_libpcap
c4377c1e 1233 libpthread . . . . $with_libpthread
86ccc162
FF
1234 librrd . . . . . . $with_rrdtool
1235 libsensors . . . . $with_lm_sensors
1236 libstatgrab . . . . $with_libstatgrab
1237 libupsclient . . . $with_libupsclient
86ca149a
FF
1238
1239 Features:
6e765a02 1240 daemon mode . . . . $enable_daemon
86ccc162 1241 debug . . . . . . . $enable_debug
6e765a02
FF
1242
1243 Modules:
11265296 1244 apache . . . . . . $enable_apache
bfec4e6f 1245 apcups . . . . . . $enable_apcups
11265296 1246 apple_sensors . . . $enable_apple_sensors
84b0b421 1247 battery . . . . . . $enable_battery
86ca149a
FF
1248 cpu . . . . . . . . $enable_cpu
1249 cpufreq . . . . . . $enable_cpufreq
f5b4f424 1250 csv . . . . . . . . $enable_csv
2d03e4e3 1251 df . . . . . . . . $enable_df
86ca149a 1252 disk . . . . . . . $enable_disk
fdfbf887 1253 dns . . . . . . . . $enable_dns
fc257d86 1254 email . . . . . . . $enable_email
1cc2a825 1255 entropy . . . . . . $enable_entropy
11770688 1256 exec . . . . . . . $enable_exec
86ca149a 1257 hddtemp . . . . . . $enable_hddtemp
3268a333 1258 interface . . . . . $enable_interface
35248bcc 1259 iptables . . . . . $enable_iptables
3268a333 1260 irq . . . . . . . . $enable_irq
86ca149a 1261 load . . . . . . . $enable_load
05b7b7e3 1262 logfile . . . . . . $enable_logfile
c8e76316 1263 mbmon . . . . . . . $enable_mbmon
86ca149a 1264 memory . . . . . . $enable_memory
9a5e1523 1265 multimeter . . . . $enable_multimeter
1f2a5bff 1266 mysql . . . . . . . $enable_mysql
63450476 1267 network . . . . . . $enable_network
86ca149a 1268 nfs . . . . . . . . $enable_nfs
2fa44680 1269 ntpd . . . . . . . $enable_ntpd
bc2d9402 1270 nut . . . . . . . . $enable_nut
86ca149a
FF
1271 ping . . . . . . . $enable_ping
1272 processes . . . . . $enable_processes
1273 sensors . . . . . . $enable_sensors
1274 serial . . . . . . $enable_serial
1275 swap . . . . . . . $enable_swap
5bc935fb 1276 syslog . . . . . . $enable_syslog
86ca149a 1277 tape . . . . . . . $enable_tape
86090b3d 1278 unixsock . . . . . $enable_unixsock
0127d402 1279 users . . . . . . . $enable_users
5e70f2e0 1280 vserver . . . . . . $enable_vserver
08037975 1281 wireless . . . . . $enable_wireless
86ca149a
FF
1282
1283EOF