Annotation of embedaddon/sudo/configure.ac, revision 1.1
1.1 ! misho 1: dnl
! 2: dnl Use the top-level autogen.sh script to generate configure and config.h.in
! 3: dnl
! 4: dnl Copyright (c) 1994-1996,1998-2014 Todd C. Miller <Todd.Miller@courtesan.com>
! 5: dnl
! 6: AC_PREREQ([2.59])
! 7: AC_INIT([sudo], [1.8.10p3], [http://www.sudo.ws/bugs/], [sudo])
! 8: AC_CONFIG_HEADER([config.h pathnames.h])
! 9: AC_CONFIG_SRCDIR([src/sudo.c])
! 10: dnl
! 11: dnl Note: this must come after AC_INIT
! 12: dnl
! 13: AC_MSG_NOTICE([Configuring Sudo version $PACKAGE_VERSION])
! 14: dnl
! 15: dnl Variables that get substituted in the Makefile and man pages
! 16: dnl
! 17: AC_SUBST([HAVE_BSM_AUDIT])
! 18: AC_SUBST([SHELL])
! 19: AC_SUBST([LIBTOOL])
! 20: AC_SUBST([CFLAGS])
! 21: AC_SUBST([PROGS])
! 22: AC_SUBST([CPPFLAGS])
! 23: AC_SUBST([LDFLAGS])
! 24: AC_SUBST([SUDOERS_LDFLAGS])
! 25: AC_SUBST([LT_LDFLAGS])
! 26: AC_SUBST([LT_LDMAP])
! 27: AC_SUBST([LT_LDOPT])
! 28: AC_SUBST([LT_LDDEP])
! 29: AC_SUBST([LT_LDEXPORTS])
! 30: AC_SUBST([COMMON_OBJS])
! 31: AC_SUBST([SUDOERS_OBJS])
! 32: AC_SUBST([SUDO_OBJS])
! 33: AC_SUBST([LIBS])
! 34: AC_SUBST([SUDO_LIBS])
! 35: AC_SUBST([SUDOERS_LIBS])
! 36: AC_SUBST([STATIC_SUDOERS])
! 37: AC_SUBST([NET_LIBS])
! 38: AC_SUBST([AFS_LIBS])
! 39: AC_SUBST([REPLAY_LIBS])
! 40: AC_SUBST([GETGROUPS_LIB])
! 41: AC_SUBST([OSDEFS])
! 42: AC_SUBST([AUTH_OBJS])
! 43: AC_SUBST([MANTYPE])
! 44: AC_SUBST([MANDIRTYPE])
! 45: AC_SUBST([MANCOMPRESS])
! 46: AC_SUBST([MANCOMPRESSEXT])
! 47: AC_SUBST([SHLIB_MODE])
! 48: AC_SUBST([SHLIB_EXT])
! 49: AC_SUBST([SUDOERS_MODE])
! 50: AC_SUBST([SUDOERS_UID])
! 51: AC_SUBST([SUDOERS_GID])
! 52: AC_SUBST([DEVEL])
! 53: AC_SUBST([BAMAN])
! 54: AC_SUBST([LCMAN])
! 55: AC_SUBST([PSMAN])
! 56: AC_SUBST([SEMAN])
! 57: AC_SUBST([devdir])
! 58: AC_SUBST([mansectsu])
! 59: AC_SUBST([mansectform])
! 60: AC_SUBST([mansrcdir])
! 61: AC_SUBST([NOEXECFILE])
! 62: AC_SUBST([NOEXECDIR])
! 63: AC_SUBST([SOEXT])
! 64: AC_SUBST([noexec_file])
! 65: AC_SUBST([sesh_file])
! 66: AC_SUBST([INSTALL_NOEXEC])
! 67: AC_SUBST([DONT_LEAK_PATH_INFO])
! 68: AC_SUBST([BSDAUTH_USAGE])
! 69: AC_SUBST([SELINUX_USAGE])
! 70: AC_SUBST([LDAP])
! 71: AC_SUBST([LOGINCAP_USAGE])
! 72: AC_SUBST([ZLIB])
! 73: AC_SUBST([ZLIB_SRC])
! 74: AC_SUBST([LIBTOOL_DEPS])
! 75: AC_SUBST([ac_config_libobj_dir])
! 76: AC_SUBST([CONFIGURE_ARGS])
! 77: AC_SUBST([LIBDL])
! 78: AC_SUBST([LT_STATIC])
! 79: AC_SUBST([LIBINTL])
! 80: AC_SUBST([SUDO_NLS])
! 81: AC_SUBST([LOCALEDIR_SUFFIX])
! 82: AC_SUBST([COMPAT_TEST_PROGS])
! 83: AC_SUBST([CROSS_COMPILING])
! 84: AC_SUBST([PIE_LDFLAGS])
! 85: AC_SUBST([PIE_CFLAGS])
! 86: AC_SUBST([SSP_LDFLAGS])
! 87: AC_SUBST([SSP_CFLAGS])
! 88: AC_SUBST([NO_VIZ])
! 89: AC_SUBST([INIT_SCRIPT])
! 90: AC_SUBST([INIT_DIR])
! 91: AC_SUBST([RC_LINK])
! 92: dnl
! 93: dnl Variables that get substituted in docs (not overridden by environment)
! 94: dnl
! 95: AC_SUBST([iolog_dir])dnl real initial value from SUDO_IO_LOGDIR
! 96: AC_SUBST([rundir])dnl real initial value from SUDO_RUNDIR
! 97: AC_SUBST([vardir])dnl real initial value from SUDO_VARDIR
! 98: AC_SUBST([timeout])
! 99: AC_SUBST([password_timeout])
! 100: AC_SUBST([sudo_umask])
! 101: AC_SUBST([umask_override])
! 102: AC_SUBST([passprompt])
! 103: AC_SUBST([long_otp_prompt])
! 104: AC_SUBST([lecture])
! 105: AC_SUBST([logfac])
! 106: AC_SUBST([goodpri])
! 107: AC_SUBST([badpri])
! 108: AC_SUBST([loglen])
! 109: AC_SUBST([ignore_dot])
! 110: AC_SUBST([mail_no_user])
! 111: AC_SUBST([mail_no_host])
! 112: AC_SUBST([mail_no_perms])
! 113: AC_SUBST([mailto])
! 114: AC_SUBST([mailsub])
! 115: AC_SUBST([badpass_message])
! 116: AC_SUBST([fqdn])
! 117: AC_SUBST([runas_default])
! 118: AC_SUBST([env_editor])
! 119: AC_SUBST([env_reset])
! 120: AC_SUBST([passwd_tries])
! 121: AC_SUBST([tty_tickets])
! 122: AC_SUBST([insults])
! 123: AC_SUBST([root_sudo])
! 124: AC_SUBST([path_info])
! 125: AC_SUBST([ldap_conf])
! 126: AC_SUBST([ldap_secret])
! 127: AC_SUBST([sssd_lib])
! 128: AC_SUBST([nsswitch_conf])
! 129: AC_SUBST([netsvc_conf])
! 130: AC_SUBST([secure_path])
! 131: AC_SUBST([editor])
! 132: AC_SUBST([pam_session])
! 133: AC_SUBST([pam_login_service])
! 134: AC_SUBST([PLUGINDIR])
! 135: #
! 136: # Begin initial values for man page substitution
! 137: #
! 138: iolog_dir=/var/log/sudo-io
! 139: rundir=/var/run/sudo
! 140: vardir=/var/adm/sudo
! 141: timeout=5
! 142: password_timeout=5
! 143: sudo_umask=0022
! 144: umask_override=off
! 145: passprompt="Password:"
! 146: long_otp_prompt=off
! 147: lecture=once
! 148: logfac=auth
! 149: goodpri=notice
! 150: badpri=alert
! 151: loglen=80
! 152: ignore_dot=off
! 153: mail_no_user=on
! 154: mail_no_host=off
! 155: mail_no_perms=off
! 156: mailto=root
! 157: mailsub="*** SECURITY information for %h ***"
! 158: badpass_message="Sorry, try again."
! 159: fqdn=off
! 160: runas_default=root
! 161: env_editor=off
! 162: env_reset=on
! 163: editor=vi
! 164: passwd_tries=3
! 165: tty_tickets=on
! 166: insults=off
! 167: root_sudo=on
! 168: path_info=on
! 169: ldap_conf=/etc/ldap.conf
! 170: ldap_secret=/etc/ldap.secret
! 171: netsvc_conf=/etc/netsvc.conf
! 172: noexec_file=/usr/local/libexec/sudo/sudo_noexec.so
! 173: sesh_file=/usr/local/libexec/sudo/sesh
! 174: nsswitch_conf=/etc/nsswitch.conf
! 175: secure_path="not set"
! 176: pam_session=on
! 177: pam_login_service=sudo
! 178: PLUGINDIR=/usr/local/libexec/sudo
! 179: #
! 180: # End initial values for man page substitution
! 181: #
! 182: dnl
! 183: dnl Initial values for Makefile variables listed above
! 184: dnl May be overridden by environment variables..
! 185: dnl
! 186: INSTALL_NOEXEC=
! 187: devdir='$(srcdir)'
! 188: PROGS="sudo"
! 189: : ${MANDIRTYPE='man'}
! 190: : ${mansrcdir='.'}
! 191: : ${SHLIB_MODE='0644'}
! 192: : ${SUDOERS_MODE='0440'}
! 193: : ${SUDOERS_UID='0'}
! 194: : ${SUDOERS_GID='0'}
! 195: DEVEL=
! 196: LDAP="#"
! 197: BAMAN=0
! 198: LCMAN=0
! 199: PSMAN=0
! 200: SEMAN=0
! 201: LIBINTL=
! 202: ZLIB=
! 203: ZLIB_SRC=
! 204: AUTH_OBJS=
! 205: AUTH_REG=
! 206: AUTH_EXCL=
! 207: AUTH_EXCL_DEF=
! 208: AUTH_DEF=passwd
! 209: SUDO_NLS=disabled
! 210: LOCALEDIR_SUFFIX=
! 211: LT_LDEXPORTS="-export-symbols \$(shlib_exp)"
! 212: LT_LDDEP="\$(shlib_exp)"
! 213: NO_VIZ="-DNO_VIZ"
! 214: OS_INIT=os_init_common
! 215: INIT_SCRIPT=
! 216: INIT_DIR=
! 217: RC_LINK=
! 218:
! 219: dnl
! 220: dnl Other vaiables
! 221: dnl
! 222: CHECKSHADOW=true
! 223: shadow_defs=
! 224: shadow_funcs=
! 225: shadow_libs=
! 226: shadow_libs_optional=
! 227: CONFIGURE_ARGS="$@"
! 228:
! 229: dnl
! 230: dnl LD_PRELOAD equivalents
! 231: dnl
! 232: RTLD_PRELOAD_VAR="LD_PRELOAD"
! 233: RTLD_PRELOAD_ENABLE_VAR=
! 234: RTLD_PRELOAD_DELIM=":"
! 235: RTLD_PRELOAD_DEFAULT=
! 236:
! 237: dnl
! 238: dnl libc replacement functions live in compat
! 239: dnl
! 240: AC_CONFIG_LIBOBJ_DIR(compat)
! 241:
! 242: #
! 243: # Prior to sudo 1.8.7, sudo stored libexec files in $libexecdir.
! 244: # Starting with sudo 1.8.7, $libexecdir/sudo is used so strip
! 245: # off an extraneous "/sudo" from libexecdir.
! 246: #
! 247: case "$libexecdir" in
! 248: */sudo)
! 249: AC_MSG_WARN([libexecdir should not include the "sudo" subdirectory])
! 250: libexecdir=`expr "$libexecdir" : '\\(.*\\)/sudo$'`
! 251: ;;
! 252: esac
! 253:
! 254: dnl
! 255: dnl Deprecated --with options (these all warn or generate an error)
! 256: dnl
! 257:
! 258: AC_ARG_WITH(otp-only, [AS_HELP_STRING([--with-otp-only], [deprecated])],
! 259: [case $with_otp_only in
! 260: yes) with_passwd="no"
! 261: AC_MSG_NOTICE([--with-otp-only option deprecated, treating as --without-passwd])
! 262: ;;
! 263: esac])
! 264:
! 265: AC_ARG_WITH(alertmail, [AS_HELP_STRING([--with-alertmail], [deprecated])],
! 266: [case $with_alertmail in
! 267: *) with_mailto="$with_alertmail"
! 268: AC_MSG_NOTICE([--with-alertmail option deprecated, treating as --mailto])
! 269: ;;
! 270: esac])
! 271:
! 272: dnl
! 273: dnl Options for --with
! 274: dnl
! 275:
! 276: AC_ARG_WITH(devel, [AS_HELP_STRING([--with-devel], [add development options])],
! 277: [case $with_devel in
! 278: yes) AC_MSG_NOTICE([Setting up for development: -Wall, flex, yacc])
! 279: OSDEFS="${OSDEFS} -DSUDO_DEVEL"
! 280: DEVEL="true"
! 281: devdir=.
! 282: ;;
! 283: no) ;;
! 284: *) AC_MSG_WARN([Ignoring unknown argument to --with-devel: $with_devel])
! 285: ;;
! 286: esac])
! 287:
! 288: AC_ARG_WITH(CC, [AS_HELP_STRING([--with-CC], [C compiler to use])],
! 289: [case $with_CC in
! 290: *) AC_MSG_ERROR([the --with-CC option is no longer supported, please set the CC environment variable instead.])
! 291: ;;
! 292: esac])
! 293:
! 294: AC_ARG_WITH(rpath, [AS_HELP_STRING([--with-rpath], [deprecated, use --disable-rpath])],
! 295: [AC_MSG_WARN([--with-rpath deprecated, rpath is now the default])])
! 296:
! 297: AC_ARG_WITH(blibpath, [AS_HELP_STRING([--with-blibpath[=PATH]], [deprecated])],
! 298: [AC_MSG_WARN([--with-blibpath deprecated, use --with-libpath])])
! 299:
! 300: dnl
! 301: dnl Handle BSM auditing support.
! 302: dnl
! 303: AC_ARG_WITH(bsm-audit, [AS_HELP_STRING([--with-bsm-audit], [enable BSM audit support])],
! 304: [case $with_bsm_audit in
! 305: yes) AC_DEFINE(HAVE_BSM_AUDIT)
! 306: SUDOERS_LIBS="${SUDOERS_LIBS} -lbsm"
! 307: SUDOERS_OBJS="${SUDOERS_OBJS} bsm_audit.lo"
! 308: ;;
! 309: no) ;;
! 310: *) AC_MSG_ERROR(["--with-bsm-audit does not take an argument."])
! 311: ;;
! 312: esac])
! 313:
! 314: dnl
! 315: dnl Handle Linux auditing support.
! 316: dnl
! 317: AC_ARG_WITH(linux-audit, [AS_HELP_STRING([--with-linux-audit], [enable Linux audit support])],
! 318: [case $with_linux_audit in
! 319: yes) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libaudit.h>]], [[int i = AUDIT_USER_CMD; (void)i;]])], [
! 320: AC_DEFINE(HAVE_LINUX_AUDIT)
! 321: SUDO_LIBS="${SUDO_LIBS} -laudit"
! 322: SUDOERS_LIBS="${SUDO_LIBS} -laudit"
! 323: SUDOERS_OBJS="${SUDOERS_OBJS} linux_audit.lo"
! 324: ], [
! 325: AC_MSG_ERROR([unable to find AUDIT_USER_CMD in libaudit.h for --with-linux-audit])
! 326: ])
! 327: ;;
! 328: no) ;;
! 329: *) AC_MSG_ERROR(["--with-linux-audit does not take an argument."])
! 330: ;;
! 331: esac])
! 332:
! 333: dnl
! 334: dnl Handle SSSD support.
! 335: dnl
! 336: AC_ARG_WITH(sssd, [AS_HELP_STRING([--with-sssd], [enable SSSD support])],
! 337: [case $with_sssd in
! 338: yes) SUDOERS_OBJS="${SUDOERS_OBJS} sssd.lo"
! 339: AC_DEFINE(HAVE_SSSD)
! 340: ;;
! 341: no) ;;
! 342: *) AC_MSG_ERROR(["--with-sssd does not take an argument."])
! 343: ;;
! 344: esac])
! 345:
! 346: AC_ARG_WITH(sssd-lib, [AS_HELP_STRING([--with-sssd-lib], [path to the SSSD library])])
! 347: sssd_lib="\"LIBDIR\""
! 348: test -n "$with_sssd_lib" && sssd_lib="$with_sssd_lib"
! 349: SUDO_DEFINE_UNQUOTED(_PATH_SSSD_LIB, "$sssd_lib", [Path to the SSSD library])
! 350:
! 351: AC_ARG_WITH(incpath, [AS_HELP_STRING([--with-incpath], [additional places to look for include files])],
! 352: [case $with_incpath in
! 353: yes) AC_MSG_ERROR(["must give --with-incpath an argument."])
! 354: ;;
! 355: no) AC_MSG_ERROR(["--without-incpath not supported."])
! 356: ;;
! 357: *) AC_MSG_NOTICE([Adding ${with_incpath} to CPPFLAGS])
! 358: for i in ${with_incpath}; do
! 359: SUDO_APPEND_CPPFLAGS(-I${i})
! 360: done
! 361: ;;
! 362: esac])
! 363:
! 364: AC_ARG_WITH(libpath, [AS_HELP_STRING([--with-libpath], [additional places to look for libraries])],
! 365: [case $with_libpath in
! 366: yes) AC_MSG_ERROR(["must give --with-libpath an argument."])
! 367: ;;
! 368: no) AC_MSG_ERROR(["--without-libpath not supported."])
! 369: ;;
! 370: *) AC_MSG_NOTICE([Adding ${with_libpath} to LDFLAGS])
! 371: ;;
! 372: esac])
! 373:
! 374: AC_ARG_WITH(libraries, [AS_HELP_STRING([--with-libraries], [additional libraries to link with])],
! 375: [case $with_libraries in
! 376: yes) AC_MSG_ERROR(["must give --with-libraries an argument."])
! 377: ;;
! 378: no) AC_MSG_ERROR(["--without-libraries not supported."])
! 379: ;;
! 380: *) AC_MSG_NOTICE([Adding ${with_libraries} to LIBS])
! 381: ;;
! 382: esac])
! 383:
! 384: AC_ARG_WITH(efence, [AS_HELP_STRING([--with-efence], [link with -lefence for malloc() debugging])],
! 385: [case $with_efence in
! 386: yes) AC_MSG_NOTICE([Sudo will link with -lefence (Electric Fence)])
! 387: LIBS="${LIBS} -lefence"
! 388: if test -f /usr/local/lib/libefence.a; then
! 389: with_libpath="${with_libpath} /usr/local/lib"
! 390: fi
! 391: ;;
! 392: no) ;;
! 393: *) AC_MSG_WARN([Ignoring unknown argument to --with-efence: $with_efence])
! 394: ;;
! 395: esac])
! 396:
! 397: AC_ARG_WITH(csops, [AS_HELP_STRING([--with-csops], [add CSOps standard options])],
! 398: [case $with_csops in
! 399: yes) AC_MSG_NOTICE([Adding CSOps standard options])
! 400: CHECKSIA=false
! 401: with_ignore_dot=yes
! 402: insults=on
! 403: with_classic_insults=yes
! 404: with_csops_insults=yes
! 405: with_env_editor=yes
! 406: : ${mansectsu='8'}
! 407: : ${mansectform='5'}
! 408: ;;
! 409: no) ;;
! 410: *) AC_MSG_WARN([Ignoring unknown argument to --with-csops: $with_csops])
! 411: ;;
! 412: esac])
! 413:
! 414: AC_ARG_WITH(passwd, [AS_HELP_STRING([--without-passwd], [don't use passwd/shadow file for authentication])],
! 415: [case $with_passwd in
! 416: yes|no) AC_MSG_CHECKING(whether to use shadow/passwd file authentication)
! 417: AC_MSG_RESULT($with_passwd)
! 418: AUTH_DEF=""
! 419: test "$with_passwd" = "yes" && AUTH_REG="$AUTH_REG passwd"
! 420: ;;
! 421: *) AC_MSG_ERROR(["Sorry, --with-passwd does not take an argument."])
! 422: ;;
! 423: esac])
! 424:
! 425: AC_ARG_WITH(skey, [AS_HELP_STRING([--with-skey[=DIR]], [enable S/Key support ])],
! 426: [case $with_skey in
! 427: no) ;;
! 428: *) AC_DEFINE(HAVE_SKEY)
! 429: AC_MSG_CHECKING(whether to try S/Key authentication)
! 430: AC_MSG_RESULT(yes)
! 431: AUTH_REG="$AUTH_REG S/Key"
! 432: ;;
! 433: esac])
! 434:
! 435: AC_ARG_WITH(opie, [AS_HELP_STRING([--with-opie[=DIR]], [enable OPIE support ])],
! 436: [case $with_opie in
! 437: no) ;;
! 438: *) AC_DEFINE(HAVE_OPIE)
! 439: AC_MSG_CHECKING(whether to try NRL OPIE authentication)
! 440: AC_MSG_RESULT(yes)
! 441: AUTH_REG="$AUTH_REG NRL_OPIE"
! 442: ;;
! 443: esac])
! 444:
! 445: AC_ARG_WITH(long-otp-prompt, [AS_HELP_STRING([--with-long-otp-prompt], [use a two line OTP (skey/opie) prompt])],
! 446: [case $with_long_otp_prompt in
! 447: yes) AC_DEFINE(LONG_OTP_PROMPT)
! 448: AC_MSG_CHECKING(whether to use a two line prompt for OTP authentication)
! 449: AC_MSG_RESULT(yes)
! 450: long_otp_prompt=on
! 451: ;;
! 452: no) long_otp_prompt=off
! 453: ;;
! 454: *) AC_MSG_ERROR(["--with-long-otp-prompt does not take an argument."])
! 455: ;;
! 456: esac])
! 457:
! 458: AC_ARG_WITH(SecurID, [AS_HELP_STRING([--with-SecurID[[=DIR]]], [enable SecurID support])],
! 459: [case $with_SecurID in
! 460: no) ;;
! 461: *) AC_DEFINE(HAVE_SECURID)
! 462: AC_MSG_CHECKING(whether to use SecurID for authentication)
! 463: AC_MSG_RESULT(yes)
! 464: AUTH_EXCL="$AUTH_EXCL SecurID"
! 465: ;;
! 466: esac])
! 467:
! 468: AC_ARG_WITH(fwtk, [AS_HELP_STRING([--with-fwtk[[=DIR]]], [enable FWTK AuthSRV support])],
! 469: [case $with_fwtk in
! 470: no) ;;
! 471: *) AC_DEFINE(HAVE_FWTK)
! 472: AC_MSG_CHECKING(whether to use FWTK AuthSRV for authentication)
! 473: AC_MSG_RESULT(yes)
! 474: AUTH_EXCL="$AUTH_EXCL FWTK"
! 475: ;;
! 476: esac])
! 477:
! 478: AC_ARG_WITH(kerb5, [AS_HELP_STRING([--with-kerb5[[=DIR]]], [enable Kerberos V support])],
! 479: [case $with_kerb5 in
! 480: no) ;;
! 481: *) AC_MSG_CHECKING(whether to try Kerberos V authentication)
! 482: AC_MSG_RESULT(yes)
! 483: AUTH_REG="$AUTH_REG kerb5"
! 484: ;;
! 485: esac])
! 486:
! 487: AC_ARG_WITH(aixauth, [AS_HELP_STRING([--with-aixauth], [enable AIX general authentication support])],
! 488: [case $with_aixauth in
! 489: yes) AUTH_EXCL="$AUTH_EXCL AIX_AUTH";;
! 490: no) ;;
! 491: *) AC_MSG_ERROR(["--with-aixauth does not take an argument."])
! 492: ;;
! 493: esac])
! 494:
! 495: AC_ARG_WITH(pam, [AS_HELP_STRING([--with-pam], [enable PAM support])],
! 496: [case $with_pam in
! 497: yes) AUTH_EXCL="$AUTH_EXCL PAM";;
! 498: no) ;;
! 499: *) AC_MSG_ERROR(["--with-pam does not take an argument."])
! 500: ;;
! 501: esac])
! 502:
! 503: AC_ARG_WITH(AFS, [AS_HELP_STRING([--with-AFS], [enable AFS support])],
! 504: [case $with_AFS in
! 505: yes) AC_DEFINE(HAVE_AFS)
! 506: AC_MSG_CHECKING(whether to try AFS (kerberos) authentication)
! 507: AC_MSG_RESULT(yes)
! 508: AUTH_REG="$AUTH_REG AFS"
! 509: ;;
! 510: no) ;;
! 511: *) AC_MSG_ERROR(["--with-AFS does not take an argument."])
! 512: ;;
! 513: esac])
! 514:
! 515: AC_ARG_WITH(DCE, [AS_HELP_STRING([--with-DCE], [enable DCE support])],
! 516: [case $with_DCE in
! 517: yes) AC_DEFINE(HAVE_DCE)
! 518: AC_MSG_CHECKING(whether to try DCE (kerberos) authentication)
! 519: AC_MSG_RESULT(yes)
! 520: AUTH_REG="$AUTH_REG DCE"
! 521: ;;
! 522: no) ;;
! 523: *) AC_MSG_ERROR(["--with-DCE does not take an argument."])
! 524: ;;
! 525: esac])
! 526:
! 527: AC_ARG_WITH(logincap, [AS_HELP_STRING([--with-logincap], [enable BSD login class support])],
! 528: [case $with_logincap in
! 529: yes|no) ;;
! 530: *) AC_MSG_ERROR(["--with-logincap does not take an argument."])
! 531: ;;
! 532: esac])
! 533:
! 534: AC_ARG_WITH(bsdauth, [AS_HELP_STRING([--with-bsdauth], [enable BSD authentication support])],
! 535: [case $with_bsdauth in
! 536: yes) AUTH_EXCL="$AUTH_EXCL BSD_AUTH";;
! 537: no) ;;
! 538: *) AC_MSG_ERROR(["--with-bsdauth does not take an argument."])
! 539: ;;
! 540: esac])
! 541:
! 542: AC_ARG_WITH(project, [AS_HELP_STRING([--with-project], [enable Solaris project support])],
! 543: [case $with_project in
! 544: yes|no) ;;
! 545: no) ;;
! 546: *) AC_MSG_ERROR(["--with-project does not take an argument."])
! 547: ;;
! 548: esac])
! 549:
! 550: AC_MSG_CHECKING(whether to lecture users the first time they run sudo)
! 551: AC_ARG_WITH(lecture, [AS_HELP_STRING([--without-lecture], [don't print lecture for first-time sudoer])],
! 552: [case $with_lecture in
! 553: yes|short|always) lecture=once
! 554: ;;
! 555: no|none|never) lecture=never
! 556: ;;
! 557: *) AC_MSG_ERROR(["unknown argument to --with-lecture: $with_lecture"])
! 558: ;;
! 559: esac])
! 560: if test "$lecture" = "once"; then
! 561: AC_MSG_RESULT(yes)
! 562: else
! 563: AC_DEFINE(NO_LECTURE)
! 564: AC_MSG_RESULT(no)
! 565: fi
! 566:
! 567: AC_MSG_CHECKING(whether sudo should log via syslog or to a file by default)
! 568: AC_ARG_WITH(logging, [AS_HELP_STRING([--with-logging], [log via syslog, file, or both])],
! 569: [case $with_logging in
! 570: yes) AC_MSG_ERROR(["must give --with-logging an argument."])
! 571: ;;
! 572: no) AC_MSG_ERROR(["--without-logging not supported."])
! 573: ;;
! 574: syslog) AC_DEFINE(LOGGING, SLOG_SYSLOG)
! 575: AC_MSG_RESULT(syslog)
! 576: ;;
! 577: file) AC_DEFINE(LOGGING, SLOG_FILE)
! 578: AC_MSG_RESULT(file)
! 579: ;;
! 580: both) AC_DEFINE(LOGGING, SLOG_BOTH)
! 581: AC_MSG_RESULT(both)
! 582: ;;
! 583: *) AC_MSG_ERROR(["unknown argument to --with-logging: $with_logging"])
! 584: ;;
! 585: esac], [AC_DEFINE(LOGGING, SLOG_SYSLOG) AC_MSG_RESULT(syslog)])
! 586:
! 587: AC_ARG_WITH(logfac, [AS_HELP_STRING([--with-logfac], [syslog facility to log with (default is "auth")])],
! 588: [case $with_logfac in
! 589: yes) AC_MSG_ERROR(["must give --with-logfac an argument."])
! 590: ;;
! 591: no) AC_MSG_ERROR(["--without-logfac not supported."])
! 592: ;;
! 593: authpriv|auth|daemon|user|local0|local1|local2|local3|local4|local5|local6|local7) logfac=$with_logfac
! 594: ;;
! 595: *) AC_MSG_ERROR(["$with_logfac is not a supported syslog facility."])
! 596: ;;
! 597: esac])
! 598:
! 599: AC_MSG_CHECKING(at which syslog priority to log commands)
! 600: AC_ARG_WITH(goodpri, [AS_HELP_STRING([--with-goodpri], [syslog priority for commands (def is "notice")])],
! 601: [case $with_goodpri in
! 602: yes) AC_MSG_ERROR(["must give --with-goodpri an argument."])
! 603: ;;
! 604: no) AC_MSG_ERROR(["--without-goodpri not supported."])
! 605: ;;
! 606: alert|crit|debug|emerg|err|info|notice|warning)
! 607: goodpri=$with_goodpri
! 608: ;;
! 609: *) AC_MSG_ERROR(["$with_goodpri is not a supported syslog priority."])
! 610: ;;
! 611: esac])
! 612: AC_DEFINE_UNQUOTED(PRI_SUCCESS, "$goodpri", [The syslog priority sudo will use for successful attempts.])
! 613: AC_MSG_RESULT($goodpri)
! 614:
! 615: AC_MSG_CHECKING(at which syslog priority to log failures)
! 616: AC_ARG_WITH(badpri, [AS_HELP_STRING([--with-badpri], [syslog priority for failures (def is "alert")])],
! 617: [case $with_badpri in
! 618: yes) AC_MSG_ERROR(["must give --with-badpri an argument."])
! 619: ;;
! 620: no) AC_MSG_ERROR(["--without-badpri not supported."])
! 621: ;;
! 622: alert|crit|debug|emerg|err|info|notice|warning)
! 623: badpri=$with_badpri
! 624: ;;
! 625: *) AC_MSG_ERROR([$with_badpri is not a supported syslog priority.])
! 626: ;;
! 627: esac])
! 628: AC_DEFINE_UNQUOTED(PRI_FAILURE, "$badpri", [The syslog priority sudo will use for unsuccessful attempts/errors.])
! 629: AC_MSG_RESULT($badpri)
! 630:
! 631: AC_ARG_WITH(logpath, [AS_HELP_STRING([--with-logpath], [path to the sudo log file])],
! 632: [case $with_logpath in
! 633: yes) AC_MSG_ERROR(["must give --with-logpath an argument."])
! 634: ;;
! 635: no) AC_MSG_ERROR(["--without-logpath not supported."])
! 636: ;;
! 637: esac])
! 638:
! 639: AC_MSG_CHECKING(how long a line in the log file should be)
! 640: AC_ARG_WITH(loglen, [AS_HELP_STRING([--with-loglen], [maximum length of a log file line (default is 80)])],
! 641: [case $with_loglen in
! 642: yes) AC_MSG_ERROR(["must give --with-loglen an argument."])
! 643: ;;
! 644: no) AC_MSG_ERROR(["--without-loglen not supported."])
! 645: ;;
! 646: [[0-9]]*) loglen=$with_loglen
! 647: ;;
! 648: *) AC_MSG_ERROR(["you must enter a number, not $with_loglen"])
! 649: ;;
! 650: esac])
! 651: AC_DEFINE_UNQUOTED(MAXLOGFILELEN, $loglen, [The max number of chars per log file line (for line wrapping).])
! 652: AC_MSG_RESULT($loglen)
! 653:
! 654: AC_MSG_CHECKING(whether sudo should ignore '.' or '' in \$PATH)
! 655: AC_ARG_WITH(ignore-dot, [AS_HELP_STRING([--with-ignore-dot], [ignore '.' in the PATH])],
! 656: [case $with_ignore_dot in
! 657: yes) ignore_dot=on
! 658: ;;
! 659: no) ignore_dot=off
! 660: ;;
! 661: *) AC_MSG_ERROR(["--with-ignore-dot does not take an argument."])
! 662: ;;
! 663: esac])
! 664: if test "$ignore_dot" = "on"; then
! 665: AC_DEFINE(IGNORE_DOT_PATH)
! 666: AC_MSG_RESULT(yes)
! 667: else
! 668: AC_MSG_RESULT(no)
! 669: fi
! 670:
! 671: AC_MSG_CHECKING(whether to send mail when a user is not in sudoers)
! 672: AC_ARG_WITH(mail-if-no-user, [AS_HELP_STRING([--without-mail-if-no-user], [do not send mail if user not in sudoers])],
! 673: [case $with_mail_if_no_user in
! 674: yes) mail_no_user=on
! 675: ;;
! 676: no) mail_no_user=off
! 677: ;;
! 678: *) AC_MSG_ERROR(["--with-mail-if-no-user does not take an argument."])
! 679: ;;
! 680: esac])
! 681: if test "$mail_no_user" = "on"; then
! 682: AC_DEFINE(SEND_MAIL_WHEN_NO_USER)
! 683: AC_MSG_RESULT(yes)
! 684: else
! 685: AC_MSG_RESULT(no)
! 686: fi
! 687:
! 688: AC_MSG_CHECKING(whether to send mail when user listed but not for this host)
! 689: AC_ARG_WITH(mail-if-no-host, [AS_HELP_STRING([--with-mail-if-no-host], [send mail if user in sudoers but not for this host])],
! 690: [case $with_mail_if_no_host in
! 691: yes) mail_no_host=on
! 692: ;;
! 693: no) mail_no_host=off
! 694: ;;
! 695: *) AC_MSG_ERROR(["--with-mail-if-no-host does not take an argument."])
! 696: ;;
! 697: esac])
! 698: if test "$mail_no_host" = "on"; then
! 699: AC_DEFINE(SEND_MAIL_WHEN_NO_HOST)
! 700: AC_MSG_RESULT(yes)
! 701: else
! 702: AC_MSG_RESULT(no)
! 703: fi
! 704:
! 705: AC_MSG_CHECKING(whether to send mail when a user tries a disallowed command)
! 706: AC_ARG_WITH(mail-if-noperms, [AS_HELP_STRING([--with-mail-if-noperms], [send mail if user not allowed to run command])],
! 707: [case $with_mail_if_noperms in
! 708: yes) mail_noperms=on
! 709: ;;
! 710: no) mail_noperms=off
! 711: ;;
! 712: *) AC_MSG_ERROR(["--with-mail-if-noperms does not take an argument."])
! 713: ;;
! 714: esac])
! 715: if test "$mail_noperms" = "on"; then
! 716: AC_DEFINE(SEND_MAIL_WHEN_NOT_OK)
! 717: AC_MSG_RESULT(yes)
! 718: else
! 719: AC_MSG_RESULT(no)
! 720: fi
! 721:
! 722: AC_MSG_CHECKING(who should get the mail that sudo sends)
! 723: AC_ARG_WITH(mailto, [AS_HELP_STRING([--with-mailto], [who should get sudo mail (default is "root")])],
! 724: [case $with_mailto in
! 725: yes) AC_MSG_ERROR(["must give --with-mailto an argument."])
! 726: ;;
! 727: no) AC_MSG_ERROR(["--without-mailto not supported."])
! 728: ;;
! 729: *) mailto=$with_mailto
! 730: ;;
! 731: esac])
! 732: AC_DEFINE_UNQUOTED(MAILTO, "$mailto", [The user or email address that sudo mail is sent to.])
! 733: AC_MSG_RESULT([$mailto])
! 734:
! 735: AC_ARG_WITH(mailsubject, [AS_HELP_STRING([--with-mailsubject], [subject of sudo mail])],
! 736: [case $with_mailsubject in
! 737: yes) AC_MSG_ERROR(["must give --with-mailsubject an argument."])
! 738: ;;
! 739: no) AC_MSG_WARN([Sorry, --without-mailsubject not supported.])
! 740: ;;
! 741: *) mailsub="$with_mailsubject"
! 742: AC_MSG_CHECKING(sudo mail subject)
! 743: AC_MSG_RESULT([Using alert mail subject: $mailsub])
! 744: ;;
! 745: esac])
! 746: AC_DEFINE_UNQUOTED(MAILSUBJECT, "$mailsub", [The subject of the mail sent by sudo to the MAILTO user/address.])
! 747:
! 748: AC_MSG_CHECKING(for bad password prompt)
! 749: AC_ARG_WITH(passprompt, [AS_HELP_STRING([--with-passprompt], [default password prompt])],
! 750: [case $with_passprompt in
! 751: yes) AC_MSG_ERROR(["must give --with-passprompt an argument."])
! 752: ;;
! 753: no) AC_MSG_WARN([Sorry, --without-passprompt not supported.])
! 754: ;;
! 755: *) passprompt="$with_passprompt"
! 756: esac])
! 757: AC_MSG_RESULT($passprompt)
! 758: AC_DEFINE_UNQUOTED(PASSPROMPT, "$passprompt", [The default password prompt.])
! 759:
! 760: AC_MSG_CHECKING(for bad password message)
! 761: AC_ARG_WITH(badpass-message, [AS_HELP_STRING([--with-badpass-message], [message the user sees when the password is wrong])],
! 762: [case $with_badpass_message in
! 763: yes) AC_MSG_ERROR(["Must give --with-badpass-message an argument."])
! 764: ;;
! 765: no) AC_MSG_WARN([Sorry, --without-badpass-message not supported.])
! 766: ;;
! 767: *) badpass_message="$with_badpass_message"
! 768: ;;
! 769: esac])
! 770: AC_DEFINE_UNQUOTED(INCORRECT_PASSWORD, "$badpass_message", [The message given when a bad password is entered.])
! 771: AC_MSG_RESULT([$badpass_message])
! 772:
! 773: AC_MSG_CHECKING(whether to expect fully qualified hosts in sudoers)
! 774: AC_ARG_WITH(fqdn, [AS_HELP_STRING([--with-fqdn], [expect fully qualified hosts in sudoers])],
! 775: [case $with_fqdn in
! 776: yes) fqdn=on
! 777: ;;
! 778: no) fqdn=off
! 779: ;;
! 780: *) AC_MSG_ERROR(["--with-fqdn does not take an argument."])
! 781: ;;
! 782: esac])
! 783: if test "$fqdn" = "on"; then
! 784: AC_DEFINE(FQDN)
! 785: AC_MSG_RESULT(yes)
! 786: else
! 787: AC_MSG_RESULT(no)
! 788: fi
! 789:
! 790: AC_ARG_WITH(timedir, [AS_HELP_STRING([--with-timedir=DIR], [deprecated])],
! 791: [case $with_timedir in
! 792: *) AC_MSG_ERROR(["--without-timedir no longer supported, see --with-rundir."])
! 793: ;;
! 794: esac])
! 795:
! 796: AC_ARG_WITH(rundir, [AS_HELP_STRING([--with-rundir=DIR], [path to the sudo time stamp parent dir])],
! 797: [case $with_rundir in
! 798: yes) AC_MSG_ERROR(["must give --with-rundir an argument."])
! 799: ;;
! 800: no) AC_MSG_ERROR(["--without-rundir not supported."])
! 801: ;;
! 802: esac])
! 803:
! 804: AC_ARG_WITH(vardir, [AS_HELP_STRING([--with-vardir=DIR], [path to the sudo var dir])],
! 805: [case $with_vardir in
! 806: yes) AC_MSG_ERROR(["must give --with-vardirdir an argument."])
! 807: ;;
! 808: no) AC_MSG_ERROR(["--without-vardirdir not supported."])
! 809: ;;
! 810: esac])
! 811:
! 812: AC_ARG_WITH(iologdir, [AS_HELP_STRING([--with-iologdir=DIR], [directory to store sudo I/O log files in])],
! 813: [case $with_iologdir in
! 814: yes) ;;
! 815: no) AC_MSG_ERROR(["--without-iologdir not supported."])
! 816: ;;
! 817: esac])
! 818:
! 819: AC_ARG_WITH(sendmail, [AS_HELP_STRING([--with-sendmail], [set path to sendmail])
! 820: AS_HELP_STRING([--without-sendmail], [do not send mail at all])],
! 821: [case $with_sendmail in
! 822: yes) with_sendmail=""
! 823: ;;
! 824: no) ;;
! 825: *) SUDO_DEFINE_UNQUOTED(_PATH_SUDO_SENDMAIL, "$with_sendmail")
! 826: ;;
! 827: esac])
! 828:
! 829: AC_ARG_WITH(sudoers-mode, [AS_HELP_STRING([--with-sudoers-mode], [mode of sudoers file (defaults to 0440)])],
! 830: [case $with_sudoers_mode in
! 831: yes) AC_MSG_ERROR(["must give --with-sudoers-mode an argument."])
! 832: ;;
! 833: no) AC_MSG_ERROR(["--without-sudoers-mode not supported."])
! 834: ;;
! 835: [[1-9]]*) SUDOERS_MODE=0${with_sudoers_mode}
! 836: ;;
! 837: 0*) SUDOERS_MODE=$with_sudoers_mode
! 838: ;;
! 839: *) AC_MSG_ERROR(["you must use an octal mode, not a name."])
! 840: ;;
! 841: esac])
! 842:
! 843: AC_ARG_WITH(sudoers-uid, [AS_HELP_STRING([--with-sudoers-uid], [uid that owns sudoers file (defaults to 0)])],
! 844: [case $with_sudoers_uid in
! 845: yes) AC_MSG_ERROR(["must give --with-sudoers-uid an argument."])
! 846: ;;
! 847: no) AC_MSG_ERROR(["--without-sudoers-uid not supported."])
! 848: ;;
! 849: [[0-9]]*) SUDOERS_UID=$with_sudoers_uid
! 850: ;;
! 851: *) AC_MSG_ERROR(["you must use an unsigned numeric uid, not a name."])
! 852: ;;
! 853: esac])
! 854:
! 855: AC_ARG_WITH(sudoers-gid, [AS_HELP_STRING([--with-sudoers-gid], [gid that owns sudoers file (defaults to 0)])],
! 856: [case $with_sudoers_gid in
! 857: yes) AC_MSG_ERROR(["must give --with-sudoers-gid an argument."])
! 858: ;;
! 859: no) AC_MSG_ERROR(["--without-sudoers-gid not supported."])
! 860: ;;
! 861: [[0-9]]*) SUDOERS_GID=$with_sudoers_gid
! 862: ;;
! 863: *) AC_MSG_ERROR(["you must use an unsigned numeric gid, not a name."])
! 864: ;;
! 865: esac])
! 866:
! 867: AC_MSG_CHECKING(for umask programs should be run with)
! 868: AC_ARG_WITH(umask, [AS_HELP_STRING([--with-umask], [umask with which the prog should run (default is 022)])
! 869: AS_HELP_STRING([--without-umask], [Preserves the umask of the user invoking sudo.])],
! 870: [case $with_umask in
! 871: yes) AC_MSG_ERROR(["must give --with-umask an argument."])
! 872: ;;
! 873: no) sudo_umask=0777
! 874: ;;
! 875: [[0-9]]*) sudo_umask=$with_umask
! 876: ;;
! 877: *) AC_MSG_ERROR(["you must enter a numeric mask."])
! 878: ;;
! 879: esac])
! 880: AC_DEFINE_UNQUOTED(SUDO_UMASK, $sudo_umask, [The umask that the sudo-run prog should use.])
! 881: if test "$sudo_umask" = "0777"; then
! 882: AC_MSG_RESULT(user)
! 883: else
! 884: AC_MSG_RESULT($sudo_umask)
! 885: fi
! 886:
! 887: AC_ARG_WITH(umask-override, [AS_HELP_STRING([--with-umask-override], [Use the umask specified in sudoers even if it is less restrictive than the user's.])],
! 888: [case $with_umask_override in
! 889: yes) AC_DEFINE(UMASK_OVERRIDE)
! 890: umask_override=on
! 891: ;;
! 892: no) umask_override=off
! 893: ;;
! 894: *) AC_MSG_ERROR(["--with-umask-override does not take an argument."])
! 895: ;;
! 896: esac])
! 897:
! 898: AC_MSG_CHECKING(for default user to run commands as)
! 899: AC_ARG_WITH(runas-default, [AS_HELP_STRING([--with-runas-default], [User to run commands as (default is "root")])],
! 900: [case $with_runas_default in
! 901: yes) AC_MSG_ERROR(["must give --with-runas-default an argument."])
! 902: ;;
! 903: no) AC_MSG_ERROR(["--without-runas-default not supported."])
! 904: ;;
! 905: *) runas_default="$with_runas_default"
! 906: ;;
! 907: esac])
! 908: AC_DEFINE_UNQUOTED(RUNAS_DEFAULT, "$runas_default", [The user sudo should run commands as by default.])
! 909: AC_MSG_RESULT([$runas_default])
! 910:
! 911: AC_ARG_WITH(exempt, [AS_HELP_STRING([--with-exempt=group], [no passwd needed for users in this group])],
! 912: [case $with_exempt in
! 913: yes) AC_MSG_ERROR(["must give --with-exempt an argument."])
! 914: ;;
! 915: no) AC_MSG_ERROR(["--without-exempt not supported."])
! 916: ;;
! 917: *) AC_DEFINE_UNQUOTED(EXEMPTGROUP, "$with_exempt", [If defined, users in this group need not enter a passwd (ie "sudo").])
! 918: AC_MSG_CHECKING(for group to be exempt from password)
! 919: AC_MSG_RESULT([$with_exempt])
! 920: ;;
! 921: esac])
! 922:
! 923: AC_MSG_CHECKING(for editor that visudo should use)
! 924: AC_ARG_WITH(editor, [AS_HELP_STRING([--with-editor=path], [Default editor for visudo (defaults to vi)])],
! 925: [case $with_editor in
! 926: yes) AC_MSG_ERROR(["must give --with-editor an argument."])
! 927: ;;
! 928: no) AC_MSG_ERROR(["--without-editor not supported."])
! 929: ;;
! 930: *) AC_DEFINE_UNQUOTED(EDITOR, "$with_editor", [A colon-separated list of pathnames to be used as the editor for visudo.])
! 931: AC_MSG_RESULT([$with_editor])
! 932: editor="$with_editor"
! 933: ;;
! 934: esac], [AC_DEFINE(EDITOR, _PATH_VI) AC_MSG_RESULT(vi)])
! 935:
! 936: AC_MSG_CHECKING(whether to obey EDITOR and VISUAL environment variables)
! 937: AC_ARG_WITH(env-editor, [AS_HELP_STRING([--with-env-editor], [Use the environment variable EDITOR for visudo])],
! 938: [case $with_env_editor in
! 939: yes) env_editor=on
! 940: ;;
! 941: no) env_editor=off
! 942: ;;
! 943: *) AC_MSG_ERROR(["--with-env-editor does not take an argument."])
! 944: ;;
! 945: esac])
! 946: if test "$env_editor" = "on"; then
! 947: AC_DEFINE(ENV_EDITOR)
! 948: AC_MSG_RESULT(yes)
! 949: else
! 950: AC_MSG_RESULT(no)
! 951: fi
! 952:
! 953: AC_MSG_CHECKING(number of tries a user gets to enter their password)
! 954: AC_ARG_WITH(passwd-tries, [AS_HELP_STRING([--with-passwd-tries], [number of tries to enter password (default is 3)])],
! 955: [case $with_passwd_tries in
! 956: yes) ;;
! 957: no) AC_MSG_ERROR(["--without-editor not supported."])
! 958: ;;
! 959: [[1-9]]*) passwd_tries=$with_passwd_tries
! 960: ;;
! 961: *) AC_MSG_ERROR(["you must enter the numer of tries, > 0"])
! 962: ;;
! 963: esac])
! 964: AC_DEFINE_UNQUOTED(TRIES_FOR_PASSWORD, $passwd_tries, [The number of tries a user gets to enter their password.])
! 965: AC_MSG_RESULT($passwd_tries)
! 966:
! 967: AC_MSG_CHECKING(time in minutes after which sudo will ask for a password again)
! 968: AC_ARG_WITH(timeout, [AS_HELP_STRING([--with-timeout], [minutes before sudo asks for passwd again (def is 5 minutes)])],
! 969: [case $with_timeout in
! 970: yes) ;;
! 971: no) timeout=0
! 972: ;;
! 973: [[0-9]]*) timeout=$with_timeout
! 974: ;;
! 975: *) AC_MSG_ERROR(["you must enter the numer of minutes."])
! 976: ;;
! 977: esac])
! 978: AC_DEFINE_UNQUOTED(TIMEOUT, $timeout, [The number of minutes before sudo asks for a password again.])
! 979: AC_MSG_RESULT($timeout)
! 980:
! 981: AC_MSG_CHECKING(time in minutes after the password prompt will time out)
! 982: AC_ARG_WITH(password-timeout, [AS_HELP_STRING([--with-password-timeout], [passwd prompt timeout in minutes (default is 5 minutes)])],
! 983: [case $with_password_timeout in
! 984: yes) ;;
! 985: no) password_timeout=0
! 986: ;;
! 987: [[0-9]]*) password_timeout=$with_password_timeout
! 988: ;;
! 989: *) AC_MSG_ERROR(["you must enter the numer of minutes."])
! 990: ;;
! 991: esac])
! 992: AC_DEFINE_UNQUOTED(PASSWORD_TIMEOUT, $password_timeout, [The passwd prompt timeout (in minutes).])
! 993: AC_MSG_RESULT($password_timeout)
! 994:
! 995: AC_MSG_CHECKING(whether to use per-tty ticket files)
! 996: AC_ARG_WITH(tty-tickets, [AS_HELP_STRING([--with-tty-tickets], [use a different ticket file for each tty])],
! 997: [case $with_tty_tickets in
! 998: yes) tty_tickets=on
! 999: ;;
! 1000: no) tty_tickets=off
! 1001: ;;
! 1002: *) AC_MSG_ERROR(["--with-tty-tickets does not take an argument."])
! 1003: ;;
! 1004: esac])
! 1005: if test "$tty_tickets" = "off"; then
! 1006: AC_DEFINE(NO_TTY_TICKETS)
! 1007: AC_MSG_RESULT(no)
! 1008: else
! 1009: AC_MSG_RESULT(yes)
! 1010: fi
! 1011:
! 1012: AC_MSG_CHECKING(whether to include insults)
! 1013: AC_ARG_WITH(insults, [AS_HELP_STRING([--with-insults], [insult the user for entering an incorrect password])],
! 1014: [case $with_insults in
! 1015: yes) insults=on
! 1016: with_classic_insults=yes
! 1017: with_csops_insults=yes
! 1018: ;;
! 1019: disabled) insults=off
! 1020: with_classic_insults=yes
! 1021: with_csops_insults=yes
! 1022: ;;
! 1023: no) insults=off
! 1024: ;;
! 1025: *) AC_MSG_ERROR(["--with-insults does not take an argument."])
! 1026: ;;
! 1027: esac])
! 1028: if test "$insults" = "on"; then
! 1029: AC_DEFINE(USE_INSULTS)
! 1030: AC_MSG_RESULT(yes)
! 1031: else
! 1032: AC_MSG_RESULT(no)
! 1033: fi
! 1034:
! 1035: AC_ARG_WITH(all-insults, [AS_HELP_STRING([--with-all-insults], [include all the sudo insult sets])],
! 1036: [case $with_all_insults in
! 1037: yes) with_classic_insults=yes
! 1038: with_csops_insults=yes
! 1039: with_hal_insults=yes
! 1040: with_goons_insults=yes
! 1041: ;;
! 1042: no) ;;
! 1043: *) AC_MSG_ERROR(["--with-all-insults does not take an argument."])
! 1044: ;;
! 1045: esac])
! 1046:
! 1047: AC_ARG_WITH(classic-insults, [AS_HELP_STRING([--with-classic-insults], [include the insults from the "classic" sudo])],
! 1048: [case $with_classic_insults in
! 1049: yes) AC_DEFINE(CLASSIC_INSULTS)
! 1050: ;;
! 1051: no) ;;
! 1052: *) AC_MSG_ERROR(["--with-classic-insults does not take an argument."])
! 1053: ;;
! 1054: esac])
! 1055:
! 1056: AC_ARG_WITH(csops-insults, [AS_HELP_STRING([--with-csops-insults], [include CSOps insults])],
! 1057: [case $with_csops_insults in
! 1058: yes) AC_DEFINE(CSOPS_INSULTS)
! 1059: ;;
! 1060: no) ;;
! 1061: *) AC_MSG_ERROR(["--with-csops-insults does not take an argument."])
! 1062: ;;
! 1063: esac])
! 1064:
! 1065: AC_ARG_WITH(hal-insults, [AS_HELP_STRING([--with-hal-insults], [include 2001-like insults])],
! 1066: [case $with_hal_insults in
! 1067: yes) AC_DEFINE(HAL_INSULTS)
! 1068: ;;
! 1069: no) ;;
! 1070: *) AC_MSG_ERROR(["--with-hal-insults does not take an argument."])
! 1071: ;;
! 1072: esac])
! 1073:
! 1074: AC_ARG_WITH(goons-insults, [AS_HELP_STRING([--with-goons-insults], [include the insults from the "Goon Show"])],
! 1075: [case $with_goons_insults in
! 1076: yes) AC_DEFINE(GOONS_INSULTS)
! 1077: ;;
! 1078: no) ;;
! 1079: *) AC_MSG_ERROR(["--with-goons-insults does not take an argument."])
! 1080: ;;
! 1081: esac])
! 1082:
! 1083: AC_ARG_WITH(nsswitch, [AS_HELP_STRING([--with-nsswitch[[=PATH]]], [path to nsswitch.conf])],
! 1084: [case $with_nsswitch in
! 1085: no) ;;
! 1086: yes) with_nsswitch="/etc/nsswitch.conf"
! 1087: ;;
! 1088: *) ;;
! 1089: esac])
! 1090:
! 1091: AC_ARG_WITH(ldap, [AS_HELP_STRING([--with-ldap[[=DIR]]], [enable LDAP support])],
! 1092: [case $with_ldap in
! 1093: no) ;;
! 1094: *) AC_DEFINE(HAVE_LDAP)
! 1095: AC_MSG_CHECKING(whether to use sudoers from LDAP)
! 1096: AC_MSG_RESULT(yes)
! 1097: ;;
! 1098: esac])
! 1099:
! 1100: AC_ARG_WITH(ldap-conf-file, [AS_HELP_STRING([--with-ldap-conf-file], [path to LDAP configuration file])])
! 1101: test -n "$with_ldap_conf_file" && ldap_conf="$with_ldap_conf_file"
! 1102: SUDO_DEFINE_UNQUOTED(_PATH_LDAP_CONF, "$ldap_conf", [Path to the ldap.conf file])
! 1103:
! 1104: AC_ARG_WITH(ldap-secret-file, [AS_HELP_STRING([--with-ldap-secret-file], [path to LDAP secret password file])])
! 1105: test -n "$with_ldap_secret_file" && ldap_secret="$with_ldap_secret_file"
! 1106: SUDO_DEFINE_UNQUOTED(_PATH_LDAP_SECRET, "$ldap_secret", [Path to the ldap.secret file])
! 1107:
! 1108: AC_ARG_WITH(pc-insults, [AS_HELP_STRING([--with-pc-insults], [replace politically incorrect insults with less offensive ones])],
! 1109: [case $with_pc_insults in
! 1110: yes) AC_DEFINE(PC_INSULTS)
! 1111: ;;
! 1112: no) ;;
! 1113: *) AC_MSG_ERROR(["--with-pc-insults does not take an argument."])
! 1114: ;;
! 1115: esac])
! 1116:
! 1117: dnl include all insult sets on one line
! 1118: if test "$insults" = "on"; then
! 1119: AC_MSG_CHECKING(which insult sets to include)
! 1120: i=""
! 1121: test "$with_goons_insults" = "yes" && i="goons ${i}"
! 1122: test "$with_hal_insults" = "yes" && i="hal ${i}"
! 1123: test "$with_csops_insults" = "yes" && i="csops ${i}"
! 1124: test "$with_classic_insults" = "yes" && i="classic ${i}"
! 1125: AC_MSG_RESULT([$i])
! 1126: fi
! 1127:
! 1128: AC_MSG_CHECKING(whether to override the user's path)
! 1129: AC_ARG_WITH(secure-path, [AS_HELP_STRING([--with-secure-path], [override the user's path with a built-in one])],
! 1130: [case $with_secure_path in
! 1131: yes) with_secure_path="/bin:/usr/ucb:/usr/bin:/usr/sbin:/sbin:/usr/etc:/etc"
! 1132: AC_DEFINE_UNQUOTED(SECURE_PATH, "$with_secure_path")
! 1133: AC_MSG_RESULT([$with_secure_path])
! 1134: secure_path="set to $with_secure_path"
! 1135: ;;
! 1136: no) AC_MSG_RESULT(no)
! 1137: ;;
! 1138: *) AC_DEFINE_UNQUOTED(SECURE_PATH, "$with_secure_path")
! 1139: AC_MSG_RESULT([$with_secure_path])
! 1140: secure_path="set to F<$with_secure_path>"
! 1141: ;;
! 1142: esac], AC_MSG_RESULT(no))
! 1143:
! 1144: AC_MSG_CHECKING(whether to get ip addresses from the network interfaces)
! 1145: AC_ARG_WITH(interfaces, [AS_HELP_STRING([--without-interfaces], [don't try to read the ip addr of ether interfaces])],
! 1146: [case $with_interfaces in
! 1147: yes) AC_MSG_RESULT(yes)
! 1148: ;;
! 1149: no) AC_DEFINE(STUB_LOAD_INTERFACES)
! 1150: AC_MSG_RESULT(no)
! 1151: ;;
! 1152: *) AC_MSG_ERROR(["--with-interfaces does not take an argument."])
! 1153: ;;
! 1154: esac], AC_MSG_RESULT(yes))
! 1155:
! 1156: AC_ARG_WITH(stow, [AS_HELP_STRING([--with-stow], [deprecated])],
! 1157: [case $with_stow in
! 1158: *) AC_MSG_NOTICE([--with-stow option deprecated, now is defalt behavior])
! 1159: ;;
! 1160: esac])
! 1161:
! 1162: AC_MSG_CHECKING(whether to use an askpass helper)
! 1163: AC_ARG_WITH(askpass, [AS_HELP_STRING([--with-askpass=PATH], [Fully qualified pathname of askpass helper])],
! 1164: [case $with_askpass in
! 1165: yes) AC_MSG_ERROR(["--with-askpass takes a path as an argument."])
! 1166: ;;
! 1167: no) ;;
! 1168: *) ;;
! 1169: esac], [
! 1170: with_askpass=no
! 1171: AC_MSG_RESULT(no)
! 1172: ])
! 1173: if test X"$with_askpass" != X"no"; then
! 1174: SUDO_DEFINE_UNQUOTED(_PATH_SUDO_ASKPASS, "$with_askpass")
! 1175: else
! 1176: SUDO_DEFINE_UNQUOTED(_PATH_SUDO_ASKPASS, NULL)
! 1177: fi
! 1178:
! 1179: AC_ARG_WITH(plugindir, [AS_HELP_STRING([--with-plugindir=DIR], [set directory to load plugins from])],
! 1180: [case $with_plugindir in
! 1181: no) AC_MSG_ERROR(["illegal argument: --without-plugindir."])
! 1182: ;;
! 1183: *) ;;
! 1184: esac], [with_plugindir="$libexecdir/sudo"])
! 1185:
! 1186: AC_ARG_WITH(man, [AS_HELP_STRING([--with-man], [manual pages use man macros])],
! 1187: [case $with_man in
! 1188: yes) MANTYPE=man
! 1189: ;;
! 1190: no) AC_MSG_ERROR(["--without-man not supported."])
! 1191: ;;
! 1192: *) AC_MSG_ERROR(["ignoring unknown argument to --with-man: $with_man."])
! 1193: ;;
! 1194: esac])
! 1195:
! 1196: AC_ARG_WITH(mdoc, [AS_HELP_STRING([--with-mdoc], [manual pages use mdoc macros])],
! 1197: [case $with_mdoc in
! 1198: yes) MANTYPE=mdoc
! 1199: ;;
! 1200: no) AC_MSG_ERROR(["--without-mdoc not supported."])
! 1201: ;;
! 1202: *) AC_MSG_ERROR(["ignoring unknown argument to --with-mdoc: $with_mdoc."])
! 1203: ;;
! 1204: esac])
! 1205:
! 1206: dnl
! 1207: dnl Options for --enable
! 1208: dnl
! 1209:
! 1210: AC_MSG_CHECKING(whether to do user authentication by default)
! 1211: AC_ARG_ENABLE(authentication,
! 1212: [AS_HELP_STRING([--disable-authentication], [Do not require authentication by default])],
! 1213: [ case "$enableval" in
! 1214: yes) AC_MSG_RESULT(yes)
! 1215: ;;
! 1216: no) AC_MSG_RESULT(no)
! 1217: AC_DEFINE(NO_AUTHENTICATION)
! 1218: ;;
! 1219: *) AC_MSG_RESULT(no)
! 1220: AC_MSG_WARN([Ignoring unknown argument to --enable-authentication: $enableval])
! 1221: ;;
! 1222: esac
! 1223: ], AC_MSG_RESULT(yes))
! 1224:
! 1225: AC_MSG_CHECKING(whether to disable running the mailer as root)
! 1226: AC_ARG_ENABLE(root-mailer,
! 1227: [AS_HELP_STRING([--disable-root-mailer], [Don't run the mailer as root, run as the user])],
! 1228: [ case "$enableval" in
! 1229: yes) AC_MSG_RESULT(no)
! 1230: ;;
! 1231: no) AC_MSG_RESULT(yes)
! 1232: AC_DEFINE(NO_ROOT_MAILER)
! 1233: ;;
! 1234: *) AC_MSG_RESULT(no)
! 1235: AC_MSG_WARN([Ignoring unknown argument to --enable-root-mailer: $enableval])
! 1236: ;;
! 1237: esac
! 1238: ], AC_MSG_RESULT(no))
! 1239:
! 1240: AC_ARG_ENABLE(setreuid,
! 1241: [AS_HELP_STRING([--disable-setreuid], [Don't try to use the setreuid() function])],
! 1242: [ case "$enableval" in
! 1243: no) SKIP_SETREUID=yes
! 1244: ;;
! 1245: *) ;;
! 1246: esac
! 1247: ])
! 1248:
! 1249: AC_ARG_ENABLE(setresuid,
! 1250: [AS_HELP_STRING([--disable-setresuid], [Don't try to use the setresuid() function])],
! 1251: [ case "$enableval" in
! 1252: no) SKIP_SETRESUID=yes
! 1253: ;;
! 1254: *) ;;
! 1255: esac
! 1256: ])
! 1257:
! 1258: AC_MSG_CHECKING(whether to disable shadow password support)
! 1259: AC_ARG_ENABLE(shadow,
! 1260: [AS_HELP_STRING([--disable-shadow], [Never use shadow passwords])],
! 1261: [ case "$enableval" in
! 1262: yes) AC_MSG_RESULT(no)
! 1263: ;;
! 1264: no) AC_MSG_RESULT(yes)
! 1265: CHECKSHADOW="false"
! 1266: ;;
! 1267: *) AC_MSG_RESULT(no)
! 1268: AC_MSG_WARN([Ignoring unknown argument to --enable-shadow: $enableval])
! 1269: ;;
! 1270: esac
! 1271: ], AC_MSG_RESULT(no))
! 1272:
! 1273: AC_MSG_CHECKING(whether root should be allowed to use sudo)
! 1274: AC_ARG_ENABLE(root-sudo,
! 1275: [AS_HELP_STRING([--disable-root-sudo], [Don't allow root to run sudo])],
! 1276: [ case "$enableval" in
! 1277: yes) AC_MSG_RESULT(yes)
! 1278: ;;
! 1279: no) AC_DEFINE(NO_ROOT_SUDO)
! 1280: AC_MSG_RESULT(no)
! 1281: root_sudo=off
! 1282: ;;
! 1283: *) AC_MSG_ERROR(["--enable-root-sudo does not take an argument."])
! 1284: ;;
! 1285: esac
! 1286: ], AC_MSG_RESULT(yes))
! 1287:
! 1288: AC_MSG_CHECKING(whether to log the hostname in the log file)
! 1289: AC_ARG_ENABLE(log-host,
! 1290: [AS_HELP_STRING([--enable-log-host], [Log the hostname in the log file])],
! 1291: [ case "$enableval" in
! 1292: yes) AC_MSG_RESULT(yes)
! 1293: AC_DEFINE(HOST_IN_LOG)
! 1294: ;;
! 1295: no) AC_MSG_RESULT(no)
! 1296: ;;
! 1297: *) AC_MSG_RESULT(no)
! 1298: AC_MSG_WARN([Ignoring unknown argument to --enable-log-host: $enableval])
! 1299: ;;
! 1300: esac
! 1301: ], AC_MSG_RESULT(no))
! 1302:
! 1303: AC_MSG_CHECKING(whether to invoke a shell if sudo is given no arguments)
! 1304: AC_ARG_ENABLE(noargs-shell,
! 1305: [AS_HELP_STRING([--enable-noargs-shell], [If sudo is given no arguments run a shell])],
! 1306: [ case "$enableval" in
! 1307: yes) AC_MSG_RESULT(yes)
! 1308: AC_DEFINE(SHELL_IF_NO_ARGS)
! 1309: ;;
! 1310: no) AC_MSG_RESULT(no)
! 1311: ;;
! 1312: *) AC_MSG_RESULT(no)
! 1313: AC_MSG_WARN([Ignoring unknown argument to --enable-noargs-shell: $enableval])
! 1314: ;;
! 1315: esac
! 1316: ], AC_MSG_RESULT(no))
! 1317:
! 1318: AC_MSG_CHECKING(whether to set \$HOME to target user in shell mode)
! 1319: AC_ARG_ENABLE(shell-sets-home,
! 1320: [AS_HELP_STRING([--enable-shell-sets-home], [Set $HOME to target user in shell mode])],
! 1321: [ case "$enableval" in
! 1322: yes) AC_MSG_RESULT(yes)
! 1323: AC_DEFINE(SHELL_SETS_HOME)
! 1324: ;;
! 1325: no) AC_MSG_RESULT(no)
! 1326: ;;
! 1327: *) AC_MSG_RESULT(no)
! 1328: AC_MSG_WARN([Ignoring unknown argument to --enable-shell-sets-home: $enableval])
! 1329: ;;
! 1330: esac
! 1331: ], AC_MSG_RESULT(no))
! 1332:
! 1333: AC_MSG_CHECKING(whether to disable 'command not found' messages)
! 1334: AC_ARG_ENABLE(path_info,
! 1335: [AS_HELP_STRING([--disable-path-info], [Print 'command not allowed' not 'command not found'])],
! 1336: [ case "$enableval" in
! 1337: yes) AC_MSG_RESULT(no)
! 1338: ;;
! 1339: no) AC_MSG_RESULT(yes)
! 1340: AC_DEFINE(DONT_LEAK_PATH_INFO)
! 1341: path_info=off
! 1342: ;;
! 1343: *) AC_MSG_RESULT(no)
! 1344: AC_MSG_WARN([Ignoring unknown argument to --enable-path-info: $enableval])
! 1345: ;;
! 1346: esac
! 1347: ], AC_MSG_RESULT(no))
! 1348:
! 1349: AC_MSG_CHECKING(whether to enable environment debugging)
! 1350: AC_ARG_ENABLE(env_debug,
! 1351: [AS_HELP_STRING([--enable-env-debug], [Whether to enable environment debugging.])],
! 1352: [ case "$enableval" in
! 1353: yes) AC_MSG_RESULT(yes)
! 1354: AC_DEFINE(ENV_DEBUG)
! 1355: ;;
! 1356: no) AC_MSG_RESULT(no)
! 1357: ;;
! 1358: *) AC_MSG_RESULT(no)
! 1359: AC_MSG_WARN([Ignoring unknown argument to --enable-env-debug: $enableval])
! 1360: ;;
! 1361: esac
! 1362: ], AC_MSG_RESULT(no))
! 1363:
! 1364: AC_ARG_ENABLE(zlib,
! 1365: [AS_HELP_STRING([--enable-zlib[[=PATH]]], [Whether to enable or disable zlib])],
! 1366: [], [enable_zlib=yes])
! 1367:
! 1368: AC_MSG_CHECKING(whether to enable environment resetting by default)
! 1369: AC_ARG_ENABLE(env_reset,
! 1370: [AS_HELP_STRING([--enable-env-reset], [Whether to enable environment resetting by default.])],
! 1371: [ case "$enableval" in
! 1372: yes) env_reset=on
! 1373: ;;
! 1374: no) env_reset=off
! 1375: ;;
! 1376: *) env_reset=on
! 1377: AC_MSG_WARN([Ignoring unknown argument to --enable-env-reset: $enableval])
! 1378: ;;
! 1379: esac
! 1380: ])
! 1381: if test "$env_reset" = "on"; then
! 1382: AC_MSG_RESULT(yes)
! 1383: AC_DEFINE(ENV_RESET, 1)
! 1384: else
! 1385: AC_MSG_RESULT(no)
! 1386: AC_DEFINE(ENV_RESET, 0)
! 1387: fi
! 1388:
! 1389: AC_ARG_ENABLE(warnings,
! 1390: [AS_HELP_STRING([--enable-warnings], [Whether to enable compiler warnings])],
! 1391: [ case "$enableval" in
! 1392: yes) ;;
! 1393: no) ;;
! 1394: *) AC_MSG_WARN([Ignoring unknown argument to --enable-warnings: $enableval])
! 1395: ;;
! 1396: esac
! 1397: ])
! 1398:
! 1399: AC_ARG_ENABLE(werror,
! 1400: [AS_HELP_STRING([--enable-werror], [Whether to enable the -Werror compiler option])],
! 1401: [ case "$enableval" in
! 1402: yes) ;;
! 1403: no) ;;
! 1404: *) AC_MSG_WARN([Ignoring unknown argument to --enable-werror: $enableval])
! 1405: ;;
! 1406: esac
! 1407: ])
! 1408:
! 1409: AC_ARG_ENABLE(hardening,
! 1410: [AS_HELP_STRING([--disable-hardening], [Do not use compiler/linker exploit mitigation options])],
! 1411: [], [enable_hardening=yes])
! 1412:
! 1413: AC_ARG_ENABLE(pie,
! 1414: [AS_HELP_STRING([--enable-pie], [Build sudo as a position independent executable.])])
! 1415:
! 1416: AC_ARG_ENABLE(poll,
! 1417: [AS_HELP_STRING([--disable-poll], [Use select() instead of poll().])])
! 1418:
! 1419: AC_ARG_ENABLE(admin-flag,
! 1420: [AS_HELP_STRING([--enable-admin-flag], [Whether to create a Ubuntu-style admin flag file])],
! 1421: [ case "$enableval" in
! 1422: yes) AC_DEFINE(USE_ADMIN_FLAG)
! 1423: ;;
! 1424: no) ;;
! 1425: *) AC_MSG_WARN([Ignoring unknown argument to --enable-admin-flag: $enableval])
! 1426: ;;
! 1427: esac
! 1428: ])
! 1429:
! 1430: AC_ARG_ENABLE(nls,
! 1431: [AS_HELP_STRING([--disable-nls], [Disable natural language support using gettext])],
! 1432: [], [enable_nls=yes])
! 1433:
! 1434: AC_ARG_ENABLE(rpath,
! 1435: [AS_HELP_STRING([--disable-rpath], [Disable passing of -Rpath to the linker])],
! 1436: [], [enable_rpath=yes])
! 1437:
! 1438: AC_ARG_ENABLE(static-sudoers,
! 1439: [AS_HELP_STRING([--enable-static-sudoers], [Build the sudoers policy module as part of the sudo binary instead as a plugin])],
! 1440: [], [enable_static_sudoers=no])
! 1441:
! 1442: AC_ARG_WITH(selinux, [AS_HELP_STRING([--with-selinux], [enable SELinux support])],
! 1443: [case $with_selinux in
! 1444: yes) SELINUX_USAGE="[[-r role]] [[-t type]] "
! 1445: AC_DEFINE(HAVE_SELINUX)
! 1446: SUDO_LIBS="${SUDO_LIBS} -lselinux"
! 1447: SUDO_OBJS="${SUDO_OBJS} selinux.o"
! 1448: PROGS="${PROGS} sesh"
! 1449: SEMAN=1
! 1450: AC_CHECK_LIB([selinux], [setkeycreatecon],
! 1451: [AC_DEFINE(HAVE_SETKEYCREATECON)])
! 1452: ;;
! 1453: no) ;;
! 1454: *) AC_MSG_ERROR(["--with-selinux does not take an argument."])
! 1455: ;;
! 1456: esac], [with_selinux=no])
! 1457:
! 1458: dnl
! 1459: dnl gss_krb5_ccache_name() may not work on Heimdal so we don't use it by default
! 1460: dnl
! 1461: AC_ARG_ENABLE(gss_krb5_ccache_name,
! 1462: [AS_HELP_STRING([--enable-gss-krb5-ccache-name], [Use GSS-API to set the Kerberos V cred cache name])],
! 1463: [check_gss_krb5_ccache_name=$enableval], [check_gss_krb5_ccache_name=no])
! 1464:
! 1465: dnl
! 1466: dnl C compiler checks
! 1467: dnl
! 1468: AC_SEARCH_LIBS([strerror], [cposix])
! 1469: AC_PROG_CPP
! 1470: AC_CHECK_TOOL(AR, ar, false)
! 1471: AC_CHECK_TOOL(RANLIB, ranlib, :)
! 1472: if test X"$AR" = X"false"; then
! 1473: AC_MSG_ERROR([the "ar" utility is required to build sudo])
! 1474: fi
! 1475:
! 1476: if test "x$ac_cv_prog_cc_c89" = "xno"; then
! 1477: AC_MSG_ERROR([Sudo version $PACKAGE_VERSION requires an ANSI C compiler to build.])
! 1478: fi
! 1479:
! 1480: dnl
! 1481: dnl If the user specified --disable-static, override them or we'll
! 1482: dnl be unable to build the executables in the sudoers plugin dir.
! 1483: dnl
! 1484: if test "$enable_static" = "no"; then
! 1485: AC_MSG_WARN([Ignoring --disable-static, sudo does not install static libs])
! 1486: enable_static=yes
! 1487: fi
! 1488:
! 1489: dnl
! 1490: dnl Libtool setup, we require libtool 2.2.6b or higher
! 1491: dnl
! 1492: AC_CANONICAL_HOST
! 1493: AC_CONFIG_MACRO_DIR([m4])
! 1494: LT_PREREQ([2.2.6b])
! 1495: LT_INIT([dlopen])
! 1496:
! 1497: dnl
! 1498: dnl Allow the user to specify an alternate libtool.
! 1499: dnl XXX - should be able to skip LT_INIT if we are using a different libtool
! 1500: dnl
! 1501: AC_ARG_WITH(libtool, [AS_HELP_STRING([--with-libtool=PATH], [specify path to libtool])],
! 1502: [case $with_libtool in
! 1503: yes|builtin) ;;
! 1504: no) AC_MSG_ERROR(["--without-libtool not supported."])
! 1505: ;;
! 1506: system) LIBTOOL=libtool
! 1507: ;;
! 1508: *) LIBTOOL="$with_libtool"
! 1509: ;;
! 1510: esac])
! 1511:
! 1512: dnl
! 1513: dnl Defer with_noexec until after libtool magic runs
! 1514: dnl
! 1515: if test "$enable_shared" = "no"; then
! 1516: with_noexec=no
! 1517: enable_dlopen=no
! 1518: lt_cv_dlopen=none
! 1519: lt_cv_dlopen_libs=
! 1520: ac_cv_func_dlopen=no
! 1521: LT_LDFLAGS=-static
! 1522: else
! 1523: eval _shrext="$shrext_cmds"
! 1524: # Darwin uses .dylib for libraries but .so for modules
! 1525: if test X"$_shrext" = X".dylib"; then
! 1526: SOEXT=".so"
! 1527: SHLIB_EXT=".dylib"
! 1528: else
! 1529: SOEXT="$_shrext"
! 1530: SHLIB_EXT="$_shrext"
! 1531: fi
! 1532: fi
! 1533: LIBDL="$lt_cv_dlopen_libs"
! 1534:
! 1535: AC_MSG_CHECKING(path to sudo_noexec.so)
! 1536: AC_ARG_WITH(noexec, [AS_HELP_STRING([--with-noexec[=PATH]], [fully qualified pathname of sudo_noexec.so])],
! 1537: [case $with_noexec in
! 1538: yes) with_noexec="$libexecdir/sudo/sudo_noexec.so"
! 1539: ;;
! 1540: no) ;;
! 1541: *) ;;
! 1542: esac], [with_noexec="$libexecdir/sudo/sudo_noexec.so"])
! 1543: AC_MSG_RESULT($with_noexec)
! 1544: NOEXECFILE="sudo_noexec.so"
! 1545: NOEXECDIR="`echo $with_noexec|sed -e 's:^${\([[^}]]*\)}:$(\1):' -e 's:^\(.*\)/[[^/]]*:\1:'`"
! 1546:
! 1547: dnl
! 1548: dnl Find programs we use
! 1549: dnl
! 1550: AC_PATH_PROG(UNAMEPROG, [uname], [uname])
! 1551: AC_PATH_PROG(TRPROG, [tr], [tr])
! 1552: AC_PATH_PROG(MANDOCPROG, [mandoc], [mandoc])
! 1553: if test "$MANDOCPROG" != "mandoc"; then
! 1554: : ${MANTYPE='mdoc'}
! 1555: else
! 1556: AC_PATH_PROG(NROFFPROG, [nroff])
! 1557: if test -n "$NROFFPROG"; then
! 1558: test -n "$MANTYPE" && sudo_cv_var_mantype="$MANTYPE"
! 1559: AC_CACHE_CHECK([which macro set to use for manual pages],
! 1560: [sudo_cv_var_mantype],
! 1561: [
! 1562: sudo_cv_var_mantype="man"
! 1563: echo ".Sh NAME" > conftest
! 1564: echo ".Nm sudo" >> conftest
! 1565: echo ".Nd sudo" >> conftest
! 1566: echo ".Sh DESCRIPTION" >> conftest
! 1567: echo "sudo" >> conftest
! 1568: if $NROFFPROG -mdoc conftest >/dev/null 2>&1; then
! 1569: sudo_cv_var_mantype="mdoc"
! 1570: fi
! 1571: rm -f conftest
! 1572: ]
! 1573: )
! 1574: MANTYPE="$sudo_cv_var_mantype"
! 1575: else
! 1576: MANTYPE=cat
! 1577: MANDIRTYPE=cat
! 1578: mansrcdir='$(srcdir)'
! 1579: fi
! 1580: fi
! 1581:
! 1582: dnl
! 1583: dnl What kind of beastie are we being run on?
! 1584: dnl Barf if config.cache was generated on another host.
! 1585: dnl
! 1586: if test -n "$sudo_cv_prev_host"; then
! 1587: if test "$sudo_cv_prev_host" != "$host"; then
! 1588: AC_MSG_ERROR([config.cache was created on a different host; remove it and re-run configure.])
! 1589: else
! 1590: AC_MSG_CHECKING(previous host type)
! 1591: AC_CACHE_VAL(sudo_cv_prev_host, sudo_cv_prev_host="$host")
! 1592: AC_MSG_RESULT([$sudo_cv_prev_host])
! 1593: fi
! 1594: else
! 1595: # this will produce no output since there is no cached value
! 1596: AC_CACHE_VAL(sudo_cv_prev_host, sudo_cv_prev_host="$host")
! 1597: fi
! 1598:
! 1599: dnl
! 1600: dnl We want to be able to differentiate between different rev's
! 1601: dnl
! 1602: if test -n "$host_os"; then
! 1603: OS=`echo $host_os | sed 's/[[0-9]].*//'`
! 1604: OSREV=`echo $host_os | sed 's/^[[^0-9\.]]*\([[0-9\.]]*\).*$/\1/'`
! 1605: OSMAJOR=`echo $OSREV | sed 's/\..*$//'`
! 1606: else
! 1607: OS="unknown"
! 1608: OSREV=0
! 1609: OSMAJOR=0
! 1610: fi
! 1611:
! 1612: case "$host" in
! 1613: *-*-sunos4*)
! 1614: # LD_PRELOAD is space-delimited
! 1615: RTLD_PRELOAD_DELIM=" "
! 1616:
! 1617: # getcwd(3) opens a pipe to getpwd(1)!?!
! 1618: BROKEN_GETCWD=1
! 1619:
! 1620: # system headers lack prototypes but gcc helps...
! 1621: if test -n "$GCC"; then
! 1622: OSDEFS="${OSDEFS} -D__USE_FIXED_PROTOTYPES__"
! 1623: fi
! 1624:
! 1625: shadow_funcs="getpwanam issecure"
! 1626: ;;
! 1627: *-*-solaris2*)
! 1628: # LD_PRELOAD is space-delimited
! 1629: RTLD_PRELOAD_DELIM=" "
! 1630:
! 1631: # Solaris-specific initialization
! 1632: OS_INIT=os_init_solaris
! 1633: SUDO_OBJS="${SUDO_OBJS} solaris.o"
! 1634:
! 1635: # To get the crypt(3) prototype (so we pass -Wall)
! 1636: OSDEFS="${OSDEFS} -D__EXTENSIONS__"
! 1637: # AFS support needs -lucb
! 1638: if test "$with_AFS" = "yes"; then
! 1639: AFS_LIBS="-lc -lucb"
! 1640: fi
! 1641: : ${mansectsu='1m'}
! 1642: : ${mansectform='4'}
! 1643: test -z "$with_pam" && AUTH_EXCL_DEF="PAM"
! 1644: AC_CHECK_FUNCS(priv_set, [PSMAN=1])
! 1645: ;;
! 1646: *-*-aix*)
! 1647: # To get all prototypes (so we pass -Wall)
! 1648: OSDEFS="${OSDEFS} -D_ALL_SOURCE -D_LINUX_SOURCE_COMPAT"
! 1649: SUDOERS_LDFLAGS="${SUDOERS_LDFLAGS} -Wl,-bI:\$(srcdir)/aixcrypt.exp"
! 1650:
! 1651: # On AIX 6 and higher default to PAM, else default to LAM
! 1652: if test $OSMAJOR -ge 6; then
! 1653: if test X"$with_pam" = X""; then
! 1654: AUTH_EXCL_DEF="PAM"
! 1655: fi
! 1656: else
! 1657: if test X"$with_aixauth" = X""; then
! 1658: AC_CHECK_FUNCS(authenticate, [AUTH_EXCL_DEF="AIX_AUTH"])
! 1659: fi
! 1660: fi
! 1661:
! 1662: # AIX analog of nsswitch.conf, enabled by default
! 1663: AC_ARG_WITH(netsvc, [AS_HELP_STRING([--with-netsvc[[=PATH]]], [path to netsvc.conf])],
! 1664: [case $with_netsvc in
! 1665: no) ;;
! 1666: yes) with_netsvc="/etc/netsvc.conf"
! 1667: ;;
! 1668: *) ;;
! 1669: esac])
! 1670: if test -z "$with_nsswitch" -a -z "$with_netsvc"; then
! 1671: with_netsvc="/etc/netsvc.conf"
! 1672: fi
! 1673:
! 1674: # LDR_PRELOAD is only supported in AIX 5.3 and later
! 1675: if test $OSMAJOR -lt 5; then
! 1676: with_noexec=no
! 1677: else
! 1678: RTLD_PRELOAD_VAR="LDR_PRELOAD"
! 1679: fi
! 1680:
! 1681: # Remove timedir on boot, AIX does not have /var/run
! 1682: INIT_SCRIPT=aix.sh
! 1683: INIT_DIR=/etc/rc.d/init.d
! 1684: RC_LINK=/etc/rc.d/rc2.d/S90sudo
! 1685:
! 1686: # AIX-specific functions
! 1687: AC_CHECK_FUNCS(getuserattr setauthdb setrlimit64)
! 1688: COMMON_OBJS="${COMMON_OBJS} aix.lo"
! 1689: ;;
! 1690: *-*-hiuxmpp*)
! 1691: : ${mansectsu='1m'}
! 1692: : ${mansectform='4'}
! 1693:
! 1694: # HP-UX does not clear /var/run so we need to do it
! 1695: INIT_SCRIPT=hpux.sh
! 1696: INIT_DIR=/sbin/init.d
! 1697: RC_LINK=/sbin/rc2.d/S900sudo
! 1698:
! 1699: # HP-UX shared libs must be executable
! 1700: SHLIB_MODE=0755
! 1701:
! 1702: AC_CHECK_FUNCS(pstat_getproc)
! 1703: ;;
! 1704: *-*-hpux*)
! 1705: # AFS support needs -lBSD
! 1706: if test "$with_AFS" = "yes"; then
! 1707: AFS_LIBS="-lc -lBSD"
! 1708: fi
! 1709: : ${mansectsu='1m'}
! 1710: : ${mansectform='4'}
! 1711:
! 1712: # HP-UX does not clear /var/run so we need to do it
! 1713: INIT_SCRIPT=hpux.sh
! 1714: INIT_DIR=/sbin/init.d
! 1715: RC_LINK=/sbin/rc2.d/S900sudo
! 1716:
! 1717: # HP-UX shared libs must be executable
! 1718: SHLIB_MODE=0755
! 1719:
! 1720: # The HP bundled compiler cannot generate shared libs
! 1721: if test -z "$GCC"; then
! 1722: AC_CACHE_CHECK([for HP bundled C compiler],
! 1723: [sudo_cv_var_hpccbundled],
! 1724: [if $CC -V 2>&1 | grep '^(Bundled)' >/dev/null 2>&1; then
! 1725: sudo_cv_var_hpccbundled=yes
! 1726: else
! 1727: sudo_cv_var_hpccbundled=no
! 1728: fi]
! 1729: )
! 1730: if test "$sudo_cv_var_hpccbundled" = "yes"; then
! 1731: AC_MSG_ERROR([The HP bundled C compiler is unable to build Sudo, you must use gcc or the HP ANSI C compiler instead.])
! 1732: fi
! 1733: fi
! 1734:
! 1735: # Build PA-RISC1.1 objects for better portability
! 1736: case "$host_cpu" in
! 1737: hppa[[2-9]]*)
! 1738: _CFLAGS="$CFLAGS"
! 1739: if test -n "$GCC"; then
! 1740: portable_flag="-march=1.1"
! 1741: else
! 1742: portable_flag="+DAportable"
! 1743: fi
! 1744: CFLAGS="$CFLAGS $portable_flag"
! 1745: AC_CACHE_CHECK([whether $CC understands $portable_flag],
! 1746: [sudo_cv_var_daportable],
! 1747: [AC_LINK_IFELSE(
! 1748: [AC_LANG_PROGRAM([[]], [[]])],
! 1749: [sudo_cv_var_daportable=yes],
! 1750: [sudo_cv_var_daportable=no]
! 1751: )
! 1752: ]
! 1753: )
! 1754: if test X"$sudo_cv_var_daportable" != X"yes"; then
! 1755: CFLAGS="$_CFLAGS"
! 1756: fi
! 1757: ;;
! 1758: esac
! 1759:
! 1760: case "$host_os" in
! 1761: hpux[[1-8]].*)
! 1762: AC_DEFINE(BROKEN_SYSLOG)
! 1763: ;;
! 1764: hpux9.*)
! 1765: AC_DEFINE(BROKEN_SYSLOG)
! 1766:
! 1767: shadow_funcs="getspwuid"
! 1768:
! 1769: # DCE support (requires ANSI C compiler)
! 1770: if test "$with_DCE" = "yes"; then
! 1771: # order of libs in 9.X is important. -lc_r must be last
! 1772: SUDOERS_LIBS="${SUDOERS_LIBS} -ldce -lM -lc_r"
! 1773: LIBS="${LIBS} -ldce -lM -lc_r"
! 1774: SUDO_APPEND_CPPFLAGS(-D_REENTRANT)
! 1775: SUDO_APPEND_CPPFLAGS(-I/usr/include/reentrant)
! 1776: fi
! 1777: ;;
! 1778: hpux10.*)
! 1779: shadow_funcs="getprpwnam iscomsec"
! 1780: shadow_libs="-lsec"
! 1781: # HP-UX 10.20 libc has an incompatible getline
! 1782: ac_cv_func_getline="no"
! 1783: ;;
! 1784: *)
! 1785: shadow_funcs="getspnam iscomsec"
! 1786: shadow_libs="-lsec"
! 1787: test -z "$with_pam" && AUTH_EXCL_DEF="PAM"
! 1788: ;;
! 1789: esac
! 1790: AC_CHECK_FUNCS(pstat_getproc)
! 1791: ;;
! 1792: *-dec-osf*)
! 1793: # ignore envariables wrt dynamic lib path
! 1794: # XXX - sudo LDFLAGS instead?
! 1795: SUDOERS_LDFLAGS="${SUDOERS_LDFLAGS} -Wl,-no_library_replacement"
! 1796:
! 1797: : ${CHECKSIA='true'}
! 1798: AC_MSG_CHECKING(whether to disable sia support on Digital UNIX)
! 1799: AC_ARG_ENABLE(sia,
! 1800: [AS_HELP_STRING([--disable-sia], [Disable SIA on Digital UNIX])],
! 1801: [ case "$enableval" in
! 1802: yes) AC_MSG_RESULT(no)
! 1803: CHECKSIA=true
! 1804: ;;
! 1805: no) AC_MSG_RESULT(yes)
! 1806: CHECKSIA=false
! 1807: ;;
! 1808: *) AC_MSG_RESULT(no)
! 1809: AC_MSG_WARN([Ignoring unknown argument to --enable-sia: $enableval])
! 1810: ;;
! 1811: esac
! 1812: ], AC_MSG_RESULT(no))
! 1813:
! 1814: shadow_funcs="getprpwnam dispcrypt"
! 1815: # OSF/1 4.x and higher need -ldb too
! 1816: if test $OSMAJOR -lt 4; then
! 1817: shadow_libs="-lsecurity -laud -lm"
! 1818: else
! 1819: shadow_libs="-lsecurity -ldb -laud -lm"
! 1820: fi
! 1821:
! 1822: # use SIA by default, if we have it
! 1823: test "$CHECKSIA" = "true" && AUTH_EXCL_DEF="SIA"
! 1824:
! 1825: #
! 1826: # Some versions of Digital Unix ship with a broken
! 1827: # copy of prot.h, which we need for shadow passwords.
! 1828: # XXX - make should remove this as part of distclean
! 1829: #
! 1830: AC_MSG_CHECKING([for broken prot.h])
! 1831: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
! 1832: #include <sys/types.h>
! 1833: #include <sys/security.h>
! 1834: #include <prot.h>
! 1835: ]], [[exit(0);]])], [AC_MSG_RESULT(no)], [AC_MSG_RESULT([yes, fixing locally])
! 1836: sed 's:<acl.h>:<sys/acl.h>:g' < /usr/include/prot.h > prot.h
! 1837: ])
! 1838: # ":DEFAULT" must be appended to _RLD_LIST
! 1839: RTLD_PRELOAD_VAR="_RLD_LIST"
! 1840: RTLD_PRELOAD_DEFAULT="DEFAULT"
! 1841: : ${mansectsu='8'}
! 1842: : ${mansectform='4'}
! 1843: ;;
! 1844: *-*-irix*)
! 1845: OSDEFS="${OSDEFS} -D_BSD_TYPES"
! 1846: if test -z "$NROFFPROG"; then
! 1847: if test "$prefix" = "/usr/local" -a "$mandir" = '${datarootdir}/man'; then
! 1848: if test -d /usr/share/catman/local; then
! 1849: mandir="/usr/share/catman/local"
! 1850: else
! 1851: mandir="/usr/catman/local"
! 1852: fi
! 1853: fi
! 1854: # Compress cat pages with pack
! 1855: MANCOMPRESS='pack'
! 1856: MANCOMPRESSEXT='.z'
! 1857: else
! 1858: if test "$prefix" = "/usr/local" -a "$mandir" = '${datarootdir}/man'; then
! 1859: if test -d "/usr/share/man/local"; then
! 1860: mandir="/usr/share/man/local"
! 1861: else
! 1862: mandir="/usr/man/local"
! 1863: fi
! 1864: fi
! 1865: fi
! 1866: # IRIX <= 4 needs -lsun
! 1867: if test "$OSMAJOR" -le 4; then
! 1868: AC_CHECK_LIB(sun, getpwnam, [LIBS="${LIBS} -lsun"])
! 1869: fi
! 1870: # ":DEFAULT" must be appended to _RLD_LIST
! 1871: RTLD_PRELOAD_VAR="_RLD_LIST"
! 1872: RTLD_PRELOAD_DEFAULT="DEFAULT"
! 1873: : ${mansectsu='1m'}
! 1874: : ${mansectform='4'}
! 1875: ;;
! 1876: *-*-linux*|*-*-k*bsd*-gnu)
! 1877: OSDEFS="${OSDEFS} -D_GNU_SOURCE"
! 1878: # Some Linux versions need to link with -lshadow
! 1879: shadow_funcs="getspnam"
! 1880: shadow_libs_optional="-lshadow"
! 1881: test -z "$with_pam" && AUTH_EXCL_DEF="PAM"
! 1882: ;;
! 1883: *-convex-bsd*)
! 1884: OSDEFS="${OSDEFS} -D_CONVEX_SOURCE"
! 1885: if test -z "$GCC"; then
! 1886: CFLAGS="${CFLAGS} -D__STDC__"
! 1887: fi
! 1888:
! 1889: shadow_defs="-D_AUDIT -D_ACL -DSecureWare"
! 1890: shadow_funcs="getprpwnam"
! 1891: shadow_libs="-lprot"
! 1892: ;;
! 1893: *-*-ultrix*)
! 1894: OS="ultrix"
! 1895: shadow_funcs="getauthuid"
! 1896: shadow_libs="-lauth"
! 1897: ;;
! 1898: *-*-riscos*)
! 1899: LIBS="${LIBS} -lsun -lbsd"
! 1900: SUDO_APPEND_CPPFLAGS(-I/usr/include)
! 1901: SUDO_APPEND_CPPFLAGS(-I/usr/include/bsd)
! 1902: OSDEFS="${OSDEFS} -D_MIPS"
! 1903: : ${mansectsu='1m'}
! 1904: : ${mansectform='4'}
! 1905: ;;
! 1906: *-*-isc*)
! 1907: OSDEFS="${OSDEFS} -D_ISC"
! 1908: LIB_CRYPT=1
! 1909: SUDOERS_LIBS="${SUDOERS_LIBS} -lcrypt"
! 1910:
! 1911: shadow_funcs="getspnam"
! 1912: shadow_libs="-lsec"
! 1913:
! 1914: : ${mansectsu='1m'}
! 1915: : ${mansectform='4'}
! 1916: ;;
! 1917: *-*-sco*|*-sco-*)
! 1918: shadow_funcs="getprpwnam"
! 1919: shadow_libs="-lprot -lx"
! 1920: : ${mansectsu='1m'}
! 1921: : ${mansectform='4'}
! 1922: ;;
! 1923: m88k-motorola-sysv*)
! 1924: # motorolla's cc (a variant of gcc) does -O but not -O2
! 1925: CFLAGS=`echo $CFLAGS | sed 's/-O2/-O/g'`
! 1926: : ${mansectsu='1m'}
! 1927: : ${mansectform='4'}
! 1928: ;;
! 1929: *-sequent-sysv*)
! 1930: shadow_funcs="getspnam"
! 1931: shadow_libs="-lsec"
! 1932: : ${mansectsu='1m'}
! 1933: : ${mansectform='4'}
! 1934: ;;
! 1935: *-ncr-sysv4*|*-ncr-sysvr4*)
! 1936: AC_CHECK_LIB(c89, strcasecmp, [LIBS="${LIBS} -lc89"])
! 1937: : ${mansectsu='1m'}
! 1938: : ${mansectform='4'}
! 1939: ;;
! 1940: *-ccur-sysv4*|*-ccur-sysvr4*)
! 1941: LIBS="${LIBS} -lgen"
! 1942: : ${mansectsu='1m'}
! 1943: : ${mansectform='4'}
! 1944: ;;
! 1945: *-*-bsdi*)
! 1946: SKIP_SETREUID=yes
! 1947: # Check for newer BSD auth API
! 1948: if test -z "$with_bsdauth"; then
! 1949: AC_CHECK_FUNCS(auth_challenge, [AUTH_EXCL_DEF="BSD_AUTH"])
! 1950: fi
! 1951: ;;
! 1952: *-*-freebsd*)
! 1953: # FreeBSD has a real setreuid(2) starting with 2.1 and
! 1954: # backported to 2.0.5. We just take 2.1 and above...
! 1955: case "$OSREV" in
! 1956: 0.*|1.*|2.0*)
! 1957: SKIP_SETREUID=yes
! 1958: ;;
! 1959: esac
! 1960: OSDEFS="${OSDEFS} -D_BSD_SOURCE"
! 1961: if test "${with_skey-'no'}" = "yes"; then
! 1962: SUDOERS_LIBS="${SUDOERS_LIBS} -lmd"
! 1963: fi
! 1964: CHECKSHADOW="false"
! 1965: test -z "$with_pam" && AUTH_EXCL_DEF="PAM"
! 1966: : ${with_logincap='maybe'}
! 1967: ;;
! 1968: *-*-*openbsd*)
! 1969: # OpenBSD-specific initialization
! 1970: OS_INIT=os_init_openbsd
! 1971: SUDO_OBJS="${SUDO_OBJS} openbsd.o"
! 1972:
! 1973: # OpenBSD has a real setreuid(2) starting with 3.3 but
! 1974: # we will use setresuid(2) instead.
! 1975: SKIP_SETREUID=yes
! 1976: OSDEFS="${OSDEFS} -D_BSD_SOURCE"
! 1977: CHECKSHADOW="false"
! 1978: # OpenBSD >= 3.0 supports BSD auth
! 1979: if test -z "$with_bsdauth"; then
! 1980: if test "$OSMAJOR" -ge 3; then
! 1981: AUTH_EXCL_DEF="BSD_AUTH"
! 1982: fi
! 1983: fi
! 1984: : ${with_logincap='maybe'}
! 1985: ;;
! 1986: *-*-*netbsd*)
! 1987: # NetBSD has a real setreuid(2) starting with 1.3.2
! 1988: case "$OSREV" in
! 1989: 0.9*|1.[[012]]*|1.3|1.3.1)
! 1990: SKIP_SETREUID=yes
! 1991: ;;
! 1992: esac
! 1993: CHECKSHADOW="false"
! 1994: test -z "$with_pam" && AUTH_EXCL_DEF="PAM"
! 1995: : ${with_logincap='maybe'}
! 1996: ;;
! 1997: *-*-dragonfly*)
! 1998: OSDEFS="${OSDEFS} -D_BSD_SOURCE"
! 1999: if test "${with_skey-'no'}" = "yes"; then
! 2000: SUDOERS_LIBS="${SUDOERS_LIBS} -lmd"
! 2001: fi
! 2002: CHECKSHADOW="false"
! 2003: test -z "$with_pam" && AUTH_EXCL_DEF="PAM"
! 2004: : ${with_logincap='yes'}
! 2005: ;;
! 2006: *-*-*bsd*)
! 2007: CHECKSHADOW="false"
! 2008: ;;
! 2009: *-*-darwin*)
! 2010: # Darwin has a real setreuid(2) starting with 9.0
! 2011: if test $OSMAJOR -lt 9; then
! 2012: SKIP_SETREUID=yes
! 2013: fi
! 2014: CHECKSHADOW="false"
! 2015: test -z "$with_pam" && AUTH_EXCL_DEF="PAM"
! 2016: : ${with_logincap='yes'}
! 2017: # Darwin has a broken poll()
! 2018: : ${enable_poll='no'}
! 2019: # Darwin 8 and above can interpose library symbols cleanly
! 2020: if test $OSMAJOR -ge 8; then
! 2021: AC_DEFINE(HAVE___INTERPOSE)
! 2022: dlyld_interpose=yes
! 2023: else
! 2024: RTLD_PRELOAD_ENABLE_VAR="DYLD_FORCE_FLAT_NAMESPACE"
! 2025: fi
! 2026: RTLD_PRELOAD_VAR="DYLD_INSERT_LIBRARIES"
! 2027: ;;
! 2028: *-*-nextstep*)
! 2029: # lockf() on is broken on the NeXT -- use flock instead
! 2030: ac_cv_func_lockf=no
! 2031: ac_cv_func_flock=yes
! 2032: RTLD_PRELOAD_VAR="DYLD_INSERT_LIBRARIES"
! 2033: RTLD_PRELOAD_ENABLE_VAR="DYLD_FORCE_FLAT_NAMESPACE"
! 2034: ;;
! 2035: *-*-*sysv4*)
! 2036: : ${mansectsu='1m'}
! 2037: : ${mansectform='4'}
! 2038: ;;
! 2039: *-*-sysv*)
! 2040: : ${mansectsu='1m'}
! 2041: : ${mansectform='4'}
! 2042: ;;
! 2043: *-gnu*)
! 2044: OSDEFS="${OSDEFS} -D_GNU_SOURCE"
! 2045: ;;
! 2046: esac
! 2047:
! 2048: dnl
! 2049: dnl Library preloading to support NOEXEC
! 2050: dnl
! 2051: if test -n "$with_noexec"; then
! 2052: SUDO_DEFINE_UNQUOTED(RTLD_PRELOAD_VAR, "$RTLD_PRELOAD_VAR")
! 2053: SUDO_DEFINE_UNQUOTED(RTLD_PRELOAD_DELIM, "$RTLD_PRELOAD_DELIM")
! 2054: if test -n "$RTLD_PRELOAD_DEFAULT"; then
! 2055: SUDO_DEFINE_UNQUOTED(RTLD_PRELOAD_DEFAULT, "$RTLD_PRELOAD_DEFAULT")
! 2056: fi
! 2057: if test -n "$RTLD_PRELOAD_ENABLE_VAR"; then
! 2058: SUDO_DEFINE_UNQUOTED(RTLD_PRELOAD_ENABLE_VAR, "$RTLD_PRELOAD_ENABLE_VAR")
! 2059: fi
! 2060: fi
! 2061:
! 2062: dnl
! 2063: dnl Check for mixing mutually exclusive and regular auth methods
! 2064: dnl
! 2065: AUTH_REG=${AUTH_REG# }
! 2066: AUTH_EXCL=${AUTH_EXCL# }
! 2067: if test -n "$AUTH_EXCL"; then
! 2068: set -- $AUTH_EXCL
! 2069: if test $# != 1; then
! 2070: AC_MSG_ERROR([More than one mutually exclusive authentication method specified: $AUTH_EXCL])
! 2071: fi
! 2072: if test -n "$AUTH_REG"; then
! 2073: AC_MSG_ERROR([Cannot mix mutually exclusive ($AUTH_EXCL) and regular ($AUTH_REG) authentication methods])
! 2074: fi
! 2075: fi
! 2076: dnl
! 2077: dnl Only one of S/Key and OPIE may be specified
! 2078: dnl
! 2079: if test X"${with_skey}${with_opie}" = X"yesyes"; then
! 2080: AC_MSG_ERROR(["cannot use both S/Key and OPIE"])
! 2081: fi
! 2082:
! 2083: dnl
! 2084: dnl Use BSD-style man sections by default
! 2085: dnl
! 2086: : ${mansectsu='8'}
! 2087: : ${mansectform='5'}
! 2088:
! 2089: dnl
! 2090: dnl Add in any libpaths or libraries specified via configure
! 2091: dnl
! 2092: if test -n "$with_libpath"; then
! 2093: for i in ${with_libpath}; do
! 2094: SUDO_APPEND_LIBPATH(LDFLAGS, [$i])
! 2095: done
! 2096: fi
! 2097: if test -n "$with_libraries"; then
! 2098: for i in ${with_libraries}; do
! 2099: case $i in
! 2100: -l*) ;;
! 2101: *.a) ;;
! 2102: *.o) ;;
! 2103: *) i="-l${i}";;
! 2104: esac
! 2105: LIBS="${LIBS} ${i}"
! 2106: done
! 2107: fi
! 2108:
! 2109: dnl
! 2110: dnl C compiler checks (to be done after os checks)
! 2111: dnl
! 2112: AC_PROG_GCC_TRADITIONAL
! 2113: AC_C_CONST
! 2114: AC_C_VOLATILE
! 2115: AC_MSG_CHECKING([for variadic macro support in cpp])
! 2116: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
! 2117: AC_INCLUDES_DEFAULT
! 2118: #if defined(__GNUC__) && __GNUC__ == 2
! 2119: # define sudo_fprintf(fp, fmt...) fprintf((fp), (fmt))
! 2120: #else
! 2121: # define sudo_fprintf(fp, ...) fprintf((fp), __VA_ARGS__)
! 2122: #endif
! 2123: ], [sudo_fprintf(stderr, "a %s", "test");])], [AC_MSG_RESULT([yes])],
! 2124: [AC_MSG_RESULT([no])
! 2125: AC_DEFINE([NO_VARIADIC_MACROS], [1], [Define if your C preprocessor does not support variadic macros.])
! 2126: AC_MSG_WARN([Your C preprocessor doesn't support variadic macros, debugging support will be limited])])
! 2127:
! 2128: dnl
! 2129: dnl Program checks
! 2130: dnl
! 2131: AC_PROG_YACC
! 2132: AC_PATH_PROG([FLEX], [flex], [flex])
! 2133: SUDO_PROG_MV
! 2134: SUDO_PROG_BSHELL
! 2135: if test -z "$with_sendmail"; then
! 2136: SUDO_PROG_SENDMAIL
! 2137: fi
! 2138: SUDO_PROG_VI
! 2139: dnl
! 2140: dnl Check for authpriv support in syslog
! 2141: dnl
! 2142: AC_MSG_CHECKING(which syslog facility sudo should log with)
! 2143: if test X"$with_logfac" = X""; then
! 2144: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <syslog.h>]], [[int i = LOG_AUTHPRIV; (void)i;]])], [logfac=authpriv])
! 2145: fi
! 2146: AC_DEFINE_UNQUOTED(LOGFAC, "$logfac", [The syslog facility sudo will use.])
! 2147: AC_MSG_RESULT($logfac)
! 2148: dnl
! 2149: dnl Header file checks
! 2150: dnl
! 2151: AC_HEADER_STDC
! 2152: AC_HEADER_DIRENT
! 2153: AC_HEADER_TIME
! 2154: AC_HEADER_STDBOOL
! 2155: AC_HEADER_MAJOR
! 2156: AC_CHECK_HEADERS(malloc.h netgroup.h paths.h spawn.h utime.h utmpx.h sys/sockio.h sys/bsdtypes.h sys/select.h sys/stropts.h sys/sysmacros.h)
! 2157: AC_CHECK_HEADERS([endian.h] [sys/endian.h] [machine/endian.h], [break])
! 2158: AC_CHECK_HEADERS([procfs.h] [sys/procfs.h], [AC_CHECK_MEMBERS(struct psinfo.pr_ttydev, [AC_CHECK_FUNCS(_ttyname_dev)], [], [AC_INCLUDES_DEFAULT
! 2159: #ifdef HAVE_PROCFS_H
! 2160: #include <procfs.h>
! 2161: #endif
! 2162: #ifdef HAVE_SYS_PROCFS_H
! 2163: #include <sys/procfs.h>
! 2164: #endif
! 2165: ])]
! 2166: break)
! 2167: #
! 2168: # Check for large file support.
! 2169: #
! 2170: AC_SYS_LARGEFILE
! 2171: #
! 2172: # HP-UX may need to define _XOPEN_SOURCE_EXTENDED to expose MSG_WAITALL.
! 2173: # Also, HP-UX 11.23 has a broken sys/types.h when large files support
! 2174: # is enabled and _XOPEN_SOURCE_EXTENDED is not also defined.
! 2175: # The following test will define _XOPEN_SOURCE_EXTENDED in either case.
! 2176: #
! 2177: case "$host_os" in
! 2178: hpux*)
! 2179: AC_CACHE_CHECK([whether sys/socket.h needs _XOPEN_SOURCE_EXTENDED for MSG_WAITALL], [sudo_cv_xopen_source_extended],
! 2180: [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
! 2181: # include <sys/socket.h>], [int a = MSG_WAITALL; return a;])],
! 2182: [sudo_cv_xopen_source_extended=no], [
! 2183: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#define _XOPEN_SOURCE_EXTENDED
! 2184: AC_INCLUDES_DEFAULT
! 2185: # include <sys/socket.h>], [int a = MSG_WAITALL; return a;])],
! 2186: [sudo_cv_xopen_source_extended=yes],
! 2187: [sudo_cv_xopen_source_extended=error])
! 2188: ])])
! 2189: if test "$sudo_cv_xopen_source_extended" = "yes"; then
! 2190: OSDEFS="${OSDEFS} -D_XOPEN_SOURCE_EXTENDED"
! 2191: SUDO_DEFINE(_XOPEN_SOURCE_EXTENDED)
! 2192: fi
! 2193: ;;
! 2194: esac
! 2195: AC_SYS_POSIX_TERMIOS
! 2196: if test "$ac_cv_sys_posix_termios" != "yes"; then
! 2197: AC_MSG_ERROR([Must have POSIX termios to build sudo])
! 2198: fi
! 2199: SUDO_MAILDIR
! 2200: if test ${with_logincap-'no'} != "no"; then
! 2201: AC_CHECK_HEADERS(login_cap.h, [LOGINCAP_USAGE='[[-c class]] '; LCMAN=1
! 2202: case "$OS" in
! 2203: freebsd|netbsd)
! 2204: SUDO_LIBS="${SUDO_LIBS} -lutil"
! 2205: SUDOERS_LIBS="${SUDOERS_LIBS} -lutil"
! 2206: ;;
! 2207: esac
! 2208: ])
! 2209: fi
! 2210: if test ${with_project-'no'} != "no"; then
! 2211: AC_CHECK_HEADER(project.h, [
! 2212: AC_CHECK_LIB(project, setproject, [
! 2213: AC_DEFINE(HAVE_PROJECT_H)
! 2214: SUDO_LIBS="${SUDO_LIBS} -lproject"
! 2215: ])
! 2216: ], [])
! 2217: fi
! 2218: dnl
! 2219: dnl typedef checks
! 2220: dnl We need to define __STDC_WANT_LIB_EXT1__ for errno_t and rsize_t
! 2221: dnl
! 2222: SUDO_APPEND_CPPFLAGS(-D__STDC_WANT_LIB_EXT1__=1)
! 2223: AC_TYPE_MODE_T
! 2224: AC_TYPE_UID_T
! 2225: AC_CHECK_TYPE([clockid_t], [], [AC_DEFINE(clockid_t, int)], [#include <sys/types.h>
! 2226: #include <time.h>])
! 2227: AC_CHECK_TYPE([sig_atomic_t], [], [AC_DEFINE(sig_atomic_t, int)], [#include <sys/types.h>
! 2228: #include <signal.h>])
! 2229: AC_CHECK_TYPES([sigaction_t], [], [], [#include <sys/types.h>
! 2230: #include <signal.h>])
! 2231: AC_CHECK_TYPES([struct timespec], [], [], [#include <sys/types.h>
! 2232: #ifdef TIME_WITH_SYS_TIME
! 2233: # include <sys/time.h>
! 2234: #endif
! 2235: #include <time.h>])
! 2236: AC_CHECK_TYPES([struct in6_addr], [], [], [#include <sys/types.h>
! 2237: #include <netinet/in.h>])
! 2238: AC_TYPE_LONG_LONG_INT
! 2239: if test X"$ac_cv_type_long_long_int" != X"yes"; then
! 2240: AC_MSG_ERROR(["C compiler does not appear to support the long long int type"])
! 2241: fi
! 2242: AC_CHECK_SIZEOF([long int])
! 2243: AC_CHECK_TYPE(id_t, unsigned int)
! 2244: AC_CHECK_TYPE(size_t, unsigned int)
! 2245: AC_CHECK_TYPE(ssize_t, int)
! 2246: AC_CHECK_TYPE(dev_t, int)
! 2247: AC_CHECK_TYPE(ino_t, unsigned int)
! 2248: AC_CHECK_TYPE(uint8_t, unsigned char)
! 2249: AC_CHECK_TYPE(uint32_t, unsigned int)
! 2250: AC_CHECK_TYPE(uint64_t, unsigned long long)
! 2251: AC_CHECK_TYPE(socklen_t, [], [AC_DEFINE(socklen_t, unsigned int)], [
! 2252: AC_INCLUDES_DEFAULT
! 2253: #include <sys/socket.h>])
! 2254: AC_CHECK_TYPE(rsize_t, size_t)
! 2255: AC_CHECK_TYPE(errno_t, int)
! 2256: SUDO_UID_T_LEN
! 2257: SUDO_SOCK_SA_LEN
! 2258: SUDO_SOCK_SIN_LEN
! 2259: dnl
! 2260: dnl Check for utmp/utmpx struct members.
! 2261: dnl We need to include OSDEFS for glibc which only has __e_termination
! 2262: dnl visible when _GNU_SOURCE is *not* defined.
! 2263: dnl
! 2264: _CFLAGS="$CFLAGS"
! 2265: CFLAGS="$CFLAGS $OSDEFS"
! 2266: if test $ac_cv_header_utmpx_h = "yes"; then
! 2267: AC_CHECK_MEMBERS([struct utmpx.ut_id, struct utmpx.ut_pid, struct utmpx.ut_tv, struct utmpx.ut_type], [], [], [
! 2268: # include <sys/types.h>
! 2269: # include <utmpx.h>
! 2270: ])
! 2271: dnl
! 2272: dnl Check for ut_exit.__e_termination first, then ut_exit.e_termination
! 2273: dnl
! 2274: AC_CHECK_MEMBERS([struct utmpx.ut_exit.__e_termination], [AC_DEFINE(HAVE_STRUCT_UTMPX_UT_EXIT)], [
! 2275: AC_CHECK_MEMBERS([struct utmpx.ut_exit.e_termination], [AC_DEFINE(HAVE_STRUCT_UTMPX_UT_EXIT)], [], [
! 2276: # include <sys/types.h>
! 2277: # include <utmpx.h>
! 2278: ])
! 2279: ], [
! 2280: # include <sys/types.h>
! 2281: # include <utmpx.h>
! 2282: ])
! 2283: else
! 2284: AC_CHECK_MEMBERS([struct utmp.ut_id, struct utmp.ut_pid, struct utmp.ut_tv, struct utmp.ut_type, struct utmp.ut_user], [], [], [
! 2285: # include <sys/types.h>
! 2286: # include <utmp.h>
! 2287: ])
! 2288: dnl
! 2289: dnl Check for ut_exit.__e_termination first, then ut_exit.e_termination
! 2290: dnl
! 2291: AC_CHECK_MEMBERS([struct utmp.ut_exit.__e_termination], [AC_DEFINE(HAVE_STRUCT_UTMP_UT_EXIT)], [
! 2292: AC_CHECK_MEMBERS([struct utmp.ut_exit.e_termination], [AC_DEFINE(HAVE_STRUCT_UTMP_UT_EXIT)], [], [
! 2293: # include <sys/types.h>
! 2294: # include <utmp.h>
! 2295: ])
! 2296: ], [
! 2297: # include <sys/types.h>
! 2298: # include <utmp.h>
! 2299: ])
! 2300: fi
! 2301: CFLAGS="$_CFLAGS"
! 2302:
! 2303: dnl
! 2304: dnl Function checks
! 2305: dnl
! 2306: AC_FUNC_GETGROUPS
! 2307: AC_CHECK_FUNCS(glob nl_langinfo regcomp setenv strftime strrchr strtoll \
! 2308: sysconf tzset)
! 2309: AC_CHECK_FUNCS(getgrouplist, [], [
! 2310: case "$host_os" in
! 2311: aix*)
! 2312: AC_CHECK_FUNCS(getgrset)
! 2313: ;;
! 2314: *)
! 2315: AC_CHECK_FUNC(nss_search, [
! 2316: AC_CHECK_FUNC(_nss_XbyY_buf_alloc, [
! 2317: # Solaris
! 2318: AC_CHECK_FUNC(_nss_initf_group, [
! 2319: AC_CHECK_HEADERS(nss_dbdefs.h)
! 2320: AC_DEFINE([HAVE_NSS_SEARCH])
! 2321: AC_DEFINE([HAVE__NSS_XBYY_BUF_ALLOC])
! 2322: AC_DEFINE([HAVE__NSS_INITF_GROUP])
! 2323: ])
! 2324: ], [
! 2325: # HP-UX
! 2326: AC_CHECK_FUNC(__nss_XbyY_buf_alloc, [
! 2327: AC_CHECK_FUNC(__nss_initf_group, [
! 2328: AC_CHECK_HEADERS(nss_dbdefs.h)
! 2329: AC_DEFINE([HAVE_NSS_SEARCH])
! 2330: AC_DEFINE([HAVE___NSS_XBYY_BUF_ALLOC])
! 2331: AC_DEFINE([HAVE___NSS_INITF_GROUP])
! 2332: ])
! 2333: ])
! 2334: ])
! 2335: ])
! 2336: ;;
! 2337: esac
! 2338: AC_LIBOBJ(getgrouplist)
! 2339: ])
! 2340: AC_CHECK_FUNCS(getline, [], [
! 2341: AC_LIBOBJ(getline)
! 2342: AC_CHECK_FUNCS(fgetln)
! 2343: ])
! 2344: dnl
! 2345: dnl If libc supports _FORTIFY_SOURCE check functions, use it.
! 2346: dnl
! 2347: if test "$enable_hardening" != "no"; then
! 2348: O_CPPFLAGS="$CPPFLAGS"
! 2349: CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2"
! 2350: AC_CHECK_FUNC(__sprintf_chk, [
! 2351: AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[char buf[4]; (void)sprintf(buf, "%s", "foo");]])], [OSDEFS="${OSDEFS} -D_FORTIFY_SOURCE=2"], [])
! 2352: ], [])
! 2353: CPPFLAGS="$O_CPPFLAGS"
! 2354: fi
! 2355:
! 2356: utmp_style=LEGACY
! 2357: AC_CHECK_FUNCS(getutxid getutid, [utmp_style=POSIX; break])
! 2358: if test "$utmp_style" = "LEGACY"; then
! 2359: AC_CHECK_FUNCS(getttyent ttyslot, [break])
! 2360: AC_CHECK_FUNCS(fseeko)
! 2361: fi
! 2362:
! 2363: AC_CHECK_FUNCS(sysctl, [AC_CHECK_MEMBERS([struct kinfo_proc.ki_tdev], [],
! 2364: [
! 2365: AC_CHECK_MEMBERS([struct kinfo_proc2.p_tdev], [], [
! 2366: AC_CHECK_MEMBERS([struct kinfo_proc.p_tdev], [], [
! 2367: AC_CHECK_MEMBERS([struct kinfo_proc.kp_eproc.e_tdev], [], [], [
! 2368: # include <sys/param.h>
! 2369: # include <sys/sysctl.h>
! 2370: ])
! 2371: ], [
! 2372: # include <sys/param.h>
! 2373: # include <sys/sysctl.h>
! 2374: ])
! 2375: ],
! 2376: [
! 2377: # include <sys/param.h>
! 2378: # include <sys/sysctl.h>
! 2379: ])
! 2380: ],
! 2381: [
! 2382: # include <sys/param.h>
! 2383: # include <sys/sysctl.h>
! 2384: # include <sys/user.h>
! 2385: ])
! 2386: ])
! 2387:
! 2388: AC_CHECK_FUNCS(openpty, [AC_CHECK_HEADERS(libutil.h util.h pty.h, [break])], [
! 2389: AC_CHECK_LIB(util, openpty, [
! 2390: AC_CHECK_HEADERS(libutil.h util.h pty.h, [break])
! 2391: case "$SUDO_LIBS" in
! 2392: *-lutil*) ;;
! 2393: *) SUDO_LIBS="${SUDO_LIBS} -lutil";;
! 2394: esac
! 2395: AC_DEFINE(HAVE_OPENPTY)
! 2396: ], [
! 2397: AC_CHECK_FUNCS(_getpty, [], [
! 2398: AC_CHECK_FUNCS(grantpt, [
! 2399: AC_CHECK_FUNCS(posix_openpt)
! 2400: ], [
! 2401: AC_CHECK_FUNCS(revoke)
! 2402: ])
! 2403: ])
! 2404: ])
! 2405: ])
! 2406: AC_CHECK_FUNCS(unsetenv, [SUDO_FUNC_UNSETENV_VOID], [])
! 2407: SUDO_FUNC_PUTENV_CONST
! 2408: if test -z "$SKIP_SETRESUID"; then
! 2409: AC_CHECK_FUNCS(setresuid, [
! 2410: SKIP_SETREUID=yes
! 2411: AC_CHECK_FUNCS(getresuid)
! 2412: ])
! 2413: fi
! 2414: if test -z "$SKIP_SETREUID"; then
! 2415: AC_CHECK_FUNCS(setreuid)
! 2416: fi
! 2417: AC_CHECK_FUNCS(seteuid)
! 2418: if test X"$with_interfaces" != X"no"; then
! 2419: AC_CHECK_FUNCS(getifaddrs, [AC_CHECK_FUNCS(freeifaddrs)])
! 2420: fi
! 2421: if test -z "$BROKEN_GETCWD"; then
! 2422: AC_REPLACE_FUNCS(getcwd)
! 2423: fi
! 2424: AC_CHECK_FUNCS(lockf flock, [break])
! 2425: AC_CHECK_FUNCS(innetgr _innetgr, [AC_CHECK_FUNCS(getdomainname) [break]])
! 2426: AC_CHECK_FUNCS(utimes, [AC_CHECK_FUNCS(futimes futimesat, [break])], [AC_CHECK_FUNCS(futime) AC_LIBOBJ(utimes)])
! 2427: AC_CHECK_FUNCS(killpg, [], [AC_LIBOBJ(killpg)])
! 2428: SUDO_FUNC_FNMATCH([AC_DEFINE(HAVE_FNMATCH)], [AC_LIBOBJ(fnmatch)
! 2429: COMPAT_TEST_PROGS="${COMPAT_TEST_PROGS}${COMPAT_TEST_PROGS+ }fnm_test"
! 2430: ])
! 2431: SUDO_FUNC_ISBLANK
! 2432: AC_REPLACE_FUNCS(memrchr memset_s pw_dup strlcpy strlcat strtonum)
! 2433: AC_CHECK_FUNCS(clock_gettime, [], [
! 2434: # On Solaris, clock_gettime is in librt
! 2435: AC_CHECK_LIB(rt, clock_gettime, [
! 2436: AC_DEFINE(HAVE_CLOCK_GETTIME)
! 2437: SUDOERS_LIBS="${SUDOERS_LIBS} -lrt"
! 2438: ], [AC_LIBOBJ(clock_gettime)])
! 2439: ])
! 2440: AC_CHECK_FUNCS(getopt_long, [], [AC_LIBOBJ(getopt_long)
! 2441: AC_MSG_CHECKING([for optreset])
! 2442: AC_CACHE_VAL(sudo_cv_optreset, [
! 2443: AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[extern int optreset; optreset = 1; return optreset;]])], [sudo_cv_optreset=yes], [sudo_cv_optreset=no])])
! 2444: if test "$sudo_cv_optreset" = "yes"; then
! 2445: AC_DEFINE(HAVE_OPTRESET)
! 2446: fi
! 2447: AC_MSG_RESULT($sudo_cv_optreset)
! 2448: ])
! 2449: AC_CHECK_FUNCS(closefrom, [], [AC_LIBOBJ(closefrom)
! 2450: AC_CHECK_DECL(F_CLOSEM, AC_DEFINE(HAVE_FCNTL_CLOSEM), [], [
! 2451: # include <limits.h>
! 2452: # include <fcntl.h> ])
! 2453: ])
! 2454: AC_CHECK_FUNCS(mkstemps mkdtemp, [], [
! 2455: AC_CHECK_FUNCS(random lrand48, [break])
! 2456: AC_LIBOBJ(mktemp)
! 2457: ])
! 2458: AX_FUNC_SNPRINTF
! 2459: AC_CHECK_FUNCS(asprintf vasprintf)
! 2460: if test X"$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf" = X"yesyes"; then
! 2461: # Don't add snprintf to LIBOBJS if it is already present.
! 2462: if test X"$ac_cv_func_asprintf$ac_cv_func_vasprintf" != X"yesyes"; then
! 2463: AC_LIBOBJ(snprintf)
! 2464: fi
! 2465: fi
! 2466: # We wrap OpenBSD's strtonum() to get translatable error strings.
! 2467: AC_CHECK_FUNCS(strtonum)
! 2468: AC_LIBOBJ(strtonum)
! 2469: if test X"$ac_cv_type_struct_timespec" != X"no"; then
! 2470: AC_CHECK_MEMBER([struct stat.st_mtim], [AC_DEFINE(HAVE_ST_MTIM)]
! 2471: [AC_CHECK_MEMBER([struct stat.st_mtim.st__tim], AC_DEFINE(HAVE_ST__TIM))],
! 2472: [AC_CHECK_MEMBER([struct stat.st_mtimespec], AC_DEFINE([HAVE_ST_MTIMESPEC]))])
! 2473: fi
! 2474: dnl
! 2475: dnl Function checks for sudo_noexec
! 2476: dnl
! 2477: if test X"$with_noexec" != X"no"; then
! 2478: # Check for underscore versions of standard exec functions
! 2479: # unless we are using dyld symbole interposition
! 2480: if test X"$dlyld_interpose" != X"yes"; then
! 2481: AC_CHECK_FUNCS(_execl __execl)
! 2482: AC_CHECK_FUNCS(_execle __execle)
! 2483: AC_CHECK_FUNCS(_execlp __execlp)
! 2484: AC_CHECK_FUNCS(_execv __execv)
! 2485: AC_CHECK_FUNCS(_execve __execve)
! 2486: AC_CHECK_FUNCS(_execvp __execvp)
! 2487: fi
! 2488: # Check for non-standard exec functions including underscore versions
! 2489: AC_CHECK_FUNCS(exect, [
! 2490: if test X"$dlyld_interpose" != X"yes"; then
! 2491: AC_CHECK_FUNCS(_exect __exect)
! 2492: fi
! 2493: ])
! 2494: AC_CHECK_FUNCS(execvP, [
! 2495: if test X"$dlyld_interpose" != X"yes"; then
! 2496: AC_CHECK_FUNCS(_execvP __execvP)
! 2497: fi
! 2498: ])
! 2499: AC_CHECK_FUNCS(execvpe, [
! 2500: if test X"$dlyld_interpose" != X"yes"; then
! 2501: AC_CHECK_FUNCS(_execvpe __execvpe)
! 2502: fi
! 2503: ])
! 2504: AC_CHECK_FUNCS(fexecve, [
! 2505: if test X"$dlyld_interpose" != X"yes"; then
! 2506: AC_CHECK_FUNCS(_fexecve __fexecve)
! 2507: fi
! 2508: ])
! 2509: # Check for posix_spawn, posix_spawnp and any underscore versions
! 2510: AC_CHECK_FUNCS(posix_spawn, [
! 2511: if test X"$dlyld_interpose" != X"yes"; then
! 2512: AC_CHECK_FUNCS(_posix_spawn __posix_spawn)
! 2513: fi
! 2514: ])
! 2515: AC_CHECK_FUNCS(posix_spawnp, [
! 2516: if test X"$dlyld_interpose" != X"yes"; then
! 2517: AC_CHECK_FUNCS(_posix_spawnp __posix_spawnp)
! 2518: fi
! 2519: ])
! 2520: fi
! 2521:
! 2522: dnl
! 2523: dnl Check for the dirfd function/macro. If not found, look for dd_fd in DIR.
! 2524: dnl
! 2525: AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
! 2526: #include <$ac_header_dirent>]], [[DIR *d; (void)dirfd(d);]])], [AC_DEFINE(HAVE_DIRFD)], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
! 2527: #include <$ac_header_dirent>]], [[DIR d; memset(&d, 0, sizeof(d)); return(d.dd_fd);]])], [AC_DEFINE(HAVE_DD_FD)], [])])
! 2528: AC_CHECK_MEMBERS([struct dirent.d_type], [], [], [
! 2529: AC_INCLUDES_DEFAULT
! 2530: #include <$ac_header_dirent>
! 2531: ])
! 2532: dnl
! 2533: dnl If socket(2) not in libc, check -lsocket and -linet
! 2534: dnl May need to link with *both* -lnsl and -lsocket due to unresolved symbols
! 2535: dnl
! 2536: AC_CHECK_FUNC(socket, [], [
! 2537: for libs in "-lsocket" "-linet" "-lsocket -lnsl"; do
! 2538: _libs=
! 2539: for lib in $libs; do
! 2540: case "$NET_LIBS" in
! 2541: *"$lib"*) ;;
! 2542: *) _libs="$_libs $lib";;
! 2543: esac
! 2544: done
! 2545: libs="${_libs# }"
! 2546: test -z "$libs" && continue
! 2547: lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`"
! 2548: extralibs="`echo \"$libs\"|sed 's/^-l[[^ ]]*//'`"
! 2549: SUDO_CHECK_LIB($lib, socket, [NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break], [], [$extralibs])
! 2550: done
! 2551: ])
! 2552: dnl
! 2553: dnl If inet_pton(3) not in libc, check -lnsl and -linet
! 2554: dnl May need to link with *both* -lnsl and -lsocket due to unresolved symbols
! 2555: dnl Some systems may have inet_pton() in libresolv.
! 2556: dnl
! 2557: AC_CHECK_FUNC(inet_pton, [], [
! 2558: for libs in "-lsocket" "-linet" "-lsocket -lnsl" "-lresolv"; do
! 2559: _libs=
! 2560: for lib in $libs; do
! 2561: case "$NET_LIBS" in
! 2562: *"$lib"*) ;;
! 2563: *) _libs="$_libs $lib";;
! 2564: esac
! 2565: done
! 2566: libs="${_libs# }"
! 2567: test -z "$libs" && continue
! 2568: lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`"
! 2569: extralibs="`echo \"$libs\"|sed 's/^-l[[^ ]]*//'`"
! 2570: SUDO_CHECK_LIB($lib, inet_pton, [
! 2571: AC_DEFINE(HAVE_INET_PTON)
! 2572: NET_LIBS="${NET_LIBS} $libs"
! 2573: LIBS="${LIBS} $libs"
! 2574: break
! 2575: ], [], [$extralibs])
! 2576: done
! 2577: ])
! 2578: if test X"$ac_cv_func_inet_pton" != X"yes"; then
! 2579: AC_LIBOBJ(inet_pton)
! 2580: fi
! 2581: dnl
! 2582: dnl If syslog(3) not in libc, check -lsocket, -lnsl and -linet
! 2583: dnl
! 2584: AC_CHECK_FUNC(syslog, [], [
! 2585: for libs in "-lsocket" "-linet" "-lsocket -lnsl"; do
! 2586: _libs=
! 2587: for lib in $libs; do
! 2588: case "$NET_LIBS" in
! 2589: *"$lib"*) ;;
! 2590: *) _libs="$_libs $lib";;
! 2591: esac
! 2592: done
! 2593: libs="${_libs# }"
! 2594: test -z "$libs" && continue
! 2595: lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`"
! 2596: extralibs="`echo \"$libs\"|sed 's/^-l[[^ ]]*//'`"
! 2597: SUDO_CHECK_LIB($lib, syslog, [NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break], [], [$extralibs])
! 2598: done
! 2599: ])
! 2600: #
! 2601: # Check for getaddrinfo and add any required libs to NET_LIBS
! 2602: #
! 2603: OLIBS="$LIBS"
! 2604: AX_FUNC_GETADDRINFO
! 2605: for lib in $LIBS; do
! 2606: case "$OLIBS" in
! 2607: *"$lib"*) ;;
! 2608: *) NET_LIBS="$NET_LIBS $lib";;
! 2609: esac
! 2610: done
! 2611: dnl
! 2612: dnl Check for getprogname() or __progname
! 2613: dnl
! 2614: AC_CHECK_FUNCS(getprogname, , [
! 2615: AC_MSG_CHECKING([for __progname])
! 2616: AC_CACHE_VAL(sudo_cv___progname, [
! 2617: AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[extern char *__progname; (void)puts(__progname);]])], [sudo_cv___progname=yes], [sudo_cv___progname=no])])
! 2618: if test "$sudo_cv___progname" = "yes"; then
! 2619: AC_DEFINE(HAVE___PROGNAME)
! 2620: fi
! 2621: AC_MSG_RESULT($sudo_cv___progname)
! 2622: ])
! 2623: dnl
! 2624: dnl Check for __func__ or __FUNCTION__
! 2625: dnl
! 2626: AC_MSG_CHECKING([for __func__])
! 2627: AC_CACHE_VAL(sudo_cv___func__, [
! 2628: AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[(void)puts(__func__);]])], [sudo_cv___func__=yes], [sudo_cv___func__=no])])
! 2629: AC_MSG_RESULT($sudo_cv___func__)
! 2630: if test "$sudo_cv___func__" = "yes"; then
! 2631: AC_DEFINE(HAVE___FUNC__)
! 2632: elif test -n "$GCC"; then
! 2633: AC_MSG_CHECKING([for __FUNCTION__])
! 2634: AC_CACHE_VAL(sudo_cv___FUNCTION__, [
! 2635: AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[(void)puts(__FUNCTION__);]])], [sudo_cv___FUNCTION__=yes], [sudo_cv___FUNCTION__=no])])
! 2636: AC_MSG_RESULT($sudo_cv___FUNCTION__)
! 2637: if test "$sudo_cv___FUNCTION__" = "yes"; then
! 2638: AC_DEFINE(HAVE___FUNC__)
! 2639: AC_DEFINE(__func__, __FUNCTION__, [Define to __FUNCTION__ if your compiler supports __FUNCTION__ but not __func__])
! 2640: fi
! 2641: fi
! 2642:
! 2643: # gettext() and friends may be located in libc (Linux and Solaris)
! 2644: # or in libintl. However, it is possible to have libintl installed
! 2645: # even when gettext() is present in libc. In the case of GNU libintl,
! 2646: # gettext() will be defined to gettext_libintl in libintl.h.
! 2647: # Since gcc prefers /usr/local/include to /usr/include, we need to
! 2648: # make sure we use the gettext() that matches the include file.
! 2649: if test "$enable_nls" != "no"; then
! 2650: if test "$enable_nls" != "yes"; then
! 2651: SUDO_APPEND_CPPFLAGS(-I${enable_nls}/include)
! 2652: SUDO_APPEND_LIBPATH(LDFLAGS, [$enable_nls/lib])
! 2653: fi
! 2654: OLIBS="$LIBS"
! 2655: for l in "libc" "-lintl" "-lintl -liconv"; do
! 2656: if test "$l" = "libc"; then
! 2657: # If user specified a dir for libintl ignore libc
! 2658: if test "$enable_nls" != "yes"; then
! 2659: continue
! 2660: fi
! 2661: gettext_name=sudo_cv_gettext
! 2662: AC_MSG_CHECKING([for gettext])
! 2663: else
! 2664: LIBS="$OLIBS $l"
! 2665: gettext_name=sudo_cv_gettext"`echo $l|sed -e 's/ //g' -e 's/-/_/g'`"
! 2666: AC_MSG_CHECKING([for gettext in $l])
! 2667: fi
! 2668: AC_CACHE_VAL($gettext_name, [
! 2669: AC_LINK_IFELSE(
! 2670: [
! 2671: AC_LANG_PROGRAM([[#include <libintl.h>]], [(void)gettext((char *)0);])
! 2672: ], [eval $gettext_name=yes], [eval $gettext_name=no]
! 2673: )
! 2674: ])
! 2675: eval gettext_result="\$$gettext_name"
! 2676: AC_MSG_RESULT($gettext_result)
! 2677: if test "$gettext_result" = "yes"; then
! 2678: AC_CHECK_FUNCS(ngettext)
! 2679: break
! 2680: fi
! 2681: done
! 2682: LIBS="$OLIBS"
! 2683:
! 2684: if test "$sudo_cv_gettext" = "yes"; then
! 2685: AC_DEFINE(HAVE_LIBINTL_H)
! 2686: SUDO_NLS=enabled
! 2687: # For Solaris we need links from lang to lang.UTF-8 in localedir
! 2688: case "$host_os" in
! 2689: solaris2*) LOCALEDIR_SUFFIX=".UTF-8";;
! 2690: esac
! 2691: elif test "$sudo_cv_gettext_lintl" = "yes"; then
! 2692: AC_DEFINE(HAVE_LIBINTL_H)
! 2693: SUDO_NLS=enabled
! 2694: LIBINTL="-lintl"
! 2695: elif test "$sudo_cv_gettext_lintl_liconv" = "yes"; then
! 2696: AC_DEFINE(HAVE_LIBINTL_H)
! 2697: SUDO_NLS=enabled
! 2698: LIBINTL="-lintl -liconv"
! 2699: fi
! 2700: fi
! 2701:
! 2702: dnl
! 2703: dnl Deferred zlib option processing.
! 2704: dnl By default we use the system zlib if it is present.
! 2705: dnl If a directory was specified for zlib (or we are use sudo's version),
! 2706: dnl prepend the include dir to make sure we get the right zlib header.
! 2707: dnl
! 2708: case "$enable_zlib" in
! 2709: yes)
! 2710: AC_CHECK_LIB(z, gzdopen, [
! 2711: AC_CHECK_HEADERS(zlib.h, [ZLIB="-lz"], [enable_zlib=builtin])
! 2712: ])
! 2713: ;;
! 2714: no)
! 2715: ;;
! 2716: system)
! 2717: AC_DEFINE(HAVE_ZLIB_H)
! 2718: ZLIB="-lz"
! 2719: ;;
! 2720: builtin)
! 2721: # handled below
! 2722: ;;
! 2723: *)
! 2724: AC_DEFINE(HAVE_ZLIB_H)
! 2725: SUDO_APPEND_CPPFLAGS(-I${enable_zlib}/include)
! 2726: SUDO_APPEND_LIBPATH(ZLIB, [$enable_zlib/lib])
! 2727: ZLIB="${ZLIB} -lz"
! 2728: ;;
! 2729: esac
! 2730: if test X"$enable_zlib" = X"builtin"; then
! 2731: AC_DEFINE(HAVE_ZLIB_H)
! 2732: CPPFLAGS='-I$(top_builddir)/zlib -I$(top_srcdir)/zlib '"${CPPFLAGS}"
! 2733: ZLIB="${ZLIB}"' $(top_builddir)/zlib/libz.la'
! 2734: ZLIB_SRC=zlib
! 2735: AC_CONFIG_HEADER([zlib/zconf.h])
! 2736: AC_CONFIG_FILES([zlib/Makefile])
! 2737: fi
! 2738:
! 2739: dnl
! 2740: dnl Check for errno declaration in errno.h
! 2741: dnl
! 2742: AC_CHECK_DECLS([errno], [], [], [
! 2743: AC_INCLUDES_DEFAULT
! 2744: #include <errno.h>
! 2745: ])
! 2746:
! 2747: dnl
! 2748: dnl Check for h_errno declaration in netdb.h
! 2749: dnl
! 2750: AC_CHECK_DECLS([h_errno], [], [], [
! 2751: AC_INCLUDES_DEFAULT
! 2752: #include <netdb.h>
! 2753: ])
! 2754:
! 2755: dnl
! 2756: dnl Check for strsignal() or sys_siglist
! 2757: dnl
! 2758: AC_CHECK_FUNCS(strsignal, [], [
! 2759: AC_LIBOBJ(strsignal)
! 2760: HAVE_SIGLIST="false"
! 2761: AC_CHECK_DECLS([sys_siglist, _sys_siglist, __sys_siglist], [
! 2762: HAVE_SIGLIST="true"
! 2763: break
! 2764: ], [ ], [
! 2765: AC_INCLUDES_DEFAULT
! 2766: #include <signal.h>
! 2767: ])
! 2768: if test "$HAVE_SIGLIST" != "true"; then
! 2769: AC_LIBOBJ(siglist)
! 2770: fi
! 2771: ])
! 2772:
! 2773: dnl
! 2774: dnl Check for sig2str(), sys_signame or sys_sigabbrev
! 2775: dnl
! 2776: AC_CHECK_FUNCS(sig2str, [], [
! 2777: AC_LIBOBJ(sig2str)
! 2778: HAVE_SIGNAME="false"
! 2779: AC_CHECK_DECLS([sys_signame, _sys_signame, __sys_signame, sys_sigabbrev], [
! 2780: HAVE_SIGNAME="true"
! 2781: break
! 2782: ], [ ], [
! 2783: AC_INCLUDES_DEFAULT
! 2784: #include <signal.h>
! 2785: ])
! 2786: if test "$HAVE_SIGNAME" != "true"; then
! 2787: AC_CACHE_CHECK([for undeclared sys_sigabbrev],
! 2788: [sudo_cv_var_sys_sigabbrev],
! 2789: [AC_LINK_IFELSE(
! 2790: [AC_LANG_PROGRAM([[extern char **sys_sigabbrev;]], [[return sys_sigabbrev[1];]])],
! 2791: [sudo_cv_var_sys_sigabbrev=yes],
! 2792: [sudo_cv_var_sys_sigabbrev=no]
! 2793: )
! 2794: ]
! 2795: )
! 2796: if test "$sudo_cv_var_sys_sigabbrev" = yes; then
! 2797: AC_DEFINE(HAVE_SYS_SIGABBREV)
! 2798: else
! 2799: AC_LIBOBJ(signame)
! 2800: fi
! 2801: fi
! 2802: ])
! 2803:
! 2804: dnl
! 2805: dnl nsswitch.conf and its equivalents
! 2806: dnl
! 2807: if test ${with_netsvc-"no"} != "no"; then
! 2808: SUDO_DEFINE_UNQUOTED(_PATH_NETSVC_CONF, "${with_netsvc-/etc/netsvc.conf}")
! 2809: netsvc_conf=${with_netsvc-/etc/netsvc.conf}
! 2810: elif test ${with_nsswitch-"yes"} != "no"; then
! 2811: SUDO_DEFINE_UNQUOTED(_PATH_NSSWITCH_CONF, "${with_nsswitch-/etc/nsswitch.conf}")
! 2812: nsswitch_conf=${with_nsswitch-/etc/nsswitch.conf}
! 2813: fi
! 2814:
! 2815: dnl
! 2816: dnl Mutually exclusive auth checks come first, followed by
! 2817: dnl non-exclusive ones. Note: passwd must be last of all!
! 2818: dnl
! 2819:
! 2820: dnl
! 2821: dnl Convert default authentication methods to with_* if
! 2822: dnl no explicit authentication scheme was specified.
! 2823: dnl
! 2824: if test -z "${AUTH_EXCL}${AUTH_REG}" -a -n "$AUTH_EXCL_DEF"; then
! 2825: for auth in $AUTH_EXCL_DEF; do
! 2826: case $auth in
! 2827: AIX_AUTH) with_aixauth=maybe;;
! 2828: BSD_AUTH) with_bsdauth=maybe;;
! 2829: PAM) with_pam=maybe;;
! 2830: SIA) CHECKSIA=true;;
! 2831: esac
! 2832: done
! 2833: fi
! 2834:
! 2835: dnl
! 2836: dnl PAM support. Systems that use PAM by default set with_pam=default
! 2837: dnl and we do the actual tests here.
! 2838: dnl
! 2839: if test ${with_pam-"no"} != "no"; then
! 2840: #
! 2841: # Check for pam_start() in libpam first, then for pam_appl.h.
! 2842: #
! 2843: found_pam_lib=no
! 2844: AC_CHECK_LIB(pam, pam_start, [found_pam_lib=yes], [], [$lt_cv_dlopen_libs])
! 2845: #
! 2846: # Some PAM implementations (MacOS X for example) put the PAM headers
! 2847: # in /usr/include/pam instead of /usr/include/security...
! 2848: #
! 2849: found_pam_hdrs=no
! 2850: AC_CHECK_HEADERS([security/pam_appl.h] [pam/pam_appl.h], [found_pam_hdrs=yes; break])
! 2851: if test "$found_pam_lib" = "yes" -a "$found_pam_hdrs" = "yes"; then
! 2852: # Found both PAM libs and headers
! 2853: with_pam=yes
! 2854: elif test "$with_pam" = "yes"; then
! 2855: if test "$found_pam_lib" = "no"; then
! 2856: AC_MSG_ERROR(["--with-pam specified but unable to locate PAM development library."])
! 2857: fi
! 2858: if test "$found_pam_hdrs" = "no"; then
! 2859: AC_MSG_ERROR(["--with-pam specified but unable to locate PAM development headers."])
! 2860: fi
! 2861: elif test "$found_pam_lib" != "$found_pam_hdrs"; then
! 2862: if test "$found_pam_lib" = "no"; then
! 2863: AC_MSG_ERROR(["found PAM headers but no PAM development library; specify --without-pam to build without PAM"])
! 2864: fi
! 2865: if test "$found_pam_hdrs" = "no"; then
! 2866: AC_MSG_ERROR(["found PAM library but no PAM development headers; specify --without-pam to build without PAM"])
! 2867: fi
! 2868: fi
! 2869:
! 2870: if test "$with_pam" = "yes"; then
! 2871: # Older PAM implementations lack pam_getenvlist
! 2872: OLIBS="$LIBS"
! 2873: LIBS="$LIBS -lpam $lt_cv_dlopen_libs"
! 2874: AC_CHECK_FUNCS(pam_getenvlist)
! 2875: LIBS="$OLIBS"
! 2876:
! 2877: # We already link with -ldl if needed (see LIBDL below)
! 2878: SUDOERS_LIBS="${SUDOERS_LIBS} -lpam"
! 2879: AC_DEFINE(HAVE_PAM)
! 2880: AUTH_OBJS="$AUTH_OBJS pam.lo";
! 2881: AUTH_EXCL=PAM
! 2882:
! 2883: AC_ARG_WITH(pam-login, [AS_HELP_STRING([--with-pam-login], [enable specific PAM session for sudo -i])],
! 2884: [case $with_pam_login in
! 2885: yes) AC_DEFINE([HAVE_PAM_LOGIN])
! 2886: AC_MSG_CHECKING(whether to use PAM login)
! 2887: AC_MSG_RESULT(yes)
! 2888: pam_login_service="sudo-i"
! 2889: ;;
! 2890: no) ;;
! 2891: *) AC_MSG_ERROR(["--with-pam-login does not take an argument."])
! 2892: ;;
! 2893: esac])
! 2894:
! 2895: AC_MSG_CHECKING(whether to use PAM session support)
! 2896: AC_ARG_ENABLE(pam_session,
! 2897: [AS_HELP_STRING([--disable-pam-session], [Disable PAM session support])],
! 2898: [ case "$enableval" in
! 2899: yes) AC_MSG_RESULT(yes)
! 2900: ;;
! 2901: no) AC_MSG_RESULT(no)
! 2902: AC_DEFINE(NO_PAM_SESSION)
! 2903: pam_session=off
! 2904: ;;
! 2905: *) AC_MSG_RESULT(no)
! 2906: AC_MSG_WARN([Ignoring unknown argument to --enable-pam-session: $enableval])
! 2907: ;;
! 2908: esac], AC_MSG_RESULT(yes))
! 2909: fi
! 2910: fi
! 2911:
! 2912: dnl
! 2913: dnl AIX general authentication
! 2914: dnl If set to "maybe" only enable if no other exclusive method in use.
! 2915: dnl
! 2916: if test ${with_aixauth-'no'} != "no"; then
! 2917: if test X"$with_aixauth" != X"maybe" -o X"$AUTH_EXCL" = X""; then
! 2918: AC_MSG_NOTICE([using AIX general authentication])
! 2919: AC_DEFINE(HAVE_AIXAUTH)
! 2920: AUTH_OBJS="$AUTH_OBJS aix_auth.lo";
! 2921: SUDOERS_LIBS="${SUDOERS_LIBS} -ls"
! 2922: AUTH_EXCL=AIX_AUTH
! 2923: fi
! 2924: fi
! 2925:
! 2926: dnl
! 2927: dnl BSD authentication
! 2928: dnl If set to "maybe" only enable if no other exclusive method in use.
! 2929: dnl
! 2930: if test ${with_bsdauth-'no'} != "no"; then
! 2931: AC_CHECK_HEADER(bsd_auth.h, AC_DEFINE(HAVE_BSD_AUTH_H)
! 2932: [AUTH_OBJS="$AUTH_OBJS bsdauth.lo"]
! 2933: [BSDAUTH_USAGE='[[-a type]] ']
! 2934: [AUTH_EXCL=BSD_AUTH; BAMAN=1],
! 2935: [AC_MSG_ERROR([BSD authentication was specified but bsd_auth.h could not be found])])
! 2936: fi
! 2937:
! 2938: dnl
! 2939: dnl SIA authentication for Tru64 Unix
! 2940: dnl
! 2941: if test ${CHECKSIA-'false'} = "true"; then
! 2942: AC_CHECK_FUNCS(sia_ses_init, [found=true], [found=false])
! 2943: if test "$found" = "true"; then
! 2944: AUTH_EXCL=SIA
! 2945: AUTH_OBJS="$AUTH_OBJS sia.lo"
! 2946: fi
! 2947: fi
! 2948:
! 2949: dnl
! 2950: dnl extra FWTK libs + includes
! 2951: dnl
! 2952: if test ${with_fwtk-'no'} != "no"; then
! 2953: if test "$with_fwtk" != "yes"; then
! 2954: SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_fwtk}])
! 2955: SUDO_APPEND_CPPFLAGS(-I${with_fwtk})
! 2956: with_fwtk=yes
! 2957: fi
! 2958: SUDOERS_LIBS="${SUDOERS_LIBS} -lauth -lfwall"
! 2959: AUTH_OBJS="$AUTH_OBJS fwtk.lo"
! 2960: fi
! 2961:
! 2962: dnl
! 2963: dnl extra SecurID lib + includes
! 2964: dnl
! 2965: if test ${with_SecurID-'no'} != "no"; then
! 2966: if test "$with_SecurID" != "yes"; then
! 2967: :
! 2968: elif test -d /usr/ace/examples; then
! 2969: with_SecurID=/usr/ace/examples
! 2970: else
! 2971: with_SecurID=/usr/ace
! 2972: fi
! 2973: SUDO_APPEND_CPPFLAGS(-I${with_SecurID})
! 2974: SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_SecurID}])
! 2975: SUDOERS_LIBS="${SUDOERS_LIBS} -laceclnt -lpthread"
! 2976: AUTH_OBJS="$AUTH_OBJS securid5.lo";
! 2977: fi
! 2978:
! 2979: dnl
! 2980: dnl Non-mutually exclusive auth checks come next.
! 2981: dnl Note: passwd must be last of all!
! 2982: dnl
! 2983:
! 2984: dnl
! 2985: dnl Convert default authentication methods to with_* if
! 2986: dnl no explicit authentication scheme was specified.
! 2987: dnl
! 2988: if test -z "${AUTH_EXCL}" -a -n "$AUTH_DEF"; then
! 2989: for auth in $AUTH_DEF; do
! 2990: case $auth in
! 2991: passwd) : ${with_passwd='maybe'};;
! 2992: esac
! 2993: done
! 2994: fi
! 2995:
! 2996: dnl
! 2997: dnl Kerberos V
! 2998: dnl There is an easy way and a hard way...
! 2999: dnl
! 3000: if test ${with_kerb5-'no'} != "no"; then
! 3001: AC_CHECK_PROG(KRB5CONFIG, krb5-config, yes, "")
! 3002: if test -n "$KRB5CONFIG"; then
! 3003: AC_DEFINE(HAVE_KERB5)
! 3004: AUTH_OBJS="$AUTH_OBJS kerb5.lo"
! 3005: CPPFLAGS="$CPPFLAGS `krb5-config --cflags`"
! 3006: SUDOERS_LIBS="$SUDOERS_LIBS `krb5-config --libs`"
! 3007: dnl
! 3008: dnl Try to determine whether we have Heimdal or MIT Kerberos
! 3009: dnl
! 3010: AC_MSG_CHECKING(whether we are using Heimdal)
! 3011: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <krb5.h>]], [[const char *tmp = heimdal_version;]])], [
! 3012: AC_MSG_RESULT(yes)
! 3013: AC_DEFINE(HAVE_HEIMDAL)
! 3014: ], [
! 3015: AC_MSG_RESULT(no)
! 3016: ]
! 3017: )
! 3018: else
! 3019: AC_DEFINE(HAVE_KERB5)
! 3020: dnl
! 3021: dnl Use the specified directory, if any, else search for correct inc dir
! 3022: dnl
! 3023: if test "$with_kerb5" = "yes"; then
! 3024: found=no
! 3025: O_CPPFLAGS="$CPPFLAGS"
! 3026: for dir in "" "kerberosV/" "krb5/" "kerberos5/" "kerberosv5/"; do
! 3027: CPPFLAGS="$O_CPPFLAGS -I/usr/include/${dir}"
! 3028: AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[#include <krb5.h>]])], [found=yes; break])
! 3029: done
! 3030: if test X"$found" = X"no"; then
! 3031: CPPFLAGS="$O_CPPFLAGS"
! 3032: AC_MSG_WARN([Unable to locate Kerberos V include files, you will have to edit the Makefile and add -I/path/to/krb/includes to CPPFLAGS])
! 3033: fi
! 3034: else
! 3035: dnl XXX - try to include krb5.h here too
! 3036: SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_kerb5}/lib])
! 3037: SUDO_APPEND_CPPFLAGS(-I${with_kerb5}/include)
! 3038: fi
! 3039:
! 3040: dnl
! 3041: dnl Try to determine whether we have Heimdal or MIT Kerberos
! 3042: dnl
! 3043: AC_MSG_CHECKING(whether we are using Heimdal)
! 3044: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <krb5.h>]], [[const char *tmp = heimdal_version;]])], [
! 3045: AC_MSG_RESULT(yes)
! 3046: AC_DEFINE(HAVE_HEIMDAL)
! 3047: # XXX - need to check whether -lcrypo is needed!
! 3048: SUDOERS_LIBS="${SUDOERS_LIBS} -lkrb5 -lcrypto -ldes -lcom_err -lasn1"
! 3049: AC_CHECK_LIB(roken, main, [SUDOERS_LIBS="${SUDOERS_LIBS} -lroken"])
! 3050: ], [
! 3051: AC_MSG_RESULT(no)
! 3052: SUDOERS_LIBS="${SUDOERS_LIBS} -lkrb5 -lk5crypto -lcom_err"
! 3053: AC_CHECK_LIB(krb5support, main, [SUDOERS_LIBS="${SUDOERS_LIBS} -lkrb5support"])
! 3054: ])
! 3055: AUTH_OBJS="$AUTH_OBJS kerb5.lo"
! 3056: fi
! 3057: _LIBS="$LIBS"
! 3058: LIBS="${LIBS} ${SUDOERS_LIBS}"
! 3059: AC_CHECK_FUNCS(krb5_verify_user krb5_init_secure_context)
! 3060: AC_CHECK_FUNCS(krb5_get_init_creds_opt_alloc, [
! 3061: AC_CACHE_CHECK([whether krb5_get_init_creds_opt_free takes a context],
! 3062: sudo_cv_krb5_get_init_creds_opt_free_two_args, [
! 3063: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <krb5.h>]],
! 3064: [[krb5_get_init_creds_opt_free(NULL, NULL);]]
! 3065: )],
! 3066: [sudo_cv_krb5_get_init_creds_opt_free_two_args=yes],
! 3067: [sudo_cv_krb5_get_init_creds_opt_free_two_args=no]
! 3068: )
! 3069: ]
! 3070: )
! 3071: ])
! 3072: if test X"$sudo_cv_krb5_get_init_creds_opt_free_two_args" = X"yes"; then
! 3073: AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_FREE_TWO_ARGS)
! 3074: fi
! 3075: LIBS="$_LIBS"
! 3076: AC_MSG_CHECKING(whether to use an instance name for Kerberos V)
! 3077: AC_ARG_ENABLE(kerb5-instance,
! 3078: [AS_HELP_STRING([--enable-kerb5-instance], [instance string to append to the username (separated by a slash)])],
! 3079: [ case "$enableval" in
! 3080: yes) AC_MSG_ERROR(["must give --enable-kerb5-instance an argument."])
! 3081: ;;
! 3082: no) AC_MSG_RESULT(no)
! 3083: ;;
! 3084: *) SUDO_DEFINE_UNQUOTED(SUDO_KRB5_INSTANCE, "$enableval")
! 3085: AC_MSG_RESULT([$enableval])
! 3086: ;;
! 3087: esac], AC_MSG_RESULT(no))
! 3088: fi
! 3089:
! 3090: dnl
! 3091: dnl extra AFS libs and includes
! 3092: dnl
! 3093: if test ${with_AFS-'no'} = "yes"; then
! 3094:
! 3095: # looks like the "standard" place for AFS libs is /usr/afsws/lib
! 3096: AFSLIBDIRS="/usr/lib/afs /usr/afsws/lib /usr/afsws/lib/afs"
! 3097: for i in $AFSLIBDIRS; do
! 3098: if test -d ${i}; then
! 3099: SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [$i])
! 3100: FOUND_AFSLIBDIR=true
! 3101: fi
! 3102: done
! 3103: if test -z "$FOUND_AFSLIBDIR"; then
! 3104: AC_MSG_WARN([Unable to locate AFS libraries, you will have to edit the Makefile and add -L/path/to/afs/libs to SUDOERS_LDFLAGS or rerun configure with the --with-libpath options.])
! 3105: fi
! 3106:
! 3107: # Order is important here. Note that we build AFS_LIBS from right to left
! 3108: # since AFS_LIBS may be initialized with BSD compat libs that must go last
! 3109: AFS_LIBS="-laudit ${AFS_LIBS}"
! 3110: for i in $AFSLIBDIRS; do
! 3111: if test -f ${i}/util.a; then
! 3112: AFS_LIBS="${i}/util.a ${AFS_LIBS}"
! 3113: FOUND_UTIL_A=true
! 3114: break;
! 3115: fi
! 3116: done
! 3117: if test -z "$FOUND_UTIL_A"; then
! 3118: AFS_LIBS="-lutil ${AFS_LIBS}"
! 3119: fi
! 3120: AFS_LIBS="-lkauth -lprot -lubik -lauth -lrxkad -lsys -ldes -lrx -llwp -lcom_err ${AFS_LIBS}"
! 3121:
! 3122: # AFS includes may live in /usr/include on some machines...
! 3123: for i in /usr/afsws/include; do
! 3124: if test -d ${i}; then
! 3125: SUDO_APPEND_CPPFLAGS(-I${i})
! 3126: FOUND_AFSINCDIR=true
! 3127: fi
! 3128: done
! 3129:
! 3130: if test -z "$FOUND_AFSLIBDIR"; then
! 3131: AC_MSG_WARN([Unable to locate AFS include dir, you may have to edit the Makefile and add -I/path/to/afs/includes to CPPFLAGS or rerun configure with the --with-incpath options.])
! 3132: fi
! 3133:
! 3134: AUTH_OBJS="$AUTH_OBJS afs.lo"
! 3135: fi
! 3136:
! 3137: dnl
! 3138: dnl extra DCE obj + lib
! 3139: dnl Order of libs in HP-UX 10.x is important, -ldce must be last.
! 3140: dnl
! 3141: if test ${with_DCE-'no'} = "yes"; then
! 3142: DCE_OBJS="${DCE_OBJS} dce_pwent.o"
! 3143: SUDOERS_LIBS="${SUDOERS_LIBS} -ldce"
! 3144: AUTH_OBJS="$AUTH_OBJS dce.lo"
! 3145: fi
! 3146:
! 3147: dnl
! 3148: dnl extra S/Key lib and includes
! 3149: dnl
! 3150: if test "${with_skey-'no'}" = "yes"; then
! 3151: O_LDFLAGS="$LDFLAGS"
! 3152: if test "$with_skey" != "yes"; then
! 3153: SUDO_APPEND_CPPFLAGS(-I${with_skey}/include)
! 3154: LDFLAGS="$LDFLAGS -L${with_skey}/lib"
! 3155: SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_skey}/lib])
! 3156: AC_CHECK_HEADER([skey.h], [found=yes], [found=no], [#include <stdio.h>])
! 3157: else
! 3158: found=no
! 3159: O_CPPFLAGS="$CPPFLAGS"
! 3160: for dir in "" "/usr/local" "/usr/contrib"; do
! 3161: test -n "$dir" && CPPFLAGS="$O_CPPFLAGS -I${dir}/include"
! 3162: AC_CHECK_HEADER([skey.h], [found=yes; break], [], [#include <stdio.h>])
! 3163: done
! 3164: if test "$found" = "no" -o -z "$dir"; then
! 3165: CPPFLAGS="$O_CPPFLAGS"
! 3166: else
! 3167: LDFLAGS="$LDFLAGS -L${dir}/lib"
! 3168: SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${dir}/lib])
! 3169: fi
! 3170: if test "$found" = "no"; then
! 3171: AC_MSG_WARN([Unable to locate skey.h, you will have to edit the Makefile and add -I/path/to/skey/includes to CPPFLAGS])
! 3172: fi
! 3173: fi
! 3174: AC_CHECK_LIB(skey, main, [found=yes], [AC_MSG_WARN([Unable to locate libskey.a, you will have to edit the Makefile and add -L/path/to/skey/lib to SUDOERS_LDFLAGS])])
! 3175: AC_CHECK_LIB(skey, skeyaccess, AC_DEFINE(HAVE_SKEYACCESS))
! 3176:
! 3177: AC_MSG_CHECKING([for RFC1938-compliant skeychallenge])
! 3178: AC_COMPILE_IFELSE(
! 3179: [AC_LANG_PROGRAM([[
! 3180: # include <stdio.h>
! 3181: # include <skey.h>]],
! 3182: [[skeychallenge(NULL, NULL, NULL, 0);]]
! 3183: )], [
! 3184: AC_DEFINE(HAVE_RFC1938_SKEYCHALLENGE)
! 3185: AC_MSG_RESULT([yes])
! 3186: ], [
! 3187: AC_MSG_RESULT([no])
! 3188: ]
! 3189: )
! 3190:
! 3191: LDFLAGS="$O_LDFLAGS"
! 3192: SUDOERS_LIBS="${SUDOERS_LIBS} -lskey"
! 3193: AUTH_OBJS="$AUTH_OBJS rfc1938.lo"
! 3194: fi
! 3195:
! 3196: dnl
! 3197: dnl extra OPIE lib and includes
! 3198: dnl
! 3199: if test "${with_opie-'no'}" = "yes"; then
! 3200: O_LDFLAGS="$LDFLAGS"
! 3201: if test "$with_opie" != "yes"; then
! 3202: SUDO_APPEND_CPPFLAGS(-I${with_opie}/include)
! 3203: LDFLAGS="$LDFLAGS -L${with_opie}/lib"
! 3204: SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_opie}/lib])
! 3205: AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[#include <opie.h>]])], [found=yes], [found=no])
! 3206: else
! 3207: found=no
! 3208: O_CPPFLAGS="$CPPFLAGS"
! 3209: for dir in "" "/usr/local" "/usr/contrib"; do
! 3210: test -n "$dir" && CPPFLAGS="$O_CPPFLAGS -I${dir}/include"
! 3211: AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[#include <opie.h>]])], [found=yes; break])
! 3212: done
! 3213: if test "$found" = "no" -o -z "$dir"; then
! 3214: CPPFLAGS="$O_CPPFLAGS"
! 3215: else
! 3216: LDFLAGS="$LDFLAGS -L${dir}/lib"
! 3217: SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${dir}/lib])
! 3218: fi
! 3219: if test "$found" = "no"; then
! 3220: AC_MSG_WARN([Unable to locate opie.h, you will have to edit the Makefile and add -I/path/to/opie/includes to CPPFLAGS])
! 3221: fi
! 3222: fi
! 3223: AC_CHECK_LIB(opie, main, [found=yes], [AC_MSG_WARN([Unable to locate libopie.a, you will have to edit the Makefile and add -L/path/to/opie/lib to SUDOERS_LDFLAGS])])
! 3224: LDFLAGS="$O_LDFLAGS"
! 3225: SUDOERS_LIBS="${SUDOERS_LIBS} -lopie"
! 3226: AUTH_OBJS="$AUTH_OBJS rfc1938.lo"
! 3227: fi
! 3228:
! 3229: dnl
! 3230: dnl Check for shadow password routines if we have not already done so.
! 3231: dnl If there is a specific list of functions to check we do that first.
! 3232: dnl Otherwise, we check for SVR4-style and then SecureWare-style.
! 3233: dnl
! 3234: if test ${with_passwd-'no'} != "no"; then
! 3235: dnl
! 3236: dnl if crypt(3) not in libc, look elsewhere
! 3237: dnl
! 3238: if test -z "$LIB_CRYPT"; then
! 3239: _LIBS="$LIBS"
! 3240: AC_SEARCH_LIBS([crypt], [crypt crypt_d ufc], [test -n "$ac_lib" && SUDOERS_LIBS="${SUDOERS_LIBS} $ac_res"])
! 3241: LIBS="$_LIBS"
! 3242: fi
! 3243:
! 3244: if test "$CHECKSHADOW" = "true" -a -n "$shadow_funcs"; then
! 3245: _LIBS="$LIBS"
! 3246: LIBS="$LIBS $shadow_libs"
! 3247: found=no
! 3248: AC_CHECK_FUNCS($shadow_funcs, [found=yes])
! 3249: if test "$found" = "yes"; then
! 3250: SUDOERS_LIBS="$SUDOERS_LIBS $shadow_libs"
! 3251: elif test -n "$shadow_libs_optional"; then
! 3252: LIBS="$LIBS $shadow_libs_optional"
! 3253: AC_CHECK_FUNCS($shadow_funcs, [found=yes])
! 3254: if test "$found" = "yes"; then
! 3255: SUDOERS_LIBS="$SUDOERS_LIBS $shadow_libs $shadow_libs_optional"
! 3256: fi
! 3257: fi
! 3258: if test "$found" = "yes"; then
! 3259: case "$shadow_funcs" in
! 3260: *getprpwnam*) SECUREWARE=1;;
! 3261: esac
! 3262: test -n "$shadow_defs" && OSDEFS="${OSDEFS} $shadow_defs"
! 3263: else
! 3264: LIBS="$_LIBS"
! 3265: fi
! 3266: CHECKSHADOW=false
! 3267: fi
! 3268: if test "$CHECKSHADOW" = "true"; then
! 3269: AC_SEARCH_LIBS([getspnam], [gen], [AC_DEFINE(HAVE_GETSPNAM)] [CHECKSHADOW=false; test -n "$ac_lib" && SUDOERS_LIBS="${SUDOERS_LIBS} $ac_res"])
! 3270: fi
! 3271: if test "$CHECKSHADOW" = "true"; then
! 3272: AC_SEARCH_LIBS([getprpwnam], [sec security prot], [AC_DEFINE(HAVE_GETPRPWNAM)] [CHECKSHADOW=false; SECUREWARE=1; test -n "$ac_lib" && SUDOERS_LIBS="${SUDOERS_LIBS} $ac_res"])
! 3273: fi
! 3274: if test -n "$SECUREWARE"; then
! 3275: AC_CHECK_FUNCS(bigcrypt set_auth_parameters initprivs)
! 3276: AUTH_OBJS="$AUTH_OBJS secureware.lo"
! 3277: fi
! 3278: fi
! 3279:
! 3280: dnl
! 3281: dnl Choose event subsystem backend: poll or select
! 3282: dnl
! 3283: if test X"$enable_poll" = X""; then
! 3284: AC_CHECK_FUNCS(poll, [enable_poll=yes], [enable_poll=no])
! 3285: elif test X"$enable_poll" = X"yes"; then
! 3286: AC_DEFINE(HAVE_POLL)
! 3287: fi
! 3288: if test "$enable_poll" = "yes"; then
! 3289: COMMON_OBJS="${COMMON_OBJS} event_poll.lo"
! 3290: else
! 3291: COMMON_OBJS="${COMMON_OBJS} event_select.lo"
! 3292: fi
! 3293:
! 3294: dnl
! 3295: dnl extra lib and .o file for LDAP support
! 3296: dnl
! 3297: if test ${with_ldap-'no'} != "no"; then
! 3298: O_LDFLAGS="$LDFLAGS"
! 3299: if test "$with_ldap" != "yes"; then
! 3300: SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_ldap}/lib])
! 3301: LDFLAGS="$LDFLAGS -L${with_ldap}/lib"
! 3302: SUDO_APPEND_CPPFLAGS(-I${with_ldap}/include)
! 3303: with_ldap=yes
! 3304: fi
! 3305: SUDOERS_OBJS="${SUDOERS_OBJS} ldap.lo"
! 3306: LDAP=""
! 3307:
! 3308: _LIBS="$LIBS"
! 3309: LDAP_LIBS=""
! 3310: IBMLDAP_EXTRA=""
! 3311: found=no
! 3312: # On HP-UX, libibmldap has a hidden dependency on libCsup
! 3313: case "$host_os" in
! 3314: hpux*) AC_CHECK_LIB(Csup, main, [IBMLDAP_EXTRA=" -lCsup"]);;
! 3315: esac
! 3316: AC_SEARCH_LIBS(ldap_init, "ibmldap${IBMLDAP_EXTRA}" "ibmldap -lidsldif${IBMLDAP_EXTRA}" "ldap" "ldap -llber" "ldap -llber -lssl -lcrypto" "ibmldap${IBMLDAP_EXTRA}", [
! 3317: test "$ac_res" != "none required" && LDAP_LIBS="$ac_res"
! 3318: found=yes
! 3319: ])
! 3320: # If nothing linked, try -lldap and hope for the best
! 3321: if test "$found" = "no"; then
! 3322: LDAP_LIBS="-lldap"
! 3323: fi
! 3324: LIBS="${_LIBS} ${LDAP_LIBS}"
! 3325: dnl check if we need to link with -llber for ber_set_option
! 3326: OLIBS="$LIBS"
! 3327: AC_MSG_CHECKING([whether lber.h defines LBER_OPT_DEBUG_LEVEL])
! 3328: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
! 3329: # include <lber.h>]], [[int opt=LBER_OPT_DEBUG_LEVEL;]])], [
! 3330: AC_MSG_RESULT([yes])
! 3331: AC_SEARCH_LIBS([ber_set_option], [lber], [found=yes], [found=no])
! 3332: if test X"$found" = X"yes" -a X"$LIBS" != X"$OLIBS"; then
! 3333: LDAP_LIBS="$LDAP_LIBS -llber"
! 3334: fi
! 3335: ], [
! 3336: AC_MSG_RESULT([no])
! 3337: ])
! 3338: dnl check if ldap.h includes lber.h for us
! 3339: AC_MSG_CHECKING([whether lber.h is needed])
! 3340: AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
! 3341: # include <ldap.h>]], [[(void)ldap_init(0, 0)]])], [AC_MSG_RESULT([no])], [
! 3342: AC_MSG_RESULT([yes])
! 3343: AC_DEFINE(HAVE_LBER_H)])
! 3344:
! 3345: AC_CHECK_HEADERS([sasl/sasl.h] [sasl.h], [
! 3346: AC_CHECK_FUNCS(ldap_sasl_interactive_bind_s)
! 3347: break
! 3348: ])
! 3349: AC_CHECK_HEADERS([ldap_ssl.h] [mps/ldap_ssl.h], [break], [], [#include <ldap.h>])
! 3350: AC_CHECK_FUNCS(ldap_initialize ldap_start_tls_s ldapssl_init ldapssl_set_strength ldap_unbind_ext_s ldap_str2dn ldap_create ldap_sasl_bind_s ldap_ssl_init ldap_ssl_client_init ldap_start_tls_s_np)
! 3351: AC_CHECK_FUNCS(ldap_search_ext_s ldap_search_st, [break])
! 3352:
! 3353: if test X"$check_gss_krb5_ccache_name" = X"yes"; then
! 3354: AC_CHECK_LIB(gssapi, gss_krb5_ccache_name,
! 3355: AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME)
! 3356: [LDAP_LIBS="${LDAP_LIBS} -lgssapi"],
! 3357: AC_CHECK_LIB(gssapi_krb5, gss_krb5_ccache_name,
! 3358: AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME)
! 3359: [LDAP_LIBS="${LDAP_LIBS} -lgssapi_krb5"])
! 3360: )
! 3361:
! 3362: # gssapi headers may be separate or part of Kerberos V
! 3363: found=no
! 3364: O_CPPFLAGS="$CPPFLAGS"
! 3365: for dir in "" "kerberosV" "krb5" "kerberos5" "kerberosv5"; do
! 3366: test X"$dir" != X"" && CPPFLAGS="$O_CPPFLAGS -I/usr/include/${dir}"
! 3367: AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[#include <gssapi/gssapi.h>]])], [found="gssapi/gssapi.h"; break], [AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[#include <gssapi.h>]])], [found="gssapi.h"; break])])
! 3368: done
! 3369: if test X"$found" != X"no"; then
! 3370: AC_CHECK_HEADERS([$found])
! 3371: if test X"$found" = X"gssapi/gssapi.h"; then
! 3372: AC_CHECK_HEADERS([gssapi/gssapi_krb5.h])
! 3373: fi
! 3374: else
! 3375: CPPFLAGS="$O_CPPFLAGS"
! 3376: AC_MSG_WARN([Unable to locate gssapi.h, you will have to edit the Makefile and add -I/path/to/gssapi/includes to CPPFLAGS])
! 3377: fi
! 3378: fi
! 3379:
! 3380: SUDOERS_LIBS="${SUDOERS_LIBS} ${LDAP_LIBS}"
! 3381: LIBS="$_LIBS"
! 3382: LDFLAGS="$O_LDFLAGS"
! 3383: fi
! 3384:
! 3385: #
! 3386: # How to do dynamic object loading.
! 3387: # We support dlopen() and sh_load(), else fall back to static loading.
! 3388: #
! 3389: case "$lt_cv_dlopen" in
! 3390: dlopen)
! 3391: AC_DEFINE(HAVE_DLOPEN)
! 3392: if test "$enable_static_sudoers" = "yes"; then
! 3393: AC_DEFINE(STATIC_SUDOERS_PLUGIN)
! 3394: SUDO_OBJS="${SUDO_OBJS} preload.o"
! 3395: STATIC_SUDOERS="\$(top_builddir)/plugins/sudoers/sudoers.la"
! 3396: SUDOERS_LDFLAGS="${SUDOERS_LDFLAGS} --tag=disable-shared -static"
! 3397: LT_STATIC=""
! 3398: else
! 3399: SUDO_OBJS="$SUDO_OBJS locale_stub.o"
! 3400: LT_STATIC="--tag=disable-static"
! 3401: fi
! 3402: ;;
! 3403: shl_load)
! 3404: AC_DEFINE(HAVE_SHL_LOAD)
! 3405: if test "$enable_static_sudoers" = "yes"; then
! 3406: AC_DEFINE(STATIC_SUDOERS_PLUGIN)
! 3407: SUDO_OBJS="${SUDO_OBJS} preload.o"
! 3408: STATIC_SUDOERS="\$(top_builddir)/plugins/sudoers/sudoers.la"
! 3409: SUDOERS_LDFLAGS="${SUDOERS_LDFLAGS} --tag=disable-shared -static"
! 3410: LT_STATIC=""
! 3411: else
! 3412: SUDO_OBJS="$SUDO_OBJS locale_stub.o"
! 3413: LT_STATIC="--tag=disable-static"
! 3414: fi
! 3415: ;;
! 3416: *)
! 3417: if test X"${ac_cv_func_dlopen}" = X"yes"; then
! 3418: AC_MSG_ERROR(["dlopen present but libtool doesn't appear to support your platform."])
! 3419: fi
! 3420: # Preload sudoers module symbols
! 3421: SUDO_OBJS="${SUDO_OBJS} preload.o"
! 3422: STATIC_SUDOERS="\$(top_builddir)/plugins/sudoers/sudoers.la"
! 3423: LT_STATIC=""
! 3424: ;;
! 3425: esac
! 3426:
! 3427: # On HP-UX, you cannot dlopen() a shared object that uses pthreads unless
! 3428: # the main program is linked against -lpthread. We have no knowledge of
! 3429: # what libraries a plugin may depend on (e.g. HP-UX LDAP which uses pthreads)
! 3430: # so always link against -lpthread on HP-UX if it is available.
! 3431: # This check should go after all other libraries tests.
! 3432: case "$host_os" in
! 3433: hpux*)
! 3434: AC_CHECK_LIB(pthread, main, [SUDO_LIBS="${SUDO_LIBS} -lpthread"])
! 3435: OSDEFS="${OSDEFS} -D_REENTRANT"
! 3436: ;;
! 3437: esac
! 3438:
! 3439: dnl
! 3440: dnl Check for log file, timestamp and iolog locations
! 3441: dnl
! 3442: if test "$utmp_style" = "LEGACY"; then
! 3443: SUDO_PATH_UTMP
! 3444: fi
! 3445: SUDO_LOGFILE
! 3446: SUDO_RUNDIR
! 3447: SUDO_VARDIR
! 3448: SUDO_IO_LOGDIR
! 3449:
! 3450: dnl
! 3451: dnl Turn warnings into errors.
! 3452: dnl All compiler/loader tests after this point will fail if
! 3453: dnl a warning is displayed (nornally, warnings are not fata).
! 3454: dnl
! 3455: AC_LANG_WERROR
! 3456:
! 3457: dnl
! 3458: dnl If compiler supports the -static-libgcc flag use it unless we have
! 3459: dnl GNU ld (which can avoid linking in libgcc when it is not needed).
! 3460: dnl This test relies on AC_LANG_WERROR
! 3461: dnl
! 3462: if test -n "$GCC" -a "$lt_cv_prog_gnu_ld" != "yes" -a -n "$GCC"; then
! 3463: AX_CHECK_COMPILE_FLAG([-static-libgcc], [LT_LDFLAGS="$LT_LDFLAGS -Wc,-static-libgcc"])
! 3464: fi
! 3465:
! 3466: dnl
! 3467: dnl Check for symbol visibility support.
! 3468: dnl This test relies on AC_LANG_WERROR
! 3469: dnl
! 3470: if test -n "$GCC"; then
! 3471: AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [
! 3472: AC_DEFINE(HAVE_DSO_VISIBILITY)
! 3473: CFLAGS="${CFLAGS} -fvisibility=hidden"
! 3474: LT_LDEXPORTS=
! 3475: LT_LDDEP=
! 3476: NO_VIZ=
! 3477: ])
! 3478: else
! 3479: case "$host_os" in
! 3480: hpux*)
! 3481: AX_CHECK_COMPILE_FLAG([-Bhidden_def], [
! 3482: AC_DEFINE(HAVE_DSO_VISIBILITY)
! 3483: CFLAGS="${CFLAGS} -Bhidden_def"
! 3484: LT_LDEXPORTS=
! 3485: LT_LDDEP=
! 3486: ])
! 3487: ;;
! 3488: solaris2*)
! 3489: AX_CHECK_COMPILE_FLAG([-xldscope=hidden], [
! 3490: AC_DEFINE(HAVE_DSO_VISIBILITY)
! 3491: CFLAGS="${CFLAGS} -xldscope=hidden"
! 3492: LT_LDEXPORTS=
! 3493: LT_LDDEP=
! 3494: ])
! 3495: ;;
! 3496: esac
! 3497: fi
! 3498:
! 3499: dnl
! 3500: dnl If the compiler doesn't have symbol visibility support, it may
! 3501: dnl support version scripts (only GNU and Solaris ld).
! 3502: dnl This test relies on AC_LANG_WERROR
! 3503: dnl
! 3504: if test -n "$LT_LDEXPORTS"; then
! 3505: if test "$lt_cv_prog_gnu_ld" = "yes"; then
! 3506: AC_CACHE_CHECK([whether ld supports anonymous map files],
! 3507: [sudo_cv_var_gnu_ld_anon_map],
! 3508: [
! 3509: sudo_cv_var_gnu_ld_anon_map=no
! 3510: cat > conftest.map <<-EOF
! 3511: {
! 3512: global: foo;
! 3513: local: *;
! 3514: };
! 3515: EOF
! 3516: _CFLAGS="$CFLAGS"
! 3517: CFLAGS="$CFLAGS $lt_prog_compiler_pic"
! 3518: _LDFLAGS="$LDFLAGS"
! 3519: LDFLAGS="$LDFLAGS -fpic -shared -Wl,--version-script,./conftest.map"
! 3520: AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foo;]], [[]])],
! 3521: [sudo_cv_var_gnu_ld_anon_map=yes])
! 3522: CFLAGS="$_CFLAGS"
! 3523: LDFLAGS="$_LDFLAGS"
! 3524: ]
! 3525: )
! 3526: if test "$sudo_cv_var_gnu_ld_anon_map" = "yes"; then
! 3527: LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,--version-script,\$(shlib_map)"
! 3528: fi
! 3529: else
! 3530: case "$host_os" in
! 3531: solaris2*)
! 3532: AC_CACHE_CHECK([whether ld supports anonymous map files],
! 3533: [sudo_cv_var_solaris_ld_anon_map],
! 3534: [
! 3535: sudo_cv_var_solaris_ld_anon_map=no
! 3536: cat > conftest.map <<-EOF
! 3537: {
! 3538: global: foo;
! 3539: local: *;
! 3540: };
! 3541: EOF
! 3542: _CFLAGS="$CFLAGS"
! 3543: CFLAGS="$CFLAGS $lt_prog_compiler_pic"
! 3544: _LDFLAGS="$LDFLAGS"
! 3545: LDFLAGS="$LDFLAGS -shared -Wl,-M,./conftest.map"
! 3546: AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foo;]], [[]])],
! 3547: [sudo_cv_var_solaris_ld_anon_map=yes])
! 3548: CFLAGS="$_CFLAGS"
! 3549: LDFLAGS="$_LDFLAGS"
! 3550: ]
! 3551: )
! 3552: if test "$sudo_cv_var_solaris_ld_anon_map" = "yes"; then
! 3553: LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,-M,\$(shlib_map)"
! 3554: fi
! 3555: ;;
! 3556: hpux*)
! 3557: AC_CACHE_CHECK([whether ld supports controlling exported symbols],
! 3558: [sudo_cv_var_hpux_ld_symbol_export],
! 3559: [
! 3560: sudo_cv_var_hpux_ld_symbol_export=no
! 3561: echo "+e foo" > conftest.opt
! 3562: _CFLAGS="$CFLAGS"
! 3563: CFLAGS="$CFLAGS $lt_prog_compiler_pic"
! 3564: _LDFLAGS="$LDFLAGS"
! 3565: if test -n "$GCC"; then
! 3566: LDFLAGS="$LDFLAGS -shared -Wl,-c,./conftest.opt"
! 3567: else
! 3568: LDFLAGS="$LDFLAGS -Wl,-b -Wl,-c,./conftest.opt"
! 3569: fi
! 3570: AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foo;]], [[]])],
! 3571: [sudo_cv_var_hpux_ld_symbol_export=yes])
! 3572: CFLAGS="$_CFLAGS"
! 3573: LDFLAGS="$_LDFLAGS"
! 3574: rm -f conftest.opt
! 3575: ]
! 3576: )
! 3577: if test "$sudo_cv_var_hpux_ld_symbol_export" = "yes"; then
! 3578: LT_LDEXPORTS=; LT_LDDEP="\$(shlib_opt)"; LT_LDOPT="-Wl,-c,\$(shlib_opt)"
! 3579: fi
! 3580: ;;
! 3581: esac
! 3582: fi
! 3583: fi
! 3584:
! 3585: dnl
! 3586: dnl Check for PIE executable support if using gcc.
! 3587: dnl This test relies on AC_LANG_WERROR
! 3588: dnl
! 3589: if test -n "$GCC"; then
! 3590: if test -z "$enable_pie"; then
! 3591: case "$host_os" in
! 3592: linux*)
! 3593: # Attempt to build with PIE support
! 3594: enable_pie="maybe"
! 3595: ;;
! 3596: esac
! 3597: fi
! 3598: if test -n "$enable_pie"; then
! 3599: if test "$enable_pie" = "no"; then
! 3600: AX_CHECK_COMPILE_FLAG([-fno-pie], [
! 3601: _CFLAGS="$CFLAGS"
! 3602: CFLAGS="$CFLAGS -fno-pie"
! 3603: AX_CHECK_LINK_FLAG([-nopie], [
! 3604: PIE_CFLAGS="-fno-pie"
! 3605: PIE_LDFLAGS="-nopie"
! 3606: ])
! 3607: CFLAGS="$_CFLAGS"
! 3608: ])
! 3609: else
! 3610: AX_CHECK_COMPILE_FLAG([-fPIE], [
! 3611: _CFLAGS="$CFLAGS"
! 3612: CFLAGS="$CFLAGS -fPIE"
! 3613: AX_CHECK_LINK_FLAG([-pie], [
! 3614: if test "$enable_pie" = "maybe"; then
! 3615: SUDO_WORKING_PIE([enable_pie=yes], [])
! 3616: fi
! 3617: if test "$enable_pie" = "yes"; then
! 3618: PIE_CFLAGS="-fPIE"
! 3619: PIE_LDFLAGS="-Wc,-fPIE -pie"
! 3620: fi
! 3621: ])
! 3622: CFLAGS="$_CFLAGS"
! 3623: ])
! 3624: fi
! 3625: fi
! 3626: fi
! 3627: if test "$enable_pie" != "yes"; then
! 3628: # Solaris 11.1 and higher supports tagging binaries to use ASLR
! 3629: case "$host_os" in
! 3630: solaris2.1[[1-9]]|solaris2.[[2-9]][[0-9]])
! 3631: AX_CHECK_LINK_FLAG([-Wl,-z,aslr], [PIE_LDFLAGS="${PIE_LDFLAGS}${PIE_LDFLAGS+ }-Wl,-z,aslr"])
! 3632: ;;
! 3633: esac
! 3634: fi
! 3635:
! 3636: dnl
! 3637: dnl Check for -fstack-protector and -z relro support
! 3638: dnl This test relies on AC_LANG_WERROR
! 3639: dnl
! 3640: if test "$enable_hardening" != "no"; then
! 3641: if test -n "$GCC"; then
! 3642: AX_CHECK_COMPILE_FLAG([-fstack-protector-strong], [
! 3643: AX_CHECK_LINK_FLAG([-fstack-protector-strong], [
! 3644: SSP_CFLAGS="-fstack-protector-strong"
! 3645: SSP_LDFLAGS="-Wc,-fstack-protector-strong"
! 3646: ])
! 3647: ])
! 3648: if test -z "$SSP_CFLAGS"; then
! 3649: AX_CHECK_COMPILE_FLAG([-fstack-protector-all], [
! 3650: AX_CHECK_LINK_FLAG([-fstack-protector-all], [
! 3651: SSP_CFLAGS="-fstack-protector-all"
! 3652: SSP_LDFLAGS="-Wc,-fstack-protector-all"
! 3653: ])
! 3654: ])
! 3655: if test -z "$SSP_CFLAGS"; then
! 3656: AX_CHECK_COMPILE_FLAG([-fstack-protector], [
! 3657: AX_CHECK_LINK_FLAG([-fstack-protector], [
! 3658: SSP_CFLAGS="-fstack-protector"
! 3659: SSP_LDFLAGS="-Wc,-fstack-protector"
! 3660: ])
! 3661: ])
! 3662: fi
! 3663: fi
! 3664: fi
! 3665: AX_CHECK_LINK_FLAG([-Wl,-z,relro], [LDFLAGS="${LDFLAGS} -Wl,-z,relro"])
! 3666: fi
! 3667:
! 3668: dnl
! 3669: dnl Use passwd auth module?
! 3670: dnl
! 3671: case "$with_passwd" in
! 3672: yes|maybe)
! 3673: AUTH_OBJS="$AUTH_OBJS getspwuid.lo passwd.lo"
! 3674: ;;
! 3675: *)
! 3676: AC_DEFINE(WITHOUT_PASSWD)
! 3677: if test -z "$AUTH_OBJS"; then
! 3678: AC_MSG_ERROR([no authentication methods defined.])
! 3679: fi
! 3680: ;;
! 3681: esac
! 3682: AUTH_OBJS=${AUTH_OBJS# }
! 3683: _AUTH=`echo "$AUTH_OBJS" | sed -e 's/\.lo//g' -e 's/getspwuid *//'`
! 3684: AC_MSG_NOTICE([using the following authentication methods: $_AUTH])
! 3685:
! 3686: dnl
! 3687: dnl LIBS may contain duplicates from SUDO_LIBS, SUDOERS_LIBS, or NET_LIBS
! 3688: dnl
! 3689: if test -n "$LIBS"; then
! 3690: L="$LIBS"
! 3691: LIBS=
! 3692: for l in ${L}; do
! 3693: dupe=0
! 3694: for sl in ${SUDO_LIBS} ${SUDOERS_LIBS} ${NET_LIBS}; do
! 3695: test $l = $sl && dupe=1
! 3696: done
! 3697: test $dupe = 0 && LIBS="${LIBS} $l"
! 3698: done
! 3699: fi
! 3700:
! 3701: dnl
! 3702: dnl OS-specific initialization
! 3703: dnl
! 3704: AC_DEFINE_UNQUOTED(os_init, $OS_INIT, [Define to an OS-specific initialization function or `os_init_common'.])
! 3705:
! 3706: dnl
! 3707: dnl We add -Wall and -Werror after all tests so they don't cause failures
! 3708: dnl
! 3709: if test -n "$GCC"; then
! 3710: if test X"$enable_warnings" = X"yes" -o X"$with_devel" = X"yes"; then
! 3711: CFLAGS="${CFLAGS} -Wall -Wsign-compare -Wold-style-definition -Wpointer-arith"
! 3712: fi
! 3713: if test X"$enable_werror" = X"yes"; then
! 3714: CFLAGS="${CFLAGS} -Werror"
! 3715: fi
! 3716: fi
! 3717:
! 3718: dnl
! 3719: dnl Skip regress tests and sudoers sanity check if cross compiling.
! 3720: dnl
! 3721: CROSS_COMPILING="$cross_compiling"
! 3722:
! 3723: dnl
! 3724: dnl Set exec_prefix
! 3725: dnl
! 3726: test "$exec_prefix" = "NONE" && exec_prefix='$(prefix)'
! 3727:
! 3728: dnl
! 3729: dnl Defer setting _PATH_SUDO_NOEXEC until after exec_prefix is set
! 3730: dnl XXX - this is gross!
! 3731: dnl
! 3732: if test X"$with_noexec" != X"no" -o X"$with_selinux" != X"no" -o "$enabled_shared" != X"no"; then
! 3733: oexec_prefix="$exec_prefix"
! 3734: if test "$exec_prefix" = '$(prefix)'; then
! 3735: if test "$prefix" = "NONE"; then
! 3736: exec_prefix="$ac_default_prefix"
! 3737: else
! 3738: exec_prefix="$prefix"
! 3739: fi
! 3740: fi
! 3741: if test X"$with_noexec" != X"no"; then
! 3742: PROGS="${PROGS} libsudo_noexec.la"
! 3743: INSTALL_NOEXEC="install-noexec"
! 3744:
! 3745: noexec_file="$with_noexec"
! 3746: _noexec_file=
! 3747: while test X"$noexec_file" != X"$_noexec_file"; do
! 3748: _noexec_file="$noexec_file"
! 3749: eval noexec_file="$_noexec_file"
! 3750: done
! 3751: SUDO_DEFINE_UNQUOTED(_PATH_SUDO_NOEXEC, "$noexec_file", [The fully qualified pathname of sudo_noexec.so])
! 3752: fi
! 3753: if test X"$with_selinux" != X"no"; then
! 3754: sesh_file="$libexecdir/sudo/sesh"
! 3755: _sesh_file=
! 3756: while test X"$sesh_file" != X"$_sesh_file"; do
! 3757: _sesh_file="$sesh_file"
! 3758: eval sesh_file="$_sesh_file"
! 3759: done
! 3760: SUDO_DEFINE_UNQUOTED(_PATH_SUDO_SESH, "$sesh_file")
! 3761: fi
! 3762: if test X"$enable_shared" != X"no"; then
! 3763: PLUGINDIR="$with_plugindir"
! 3764: _PLUGINDIR=
! 3765: while test X"$PLUGINDIR" != X"$_PLUGINDIR"; do
! 3766: _PLUGINDIR="$PLUGINDIR"
! 3767: eval PLUGINDIR="$_PLUGINDIR"
! 3768: done
! 3769: SUDO_DEFINE_UNQUOTED(_PATH_SUDO_PLUGIN_DIR, "$PLUGINDIR/")
! 3770: fi
! 3771: exec_prefix="$oexec_prefix"
! 3772: fi
! 3773: if test X"$with_selinux" = X"no"; then
! 3774: SUDO_DEFINE_UNQUOTED(_PATH_SUDO_SESH, NULL)
! 3775: fi
! 3776:
! 3777: dnl
! 3778: dnl Add -R options to LDFLAGS, etc.
! 3779: dnl
! 3780: if test X"$LDFLAGS_R" != X""; then
! 3781: LDFLAGS="$LDFLAGS $LDFLAGS_R"
! 3782: fi
! 3783: if test X"$SUDOERS_LDFLAGS_R" != X""; then
! 3784: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS $SUDOERS_LDFLAGS_R"
! 3785: fi
! 3786: if test X"$ZLIB_R" != X""; then
! 3787: ZLIB="$ZLIB_R $ZLIB"
! 3788: fi
! 3789:
! 3790: dnl
! 3791: dnl Override default configure dirs for the Makefile
! 3792: dnl
! 3793: if test X"$prefix" = X"NONE"; then
! 3794: test "$mandir" = '${datarootdir}/man' && mandir='$(prefix)/man'
! 3795: else
! 3796: test "$mandir" = '${datarootdir}/man' && mandir='$(datarootdir)/man'
! 3797: fi
! 3798: test "$bindir" = '${exec_prefix}/bin' && bindir='$(exec_prefix)/bin'
! 3799: test "$sbindir" = '${exec_prefix}/sbin' && sbindir='$(exec_prefix)/sbin'
! 3800: test "$libexecdir" = '${exec_prefix}/libexec' && libexecdir='$(exec_prefix)/libexec'
! 3801: test "$includedir" = '${prefix}/include' && includedir='$(prefix)/include'
! 3802: test "$datarootdir" = '${prefix}/share' && datarootdir='$(prefix)/share'
! 3803: test "$docdir" = '${datarootdir}/doc/${PACKAGE_TARNAME}' && docdir='$(datarootdir)/doc/$(PACKAGE_TARNAME)'
! 3804: test "$localedir" = '${datarootdir}/locale' && localedir='$(datarootdir)/locale'
! 3805: test "$localstatedir" = '${prefix}/var' && localstatedir='$(prefix)/var'
! 3806: test "$sysconfdir" = '${prefix}/etc' -a X"$with_stow" != X"yes" && sysconfdir='/etc'
! 3807:
! 3808: dnl
! 3809: dnl Substitute into the Makefile and man pages
! 3810: dnl
! 3811: AC_CONFIG_FILES([Makefile common/Makefile compat/Makefile doc/Makefile include/Makefile init.d/aix.sh init.d/hpux.sh src/sudo_usage.h src/Makefile plugins/sample/Makefile plugins/group_file/Makefile plugins/system_group/Makefile plugins/sudoers/Makefile plugins/sudoers/sudoers])
! 3812: AC_OUTPUT
! 3813:
! 3814: dnl
! 3815: dnl Spew any text the user needs to know about
! 3816: dnl
! 3817: if test "$with_pam" = "yes"; then
! 3818: case $host_os in
! 3819: hpux*)
! 3820: if test -f /usr/lib/security/libpam_hpsec.so.1; then
! 3821: AC_MSG_NOTICE([You may wish to add the following line to /etc/pam.conf])
! 3822: AC_MSG_NOTICE([sudo session required libpam_hpsec.so.1 bypass_umask bypass_last_login])
! 3823: fi
! 3824: ;;
! 3825: linux*)
! 3826: AC_MSG_NOTICE([You will need to customize sample.pam and install it as /etc/pam.d/sudo])
! 3827: ;;
! 3828: esac
! 3829: fi
! 3830: dnl
! 3831: dnl Warn user if they may need to clear rundir manually.
! 3832: dnl
! 3833: case "$rundir" in
! 3834: /var/run*)
! 3835: clear_rundir=0
! 3836: ;;
! 3837: *)
! 3838: clear_rundir=1
! 3839: ;;
! 3840: esac
! 3841: if test $clear_rundir -eq 1; then
! 3842: AC_MSG_NOTICE([Warning: the $rundir/ts directory must be cleared at boot time.])
! 3843: AC_MSG_NOTICE([ You may need to create a startup item to do this.])
! 3844: fi
! 3845:
! 3846: dnl
! 3847: dnl Autoheader templates
! 3848: dnl
! 3849: AH_TEMPLATE(BROKEN_SYSLOG, [Define to 1 if the `syslog' function returns a non-zero int to denote failure.])
! 3850: AH_TEMPLATE(CLASSIC_INSULTS, [Define to 1 if you want the insults from the "classic" version sudo.])
! 3851: AH_TEMPLATE(CSOPS_INSULTS, [Define to 1 if you want insults culled from the twisted minds of CSOps.])
! 3852: AH_TEMPLATE(DONT_LEAK_PATH_INFO, [Define to 1 if you want sudo to display "command not allowed" instead of "command not found" when a command cannot be found.])
! 3853: AH_TEMPLATE(ENV_DEBUG, [Define to 1 to enable environment function debugging.])
! 3854: AH_TEMPLATE(ENV_EDITOR, [Define to 1 if you want visudo to honor the EDITOR and VISUAL env variables.])
! 3855: AH_TEMPLATE(FQDN, [Define to 1 if you want to require fully qualified hosts in sudoers.])
! 3856: AH_TEMPLATE(ENV_RESET, [Define to 1 to enable environment resetting by default.])
! 3857: AH_TEMPLATE(GOONS_INSULTS, [Define to 1 if you want insults from the "Goon Show".])
! 3858: AH_TEMPLATE(HAL_INSULTS, [Define to 1 if you want 2001-like insults.])
! 3859: AH_TEMPLATE(HAVE_AFS, [Define to 1 if you use AFS.])
! 3860: AH_TEMPLATE(HAVE_AIXAUTH, [Define to 1 if you use AIX general authentication.])
! 3861: AH_TEMPLATE(HAVE_BSD_AUTH_H, [Define to 1 if you use BSD authentication.])
! 3862: AH_TEMPLATE(HAVE_BSM_AUDIT, [Define to 1 to enable BSM audit support.])
! 3863: AH_TEMPLATE(HAVE_DCE, [Define to 1 if you use OSF DCE.])
! 3864: AH_TEMPLATE(HAVE_DD_FD, [Define to 1 if your `DIR' contains dd_fd.])
! 3865: AH_TEMPLATE(HAVE_DIRFD, [Define to 1 if you have the `dirfd' function or macro.])
! 3866: AH_TEMPLATE(HAVE_DISPCRYPT, [Define to 1 if you have the `dispcrypt' function.])
! 3867: AH_TEMPLATE(HAVE_DLOPEN, [Define to 1 if you have the `dlopen' function.])
! 3868: AH_TEMPLATE(HAVE_FCNTL_CLOSEM, [Define to 1 if your system has the F_CLOSEM fcntl.])
! 3869: AH_TEMPLATE(HAVE_FNMATCH, [Define to 1 if you have the `fnmatch' function.])
! 3870: AH_TEMPLATE(HAVE_FWTK, [Define to 1 if you use the FWTK authsrv daemon.])
! 3871: AH_TEMPLATE(HAVE_GETAUTHUID, [Define to 1 if you have the `getauthuid' function. (ULTRIX 4.x shadow passwords).])
! 3872: AH_TEMPLATE(HAVE_GETPRPWNAM, [Define to 1 if you have the `getprpwnam' function. (SecureWare-style shadow passwords).])
! 3873: AH_TEMPLATE(HAVE_GETPWANAM, [Define to 1 if you have the `getpwanam' function. (SunOS 4.x shadow passwords).])
! 3874: AH_TEMPLATE(HAVE_GETSPNAM, [Define to 1 if you have the `getspnam' function (SVR4-style shadow passwords).])
! 3875: AH_TEMPLATE(HAVE_GETSPWUID, [Define to 1 if you have the `getspwuid' function. (HP-UX <= 9.X shadow passwords).])
! 3876: AH_TEMPLATE(HAVE_GSS_KRB5_CCACHE_NAME, [Define to 1 if you have the `gss_krb5_ccache_name' function.])
! 3877: AH_TEMPLATE(HAVE_HEIMDAL, [Define to 1 if your Kerberos is Heimdal.])
! 3878: AH_TEMPLATE(HAVE_INET_PTON, [Define to 1 if you have the `inet_pton' function.])
! 3879: AH_TEMPLATE(HAVE_ISCOMSEC, [Define to 1 if you have the `iscomsec' function. (HP-UX >= 10.x check for shadow enabled).])
! 3880: AH_TEMPLATE(HAVE_ISSECURE, [Define to 1 if you have the `issecure' function. (SunOS 4.x check for shadow enabled).])
! 3881: AH_TEMPLATE(HAVE_KERB5, [Define to 1 if you use Kerberos V.])
! 3882: AH_TEMPLATE(HAVE_KRB5_GET_INIT_CREDS_OPT_ALLOC, [Define to 1 if you have the `krb5_get_init_creds_opt_alloc' function.])
! 3883: AH_TEMPLATE(HAVE_KRB5_GET_INIT_CREDS_OPT_FREE_TWO_ARGS, [Define to 1 if your `krb5_get_init_creds_opt_free' function takes two arguments.])
! 3884: AH_TEMPLATE(HAVE_KRB5_INIT_SECURE_CONTEXT, [Define to 1 if you have the `krb5_init_secure_context' function.])
! 3885: AH_TEMPLATE(HAVE_KRB5_VERIFY_USER, [Define to 1 if you have the `krb5_verify_user' function.])
! 3886: AH_TEMPLATE(HAVE_LBER_H, [Define to 1 if your LDAP needs <lber.h>. (OpenLDAP does not).])
! 3887: AH_TEMPLATE(HAVE_LDAP, [Define to 1 if you use LDAP for sudoers.])
! 3888: AH_TEMPLATE(HAVE_LIBINTL_H, [Define to 1 if you have the <libintl.h> header file.])
! 3889: AH_TEMPLATE(HAVE_LINUX_AUDIT, [Define to 1 to enable Linux audit support.])
! 3890: AH_TEMPLATE(HAVE_SSSD, [Define to 1 to enable SSSD support.])
! 3891: AH_TEMPLATE(HAVE_OPIE, [Define to 1 if you use NRL OPIE.])
! 3892: AH_TEMPLATE(HAVE_OPTRESET, [Define to 1 if you have the `optreset' symbol.])
! 3893: AH_TEMPLATE(HAVE_PAM, [Define to 1 if you use PAM authentication.])
! 3894: AH_TEMPLATE(HAVE_PAM_LOGIN, [Define to 1 if you use a specific PAM session for sudo -i.])
! 3895: AH_TEMPLATE(HAVE_PROJECT_H, [Define to 1 if you have the <project.h> header file.])
! 3896: AH_TEMPLATE(HAVE_SECURID, [Define to 1 if you use SecurID for authentication.])
! 3897: AH_TEMPLATE(HAVE_SELINUX, [Define to 1 to enable SELinux RBAC support.])
! 3898: AH_TEMPLATE(HAVE_SETKEYCREATECON, [Define to 1 if you have the `setkeycreatecon' function.])
! 3899: AH_TEMPLATE(HAVE_SHL_LOAD, [Define to 1 if you have the `shl_load' function.])
! 3900: AH_TEMPLATE(HAVE_SKEY, [Define to 1 if you use S/Key.])
! 3901: AH_TEMPLATE(HAVE_SKEYACCESS, [Define to 1 if your S/Key library has skeyaccess().])
! 3902: AH_TEMPLATE(HAVE_RFC1938_SKEYCHALLENGE, [Define to 1 if the skeychallenge() function is RFC1938-compliant and takes 4 arguments.])
! 3903: AH_TEMPLATE(HAVE_ST__TIM, [Define to 1 if your struct stat uses an st__tim union.])
! 3904: AH_TEMPLATE(HAVE_ST_MTIM, [Define to 1 if your struct stat has an st_mtim member.])
! 3905: AH_TEMPLATE(HAVE_ST_MTIMESPEC, [Define to 1 if your struct stat has an st_mtimespec member.])
! 3906: AH_TEMPLATE(HAVE___PROGNAME, [Define to 1 if your crt0.o defines the __progname symbol for you.])
! 3907: AH_TEMPLATE(HOST_IN_LOG, [Define to 1 if you want the hostname to be entered into the log file.])
! 3908: AH_TEMPLATE(IGNORE_DOT_PATH, [Define to 1 if you want to ignore '.' and empty PATH elements.])
! 3909: AH_TEMPLATE(LOGGING, [Define to SLOG_SYSLOG, SLOG_FILE, or SLOG_BOTH.])
! 3910: AH_TEMPLATE(LONG_OTP_PROMPT, [Define to 1 if you want a two line OTP (S/Key or OPIE) prompt.])
! 3911: AH_TEMPLATE(NO_AUTHENTICATION, [Define to 1 if you don't want sudo to prompt for a password by default.])
! 3912: AH_TEMPLATE(NO_LECTURE, [Define to 1 if you don't want users to get the lecture the first they user sudo.])
! 3913: AH_TEMPLATE(NO_PAM_SESSION, [Define to 1 if you don't want to use sudo's PAM session support.])
! 3914: AH_TEMPLATE(NO_ROOT_MAILER, [Define to avoid runing the mailer as root.])
! 3915: AH_TEMPLATE(NO_ROOT_SUDO, [Define to 1 if root should not be allowed to use sudo.])
! 3916: AH_TEMPLATE(NO_TTY_TICKETS, [Define to 1 if you want a single ticket file instead of per-tty files.])
! 3917: AH_TEMPLATE(PC_INSULTS, [Define to 1 to replace politically incorrect insults with less offensive ones.])
! 3918: AH_TEMPLATE(SECURE_PATH, [Define to 1 to override the user's path with a built-in one.])
! 3919: AH_TEMPLATE(SEND_MAIL_WHEN_NOT_OK, [Define to 1 to send mail when the user is not allowed to run a command.])
! 3920: AH_TEMPLATE(SEND_MAIL_WHEN_NO_HOST, [Define to 1 to send mail when the user is not allowed to run sudo on this host.])
! 3921: AH_TEMPLATE(SEND_MAIL_WHEN_NO_USER, [Define to 1 to send mail when the user is not in the sudoers file.])
! 3922: AH_TEMPLATE(SHELL_IF_NO_ARGS, [Define to 1 if you want sudo to start a shell if given no arguments.])
! 3923: AH_TEMPLATE(SHELL_SETS_HOME, [Define to 1 if you want sudo to set $HOME in shell mode.])
! 3924: AH_TEMPLATE(STATIC_SUDOERS_PLUGIN, [Define to 1 to compile the sudoers plugin statically into the sudo binary.])
! 3925: AH_TEMPLATE(STUB_LOAD_INTERFACES, [Define to 1 if the code in interfaces.c does not compile for you.])
! 3926: AH_TEMPLATE(UMASK_OVERRIDE, [Define to 1 to use the umask specified in sudoers even when it is less restrictive than the invoking user's.])
! 3927: AH_TEMPLATE(USE_ADMIN_FLAG, [Define to 1 if you want to create ~/.sudo_as_admin_successful if the user is in the admin group the first time they run sudo.])
! 3928: AH_TEMPLATE(USE_INSULTS, [Define to 1 if you want to insult the user for entering an incorrect password.])
! 3929: AH_TEMPLATE(USE_STOW, [Define to 1 if you use GNU stow packaging.])
! 3930: AH_TEMPLATE(WITHOUT_PASSWD, [Define to avoid using the passwd/shadow file for authentication.])
! 3931: AH_TEMPLATE(clockid_t, [Define to `int' if <time.h> does not define.])
! 3932: AH_TEMPLATE(sig_atomic_t, [Define to `int' if <signal.h> does not define.])
! 3933: AH_TEMPLATE(socklen_t, [Define to `unsigned int' if <sys/socket.h> doesn't define.])
! 3934: AH_TEMPLATE(HAVE_STRUCT_UTMP_UT_EXIT, [Define to 1 if `ut_exit' is a member of `struct utmp'.])
! 3935: AH_TEMPLATE(HAVE_STRUCT_UTMPX_UT_EXIT, [Define to 1 if `ut_exit' is a member of `struct utmpx'.])
! 3936: AH_TEMPLATE(HAVE___FUNC__, [Define to 1 if the compiler supports the C99 __func__ variable.])
! 3937: AH_TEMPLATE(HAVE___INTERPOSE, [Define to 1 if you have dyld with __interpose attribute support.])
! 3938: AH_TEMPLATE(SUDO_KRB5_INSTANCE, [An instance string to append to the username (separated by a slash) for Kerberos V authentication.])
! 3939: AH_TEMPLATE(RTLD_PRELOAD_VAR, [The environment variable that controls preloading of dynamic objects.])
! 3940: AH_TEMPLATE(RTLD_PRELOAD_ENABLE_VAR, [An extra environment variable that is required to enable preloading (if any).])
! 3941: AH_TEMPLATE(RTLD_PRELOAD_DELIM, [The delimiter to use when defining multiple preloaded objects.])
! 3942: AH_TEMPLATE(RTLD_PRELOAD_DEFAULT, [The default value of preloaded objects (if any).])
! 3943: AH_TEMPLATE(HAVE_DSO_VISIBILITY, [Define to 1 if the compiler supports the __visibility__ attribute.])
! 3944: AH_TEMPLATE(HAVE_SYS_SIGABBREV, [Define to 1 if your libc has the `sys_sigabbrev' symbol.])
! 3945: AH_TEMPLATE(HAVE_NSS_SEARCH, [Define to 1 if you have the `nss_search' function.])
! 3946: AH_TEMPLATE(HAVE__NSS_INITF_GROUP, [Define to 1 if you have the `_nss_initf_group' function.])
! 3947: AH_TEMPLATE(HAVE___NSS_INITF_GROUP, [Define to 1 if you have the `__nss_initf_group' function.])
! 3948: AH_TEMPLATE(HAVE__NSS_XBYY_BUF_ALLOC, [Define to 1 if you have the `_nss_XbyY_buf_alloc' function.])
! 3949: AH_TEMPLATE(HAVE___NSS_XBYY_BUF_ALLOC, [Define to 1 if you have the `__nss_XbyY_buf_alloc' function.])
! 3950:
! 3951: dnl
! 3952: dnl Bits to copy verbatim into config.h.in
! 3953: dnl
! 3954: AH_TOP([#ifndef _SUDO_CONFIG_H
! 3955: #define _SUDO_CONFIG_H])
! 3956:
! 3957: AH_BOTTOM([/* BSD compatibility on some SVR4 systems. */
! 3958: #ifdef __svr4__
! 3959: # define BSD_COMP
! 3960: #endif /* __svr4__ */
! 3961:
! 3962: #endif /* _SUDO_CONFIG_H */])
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>