Blame libgtop-sysdeps.m4

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