1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT(collectd, 3.5.alpha2)
3 AC_CONFIG_SRCDIR(src/collectd.c)
4 AC_CONFIG_HEADERS(src/config.h)
5 AM_INIT_AUTOMAKE(dist-bzip2)
8 AC_PREFIX_DEFAULT("/opt/collectd")
11 # Checks for programs.
21 AC_LIBLTDL_CONVENIENCE
27 AC_CONFIG_SUBDIRS(libltdl)
30 # Checks for header files.
34 AC_CHECK_HEADERS(fcntl.h)
35 AC_CHECK_HEADERS(signal.h)
36 AC_CHECK_HEADERS(sys/socket.h)
37 AC_CHECK_HEADERS(sys/select.h)
38 AC_CHECK_HEADERS(netdb.h)
39 AC_CHECK_HEADERS(sys/resource.h)
40 AC_CHECK_HEADERS(errno.h)
41 AC_CHECK_HEADERS(syslog.h)
44 AC_CHECK_HEADERS(sys/sysctl.h sys/dkstat.h)
47 AC_CHECK_HEADERS(sys/loadavg.h)
50 AC_CHECK_HEADERS(arpa/inet.h)
51 AC_CHECK_HEADERS(netinet/in.h)
54 AC_CHECK_HEADERS(utmp.h)
55 AC_CHECK_HEADERS(utmpx.h)
58 AC_CHECK_HEADERS(grp.h pwd.h sys/ucred.h)
59 AC_CHECK_HEADERS(ctype.h)
60 AC_CHECK_HEADERS(limits.h)
61 AC_CHECK_HEADERS(sys/quota.h)
62 AC_CHECK_HEADERS(xfs/xqm.h)
65 AC_CHECK_HEADERS(fs_info.h)
66 AC_CHECK_HEADERS(fshelp.h)
67 AC_CHECK_HEADERS(paths.h)
68 AC_CHECK_HEADERS(mntent.h)
69 AC_CHECK_HEADERS(mnttab.h)
70 AC_CHECK_HEADERS(sys/fstyp.h)
71 AC_CHECK_HEADERS(sys/fs_types.h)
72 AC_CHECK_HEADERS(sys/mntent.h)
73 AC_CHECK_HEADERS(sys/mnttab.h)
74 AC_CHECK_HEADERS(sys/mount.h)
75 AC_CHECK_HEADERS(sys/statfs.h)
76 AC_CHECK_HEADERS(sys/vfs.h)
77 AC_CHECK_HEADERS(sys/vfstab.h)
79 # For debugging interface (variable number of arguments)
80 AC_CHECK_HEADERS(stdarg.h)
82 dnl Checking for libraries
86 # Checks for typedefs, structures, and compiler characteristics.
94 # Checks for library functions.
96 AC_PROG_GCC_TRADITIONAL
97 AC_CHECK_FUNCS(gettimeofday select strdup strtol)
98 AC_CHECK_FUNCS(socket, , AC_CHECK_LIB(socket, socket))
99 AC_CHECK_FUNCS(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname))
100 AC_CHECK_FUNCS(strchr memcpy strstr strcmp strncmp strncpy strlen)
101 AC_CHECK_FUNCS(strncasecmp strcasecmp)
104 AC_CHECK_FUNCS(sysctlbyname, [have_sysctlbyname="yes"], [have_sysctlbyname="no"])
107 AC_CHECK_FUNCS(getloadavg, [have_getloadavg="yes"], [have_getloadavg="no"])
111 AC_CHECK_FUNCS(getutent getutxent, [have_getutent="yes"])
114 AC_CHECK_FUNCS(quotactl)
115 AC_CHECK_FUNCS(getgrgid getpwuid)
117 # For mount interface
118 AC_CHECK_FUNCS(getfsent getvfsent listmntent)
120 if test "x$ac_cv_func_getmntent" = 'xyes'; then
122 CFLAGS="-Wall -Werror $CFLAGS"
123 AC_CACHE_CHECK([whether getmntent takes one argument],
126 AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT
127 #include "$srcdir/src/utils_mount.h"]],
128 [[(void)getmntent((FILE *)NULL);]]
130 [fu_cv_getmntent1=yes],
131 [fu_cv_getmntent1=no]
134 if test "x$fu_cv_getmntent1" = 'xno'; then
135 AC_CACHE_CHECK([whether getmntent takes two arguments],
138 AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT
139 #include "$srcdir/src/utils_mount.h"]],
140 [[(void)getmntent((FILE *)NULL,
141 (struct mnttab *)NULL);]]
143 [fu_cv_getmntent2=yes],
144 [fu_cv_getmntent2=no]
150 if test "x$fu_cv_getmntent1" = 'xyes'; then
151 AC_DEFINE(HAVE_GETMNTENT1,
153 [Define if there is a function named getmntent
154 for reading the list of mounted filesystems, and
155 that function takes a single argument. (4.3BSD,
156 SunOS, HP-UX, Dynix, Irix, Linux)]
159 if test "x$fu_cv_getmntent2" = 'xyes'; then
160 AC_DEFINE(HAVE_GETMNTENT2,
162 [Define if there is a function named getmntent
163 for reading the list of mounted filesystems, and
164 that function takes two arguments. (SVR4)]
168 AC_MSG_CHECKING([for kernel type ($host_os)])
171 AC_DEFINE([KERNEL_LINUX], [], [True if program is to be compiled for a Linux kernel])
175 AC_DEFINE([KERNEL_SOLARIS], [], [True if program is to be compiled for a Solaris kernel])
181 AC_MSG_RESULT([$ac_system])
183 dnl Checks for libraries.
184 AC_CHECK_LIB(socket, socket)
185 AC_CHECK_LIB(resolv, res_search)
187 # AC_ARG_WITH (package, help-string, [action-if-given], [action-if-not-given])
188 AC_ARG_WITH(rrdtool, AC_HELP_STRING([--with-rrdtool=PFX], [Path to rrdtool.]),
189 [ if test "x$withval" != "xno" -a "x$withval" != "xyes"
191 LDFLAGS="$LDFLAGS -L$withval/lib"
192 CPPFLAGS="$CPPFLAGS -I$withval/include"
195 ], [with_rrdtool="yes"])
196 if test "x$with_rrdtool" = "xyes"
198 AC_CHECK_LIB(rrd, rrd_update,, [with_rrdtool="no"], [-lm])
200 if test "x$with_rrdtool" = "xyes"
202 AC_CHECK_HEADERS(rrd.h,, [with_rrdtool="no"])
204 AM_CONDITIONAL(BUILD_WITH_RRDTOOL, test "x$with_rrdtool" = "xyes")
206 #AC_ARG_WITH(pth, AC_HELP_STRING([--with-pth=PFX], [Path to pth (experimental).]),
207 #[ if test "x$withval" != "xno" -a "x$withval" != "xyes"
209 # LDFLAGS="$LDFLAGS -L$withval/lib"
210 # CPPFLAGS="$CPPFLAGS -I$withval/include"
214 #if test "x$with_pth" = "xyes"
216 # AC_CHECK_LIB(pth, pth_init,, [with_pth="no"], [])
218 #if test "x$with_pth" = "xyes"
220 # AC_CHECK_HEADERS(pth.h,, [with_pth="no"])
222 #if test "x$with_pth" = "xyes"
228 #AC_DEFINE_UNQUOTED(COLLECT_PTH, [$collect_pth],
229 # [Wether or not to use pth (portable threads) library])
230 #AM_CONDITIONAL(BUILD_WITH_PTH, test "x$with_pth" = "xyes")
232 if test "$ac_system" = "Solaris"
235 AC_CHECK_LIB(kstat, kstat_open,, [with_kstat="no (not found)"])
236 AC_CHECK_LIB(devinfo, di_init)
237 AC_CHECK_HEADERS(kstat.h,, [with_kstat="no (kstat.h not found)"])
239 with_kstat="no (Solaris only)"
242 AC_ARG_WITH(libstatgrab, AC_HELP_STRING([--with-libstatgrab@<:@=PFX@:>@], [Path to libstatgrab.]),
245 if test "x$withval" != "xno"
247 if test "x$withval" != "xyes"
249 LDFLAGS="$LDFLAGS -L$withval/lib"
250 CPPFLAGS="$CPPFLAGS -I$withval/include"
251 with_libstatgrab="yes"
257 if test "x$ac_system" != "xunknown"
259 with_libstatgrab="no"
261 with_libstatgrab="yes"
264 if test "x$with_libstatgrab" = "xyes"
266 AC_CHECK_LIB(devstat, getdevs)
267 AC_CHECK_LIB(kvm, kvm_getargv)
268 AC_CHECK_LIB(statgrab, sg_init,, [with_libstatgrab="no (not found)"])
269 AC_CHECK_HEADERS(statgrab.h,, [with_libstatgrab="no (not found)"])
272 AC_ARG_WITH(lm-sensors, AC_HELP_STRING([--with-lm-sensors@<:@=PFX@:>@], [Path to lm_sensors.]),
275 if test "x$withval" != "xno"
277 if test "x$withval" != "xyes"
279 LDFLAGS="$LDFLAGS -L$withval/lib"
280 CPPFLAGS="$CPPFLAGS -I$withval/include"
281 with_lm_sensors="yes"
287 if test "x$ac_system" = "xLinux"
289 with_lm_sensors="yes"
294 if test "x$with_lm_sensors" = "xyes"
296 AC_CHECK_LIB(sensors, sensors_init,
298 with_lm_sensors="yes"
299 AC_DEFINE(HAVE_LIBSENSORS, 1, [Define to 1 if you have the sensors library (-lsensors).])
301 [with_lm_sensors="no (not found)"])
302 AC_CHECK_HEADERS(sensors/sensors.h,
304 with_lm_sensors="yes"
305 AC_DEFINE(HAVE_SENSORS_SENSORS_H, 1, [Define to 1 if you have the <sensors/sensors.h> header file.])
307 [with_lm_sensors="no (not found)"])
313 # Check for enabled/disabled features
315 m4_divert_once([HELP_ENABLE], [
317 AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug],
318 [Enable debugging (disabled by default)]),
319 [], [enable_debug="no"])
320 if test "x$enable_debug" = "xno"
324 if test "x$enable_debug" = "xyes"
328 AC_MSG_NOTICE([Please specify either --enable-debug or --disable-debug; Enabling debugging.])
333 AC_DEFINE_UNQUOTED(COLLECT_DEBUG, [$collect_debug],
334 [Wether or not to enable debugging])
335 AM_CONDITIONAL(BUILD_DEBUG, test "x$enable_debug" = "xyes")
337 AC_ARG_ENABLE(daemon, AC_HELP_STRING([--disable-daemon],
338 [Disable daemon mode (enabled by default)]),
339 [], [enable_daemon="yes"])
340 if test "x$enable_daemon" = "xno"
344 if test "x$enable_daemon" = "xyes"
348 AC_MSG_NOTICE([Please specify either --enable-daemon or --disable-daemon; Enabling daemon mode.])
353 AC_DEFINE_UNQUOTED(COLLECT_DAEMON, [$collect_daemon],
354 [Wether or not to enable daemon mode])
355 AM_CONDITIONAL(BUILD_DAEMON, test "x$enable_daemon" = "xyes")
357 m4_divert_once([HELP_ENABLE], [
359 AC_ARG_ENABLE(cpu, AC_HELP_STRING([--disable-cpu], [Disable CPU usage statistics]),, [enable_cpu="yes"])
360 if test "x$enable_cpu" != "xno"
362 if test "x$ac_system" = "xLinux" -o "x$with_kstat" = "xyes" -o "x$have_sysctlbyname" = "xyes"
369 if test "x$enable_cpu" = "xno"
371 AC_DEFINE(COLLECT_CPU, 0, [Wether or not to collect CPU usage statistics])
373 AM_CONDITIONAL(BUILD_MODULE_CPU, test "x$enable_cpu" = "xyes")
375 AC_ARG_ENABLE(cpufreq, AC_HELP_STRING([--disable-cpufreq], [Disable system cpu frequency statistics]),, [enable_cpufreq="yes"])
376 if test "x$enable_cpufreq" != "xno"
378 if test "x$ac_system" = "xLinux"
385 if test "x$enable_cpufreq" = "xno"
387 AC_DEFINE(COLLECT_CPUFREQ, 0, [Wether or not to collect cpu frequency statistics])
389 AM_CONDITIONAL(BUILD_MODULE_CPUFREQ, test "x$enable_cpufreq" = "xyes")
391 AC_ARG_ENABLE(disk, AC_HELP_STRING([--disable-disk], [Disable disk/partition statistics]),, [enable_disk="yes"])
392 if test "x$enable_disk" != "xno"
394 if test "x$ac_system" = "xLinux" -o "x$with_kstat" = "xyes"
401 if test "x$enable_disk" = "xno"
403 AC_DEFINE(COLLECT_DISK, 0, [Wether or not to collect diskstats])
405 AM_CONDITIONAL(BUILD_MODULE_DISK, test "x$enable_disk" = "xyes")
407 AC_ARG_ENABLE(hddtemp, AC_HELP_STRING([--disable-hddtemp], [Disable hdd temperature statistics]),, [enable_hddtemp="yes"])
408 if test "x$enable_hddtemp" = "xno"
410 AC_DEFINE(COLLECT_HDDTEMP, 0, [Wether or not to collect hdd temperature statistics])
412 AM_CONDITIONAL(BUILD_MODULE_HDDTEMP, test "x$enable_hddtemp" = "xyes")
414 AC_ARG_ENABLE(load, AC_HELP_STRING([--disable-load], [Disable system load statistics]),, [enable_load="yes"])
415 if test "x$enable_load" != "xno"
417 if test "x$have_getloadavg" = "xyes" -o "x$ac_system" = "xLinux" -o "x$with_libstatgrab" = "xyes"
424 if test "x$enable_load" = "xno"
426 AC_DEFINE(COLLECT_LOAD, 0, [Wether or not to collect system load statistics])
428 AM_CONDITIONAL(BUILD_MODULE_LOAD, test "x$enable_load" = "xyes")
430 AC_ARG_ENABLE(memory, AC_HELP_STRING([--disable-memory], [Disable memory statistics]),, [enable_memory="yes"])
431 if test "x$enable_memory" != "xno"
433 if test "x$ac_system" = "xLinux" -o "x$with_kstat" = "xyes" -o "x$with_libstatgrab" = "xyes"
440 if test "x$enable_memory" = "xno"
442 AC_DEFINE(COLLECT_MEMORY, 0, [Wether or not to collect memory statistics])
444 AM_CONDITIONAL(BUILD_MODULE_MEMORY, test "x$enable_memory" = "xyes")
446 AC_ARG_ENABLE(nfs, AC_HELP_STRING([--disable-nfs], [Disable nfs statistics]),, [enable_nfs="yes"])
447 if test "x$enable_nfs" != "xno"
449 if test "x$ac_system" = "xLinux"
456 if test "x$enable_nfs" = "xno"
458 AC_DEFINE(COLLECT_NFS, 0, [Wether or not to collect nfs statistics])
460 AM_CONDITIONAL(BUILD_MODULE_NFS, test "x$enable_nfs" = "xyes")
462 AC_ARG_ENABLE(ping, AC_HELP_STRING([--disable-ping], [Disable ping statistics]),, [enable_ping="yes"])
463 if test "x$enable_ping" != "xno"
467 if test "x$enable_ping" = "xno"
469 AC_DEFINE(COLLECT_PING, 0, [Wether or not to collect ping statistics])
471 AM_CONDITIONAL(BUILD_MODULE_PING, test "x$enable_ping" = "xyes")
473 AC_ARG_ENABLE(processes, AC_HELP_STRING([--disable-processes], [Disable processes statistics]),, [enable_processes="yes"])
474 if test "x$enable_processes" != "xno"
476 if test "x$ac_system" = "xLinux"
478 enable_processes="yes"
480 enable_processes="no"
483 if test "x$enable_processes" = "xno"
485 AC_DEFINE(COLLECT_PROCESSES, 0, [Wether or not to collect processes statistics])
487 AM_CONDITIONAL(BUILD_MODULE_PROCESSES, test "x$enable_processes" = "xyes")
489 #AC_ARG_ENABLE(quota, AC_HELP_STRING([--enable-quota],
490 # [Enable quota statistics (experimental, disabled by default)]),
491 # [], [enable_quota="no"])
492 #if test "x$enable_quota" = "xno"
496 # if test "x$enable_quota" = "xyes"
500 # AC_MSG_NOTICE([Please specify either --enable-quota or --disable-quota; Enabling quota statistics.])
505 #AC_DEFINE_UNQUOTED(COLLECT_QUOTA, [$collect_quota],
506 # [Wether or not to collect quota statistics])
507 #AM_CONDITIONAL(BUILD_MODULE_QUOTA, test "x$enable_quota" = "xyes")
509 AC_ARG_ENABLE(sensors, AC_HELP_STRING([--disable-sensors], [Disable lm_sensors statistics]),, [enable_sensors=$with_lm_sensors])
510 if test "x$enable_sensors" != "xno"
512 if test "x$with_lm_sensors" = "xyes"
519 if test "x$enable_sensors" = "xno"
521 AC_DEFINE(COLLECT_SENSORS, 0, [Wether or not to collect lm_sensors statistics])
523 AM_CONDITIONAL(BUILD_MODULE_SENSORS, test "x$enable_sensors" = "xyes")
525 AC_ARG_ENABLE(serial, AC_HELP_STRING([--disable-serial], [Disable serial statistics]),, [enable_serial="yes"])
526 if test "x$enable_serial" != "xno"
528 if test "x$ac_system" = "xLinux"
535 if test "x$enable_serial" = "xno"
537 AC_DEFINE(COLLECT_SERIAL, 0, [Wether or not to collect serial statistics])
539 AM_CONDITIONAL(BUILD_MODULE_SERIAL, test "x$enable_serial" = "xyes")
541 AC_ARG_ENABLE(swap, AC_HELP_STRING([--disable-swap], [Disable swap statistics]),, [enable_swap="yes"])
542 if test "x$enable_swap" != "xno"
544 if test "x$ac_system" = "xLinux" -o "x$with_kstat" = "xyes" -o "x$with_libstatgrab" = "xyes"
551 if test "x$enable_swap" = "xno"
553 AC_DEFINE(COLLECT_SWAP, 0, [Wether or not to collect swap statistics])
555 AM_CONDITIONAL(BUILD_MODULE_SWAP, test "x$enable_swap" = "xyes")
557 AC_ARG_ENABLE(tape, AC_HELP_STRING([--disable-tape], [Disable tape statistics]),, [enable_tape="yes"])
558 if test "x$enable_tape" != "xno"
560 if test "x$with_kstat" = "xyes"
567 if test "x$enable_tape" = "xno"
569 AC_DEFINE(COLLECT_TAPE, 0, [Wether or not to collect tape statistics])
571 AM_CONDITIONAL(BUILD_MODULE_TAPE, test "x$enable_tape" = "xyes")
573 AC_ARG_ENABLE(traffic, AC_HELP_STRING([--disable-traffic], [Disable system traffic statistics]),, [enable_traffic="yes"])
574 if test "x$enable_traffic" != "xno"
576 if test "x$ac_system" = "xLinux" -o "x$with_kstat" = "xyes" -o "x$with_libstatgrab" = "xyes"
583 if test "x$enable_traffic" = "xno"
585 AC_DEFINE(COLLECT_TRAFFIC, 0, [Wether or not to collect network traffic statistics])
587 AM_CONDITIONAL(BUILD_MODULE_TRAFFIC, test "x$enable_traffic" = "xyes")
589 AC_ARG_ENABLE(users, AC_HELP_STRING([--disable-users], [Disable user count statistics]),, [enable_users="yes"])
590 if test "x$enable_users" != "xno"
592 if test "x$have_getutent" = "xyes"
599 if test "x$enable_users" = "xno"
601 AC_DEFINE(COLLECT_USERS, 0, [Wether or not to collect user count statistics])
603 AM_CONDITIONAL(BUILD_MODULE_USERS, test "x$enable_users" = "xyes")
605 AC_OUTPUT(Makefile src/libping/Makefile src/Makefile)
611 librrd . . . . . . $with_rrdtool
612 lm_sensors . . . . $with_lm_sensors
613 libstatgrab . . . . $with_libstatgrab
614 libkstat . . . . . $with_kstat
617 debug . . . . . . . $enable_debug
618 daemon mode . . . . $enable_daemon
621 cpu . . . . . . . . $enable_cpu
622 cpufreq . . . . . . $enable_cpufreq
623 disk . . . . . . . $enable_disk
624 hddtemp . . . . . . $enable_hddtemp
625 load . . . . . . . $enable_load
626 memory . . . . . . $enable_memory
627 nfs . . . . . . . . $enable_nfs
628 ping . . . . . . . $enable_ping
629 processes . . . . . $enable_processes
630 sensors . . . . . . $enable_sensors
631 serial . . . . . . $enable_serial
632 swap . . . . . . . $enable_swap
633 tape . . . . . . . $enable_tape
634 traffic . . . . . . $enable_traffic
635 users . . . . . . . $enable_users