--- projects/libstatgrab/configure.in 2003/02/19 18:49:18 1.2 +++ projects/libstatgrab/configure.in 2004/11/01 18:33:19 1.78 @@ -1,43 +1,245 @@ -dnl configure.in for libstatgrab -dnl $Id: configure.in,v 1.2 2003/02/19 18:49:18 tdb Exp $ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. +# +# configure.in for libstatgrab +# $Id: configure.in,v 1.78 2004/11/01 18:33:19 tdb Exp $ +# -dnl Change these to change the package name and version -AC_INIT(libstatgrab, 0.1, dev@i-scream.org.uk) -AM_INIT_AUTOMAKE(libstatgrab, 0.1) +# Change these to change the package name and version +AC_INIT(libstatgrab, 0.11, bugs@i-scream.org) +AM_INIT_AUTOMAKE(libstatgrab, 0.11) -dnl The file we use to pass #define's to the source -AM_CONFIG_HEADER(config.h) +# Revision number (automatically updated) +AC_REVISION($Revision: 1.78 $) -dnl We need a CC, install, and libtool +# Might work with older autoconfs... but tested on 2.57 +AC_PREREQ(2.57) + +# The file we use to pass #define's to the source +AM_CONFIG_HEADER([config.h]) + +# Checks for programs AC_PROG_CC AC_PROG_INSTALL AC_PROG_LIBTOOL -dnl And we probably need the standard C bits +# Checks for header files AC_HEADER_STDC -dnl The program needs to know whether it can use getloadavg -AC_CHECK_FUNCS(getloadavg) +# Checks for typedefs, structures, and compiler characteristics +AC_C_CONST -dnl Set things up for different OS's -dnl We define the name of the OS so the code can act accordingly -dnl We also need to add the right LDFLAGS +# Checks for library functions +AC_FUNC_MALLOC +AC_FUNC_REALLOC +AC_CHECK_FUNCS(atoll seteuid setegid setresuid setresgid) + +# Disk IO read and write statistics are only present on recent NetBSD. +AC_CHECK_MEMBER(struct disk_sysctl.dk_rbytes, + [AC_DEFINE(HAVE_DK_RBYTES, , [New-style NetBSD disk stats])], + [], + [#include ]) + +# Disk IO read and write statistics are only present on recent OpenBSD. +AC_CHECK_MEMBER(struct diskstats.ds_rbytes, + [AC_DEFINE(HAVE_DS_RBYTES, , [New-style OpenBSD disk stats])], + [], + [#include ]) + +# NetBSD 2.0 uses statvfs rather than statfs +AC_CHECK_MEMBER(struct statvfs.f_fstypename, + [AC_DEFINE(HAVE_STATVFS, , [NetBSD 2.0 statvfs])], + [], + [#include ]) + +# Check for sys/loadavg.h +AC_CHECK_HEADERS([sys/loadavg.h]) + +# Check for libdevinfo.h +AC_CHECK_HEADERS([libdevinfo.h]) + +# Default needing setgid/setuid to false +AM_CONDITIONAL(SETGIDBINS, false) +AM_CONDITIONAL(SETUIDBINS, false) + +# Set things up for different OS's +# We define the name of the OS so the code can act accordingly +# We also need to add the right LDFLAGS case $host_os in +solaris2.[[6-7]]) + AC_CHECK_HEADERS([kstat.h],,[AC_MSG_ERROR([need kstat.h])]) + AC_DEFINE(SOLARIS, , [Building on Solaris 2.x]) + AC_DEFINE(SOL7, , [Building on Solaris 2.6 or 2.7]) + AM_CONDITIONAL(SETUIDBINS, true) + BIN_OWNER="root" + BIN_PERM="4755" + LINKFLAGS="-lkstat -lsocket -lnsl" + AC_CHECK_LIB(devinfo, di_init, [LINKFLAGS="$LINKFLAGS -ldevinfo"]) + ;; solaris2.*) + AC_CHECK_HEADERS([kstat.h],,[AC_MSG_ERROR([need kstat.h])]) AC_DEFINE(SOLARIS, , [Building on Solaris 2.x]) - LDFLAGS="$LDFLAGS -lkstat" + LINKFLAGS="-lkstat -ldevinfo -lsocket -lnsl" ;; +hpux11.11*) + AC_DEFINE(HPUX, , [Building on HP-UX 11.11]) + ;; freebsd4.*) - AC_DEFINE(FREEBSD, , [Building on FreeBSD 4.x]) - LDFLAGS="$LDFLAGS -lkvm" + AC_DEFINE(ALLBSD, , [Building on a BSD-derived system]) + AC_DEFINE(FREEBSD, , [Building on FreeBSD]) + AM_CONDITIONAL(SETGIDBINS, true) + BIN_GROUP="kmem" + BIN_PERM="2755" + LINKFLAGS="-lkvm -ldevstat" ;; +freebsd[[5-6]].*) + AC_DEFINE(ALLBSD, , [Building on a BSD-derived system]) + AC_DEFINE(FREEBSD, , [Building on FreeBSD]) + AC_DEFINE(FREEBSD5, , [Building on FreeBSD 5.x or 6.x]) + LINKFLAGS="-ldevstat" + ;; +netbsdelf1*) + AC_DEFINE(ALLBSD, , [Building on a BSD-derived system]) + AC_DEFINE(NETBSD, , [Building on NetBSD]) + ;; +netbsdelf2*) + AC_DEFINE(ALLBSD, , [Building on a BSD-derived system]) + AC_DEFINE(NETBSD, , [Building on NetBSD]) + AC_DEFINE(NETBSD2, , [Building on NetBSD 2.x]) + ;; +openbsd*) + AC_DEFINE(ALLBSD, , [Building on a BSD-derived system]) + AC_DEFINE(OPENBSD, , [Building on OpenBSD]) + ;; +dragonfly*) + AC_DEFINE(ALLBSD, , [Building on a BSD-derived system]) + AC_DEFINE(DFBSD, , [Building on DragonFlyBSD]) + AM_CONDITIONAL(SETGIDBINS, true) + BIN_GROUP="kmem" + BIN_PERM="2755" + LINKFLAGS="-lkvm -ldevstat" + ;; linux-gnu) AC_DEFINE(LINUX, , [Building on GNU/Linux]) + AM_CONDITIONAL(SETUIDBINS, true) + BIN_OWNER="root" + BIN_PERM="4755" ;; +cygwin) + AC_DEFINE(CYGWIN, , [Building on Cygwin]) + ;; *) AC_MSG_ERROR([Cannot build on unknown OS: $host_os]) ;; esac -dnl And finish by changing these files -AC_OUTPUT([Makefile]) +# User specified curses/ncurses prefix +AC_ARG_WITH([curses-prefix], + [ --with-curses-prefix=PATH curses (or ncurses) is in PATH], + [ + if test -d "$withval/lib"; then + SAIDARLIBS="-L${withval}/lib ${SAIDARLIBS}" + fi + if test -d "$withval/include"; then + SAIDARCPPFLAGS="-I${withval}/include -I${withval}/include/ncurses ${SAIRDARCPPFLAGS}" + fi + ] +) + +# Check if user wants to disable statgrab +AM_CONDITIONAL(STATGRAB, true) +AC_ARG_ENABLE(statgrab, + [ --disable-statgrab disable building of statgrab], + [ + if test "x$enableval" = "xno" ; then + AM_CONDITIONAL(STATGRAB, false) + fi + ] +) + +# Check if user wants to disable saidar +AM_CONDITIONAL(SAIDAR, true) +AC_ARG_ENABLE(saidar, + [ --disable-saidar disable building of saidar], + [ + if test "x$enableval" = "xno" ; then + AM_CONDITIONAL(SAIDAR, false) + fi + ], + [ + # saidar needs curses + # (if we don't find curses we disable saidar) + MP_WITH_CURSES + ] +) + +# Check if the user would prefer not to build examples +AM_CONDITIONAL(EXAMPLES, true) +AC_ARG_ENABLE(examples, + [ --disable-examples disable building of examples], + [ + if test "x$enableval" = "xno" ; then + AM_CONDITIONAL(EXAMPLES, false) + fi + ] +) + +# Check if user wants to install manpages +AM_CONDITIONAL(MANPAGES, true) +AC_ARG_ENABLE(manpages, + [ --disable-manpages disable installation of manpages], + [ + if test "x$enableval" = "xno" ; then + AM_CONDITIONAL(MANPAGES, false) + fi + ] +) + +# Check if the user wants to turn off setgid binaries +AC_ARG_ENABLE(setgid-binaries, + [ --disable-setgid-binaries disable binaries being setgid], + [ + if test "x$enableval" = "xno" ; then + AM_CONDITIONAL(SETGIDBINS, false) + fi + ] +) + +# Check if the user wants to turn off setuid binaries +AC_ARG_ENABLE(setuid-binaries, + [ --disable-setuid-binaries disable binaries being setuid], + [ + if test "x$enableval" = "xno" ; then + AM_CONDITIONAL(SETUIDBINS, false) + fi + ] +) + +# Check if the user would prefer not to include compatibility code +AM_CONDITIONAL(DEPRECATED, true) +AC_ARG_ENABLE(deprecated, + [ --disable-deprecated disable inclusion of pre-0.10 compatibility code], + [ + if test "x$enableval" = "xno" ; then + AM_CONDITIONAL(DEPRECATED, false) + fi + ] +) + +# The LIBS and CPPFLAGS that saidar needs +AC_SUBST(SAIDARLIBS) +AC_SUBST(SAIDARCPPFLAGS) + +# The flags needed to link to libstatgrab +# (ie. our dependencies) +AC_SUBST(LINKFLAGS) + +# Ownership and permissions possibly needed for binaries +AC_SUBST(BIN_OWNER) +AC_SUBST(BIN_GROUP) +AC_SUBST(BIN_PERM) + +# And finish by changing these files +AC_CONFIG_FILES([Makefile src/Makefile src/libstatgrab/Makefile src/statgrab/Makefile docs/Makefile examples/Makefile libstatgrab.pc src/statgrab/statgrab-make-mrtg-config src/statgrab/statgrab-make-mrtg-index src/saidar/Makefile]) + +AC_OUTPUT