1
dnl This file is intended for use both internally in libgtop and in every program
2
dnl that wants to use it.
4
dnl It defines the following variables:
6
dnl * 'libgtop_sysdeps_dir' - sysdeps dir for libgtop.
7
dnl * 'libgtop_use_machine_h' - some of system dependend parts of libgtop provide
8
dnl their own header file. In this case we need to
9
dnl define 'HAVE_GLIBTOP_MACHINE_H'.
10
dnl * 'libgtop_need_server' - is the server really needed? Defines 'NEED_LIBGTOP'
11
dnl if true; defines conditional 'NEED_LIBGTOP'.
13
AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
14
AC_REQUIRE([AC_CANONICAL_HOST])
16
AC_SUBST(libgtop_sysdeps_dir)
17
AC_SUBST(libgtop_use_machine_h)
18
AC_SUBST(libgtop_need_server)
20
AC_ARG_WITH(libgtop-examples,
21
AS_HELP_STRING([--with-examples],
22
[Build the libgtop examples @<:@default=yes@:>@]),[
23
build_examples="$withval"], [build_examples=yes])
25
AM_CONDITIONAL(EXAMPLES, test x"$build_examples" = xyes)
27
AC_ARG_ENABLE(hacker-mode,
28
AS_HELP_STRING([--enable-hacker-mode],
29
[Enable building of unstable sysdeps]),
30
[hacker_mode="$enableval"], [hacker_mode=no])
32
AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes)
34
AC_ARG_WITH(libgtop-smp,
35
AS_HELP_STRING([--with-libgtop-smp],
36
[Enable SMP support @<:@default-auto@:>@]),[
37
libgtop_smp="$withval"],[libgtop_smp=auto])
39
if test $libgtop_smp = auto ; then
40
AC_MSG_CHECKING(whether to enable SMP support)
52
AC_MSG_RESULT($libgtop_smp)
55
if test $libgtop_smp = yes ; then
56
AC_DEFINE(HAVE_LIBGTOP_SMP, 1, [Define if libgtop supports SMP])
59
AM_CONDITIONAL(LIBGTOP_SMP, test $libgtop_smp = yes)
61
AC_MSG_CHECKING(for libgtop sysdeps directory)
65
libgtop_sysdeps_dir=linux
66
libgtop_use_machine_h=no
67
libgtop_have_sysinfo=yes
68
libgtop_need_server=no
69
libgtop_sysdeps_private_mountlist=yes
70
libgtop_sysdeps_private_fsusage=yes
73
libgtop_sysdeps_dir=bsd
74
libgtop_use_machine_h=yes
75
libgtop_need_server=yes
76
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2755 $(bindir)/libgtop_server2'
79
libgtop_sysdeps_dir=openbsd
80
libgtop_use_machine_h=yes
81
libgtop_need_server=yes
82
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2555 $(bindir)/libgtop_server2'
85
libgtop_sysdeps_dir=freebsd
86
libgtop_use_machine_h=yes
87
libgtop_need_server=yes
88
libgtop_sysdeps_private_mountlist=yes
89
libgtop_sysdeps_private_fsusage=yes
90
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2755 $(bindir)/libgtop_server2'
93
libgtop_sysdeps_dir=solaris
94
libgtop_use_machine_h=yes
95
libgtop_need_server=yes
96
libgtop_postinstall='chgrp sys $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server'
99
libgtop_sysdeps_dir=aix
100
libgtop_use_machine_h=yes
101
libgtop_need_server=yes
102
libgtop_have_sysinfo=yes
103
libgtop_postinstall='chgrp system $(bindir)/libgtop_server && chmod g+s $(bindir)/libgtop_server2'
106
libgtop_sysdeps_dir=darwin
107
libgtop_use_machine_h=yes
108
libgtop_need_server=yes
109
libgtop_have_sysinfo=yes
110
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod g+s $(bindir)/libgtop_server2'
113
libgtop_sysdeps_dir=cygwin
114
libgtop_use_machine_h=no
115
libgtop_need_server=no
116
libgtop_have_sysinfo=yes
117
libgtop_sysdeps_private_mountlist=yes
120
if test x$hacker_mode = xyes ; then
123
#Please note that this port is obsolete and not working at
124
#all. It is only useful for people who want to fix it ... :-)
125
libgtop_sysdeps_dir=sun4
126
libgtop_use_machine_h=yes
127
libgtop_need_server=yes
130
libgtop_sysdeps_dir=osf1
131
libgtop_use_machine_h=yes
132
libgtop_need_server=yes
135
libgtop_sysdeps_dir=stub
136
libgtop_use_machine_h=no
137
libgtop_need_server=no
141
libgtop_sysdeps_dir=stub
142
libgtop_use_machine_h=no
143
libgtop_need_server=no
148
test -z "$libgtop_postinstall" && libgtop_postinstall=:
150
AC_MSG_RESULT($libgtop_sysdeps_dir)
152
AC_SUBST(libgtop_sysdeps_dir)
153
AC_SUBST(libgtop_postinstall)
154
AC_SUBST(libgtop_have_sysinfo)
160
AC_CHECK_LIB(kvm, kvm_open, KVM_LIBS="-lkvm -lfreebsd -lbsd", KVM_LIBS=, -lfreebsd -lbsd);;
162
AC_CHECK_LIB(kvm, kvm_open, KVM_LIBS=-lkvm, KVM_LIBS=);;
169
EXTRA_SYSDEPS_LIBS="-lgeom -ldevstat"
172
osreldate=`sysctl -n kern.osreldate 2>/dev/null`
173
if test -n "${osreldate}" && test ${osreldate} -ge 600000 ; then
174
EXTRA_SYSDEPS_LIBS="-lgeom -ldevstat"
179
AC_SUBST(EXTRA_SYSDEPS_LIBS)
181
AC_CHECK_HEADERS(net/if_var.h)
182
AC_MSG_CHECKING([for I4B])
184
#include <sys/types.h>
185
#include <sys/socket.h>
188
#include <net/if_types.h>
190
#ifdef HAVE_NET_IF_VAR_H
191
#include <net/if_var.h>
194
#include <net/netisr.h>
195
#include <net/route.h>
197
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__FreeBSD_kernel__)
198
#include <net/if_sppp.h>
200
#include <i4b/sppp/if_sppp.h>
203
size_t size = sizeof (struct sppp);
204
], have_i4b=yes, have_i4b=no)
205
AC_MSG_RESULT($have_i4b)
206
if test x$have_i4b = xyes; then
207
AC_DEFINE(HAVE_I4B, 1, [Define if I4B is available])
208
AC_MSG_CHECKING([for I4B accounting])
210
#include <sys/types.h>
211
#include <sys/socket.h>
214
#include <net/if_types.h>
216
#ifdef HAVE_NET_IF_VAR_H
217
#include <net/if_var.h>
220
#include <net/netisr.h>
221
#include <net/route.h>
223
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__FreeBSD_kernel__)
224
#include <net/if_sppp.h>
226
#include <i4b/sppp/if_sppp.h>
229
#include <machine/i4b_acct.h>
231
size_t size = sizeof (struct i4bisppp_softc);
232
], have_i4b_acct=yes, have_i4b_acct=no)
233
AC_MSG_RESULT($have_i4b_acct)
234
if test x$have_i4b_acct = xyes ; then
235
AC_DEFINE(HAVE_I4B_ACCT, 1,
236
[Define if I4B accounting is supported])
239
*** I4B accounting disabled - you won't get any PPP statistics.
240
*** Read "misc/i4b_acct.txt" in the LibGTop source directory
241
*** to see how to enable it.])
245
AC_MSG_CHECKING(what we need to define to get struct msginfo)
246
AC_CACHE_VAL(msginfo_needs,
248
for def in nothing KERNEL _KERNEL; do
249
AC_COMPILE_IFELSE([#define $def
250
#include <sys/types.h>
264
if test ${msginfo_needs} = KERNEL; then
265
AC_DEFINE(STRUCT_MSGINFO_NEEDS_KERNEL, 1,
266
[Define to 1 if we need to define KERNEL to get 'struct msginfo'])
267
elif test ${msginfo_needs} = _KERNEL; then
268
AC_DEFINE(STRUCT_MSGINFO_NEEDS__KERNEL, 1,
269
[Define to 1 if we need to define _KERNEL to get 'struct msginfo'])
273
test -n "${msginfo_needs}" && break
276
AC_MSG_RESULT($msginfo_needs)
277
if test -z "${msginfo_needs}"; then
278
AC_MSG_ERROR([Could not find the definition of 'struct msginfo'])
282
os_major_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
283
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
284
os_minor_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
285
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
286
os_micro_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
287
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
288
os_version_expr="$os_major_version 65536 * $os_minor_version 256 * + $os_micro_version + p q"
290
AC_CHECK_HEADERS(linux/version.h, have_linux_version_h=yes,
291
have_linux_version_h=no)
293
if test x$have_linux_version_h = xyes ; then
294
version_code=`cat /usr/include/linux/version.h | \
295
grep \#define | grep LINUX_VERSION_CODE`
296
os_version_code=`echo $version_code | \
297
sed 's/^.*LINUX_VERSION_CODE[[ \t]]*\([[0-9]]*\).*$/\1/'`
299
os_version_code=`echo "$os_version_expr" | dc`
302
AC_MSG_CHECKING(for Linux kernel version code)
303
AC_DEFINE_UNQUOTED(GLIBTOP_LINUX_VERSION_CODE, $os_version_code,
304
[Same as LINUX_VERSION_CODE either from <linux/version.h> or from the running kernel (if there are no configured kernel sources).])
305
AC_MSG_RESULT($os_version_code)
308
os_major_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]*\)\.*\([[0-9]]*\)/\1/'`
309
os_minor_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]*\)\.*\([[0-9]]*\)/\2/'`
310
os_micro_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]*\)\.*\([[0-9]]*\)/\3/'`
311
test -z "$os_micro_version" && os_micro_version=0
312
os_version_expr="$os_major_version 10000 * $os_minor_version 100 * + $os_micro_version + p q"
313
os_version_code=`echo "$os_version_expr" | dc`
315
AC_MSG_CHECKING(for Solaris release code)
316
AC_DEFINE_UNQUOTED(GLIBTOP_SOLARIS_RELEASE, $os_version_code,
317
[Solaris release code (eg. 20501 for Solaris 2.5.1).])
318
AC_MSG_RESULT($os_version_code)
322
AC_MSG_CHECKING(for machine.h in libgtop sysdeps dir)
323
AC_MSG_RESULT($libgtop_use_machine_h)
325
AC_MSG_CHECKING(whether we need libgtop)
326
AC_MSG_RESULT($libgtop_need_server)
328
if test x$libgtop_need_server = xyes ; then
329
AC_DEFINE(NEED_LIBGTOP, 1, [Define if libgtop is required])
332
if test x$libgtop_use_machine_h = xyes ; then
333
AC_DEFINE(HAVE_GLIBTOP_MACHINE_H, 1,
334
[Define if machine.h in libgtop sysdeps dir])
337
AM_CONDITIONAL(NEED_LIBGTOP, test x$libgtop_need_server = xyes)
338
AM_CONDITIONAL(LIBGTOP_SYSDEPS_PRIVATE_MOUNTLIST, test x$libgtop_sysdeps_private_mountlist = xyes)
339
AM_CONDITIONAL(LIBGTOP_SYSDEPS_PRIVATE_FSUSAGE, test x$libgtop_sysdeps_private_fsusage = xyes)