|
Packit |
d37888 |
dnl This file is intended for use both internally in libgtop and in every program
|
|
Packit |
d37888 |
dnl that wants to use it.
|
|
Packit |
d37888 |
dnl
|
|
Packit |
d37888 |
dnl It defines the following variables:
|
|
Packit |
d37888 |
dnl
|
|
Packit |
d37888 |
dnl * 'libgtop_sysdeps_dir' - sysdeps dir for libgtop.
|
|
Packit |
d37888 |
dnl * 'libgtop_need_server' - is the server really needed? Defines 'LIBGTOP_NEED_SERVER'
|
|
Packit |
d37888 |
dnl if true; defines conditional 'LIBGTOP_NEED_SERVER'.
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
|
|
Packit |
d37888 |
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_SUBST(libgtop_sysdeps_dir)
|
|
Packit |
d37888 |
AC_SUBST(libgtop_need_server)
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_ARG_WITH(examples,
|
|
Packit |
d37888 |
AS_HELP_STRING([--with-examples],
|
|
Packit |
d37888 |
[Build the libgtop examples @<:@default=yes@:>@]),[
|
|
Packit |
d37888 |
build_examples="$withval"], [build_examples=yes])
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AM_CONDITIONAL(EXAMPLES, test x"$build_examples" = xyes)
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_ARG_ENABLE(hacker-mode,
|
|
Packit |
d37888 |
AS_HELP_STRING([--enable-hacker-mode],
|
|
Packit |
d37888 |
[Enable building of unstable sysdeps]),
|
|
Packit |
d37888 |
[hacker_mode="$enableval"], [hacker_mode=no])
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes)
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_MSG_CHECKING(for libgtop sysdeps directory)
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
case "$host_os" in
|
|
Packit |
d37888 |
linux*)
|
|
Packit |
d37888 |
libgtop_sysdeps_dir=linux
|
|
Packit |
d37888 |
libgtop_have_sysinfo=yes
|
|
Packit |
d37888 |
libgtop_need_server=no
|
|
Packit |
d37888 |
libgtop_sysdeps_private_mountlist=yes
|
|
Packit |
d37888 |
libgtop_sysdeps_private_fsusage=yes
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
netbsd*|bsdi*)
|
|
Packit |
d37888 |
libgtop_sysdeps_dir=bsd
|
|
Packit |
d37888 |
libgtop_need_server=yes
|
|
Packit |
d37888 |
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2755 $(bindir)/libgtop_server2'
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
openbsd*)
|
|
Packit |
d37888 |
libgtop_sysdeps_dir=openbsd
|
|
Packit |
d37888 |
libgtop_need_server=yes
|
|
Packit |
d37888 |
libgtop_sysdeps_private_mountlist=yes
|
|
Packit |
d37888 |
libgtop_sysdeps_private_fsusage=yes
|
|
Packit |
d37888 |
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2555 $(bindir)/libgtop_server2'
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
freebsd*|kfreebsd*)
|
|
Packit |
d37888 |
libgtop_sysdeps_dir=freebsd
|
|
Packit |
d37888 |
libgtop_need_server=yes
|
|
Packit |
d37888 |
libgtop_sysdeps_private_mountlist=yes
|
|
Packit |
d37888 |
libgtop_sysdeps_private_fsusage=yes
|
|
Packit |
d37888 |
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2755 $(bindir)/libgtop_server2'
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
solaris*)
|
|
Packit |
d37888 |
libgtop_sysdeps_dir=solaris
|
|
Packit |
d37888 |
libgtop_need_server=yes
|
|
Packit |
d37888 |
libgtop_postinstall='chgrp sys $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server'
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
aix*)
|
|
Packit |
d37888 |
libgtop_sysdeps_dir=aix
|
|
Packit |
d37888 |
libgtop_need_server=yes
|
|
Packit |
d37888 |
libgtop_have_sysinfo=yes
|
|
Packit |
d37888 |
libgtop_postinstall='chgrp system $(bindir)/libgtop_server && chmod g+s $(bindir)/libgtop_server2'
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
darwin*)
|
|
Packit |
d37888 |
libgtop_sysdeps_dir=darwin
|
|
Packit |
d37888 |
libgtop_need_server=yes
|
|
Packit |
d37888 |
libgtop_have_sysinfo=yes
|
|
Packit |
d37888 |
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod g+s $(bindir)/libgtop_server2'
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
cygwin*)
|
|
Packit |
d37888 |
libgtop_sysdeps_dir=cygwin
|
|
Packit |
d37888 |
libgtop_need_server=no
|
|
Packit |
d37888 |
libgtop_have_sysinfo=yes
|
|
Packit |
d37888 |
libgtop_sysdeps_private_mountlist=yes
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
*)
|
|
Packit |
d37888 |
if test x$hacker_mode = xyes ; then
|
|
Packit |
d37888 |
case "$host_os" in
|
|
Packit |
d37888 |
sunos4*)
|
|
Packit |
d37888 |
#Please note that this port is obsolete and not working at
|
|
Packit |
d37888 |
#all. It is only useful for people who want to fix it ... :-)
|
|
Packit |
d37888 |
libgtop_sysdeps_dir=sun4
|
|
Packit |
d37888 |
libgtop_need_server=yes
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
osf*)
|
|
Packit |
d37888 |
libgtop_sysdeps_dir=osf1
|
|
Packit |
d37888 |
libgtop_need_server=yes
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
*)
|
|
Packit |
d37888 |
libgtop_sysdeps_dir=stub
|
|
Packit |
d37888 |
libgtop_need_server=no
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
esac
|
|
Packit |
d37888 |
else
|
|
Packit |
d37888 |
libgtop_sysdeps_dir=stub
|
|
Packit |
d37888 |
libgtop_need_server=no
|
|
Packit |
d37888 |
fi
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
esac
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
test -z "$libgtop_postinstall" && libgtop_postinstall=:
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_MSG_RESULT($libgtop_sysdeps_dir)
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_SUBST(libgtop_sysdeps_dir)
|
|
Packit |
d37888 |
AC_SUBST(libgtop_postinstall)
|
|
Packit |
d37888 |
AC_SUBST(libgtop_have_sysinfo)
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
case "$host_os" in
|
|
Packit |
d37888 |
*bsd*)
|
|
Packit |
d37888 |
AC_CHECK_LIB(kvm, kvm_open, KVM_LIBS=-lkvm, KVM_LIBS=)
|
|
Packit |
d37888 |
AC_SUBST(KVM_LIBS)
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_CHECK_HEADERS(net/if_var.h,,, [
|
|
Packit |
d37888 |
#include <net/if.h>
|
|
Packit |
d37888 |
#include <sys/types.h>
|
|
Packit |
d37888 |
#include <sys/socket.h>])
|
|
Packit |
d37888 |
AC_MSG_CHECKING([for I4B])
|
|
Packit |
d37888 |
AC_TRY_COMPILE([
|
|
Packit |
d37888 |
#include <sys/types.h>
|
|
Packit |
d37888 |
#include <sys/socket.h>
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
#include <net/if.h>
|
|
Packit |
d37888 |
#include <net/if_types.h>
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
#ifdef HAVE_NET_IF_VAR_H
|
|
Packit |
d37888 |
#include <net/if_var.h>
|
|
Packit |
d37888 |
#endif
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
#include <net/netisr.h>
|
|
Packit |
d37888 |
#include <net/route.h>
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__FreeBSD_kernel__)
|
|
Packit |
d37888 |
#include <net/if_sppp.h>
|
|
Packit |
d37888 |
#else
|
|
Packit |
d37888 |
#include <i4b/sppp/if_sppp.h>
|
|
Packit |
d37888 |
#endif
|
|
Packit |
d37888 |
],[
|
|
Packit |
d37888 |
size_t size = sizeof (struct sppp);
|
|
Packit |
d37888 |
], have_i4b=yes, have_i4b=no)
|
|
Packit |
d37888 |
AC_MSG_RESULT($have_i4b)
|
|
Packit |
d37888 |
if test x$have_i4b = xyes; then
|
|
Packit |
d37888 |
AC_DEFINE(HAVE_I4B, 1, [Define if I4B is available])
|
|
Packit |
d37888 |
AC_MSG_CHECKING([for I4B accounting])
|
|
Packit |
d37888 |
AC_TRY_COMPILE([
|
|
Packit |
d37888 |
#include <sys/types.h>
|
|
Packit |
d37888 |
#include <sys/socket.h>
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
#include <net/if.h>
|
|
Packit |
d37888 |
#include <net/if_types.h>
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
#ifdef HAVE_NET_IF_VAR_H
|
|
Packit |
d37888 |
#include <net/if_var.h>
|
|
Packit |
d37888 |
#endif
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
#include <net/netisr.h>
|
|
Packit |
d37888 |
#include <net/route.h>
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__FreeBSD_kernel__)
|
|
Packit |
d37888 |
#include <net/if_sppp.h>
|
|
Packit |
d37888 |
#else
|
|
Packit |
d37888 |
#include <i4b/sppp/if_sppp.h>
|
|
Packit |
d37888 |
#endif
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
#include <machine/i4b_acct.h>
|
|
Packit |
d37888 |
],[
|
|
Packit |
d37888 |
size_t size = sizeof (struct i4bisppp_softc);
|
|
Packit |
d37888 |
], have_i4b_acct=yes, have_i4b_acct=no)
|
|
Packit |
d37888 |
AC_MSG_RESULT($have_i4b_acct)
|
|
Packit |
d37888 |
if test x$have_i4b_acct = xyes ; then
|
|
Packit |
d37888 |
AC_DEFINE(HAVE_I4B_ACCT, 1,
|
|
Packit |
d37888 |
[Define if I4B accounting is supported])
|
|
Packit |
d37888 |
else
|
|
Packit |
d37888 |
AC_WARN([
|
|
Packit |
d37888 |
*** I4B accounting disabled - you won't get any PPP statistics.
|
|
Packit |
d37888 |
*** Read "misc/i4b_acct.txt" in the LibGTop source directory
|
|
Packit |
d37888 |
*** to see how to enable it.])
|
|
Packit |
d37888 |
fi
|
|
Packit |
d37888 |
fi
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_MSG_CHECKING(what we need to define to get struct msginfo)
|
|
Packit |
d37888 |
AC_CACHE_VAL(msginfo_cv_needs,
|
|
Packit |
d37888 |
msginfo_cv_needs=
|
|
Packit |
d37888 |
for def in nothing KERNEL _KERNEL; do
|
|
Packit |
d37888 |
AC_COMPILE_IFELSE([AC_LANG_SOURCE([#define $def
|
|
Packit |
d37888 |
#include <sys/types.h>
|
|
Packit |
d37888 |
#include <sys/ipc.h>
|
|
Packit |
d37888 |
#include <sys/msg.h>
|
|
Packit |
d37888 |
#include <stdio.h>
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
int
|
|
Packit |
d37888 |
main (void)
|
|
Packit |
d37888 |
{
|
|
Packit |
d37888 |
struct msginfo mi;
|
|
Packit |
d37888 |
mi.msgmax = 0;
|
|
Packit |
d37888 |
return 0;
|
|
Packit |
d37888 |
}])],
|
|
Packit |
d37888 |
[
|
|
Packit |
d37888 |
msginfo_cv_needs=$def
|
|
Packit |
d37888 |
if test ${msginfo_cv_needs} = KERNEL; then
|
|
Packit |
d37888 |
AC_DEFINE(STRUCT_MSGINFO_NEEDS_KERNEL, 1,
|
|
Packit |
d37888 |
[Define to 1 if we need to define KERNEL to get 'struct msginfo'])
|
|
Packit |
d37888 |
elif test ${msginfo_cv_needs} = _KERNEL; then
|
|
Packit |
d37888 |
AC_DEFINE(STRUCT_MSGINFO_NEEDS__KERNEL, 1,
|
|
Packit |
d37888 |
[Define to 1 if we need to define _KERNEL to get 'struct msginfo'])
|
|
Packit |
d37888 |
fi
|
|
Packit |
d37888 |
]
|
|
Packit |
d37888 |
)
|
|
Packit |
d37888 |
test -n "${msginfo_cv_needs}" && break
|
|
Packit |
d37888 |
done
|
|
Packit |
d37888 |
)
|
|
Packit |
d37888 |
AC_MSG_RESULT($msginfo_cv_needs)
|
|
Packit |
d37888 |
if test -z "${msginfo_cv_needs}"; then
|
|
Packit |
d37888 |
AC_MSG_ERROR([Could not find the definition of 'struct msginfo'])
|
|
Packit |
d37888 |
fi
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
linux*)
|
|
Packit |
d37888 |
os_major_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
|
|
Packit |
d37888 |
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
|
Packit |
d37888 |
os_minor_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
|
|
Packit |
d37888 |
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
|
Packit |
d37888 |
os_micro_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
|
|
Packit |
d37888 |
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
|
Packit |
d37888 |
os_version_expr="$os_major_version 65536 * $os_minor_version 256 * + $os_micro_version + p q"
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_CHECK_HEADERS(linux/version.h, have_linux_version_h=yes,
|
|
Packit |
d37888 |
have_linux_version_h=no)
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
if test x$have_linux_version_h = xyes ; then
|
|
Packit |
d37888 |
version_code=`cat /usr/include/linux/version.h | \
|
|
Packit |
d37888 |
grep \#define | grep LINUX_VERSION_CODE`
|
|
Packit |
d37888 |
os_version_code=`echo $version_code | \
|
|
Packit |
d37888 |
sed 's/^.*LINUX_VERSION_CODE[[ \t]]*\([[0-9]]*\).*$/\1/'`
|
|
Packit |
d37888 |
else
|
|
Packit |
d37888 |
os_version_code=`echo "$os_version_expr" | dc`
|
|
Packit |
d37888 |
fi
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_MSG_CHECKING(for Linux kernel version code)
|
|
Packit |
d37888 |
AC_DEFINE_UNQUOTED(GLIBTOP_LINUX_VERSION_CODE, $os_version_code,
|
|
Packit |
d37888 |
[Same as LINUX_VERSION_CODE either from <linux/version.h> or from the running kernel (if there are no configured kernel sources).])
|
|
Packit |
d37888 |
AC_MSG_RESULT($os_version_code)
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
solaris*)
|
|
Packit |
d37888 |
os_major_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]*\)\.*\([[0-9]]*\)/\1/'`
|
|
Packit |
d37888 |
os_minor_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]*\)\.*\([[0-9]]*\)/\2/'`
|
|
Packit |
d37888 |
os_micro_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]*\)\.*\([[0-9]]*\)/\3/'`
|
|
Packit |
d37888 |
test -z "$os_micro_version" && os_micro_version=0
|
|
Packit |
d37888 |
os_version_expr="$os_major_version 10000 * $os_minor_version 100 * + $os_micro_version + p q"
|
|
Packit |
d37888 |
os_version_code=`echo "$os_version_expr" | dc`
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_MSG_CHECKING(for Solaris release code)
|
|
Packit |
d37888 |
AC_DEFINE_UNQUOTED(GLIBTOP_SOLARIS_RELEASE, $os_version_code,
|
|
Packit |
d37888 |
[Solaris release code (eg. 20501 for Solaris 2.5.1).])
|
|
Packit |
d37888 |
AC_MSG_RESULT($os_version_code)
|
|
Packit |
d37888 |
;;
|
|
Packit |
d37888 |
esac
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AC_MSG_CHECKING(whether we need libgtop)
|
|
Packit |
d37888 |
AC_MSG_RESULT($libgtop_need_server)
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
if test x$libgtop_need_server = xyes ; then
|
|
Packit |
d37888 |
AC_DEFINE(LIBGTOP_NEED_SERVER, 1, [Define if libgtop server is required])
|
|
Packit |
d37888 |
fi
|
|
Packit |
d37888 |
|
|
Packit |
d37888 |
AM_CONDITIONAL(LIBGTOP_NEED_SERVER, test x$libgtop_need_server = xyes)
|
|
Packit |
d37888 |
AM_CONDITIONAL(LIBGTOP_SYSDEPS_PRIVATE_MOUNTLIST, test x$libgtop_sysdeps_private_mountlist = xyes)
|
|
Packit |
d37888 |
AM_CONDITIONAL(LIBGTOP_SYSDEPS_PRIVATE_FSUSAGE, test x$libgtop_sysdeps_private_fsusage = xyes)
|
|
Packit |
d37888 |
])
|
|
Packit |
d37888 |
|