* lib/readutmp.h: Skip most definitions if neither <utmp.h> nor
[gnulib.git] / m4 / readutmp.m4
1 # readutmp.m4 serial 11
2 dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
6
7 AC_DEFUN([gl_READUTMP],
8 [
9   AC_CHECK_HEADERS_ONCE(utmp.h utmpx.h)
10   if test $ac_cv_header_utmp_h = yes || test $ac_cv_header_utmpx_h = yes; then
11     AC_LIBOBJ([readutmp])
12
13     dnl Prerequisites of lib/readutmp.h and lib/readutmp.c.
14     AC_REQUIRE([AC_C_INLINE])
15     AC_REQUIRE([gl_FUNC_FREE])
16     AC_CHECK_FUNCS_ONCE(utmpname utmpxname)
17     AC_CHECK_DECLS(getutent,,,[
18 #ifdef HAVE_UTMP_H
19 # include <utmp.h>
20 #endif
21 ])
22     utmp_includes="\
23 $ac_includes_default
24 #ifdef HAVE_UTMPX_H
25 # include <utmpx.h>
26 #endif
27 #ifdef HAVE_UTMP_H
28 # include <utmp.h>
29 #endif
30 "
31     AC_CHECK_MEMBERS([struct utmpx.ut_user],,,[$utmp_includes])
32     AC_CHECK_MEMBERS([struct utmp.ut_user],,,[$utmp_includes])
33     AC_CHECK_MEMBERS([struct utmpx.ut_name],,,[$utmp_includes])
34     AC_CHECK_MEMBERS([struct utmp.ut_name],,,[$utmp_includes])
35     AC_CHECK_MEMBERS([struct utmpx.ut_type],,,[$utmp_includes])
36     AC_CHECK_MEMBERS([struct utmp.ut_type],,,[$utmp_includes])
37     AC_CHECK_MEMBERS([struct utmpx.ut_pid],,,[$utmp_includes])
38     AC_CHECK_MEMBERS([struct utmp.ut_pid],,,[$utmp_includes])
39     AC_CHECK_MEMBERS([struct utmpx.ut_id],,,[$utmp_includes])
40     AC_CHECK_MEMBERS([struct utmp.ut_id],,,[$utmp_includes])
41     AC_CHECK_MEMBERS([struct utmpx.ut_exit],,,[$utmp_includes])
42     AC_CHECK_MEMBERS([struct utmp.ut_exit],,,[$utmp_includes])
43
44     AC_CHECK_MEMBERS([struct utmpx.ut_exit.ut_exit],,,[$utmp_includes])
45     AC_CHECK_MEMBERS([struct utmp.ut_exit.ut_exit],,,[$utmp_includes])
46     AC_CHECK_MEMBERS([struct utmpx.ut_exit.e_exit],,,[$utmp_includes])
47     AC_CHECK_MEMBERS([struct utmp.ut_exit.e_exit],,,[$utmp_includes])
48
49     AC_CHECK_MEMBERS([struct utmpx.ut_exit.ut_termination],,,[$utmp_includes])
50     AC_CHECK_MEMBERS([struct utmp.ut_exit.ut_termination],,,[$utmp_includes])
51     AC_CHECK_MEMBERS([struct utmpx.ut_exit.e_termination],,,[$utmp_includes])
52     AC_CHECK_MEMBERS([struct utmp.ut_exit.e_termination],,,[$utmp_includes])
53   fi
54 ])