Annotation of embedaddon/sudo/aclocal.m4, revision 1.1.1.1
1.1 misho 1: dnl Local m4 macros for autoconf (used by sudo)
2: dnl
3: dnl Copyright (c) 1994-1996, 1998-2005, 2007-2011
4: dnl Todd C. Miller <Todd.Miller@courtesan.com>
5: dnl
6: dnl XXX - should cache values in all cases!!!
7: dnl
8: dnl checks for programs
9:
10: dnl
11: dnl check for sendmail in well-known locations
12: dnl
13: AC_DEFUN([SUDO_PROG_SENDMAIL], [AC_MSG_CHECKING([for sendmail])
14: found=no
15: for p in "/usr/sbin/sendmail" "/usr/lib/sendmail" "/usr/etc/sendmail" "/usr/ucblib/sendmail" "/usr/local/lib/sendmail" "/usr/local/bin/sendmail"; do
16: if test -f "$p"; then
17: found=yes
18: AC_MSG_RESULT([$p])
19: SUDO_DEFINE_UNQUOTED(_PATH_SUDO_SENDMAIL, "$p")
20: break
21: fi
22: done
23: if test X"$found" != X"yes"; then
24: AC_MSG_RESULT([not found])
25: fi
26: ])dnl
27:
28: dnl
29: dnl check for vi in well-known locations
30: dnl
31: AC_DEFUN([SUDO_PROG_VI], [AC_MSG_CHECKING([for vi])
32: found=no
33: for editor in "/usr/bin/vi" "/bin/vi" "/usr/ucb/vi" "/usr/bsd/vi" "/usr/local/bin/vi"; do
34: if test -f "$editor"; then
35: found=yes
36: AC_MSG_RESULT([$editor])
37: SUDO_DEFINE_UNQUOTED(_PATH_VI, "$editor")
38: break
39: fi
40: done
41: if test X"$found" != X"yes"; then
42: AC_MSG_RESULT([not found])
43: fi
44: ])dnl
45:
46: dnl
47: dnl check for mv in well-known locations
48: dnl
49: AC_DEFUN([SUDO_PROG_MV], [AC_MSG_CHECKING([for mv])
50: found=no
51: for p in "/usr/bin/mv" "/bin/mv" "/usr/ucb/mv" "/usr/sbin/mv"; do
52: if test -f "$p"; then
53: found=yes
54: AC_MSG_RESULT([$p])
55: SUDO_DEFINE_UNQUOTED(_PATH_MV, "$p")
56: break
57: fi
58: done
59: if test X"$found" != X"yes"; then
60: AC_MSG_RESULT([not found])
61: fi
62: ])dnl
63:
64: dnl
65: dnl check for bourne shell in well-known locations
66: dnl
67: AC_DEFUN([SUDO_PROG_BSHELL], [AC_MSG_CHECKING([for bourne shell])
68: found=no
69: for p in "/bin/sh" "/usr/bin/sh" "/sbin/sh" "/usr/sbin/sh" "/bin/ksh" "/usr/bin/ksh" "/bin/bash" "/usr/bin/bash"; do
70: if test -f "$p"; then
71: found=yes
72: AC_MSG_RESULT([$p])
73: SUDO_DEFINE_UNQUOTED(_PATH_BSHELL, "$p")
74: break
75: fi
76: done
77: if test X"$found" != X"yes"; then
78: AC_MSG_RESULT([not found])
79: fi
80: ])dnl
81:
82: dnl
83: dnl check for utmp file
84: dnl
85: AC_DEFUN([SUDO_PATH_UTMP], [AC_MSG_CHECKING([for utmp file path])
86: found=no
87: for p in "/var/run/utmp" "/var/adm/utmp" "/etc/utmp"; do
88: if test -r "$p"; then
89: found=yes
90: AC_MSG_RESULT([$p])
91: SUDO_DEFINE_UNQUOTED(_PATH_UTMP, "$p")
92: break
93: fi
94: done
95: if test X"$found" != X"yes"; then
96: AC_MSG_RESULT([not found])
97: fi
98: ])dnl
99:
100: dnl
101: dnl Where the log file goes, use /var/log if it exists, else /{var,usr}/adm
102: dnl
103: AC_DEFUN([SUDO_LOGFILE], [AC_MSG_CHECKING(for log file location)
104: if test -n "$with_logpath"; then
105: AC_MSG_RESULT($with_logpath)
106: SUDO_DEFINE_UNQUOTED(_PATH_SUDO_LOGFILE, "$with_logpath")
107: elif test -d "/var/log"; then
108: AC_MSG_RESULT(/var/log/sudo.log)
109: SUDO_DEFINE(_PATH_SUDO_LOGFILE, "/var/log/sudo.log")
110: elif test -d "/var/adm"; then
111: AC_MSG_RESULT(/var/adm/sudo.log)
112: SUDO_DEFINE(_PATH_SUDO_LOGFILE, "/var/adm/sudo.log")
113: elif test -d "/usr/adm"; then
114: AC_MSG_RESULT(/usr/adm/sudo.log)
115: SUDO_DEFINE(_PATH_SUDO_LOGFILE, "/usr/adm/sudo.log")
116: else
117: AC_MSG_RESULT(unknown, you will have to set _PATH_SUDO_LOGFILE by hand)
118: fi
119: ])dnl
120:
121: dnl
122: dnl Where the timestamp files go.
123: dnl
124: AC_DEFUN([SUDO_TIMEDIR], [AC_MSG_CHECKING(for timestamp file location)
125: timedir="$with_timedir"
126: if test -z "$timedir"; then
127: for d in /var/db /var/lib /var/adm /usr/adm; do
128: if test -d "$d"; then
129: timedir="$d/sudo"
130: break
131: fi
132: done
133: fi
134: AC_MSG_RESULT([$timedir])
135: SUDO_DEFINE_UNQUOTED(_PATH_SUDO_TIMEDIR, "$timedir")
136: ])dnl
137:
138: dnl
139: dnl Where the I/O log files go, use /var/log/sudo-io if
140: dnl /var/log exists, else /{var,usr}/adm/sudo-io
141: dnl
142: AC_DEFUN([SUDO_IO_LOGDIR], [
143: AC_MSG_CHECKING(for I/O log dir location)
144: if test "${with_iologdir-yes}" != "yes"; then
145: iolog_dir="$with_iologdir"
146: elif test -d "/var/log"; then
147: iolog_dir="/var/log/sudo-io"
148: elif test -d "/var/adm"; then
149: iolog_dir="/var/adm/sudo-io"
150: else
151: iolog_dir="/usr/adm/sudo-io"
152: fi
153: if test "${with_iologdir}" != "no"; then
154: SUDO_DEFINE_UNQUOTED(_PATH_SUDO_IO_LOGDIR, "$iolog_dir")
155: fi
156: AC_MSG_RESULT($iolog_dir)
157: ])dnl
158:
159: dnl
160: dnl SUDO_CHECK_TYPE(TYPE, DEFAULT)
161: dnl XXX - should require the check for unistd.h...
162: dnl
163: AC_DEFUN([SUDO_CHECK_TYPE],
164: [AC_REQUIRE([AC_HEADER_STDC])dnl
165: AC_MSG_CHECKING(for $1)
166: AC_CACHE_VAL(sudo_cv_type_$1,
167: [AC_EGREP_CPP($1, [#include <sys/types.h>
168: #include <stdio.h>
169: #if STDC_HEADERS
170: #include <stdlib.h>
171: #endif
172: #if HAVE_UNISTD_H
173: #include <unistd.h>
174: #endif], sudo_cv_type_$1=yes, sudo_cv_type_$1=no)])dnl
175: AC_MSG_RESULT($sudo_cv_type_$1)
176: if test $sudo_cv_type_$1 = no; then
177: AC_DEFINE($1, $2, [Define if your system lacks the $1 type.])
178: fi
179: ])
180:
181: dnl
182: dnl Check for size_t declation
183: dnl
184: AC_DEFUN([SUDO_TYPE_SIZE_T],
185: [SUDO_CHECK_TYPE(size_t, int)])
186:
187: dnl
188: dnl Check for ssize_t declation
189: dnl
190: AC_DEFUN([SUDO_TYPE_SSIZE_T],
191: [SUDO_CHECK_TYPE(ssize_t, int)])
192:
193: dnl
194: dnl Check for dev_t declation
195: dnl
196: AC_DEFUN([SUDO_TYPE_DEV_T],
197: [SUDO_CHECK_TYPE(dev_t, int)])
198:
199: dnl
200: dnl Check for ino_t declation
201: dnl
202: AC_DEFUN([SUDO_TYPE_INO_T],
203: [SUDO_CHECK_TYPE(ino_t, unsigned int)])
204:
205: dnl
206: dnl check for working fnmatch(3)
207: dnl
208: AC_DEFUN([SUDO_FUNC_FNMATCH],
209: [AC_MSG_CHECKING([for working fnmatch with FNM_CASEFOLD])
210: AC_CACHE_VAL(sudo_cv_func_fnmatch,
211: [rm -f conftestdata; > conftestdata
212: AC_TRY_RUN([#include <fnmatch.h>
213: main() { exit(fnmatch("/*/bin/echo *", "/usr/bin/echo just a test", FNM_CASEFOLD)); }], [sudo_cv_func_fnmatch=yes], [sudo_cv_func_fnmatch=no],
214: [sudo_cv_func_fnmatch=no])
215: rm -f core core.* *.core])
216: AC_MSG_RESULT($sudo_cv_func_fnmatch)
217: AS_IF([test $sudo_cv_func_fnmatch = yes], [$1], [$2])])
218:
219: dnl
220: dnl check for isblank(3)
221: dnl
222: AC_DEFUN([SUDO_FUNC_ISBLANK],
223: [AC_CACHE_CHECK([for isblank], [sudo_cv_func_isblank],
224: [AC_TRY_LINK([#include <ctype.h>], [return (isblank('a'));],
225: sudo_cv_func_isblank=yes, sudo_cv_func_isblank=no)])
226: ] [
227: if test "$sudo_cv_func_isblank" = "yes"; then
228: AC_DEFINE(HAVE_ISBLANK, 1, [Define if you have isblank(3).])
229: else
230: AC_LIBOBJ(isblank)
231: fi
232: ])
233:
234: dnl
235: dnl check unsetenv() return value
236: dnl
237: AC_DEFUN([SUDO_FUNC_UNSETENV_VOID],
238: [AC_CACHE_CHECK([whether unsetenv returns void], [sudo_cv_func_unsetenv_void],
239: [AC_RUN_IFELSE([AC_LANG_PROGRAM(
240: [AC_INCLUDES_DEFAULT
241: int unsetenv();
242: ], [
243: [return unsetenv("FOO") != 0;]
244: ])
245: ],
246: [sudo_cv_func_unsetenv_void=no],
247: [sudo_cv_func_unsetenv_void=yes],
248: [sudo_cv_func_unsetenv_void=no])])
249: if test $sudo_cv_func_unsetenv_void = yes; then
250: AC_DEFINE(UNSETENV_VOID, 1,
251: [Define to 1 if the `unsetenv' function returns void instead of `int'.])
252: fi
253: ])
254:
255: dnl
256: dnl check for sa_len field in struct sockaddr
257: dnl
258: AC_DEFUN([SUDO_SOCK_SA_LEN], [
259: AC_CHECK_MEMBER([struct sockaddr.sa_len],
260: [AC_DEFINE(HAVE_SA_LEN, 1, [Define if your struct sockadr has an sa_len field.])],
261: [],
262: [ #include <sys/types.h>
263: #include <sys/socket.h>]
264: )]
265: )
266: dnl
267: dnl check for max length of uid_t in string representation.
268: dnl we can't really trust UID_MAX or MAXUID since they may exist
269: dnl only for backwards compatibility.
270: dnl
271: AC_DEFUN([SUDO_UID_T_LEN],
272: [AC_REQUIRE([AC_TYPE_UID_T])
273: AC_MSG_CHECKING(max length of uid_t)
274: AC_CACHE_VAL(sudo_cv_uid_t_len,
275: [rm -f conftestdata
276: AC_TRY_RUN(
277: [#include <stdio.h>
278: #include <pwd.h>
279: #include <limits.h>
280: #include <sys/types.h>
281: #include <sys/param.h>
282: main() {
283: FILE *f;
284: char b[1024];
285: uid_t u = (uid_t) -1;
286:
287: if ((f = fopen("conftestdata", "w")) == NULL)
288: exit(1);
289:
290: (void) sprintf(b, "%lu", (unsigned long) u);
291: (void) fprintf(f, "%d\n", strlen(b));
292: (void) fclose(f);
293: exit(0);
294: }], sudo_cv_uid_t_len=`cat conftestdata`, sudo_cv_uid_t_len=10, sudo_cv_uid_t_len=10)
295: ])
296: rm -f conftestdata
297: AC_MSG_RESULT($sudo_cv_uid_t_len)
298: AC_DEFINE_UNQUOTED(MAX_UID_T_LEN, $sudo_cv_uid_t_len, [Define to the max length of a uid_t in string context (excluding the NUL).])
299: ])
300:
301: dnl
302: dnl append a libpath to an LDFLAGS style variable
303: dnl
304: AC_DEFUN([SUDO_APPEND_LIBPATH], [
305: if test X"$with_rpath" = X"yes"; then
306: case "$host" in
307: *-*-hpux*) $1="${$1} -L$2 -Wl,+b,$2"
308: ;;
309: *) $1="${$1} -L$2 -Wl,-R$2"
310: ;;
311: esac
312: else
313: $1="${$1} -L$2"
314: fi
315: if test X"$blibpath" != X"" -a "$1" = "SUDO_LDFLAGS"; then
316: blibpath_add="${blibpath_add}:$2"
317: fi
318: ])
319:
320: dnl
321: dnl Determine the mail spool location
322: dnl NOTE: must be run *after* check for paths.h
323: dnl
324: AC_DEFUN([SUDO_MAILDIR], [
325: maildir=no
326: if test X"$ac_cv_header_paths_h" = X"yes"; then
327: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
328: #include <paths.h>],
329: [char *p = _PATH_MAILDIR;])], [maildir=yes], [])
330: fi
331: if test $maildir = no; then
332: # Solaris has maillock.h which defines MAILDIR
333: AC_CHECK_HEADERS(maillock.h, [
334: SUDO_DEFINE(_PATH_MAILDIR, MAILDIR)
335: maildir=yes
336: ])
337: if test $maildir = no; then
338: for d in /var/mail /var/spool/mail /usr/spool/mail; do
339: if test -d "$d"; then
340: maildir=yes
341: SUDO_DEFINE_UNQUOTED(_PATH_MAILDIR, "$d")
342: break
343: fi
344: done
345: if test $maildir = no; then
346: # unable to find mail dir, hope for the best
347: SUDO_DEFINE_UNQUOTED(_PATH_MAILDIR, "/var/mail")
348: fi
349: fi
350: fi
351: ])
352:
353: dnl
354: dnl private versions of AC_DEFINE and AC_DEFINE_UNQUOTED that don't support
355: dnl tracing that we use to define paths for pathnames.h so autoheader doesn't
356: dnl put them in config.h.in. An awful hack.
357: dnl
358: m4_define([SUDO_DEFINE],
359: [cat >>confdefs.h <<\EOF
360: [@%:@define] $1 m4_if($#, 2, [$2], $#, 3, [$2], 1)
361: EOF
362: ])
363:
364: m4_define([SUDO_DEFINE_UNQUOTED],
365: [cat >>confdefs.h <<EOF
366: [@%:@define] $1 m4_if($#, 2, [$2], $#, 3, [$2], 1)
367: EOF
368: ])
369:
370: dnl
371: dnl Pull in libtool macros
372: dnl
373: m4_include([libtool.m4])
374: m4_include([ltoptions.m4])
375: m4_include([ltsugar.m4])
376: m4_include([ltversion.m4])
377: m4_include([lt~obsolete.m4])
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>