From cd7ca97fc5a00b45aa57af4e11c877e71abc086a Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Tue, 8 Dec 1998 23:01:44 +0000 Subject: [PATCH] Moved here from the macros directory, formerly known as 1998-12-09 Martin Baulig * libgtop-sysdeps.m4: Moved here from the macros directory, formerly known as `macros/gnome-libgtop-sysdeps.m4'. --- ChangeLog | 5 + libgtop-sysdeps.m4 | 249 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 254 insertions(+) create mode 100644 libgtop-sysdeps.m4 diff --git a/ChangeLog b/ChangeLog index 010c8590..a659d5e1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +1998-12-09 Martin Baulig + + * libgtop-sysdeps.m4: Moved here from the macros directory, + formerly known as `macros/gnome-libgtop-sysdeps.m4'. + 1998-12-06 Martin Baulig * configure.in: Make it abort if GNOME cannot be found and diff --git a/libgtop-sysdeps.m4 b/libgtop-sysdeps.m4 new file mode 100644 index 00000000..2b4101d6 --- /dev/null +++ b/libgtop-sysdeps.m4 @@ -0,0 +1,249 @@ +dnl This file is intended for use both internally in libgtop and in every program +dnl that wants to use it. +dnl +dnl It defines the following variables: +dnl +dnl * 'libgtop_sysdeps_dir' - sysdeps dir for libgtop. +dnl * 'libgtop_use_machine_h' - some of system dependend parts of libgtop provide +dnl their own header file. In this case we need to +dnl define 'HAVE_GLIBTOP_MACHINE_H'. +dnl * 'libgtop_need_server' - is the server really needed? Defines 'NEED_LIBGTOP' +dnl if true; defines conditional 'NEED_LIBGTOP'. + +AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[ + AC_REQUIRE([AC_CANONICAL_HOST]) + + AC_SUBST(libgtop_sysdeps_dir) + AC_SUBST(libgtop_use_machine_h) + AC_SUBST(libgtop_need_server) + + AC_ARG_WITH(libgtop-examples, + [ --with-libgtop-examples Build the libgtop examples (default=no)],[ + build_examples="$withval"], [build_examples=no]) + + AM_CONDITIONAL(EXAMPLES, test x"$build_examples" = xyes) + + + AC_ARG_WITH(libgtop-smp, + [ --with-libgtop-smp Enable SMP support (default-auto)],[ + libgtop_smp="$withval"],[libgtop_smp=auto]) + + if test $libgtop_smp = auto ; then + AC_MSG_CHECKING(whether to enable SMP support) + AC_TRY_RUN([ +#include +#include + +int +main (void) +{ + struct utsname name; + + if (uname (&name)) exit (1); + + exit (strstr (name.version, "SMP") ? 0 : 1); +} +], libgtop_smp=yes, libgtop_smp=no, libgtop_smp=no) + AC_MSG_RESULT($libgtop_smp) + fi + + if test $libgtop_smp = yes ; then + AC_DEFINE(HAVE_LIBGTOP_SMP) + fi + + AM_CONDITIONAL(LIBGTOP_SMP, test $libgtop_smp = yes) + + AC_MSG_CHECKING(for libgtop sysdeps directory) + + case "$host_os" in + linux*) + if test x$linux_table = xyes ; then + libgtop_sysdeps_dir=kernel + libgtop_use_machine_h=no + else + libgtop_sysdeps_dir=linux + libgtop_use_machine_h=no + libgtop_have_sysinfo=yes + fi + libgtop_need_server=no + ;; + sunos4*) + libgtop_sysdeps_dir=sun4 + libgtop_use_machine_h=yes + libgtop_need_server=yes + ;; + osf*) + libgtop_sysdeps_dir=osf1 + libgtop_use_machine_h=yes + libgtop_need_server=yes + ;; + freebsd*|netbsd*|openbsd*) + libgtop_sysdeps_dir=freebsd + libgtop_use_machine_h=yes + libgtop_need_server=yes + libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server' + ;; + *) + libgtop_sysdeps_dir=stub + libgtop_use_machine_h=no + libgtop_need_server=no + ;; + esac + + test -z "$libgtop_postinstall" && libgtop_postinstall=: + + AC_MSG_RESULT($libgtop_sysdeps_dir) + + AC_SUBST(libgtop_sysdeps_dir) + AC_SUBST(libgtop_postinstall) + AC_SUBST(libgtop_have_sysinfo) + + case "$host_os" in + *bsd*) + AC_CHECK_HEADERS(net/if_var.h) + AC_MSG_CHECKING([for I4B]) + AC_TRY_COMPILE([ +#include +#include + +#include +#include + +#ifdef HAVE_NET_IF_VAR_H +#include +#endif + +#include +#include + +#ifdef __FreeBSD__ +#include +#else +#include +#endif +],[ + size_t size = sizeof (struct sppp); +], have_i4b=yes, have_i4b=no) + AC_MSG_RESULT($have_i4b) + if test x$have_i4b = xyes; then + AC_DEFINE(HAVE_I4B) + AC_MSG_CHECKING([for I4B accounting]) + AC_TRY_COMPILE([ +#include +#include + +#include +#include + +#ifdef HAVE_NET_IF_VAR_H +#include +#endif + +#include +#include + +#ifdef __FreeBSD__ +#include +#else +#include +#endif + +#include +],[ + size_t size = sizeof (struct i4bisppp_softc); +], have_i4b_acct=yes, have_i4b_acct=no) + AC_MSG_RESULT($have_i4b_acct) + if test x$have_i4b_acct = xyes ; then + AC_DEFINE(HAVE_I4B_ACCT) + else + AC_WARN([ +*** I4B accounting disabled - you won't get any PPP statistics. +*** Read "misc/i4b_acct.txt" in the LibGTop source directory +*** to see how to enable it.]) + fi + fi + ;; + linux*) + AC_ARG_WITH(linux-table, + [ --with-linux-table Use the table () function from Martin Baulig],[ + linux_table="$withval"],[linux_table=auto]) + if test $linux_table = yes ; then + AC_CHECK_HEADER(linux/table.h, linux_table=yes, linux_table=no) + elif test $linux_table = auto ; then + AC_MSG_CHECKING(for table function in Linux Kernel) + AC_TRY_RUN([ +#include +#include + +#include +#include +#include + +#include + +static inline _syscall3 (int, table, int, type, union table *, tbl, const void *, param); + +int +main (void) +{ + union table tbl; + int ret; + + ret = table (TABLE_VERSION, NULL, NULL); + + if (ret == -1) + exit (-errno); + + exit (ret < 1 ? ret : 0); +} +], linux_table=yes, linux_table=no, linux_table=no) + AC_MSG_RESULT($linux_table) + fi + if test $linux_table = yes ; then + AC_DEFINE(HAVE_LINUX_TABLE) + fi + AM_CONDITIONAL(LINUX_TABLE, test $linux_table = yes) + + os_major_version=`uname -r | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + os_minor_version=`uname -r | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + os_micro_version=`uname -r | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + os_version_expr="$os_major_version 65536 * $os_minor_version 256 * + $os_micro_version + p q" + + AC_CHECK_HEADERS(linux/version.h, have_linux_version_h=yes, + have_linux_version_h=no) + + if test x$have_linux_version_h = xyes ; then + version_code=`cat /usr/include/linux/version.h | \ + grep \#define | grep LINUX_VERSION_CODE` + os_version_code=`echo $version_code | \ + sed 's/^.*LINUX_VERSION_CODE[[ \t]]*\([[0-9]]*\).*$/\1/'` + else + os_version_code=`echo "$os_version_expr" | dc` + fi + + AC_MSG_CHECKING(for Linux kernel version code) + AC_DEFINE_UNQUOTED(GLIBTOP_LINUX_VERSION_CODE, $os_version_code) + AC_MSG_RESULT($os_version_code) + ;; + esac + + AC_MSG_CHECKING(for machine.h in libgtop sysdeps dir) + AC_MSG_RESULT($libgtop_use_machine_h) + + AC_MSG_CHECKING(whether we need libgtop) + AC_MSG_RESULT($libgtop_need_server) + + if test x$libgtop_need_server = xyes ; then + AC_DEFINE(NEED_LIBGTOP) + fi + + if test x$libgtop_use_machine_h = xyes ; then + AC_DEFINE(HAVE_GLIBTOP_MACHINE_H) + fi + + AM_CONDITIONAL(NEED_LIBGTOP, test x$libgtop_need_server = xyes) +]) +