diff options
author | Martin Baulig <martin@home-of-linux.org> | 2000-11-21 18:30:21 +0000 |
---|---|---|
committer | Martin Baulig <martin@src.gnome.org> | 2000-11-21 18:30:21 +0000 |
commit | 158dec2b2a12a12e861753da079f8a1dc0f4a691 (patch) | |
tree | f19e7c2ece3d08051b3308e81bf067c5103894cd /acinclude.m4 | |
parent | 752d5b47d2134cd6e76465943aadcdcb0ea5e777 (diff) | |
download | libgtop-158dec2b2a12a12e861753da079f8a1dc0f4a691.tar.gz |
Removed gnomesupport checks here and started to use pkg-config.
2000-11-21 Martin Baulig <martin@home-of-linux.org>
* configure.in: Removed gnomesupport checks here and started
to use pkg-config.
* acinclude.m4: New file. Put contents of libgtop-sysdeps.m4
and xml.m4 and LIBGTOP_CHECK_TYPE here.
* libgtop-sysdeps.m4, xml.m4: Removed.
* Makefile.am (SUBDIRS): Don't compile support and macros.
Diffstat (limited to 'acinclude.m4')
-rw-r--r-- | acinclude.m4 | 560 |
1 files changed, 560 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4 new file mode 100644 index 00000000..59044b84 --- /dev/null +++ b/acinclude.m4 @@ -0,0 +1,560 @@ +dnl +dnl LIBGTOP_CHECK_TYPE +dnl +dnl Improved version of AC_CHECK_TYPE which takes into account +dnl that we need to #include some other header files on some +dnl systems to get some types. + +dnl AC_LIBGTOP_CHECK_TYPE(TYPE, DEFAULT) +AC_DEFUN(AC_LIBGTOP_CHECK_TYPE, +[AC_REQUIRE([AC_HEADER_STDC])dnl +AC_MSG_CHECKING(for $1) +AC_CACHE_VAL(ac_cv_type_$1, +[AC_EGREP_CPP(dnl +changequote(<<,>>)dnl +<<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl +changequote([,]), [#include <sys/types.h> +#if STDC_HEADERS +#include <stdlib.h> +#include <stddef.h> +#endif + +/* For Tru64 */ +#ifdef HAVE_SYS_BITYPES_H +#include <sys/bitypes.h> +#endif +], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl +AC_MSG_RESULT($ac_cv_type_$1) +if test $ac_cv_type_$1 = no; then + AC_DEFINE($1, $2) +fi +]) + +dnl This is used internally for <glibtop-config.h>. + +AC_DEFUN([GNOME_LIBGTOP_TYPES_PRIVATE], +[ + AC_CHECK_HEADERS(sys/bitypes.h) + AC_LIBGTOP_CHECK_TYPE(u_int64_t, unsigned long long int) + AC_LIBGTOP_CHECK_TYPE(int64_t, signed long long int) + AC_LIBGTOP_CHECK_TYPE(u_int8_t, unsigned char) + AC_LIBGTOP_CHECK_TYPE(int8_t, signed char) +]) + +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_sysdeps_name' - name of the sysdeps dir. +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([LIBGTOP_HACKER_TESTS],[ + AC_REQUIRE([AC_CANONICAL_HOST]) + + case "$host_os" in + linux*) + AC_ARG_WITH(linux-sysctl, + [ --with-linux-sysctl Use the sysctl () interface from Martin Baulig],[ + linux_sysctl="$withval"],[linux_sysctl=auto]) + if test $linux_sysctl = yes ; then + AC_CHECK_HEADER(linux/libgtop.h, linux_sysctl=yes, linux_sysctl=no) + elif test $linux_sysctl = auto ; then + AC_MSG_CHECKING(for LibGTop sysctl support in Linux Kernel) + AC_TRY_RUN([ +#include <stdio.h> +#include <stdlib.h> + +#include <sys/user.h> +#include <sys/sysctl.h> +#include <linux/libgtop.h> + +#define SIZE(x) sizeof(x)/sizeof(x[0]) + +int name[2] = { CTL_LIBGTOP, LIBGTOP_VERSION }; + +int +main (void) +{ + unsigned version; + size_t size = sizeof (version); + + if (sysctl (name, SIZE (name), &version, &size, NULL, 0)) + exit (1); + else if (version < 1) + exit (2); + else + exit (0); +} +], linux_sysctl=yes, linux_sysctl=no, linux_sysctl=no) + AC_MSG_RESULT($linux_sysctl) + fi + if test $linux_sysctl = yes ; then + AC_DEFINE(HAVE_LINUX_SYSCTL) + fi + AM_CONDITIONAL(LINUX_SYSCTL, test $linux_sysctl = yes) + ;; + esac +]) + +AC_DEFUN([LIBGTOP_CHECK_SYSDEPS_DIR],[ + AC_MSG_CHECKING(for libgtop sysdeps directory) + + case "$host_os" in + linux*) + libgtop_sysdeps_dir=linux + libgtop_use_machine_h=no + libgtop_have_sysinfo=no + libgtop_need_server=no + libgtop_have_sysdeps=yes + libgtop_dynlink_ok=yes + ;; + freebsd*|netbsd*|openbsd*) + libgtop_sysdeps_dir=freebsd + libgtop_use_machine_h=yes + libgtop_need_server=yes + libgtop_have_sysdeps=no + libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server' + libgtop_dynlink_ok=yes + ;; + bsdi*) + libgtop_sysdeps_dir=freebsd + libgtop_use_machine_h=yes + libgtop_need_server=yes + libgtop_have_sysdeps=no + libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server' + libgtop_dynlink_ok=yes + ;; + solaris*) + libgtop_sysdeps_dir=solaris + libgtop_use_machine_h=yes + libgtop_need_server=yes + libgtop_have_sysdeps=yes + libgtop_postinstall='chgrp sys $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server' + libgtop_dynlink_ok=no + ;; + osf*) + libgtop_sysdeps_dir=osf1 + libgtop_use_machine_h=yes + libgtop_need_server=yes + libgtop_have_sysdeps=yes + libgtop_dynlink_ok=yes + ;; + *) + if test x$hacker_mode = xyes ; then + case "$host_os" in + sunos4*) + #Please note that this port is obsolete and not working at + #all. It is only useful for people who want to fix it ... :-) + libgtop_sysdeps_dir=sun4 + libgtop_use_machine_h=yes + libgtop_need_server=yes + libgtop_have_sysdeps=no + libgtop_dynlink_ok=no + ;; + *) + libgtop_sysdeps_dir=stub + libgtop_use_machine_h=no + libgtop_need_server=no + libgtop_have_sysdeps=yes + libgtop_dynlink_ok=yes + ;; + esac + else + libgtop_sysdeps_dir=stub + libgtop_use_machine_h=no + libgtop_need_server=no + libgtop_have_sysdeps=yes + libgtop_dynlink_ok=yes + fi + ;; + esac + + test -z "$libgtop_postinstall" && libgtop_postinstall=: + + AC_MSG_RESULT($libgtop_sysdeps_dir) +]) + +AC_DEFUN([GNOME_LIBGTOP_DYNLINK],[ + AC_MSG_CHECKING(whether to build gmodulized LibGTop) + + AC_ARG_ENABLE(modules, + [ --disable-modules Disables dynamic module loading],[ + if test x$withval = xyes; then + with_modules=yes + else + with_modules=no + fi + ],[with_modules=auto]) + + dynworks=false + deps= + if test x$with_modules = xno; then + AC_MSG_RESULT(no) + else + AC_MSG_RESULT(yes) + fi + + AC_MSG_CHECKING(whether dynamic modules work) + if test x$with_modules = xauto; then + oLIBS="$LIBS" + oCFLAGS="$CFLAGS" + LIBS="`glib-config --libs gmodule`" + CFLAGS="`glib-config --cflags gmodule`" + AC_TRY_RUN([ + #include <glib.h> + #include <gmodule.h> + main () + { + if (g_module_supported ()) + exit (0); + else + exit (1); + } + ], dynworks=true, dynworks=false, dynworks=true) + LIBS="$oLIBS" + CFLAGS="$oCFLAGS" + + dnl Now we check to see if our libtool supports shared lib deps + dnl (in a rather ugly way even) + if $dynworks; then + libgtop_libtool_config="${CONFIG_SHELL-/bin/sh} libtool --config" + libgtop_deplibs_check=`$libgtop_libtool_config | \ + grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''\"]]' | \ + sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'` + if test "x$libgtop_deplibs_check" = "xnone" || \ + test "x$libgtop_deplibs_check" = "xunknown" || \ + test "x$libgtop_deplibs_check" = "x"; then + dynworks=false + fi + fi + elif test x$with_modules = xyes; then + dynworks=true + else + dynworks=false + fi + + if $dynworks; then + AC_DEFINE(LIBGTOP_USE_GMODULE) + GMODULE_LIBS="`glib-config --libs gmodule`" + GMODULE_FLAGS="`glib-config --cflags gmodule`" + AC_SUBST(GMODULE_LIBS) + AC_SUBST(GMODULE_FLAGS) + libgtop_use_gmodule=yes + libgtop_dynamic_ldflags='-export-dynamic -module' + else + libgtop_use_gmodule=no + libgtop_dynamic_ldflags= + fi + + AC_MSG_RESULT($libgtop_use_gmodule) + + AC_SUBST(libgtop_dynamic_ldflags) +]) + +AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[ + AC_REQUIRE([AC_CANONICAL_HOST]) + + AC_SUBST(libgtop_sysdeps_dir) + AC_SUBST(libgtop_sysdeps_name) + AC_SUBST(libgtop_use_machine_h) + AC_SUBST(libgtop_need_server) + AC_SUBST(libgtop_have_sysdeps) + + AC_ARG_ENABLE(hacker-mode, + [ --enable-hacker-mode Enable building of unstable sysdeps], + [hacker_mode="$enableval"], [hacker_mode=no]) + + AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes) + + if test x$hacker_mode = xyes ; then + LIBGTOP_HACKER_TESTS + AC_ARG_WITH(sysdeps-dir, + [ --with-sysdeps-dir Manually override sysdeps directory],[override_sysdeps_dir="$withval"],[override_sysdeps_dir=no]) + else + override_sysdeps_dir=no + fi + + 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) + case "$host_os" in + linux*) + libgtop_smp=yes + ;; + *) + libgtop_smp=no + ;; + esac + 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) + + if test x$override_sysdeps_dir = xno ; then + LIBGTOP_CHECK_SYSDEPS_DIR + else + case $override_sysdeps_dir in + stub) + libgtop_sysdeps_dir=stub + libgtop_use_machine_h=no + libgtop_have_sysinfo=no + libgtop_need_server=no + libgtop_have_sysdeps=yes + libgtop_dynlink_ok=yes + ;; + stub_suid) + libgtop_sysdeps_dir=stub_suid + libgtop_use_machine_h=yes + libgtop_have_sysinfo=no + libgtop_need_server=yes + libgtop_have_sysdeps=no + libgtop_dynlink_ok=yes + ;; + linux|kernel) + libgtop_sysdeps_dir=linux + libgtop_use_machine_h=no + libgtop_have_sysinfo=no + libgtop_need_server=no + libgtop_have_sysdeps=yes + libgtop_dynlink_ok=yes + ;; + bsd) + libgtop_sysdeps_dir=freebsd + libgtop_use_machine_h=yes + libgtop_need_server=yes + libgtop_have_sysdeps=no + libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server' + libgtop_dynlink_ok=yes + ;; + solaris) + libgtop_sysdeps_dir=solaris + libgtop_use_machine_h=yes + libgtop_need_server=yes + libgtop_have_sysdeps=yes + libgtop_postinstall='chgrp sys $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server' + libgtop_dynlink_ok=no + ;; + osf) + libgtop_sysdeps_dir=osf1 + libgtop_use_machine_h=yes + libgtop_need_server=yes + libgtop_have_sysdeps=yes + libgtop_dynlink_ok=yes + ;; + *) + AC_MSG_ERROR(Invalid value for --with-sysdeps-dir) + ;; + esac + fi + + AC_MSG_CHECKING(for libgtop sysdeps name) + libgtop_sysdeps_name=`echo $libgtop_sysdeps_dir | sed -e 's/_/-/g'` + AC_MSG_RESULT($libgtop_sysdeps_name) + + AC_MSG_CHECKING(whether to use dynamic linking in LibGtop) + AC_MSG_RESULT($libgtop_dynlink_ok) + + 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 osreldate.h) + AC_MSG_CHECKING([for I4B]) + AC_TRY_COMPILE([ +#include <sys/types.h> +#include <sys/socket.h> + +#include <net/if.h> +#include <net/if_types.h> + +#ifdef HAVE_NET_IF_VAR_H +#include <net/if_var.h> +#endif + +#include <net/netisr.h> +#include <net/route.h> + +#if defined(__FreeBSD__) || defined(__NetBSD__) +#include <net/if_sppp.h> +#else +#include <i4b/sppp/if_sppp.h> +#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 <sys/types.h> +#include <sys/socket.h> + +#include <net/if.h> +#include <net/if_types.h> + +#ifdef HAVE_NET_IF_VAR_H +#include <net/if_var.h> +#endif + +#include <net/netisr.h> +#include <net/route.h> + +#if defined(__FreeBSD__) || defined(__NetBSD__) +#include <net/if_sppp.h> +#else +#include <i4b/sppp/if_sppp.h> +#endif + +#include <machine/i4b_acct.h> +],[ + 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*) + os_major_version=`uname -r | sed 's/-pre[[0-9]]*//' | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + os_minor_version=`uname -r | sed 's/-pre[[0-9]]*//' | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + os_micro_version=`uname -r | sed 's/-pre[[0-9]]*//' | \ + 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) + ;; + solaris*) + 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/'` + test -z "$os_micro_version" && os_micro_version=0 + os_version_expr="$os_major_version 100 * $os_minor_version 10 * + $os_micro_version + p q" + os_version_code=`echo "$os_version_expr" | dc` + + AC_MSG_CHECKING(for Solaris release code) + AC_DEFINE_UNQUOTED(GLIBTOP_SOLARIS_RELEASE, $os_version_code) + AC_MSG_RESULT($os_version_code) + ;; + esac + + AC_MSG_CHECKING(for Modem lockfile) + AC_ARG_WITH(modem-lockfile, + [ --with-modem-lockfile Modem lockfile for PPP support],[libgtop_modem_lockfile="$withval"], + [if test -f /dev/modem ; then + libgtop_modem_lockfile='/var/lock/LCK..modem' + else + libgtop_modem_lockfile='/var/lock/LCK..ttyS%u' + fi]) + AC_MSG_RESULT($libgtop_modem_lockfile) + AC_DEFINE_UNQUOTED(LIBGTOP_MODEM_LOCKFILE, "$libgtop_modem_lockfile") + + 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 + + if test x$libgtop_dynlink_ok = xyes ; then + GNOME_LIBGTOP_DYNLINK + else + libgtop_use_gmodule=no + fi + + AC_SUBST(libgtop_use_gmodule) + + if test x$libgtop_have_sysdeps = xyes ; then + AC_DEFINE(LIBGTOP_HAVE_SYSDEPS) + fi + + if test x$libgtop_need_server = xyes ; then + AC_DEFINE(LIBGTOP_NEED_SERVER) + fi + + AM_CONDITIONAL(NEED_LIBGTOP, test x$libgtop_need_server = xyes) + AM_CONDITIONAL(HAVE_SYSDEPS, test x$libgtop_have_sysdeps = xyes) + AM_CONDITIONAL(LIBGTOP_USE_GMODULE, test x$libgtop_use_gmodule = xyes) +]) + +dnl +dnl LIBGTOP_XML_HOOK (script-if-xml-found, failflag) +dnl +dnl If failflag is "failure", script aborts due to lack of XML +dnl +dnl Check for availability of the libxml library +dnl the XML parser uses libz if available too +dnl + +AC_DEFUN([LIBGTOP_XML_HOOK],[ + LIBGTOP_XML_LIB= + AC_PATH_PROG(XML_CONFIG,xml-config,no) + if test "$XML_CONFIG" = no; then + if test x$2 = xfailure; then + AC_MSG_ERROR(Could not find xml-config) + else + AC_MSG_WARN(Could not find xml-config) + fi + else + AC_CHECK_LIB(xml, xmlDocGetRootElement, [ + $1 + LIBGTOP_XML_LIB=`$XML_CONFIG --libs` + AC_DEFINE(HAVE_LIBXML) + ], [ + if test x$2 = xfailure; then + AC_MSG_ERROR(Could not link sample xml program) + else + AC_MSG_WARN(Could not link sample xml program) + fi + ], `$XML_CONFIG --libs`) + fi + AC_SUBST(LIBGTOP_XML_LIB) +]) + +AC_DEFUN([LIBGTOP_XML_CHECK], [ + LIBGTOP_XML_HOOK([],failure) +]) |