c0eb9165fe45220856bd969ed4fe86b48091af82
[vte.git] / gnome-pty-helper / acinclude.m4
1 # Checks for availability of various utmp fields
2 #
3 # Original code by Bernhard Rosenkraenzer (bero@linux.net.eu.org), 1998.
4 # Modifications by Timur Bakeyev (timur@gnu.org), 1999.
5 #
6
7 dnl GPH_CHECK_UTMP()
8 dnl Test for presence of the field and define HAVE_UT_UT_field macro
9 dnl
10
11 AC_DEFUN(GPH_CHECK_UTMP,[
12
13 AC_CHECK_HEADERS(sys/time.h utmp.h utmpx.h)
14 AC_HEADER_TIME
15
16 if test "$ac_cv_header_utmpx_h" = "yes"; then
17     AC_DEFINE(UTMP,[struct utmpx],[Define to the name of a structure which holds utmp data.])
18 else
19     AC_DEFINE(UTMP,[struct utmp],[Define to the name of a structure which holds utmp data.])
20 fi
21
22 dnl some systems (BSD4.4-like) require time.h to be included before utmp.h :/
23 AC_MSG_CHECKING(for ut_host field in the utmp structure)
24 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
25 #include <sys/time.h>
26 #include <time.h>
27 #else
28 #ifdef HAVE_SYS_TIME_H
29 #include <sys/time.h>
30 #else
31 #include <time.h>
32 #endif
33 #endif
34 #ifdef HAVE_UTMP_H
35 #include <utmp.h>
36 #endif
37 #ifdef HAVE_UTMPX_H
38 #include <utmpx.h>
39 #endif],[UTMP ut; char *p; p=ut.ut_host;],result=yes,result=no)
40 if test "$result" = "yes"; then
41   AC_DEFINE(HAVE_UT_UT_HOST,1,[Define if your utmp struct contains a ut_host field.])
42 fi
43 AC_MSG_RESULT($result)
44
45 AC_MSG_CHECKING(for ut_pid field in the utmp structure)
46 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
47 #include <sys/time.h>
48 #include <time.h>
49 #else
50 #ifdef HAVE_SYS_TIME_H
51 #include <sys/time.h>
52 #else
53 #include <time.h>
54 #endif
55 #endif
56 #ifdef HAVE_UTMP_H
57 #include <utmp.h>
58 #endif
59 #ifdef HAVE_UTMPX_H
60 #include <utmpx.h>
61 #endif],[UTMP ut; int i; i=ut.ut_pid;],result=yes,result=no)
62 if test "$result" = "yes"; then
63   AC_DEFINE(HAVE_UT_UT_PID,1,[Define if your utmp struct contains a ut_pid field.])
64 fi
65 AC_MSG_RESULT($result)
66
67 AC_MSG_CHECKING(for ut_id field in the utmp structure)
68 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
69 #include <sys/time.h>
70 #include <time.h>
71 #else
72 #ifdef HAVE_SYS_TIME_H
73 #include <sys/time.h>
74 #else
75 #include <time.h>
76 #endif
77 #endif
78 #ifdef HAVE_UTMP_H
79 #include <utmp.h>
80 #endif
81 #ifdef HAVE_UTMPX_H
82 #include <utmpx.h>
83 #endif],[UTMP ut; char *p; p=ut.ut_id;],result=yes,result=no)
84 if test "$result" = "yes"; then
85   AC_DEFINE(HAVE_UT_UT_ID,1,[Define if your utmp struct contains a ut_id field.])
86 fi
87 AC_MSG_RESULT($result)
88
89 AC_MSG_CHECKING(for ut_name field in the utmp structure)
90 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
91 #include <sys/time.h>
92 #include <time.h>
93 #else
94 #ifdef HAVE_SYS_TIME_H
95 #include <sys/time.h>
96 #else
97 #include <time.h>
98 #endif
99 #endif
100 #ifdef HAVE_UTMP_H
101 #include <utmp.h>
102 #endif
103 #ifdef HAVE_UTMPX_H
104 #include <utmpx.h>
105 #endif],[UTMP ut; char *p; p=ut.ut_name;],result=yes,result=no)
106 if test "$result" = "yes"; then
107   AC_DEFINE(HAVE_UT_UT_NAME,1,[Define if your utmp struct contains a ut_name field.])
108 fi
109 AC_MSG_RESULT($result)
110
111 AC_MSG_CHECKING(for ut_type field in the utmp structure)
112 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
113 #include <sys/time.h>
114 #include <time.h>
115 #else
116 #ifdef HAVE_SYS_TIME_H
117 #include <sys/time.h>
118 #else
119 #include <time.h>
120 #endif
121 #endif
122 #ifdef HAVE_UTMP_H
123 #include <utmp.h>
124 #endif
125 #ifdef HAVE_UTMPX_H
126 #include <utmpx.h>
127 #endif],[UTMP ut; int i; i=(int) ut.ut_type;],result=yes,result=no)
128 if test "$result" = "yes"; then
129   AC_DEFINE(HAVE_UT_UT_TYPE,1,[Define if your utmp struct contains a ut_type field.])
130 fi
131 AC_MSG_RESULT($result)
132
133 AC_MSG_CHECKING(for ut_exit.e_termination field in the utmp structure)
134 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
135 #include <sys/time.h>
136 #include <time.h>
137 #else
138 #ifdef HAVE_SYS_TIME_H
139 #include <sys/time.h>
140 #else
141 #include <time.h>
142 #endif
143 #endif
144 #ifdef HAVE_UTMP_H
145 #include <utmp.h>
146 #endif
147 #ifdef HAVE_UTMPX_H
148 #include <utmpx.h>
149 #endif],[UTMP ut; ut.ut_exit.e_termination=0;],result=yes,result=no)
150 if test "$result" = "yes"; then
151   AC_DEFINE(HAVE_UT_UT_EXIT_E_TERMINATION,1,[Define if your utmp struct contains a ut_exit.e_termination field.])
152 fi
153 AC_MSG_RESULT($result)
154
155 AC_MSG_CHECKING(for ut_user field in the utmp structure)
156 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
157 #include <sys/time.h>
158 #include <time.h>
159 #else
160 #ifdef HAVE_SYS_TIME_H
161 #include <sys/time.h>
162 #else
163 #include <time.h>
164 #endif
165 #endif
166 #ifdef HAVE_UTMP_H
167 #include <utmp.h>
168 #endif
169 #ifdef HAVE_UTMPX_H
170 #include <utmpx.h>
171 #endif],[UTMP ut; char *p; p=ut.ut_user;],result=yes,result=no)
172 if test "$result" = "yes"; then
173   AC_DEFINE(HAVE_UT_UT_USER,1,[Define if your utmp struct contains a ut_user field.])
174 fi
175 AC_MSG_RESULT($result)
176
177 AC_MSG_CHECKING(for ut_time field in the utmp structure)
178 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
179 #include <sys/time.h>
180 #include <time.h>
181 #else
182 #ifdef HAVE_SYS_TIME_H
183 #include <sys/time.h>
184 #else
185 #include <time.h>
186 #endif
187 #endif
188 #ifdef HAVE_UTMP_H
189 #include <utmp.h>
190 #endif
191 #ifdef HAVE_UTMPX_H
192 #include <utmpx.h>
193 #endif],[UTMP ut; ut.ut_time=0;],result=yes,result=no)
194 if test "$result" = "yes"; then
195   AC_DEFINE(HAVE_UT_UT_TIME,1,[Define if your utmp struct contains a ut_time field.])
196 fi
197 AC_MSG_RESULT($result)
198
199 AC_MSG_CHECKING(for ut_tv field in the utmp structure)
200 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
201 #include <sys/time.h>
202 #include <time.h>
203 #else
204 #ifdef HAVE_SYS_TIME_H
205 #include <sys/time.h>
206 #else
207 #include <time.h>
208 #endif
209 #endif
210 #ifdef HAVE_UTMP_H
211 #include <utmp.h>
212 #endif
213 #ifdef HAVE_UTMPX_H
214 #include <utmpx.h>
215 #endif],[UTMP ut; ut.ut_tv={0, 0};],result=yes,result=no)
216 if test "$result" = "yes"; then
217   AC_DEFINE(HAVE_UT_UT_TV,1,[Define if your utmp struct contains a ut_tv field.])
218 fi
219 AC_MSG_RESULT($result)
220
221 AC_MSG_CHECKING(for ut_syslen field in the utmp structure)
222 AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
223 #include <sys/time.h>
224 #include <time.h>
225 #else
226 #ifdef HAVE_SYS_TIME_H
227 #include <sys/time.h>
228 #else
229 #include <time.h>
230 #endif
231 #endif
232 #ifdef HAVE_UTMP_H
233 #include <utmp.h>
234 #endif
235 #ifdef HAVE_UTMPX_H
236 #include <utmpx.h>
237 #endif],[UTMP ut; ut.ut_syslen=0;],result=yes,result=no)
238 if test "$result" = "yes"; then
239   AC_DEFINE(HAVE_UT_UT_SYSLEN,1,[Define if your utmp struct contains a ut_syslen field.])
240 fi
241 AC_MSG_RESULT($result)
242
243 ])