Annotation of embedaddon/sudo/aclocal.m4, revision 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>