[BACK]Return to configure.in CVS log [TXT][DIR] Up to [local] / src / usr.bin / sudo

Annotation of src/usr.bin/sudo/configure.in, Revision 1.1.1.1

1.1       millert     1: dnl
                      2: dnl Process this file with GNU autoconf to produce a configure script.
                      3: dnl $Sudo: configure.in,v 1.291 1999/11/08 22:45:42 millert Exp $
                      4: dnl
                      5: dnl Copyright (c) 1994-1996,1998-1999 Todd C. Miller <Todd.Miller@courtesan.com>
                      6: dnl
                      7: AC_INIT(sudo.h)
                      8: AC_CONFIG_HEADER(config.h pathnames.h)
                      9: dnl
                     10: dnl This won't work before AC_INIT()
                     11: dnl
                     12: echo "Configuring Sudo version 1.6"
                     13: dnl
                     14: dnl Variables that get substituted in the Makefile
                     15: dnl
                     16: AC_SUBST(CFLAGS)dnl must not initialize CFLAGS, it is magic
                     17: PROGS="sudo visudo"
                     18: AC_SUBST(PROGS)dnl
                     19: CPPFLAGS=""
                     20: AC_SUBST(CPPFLAGS)dnl
                     21: LDFLAGS=""
                     22: AC_SUBST(LDFLAGS)dnl
                     23: SUDO_LDFLAGS=""
                     24: AC_SUBST(SUDO_LDFLAGS)dnl
                     25: LIBS=""
                     26: AC_SUBST(LIBS)dnl
                     27: SUDO_LIBS=""
                     28: AC_SUBST(SUDO_LIBS)dnl
                     29: NET_LIBS=""
                     30: AC_SUBST(NET_LIBS)dnl
                     31: AFS_LIBS=""
                     32: AC_SUBST(AFS_LIBS)dnl
                     33: OSDEFS=""
                     34: AC_SUBST(OSDEFS)dnl
                     35: AUTH_OBJS=""
                     36: AC_SUBST(AUTH_OBJS)dnl
                     37: LIBOBJS=""
                     38: AC_SUBST(LIBOBJS)dnl
                     39: MANTYPE="man"
                     40: AC_SUBST(MANTYPE)dnl
                     41: MAN_POSTINSTALL=""
                     42: AC_SUBST(MAN_POSTINSTALL)dnl
                     43: SUDOERS_MODE=0440
                     44: AC_SUBST(SUDOERS_MODE)dnl
                     45: SUDOERS_UID=0
                     46: AC_SUBST(SUDOERS_UID)dnl
                     47: SUDOERS_GID=0
                     48: AC_SUBST(SUDOERS_GID)dnl
                     49: DEV="#"
                     50: AC_SUBST(DEV)
                     51: CHECKSHADOW=true
                     52: CHECKSIA=true
                     53:
                     54: dnl
                     55: dnl Override default configure dirs...
                     56: dnl
                     57: test "$mandir" = '${prefix}/man' && mandir='$(prefix)/man'
                     58: test "$bindir" = '${exec_prefix}/bin' && bindir='$(exec_prefix)/bin'
                     59: test "$sbindir" = '${exec_prefix}/sbin' && sbindir='$(exec_prefix)/sbin'
                     60: test "$sysconfdir" = '${prefix}/etc' && sysconfdir='/etc'
                     61:
                     62: dnl
                     63: dnl Deprecated --with options (these all warn or generate an error)
                     64: dnl
                     65:
                     66: AC_ARG_WITH(otp-only, [  --with-otp-only         deprecated],
                     67: [case $with_otp_only in
                     68:     yes)       with_passwd=no
                     69:                AC_DEFINE(WITHOUT_PASSWD)
                     70:                AC_MSG_WARN([--with-otp-only option deprecated, treating as --without-passwd])
                     71:                ;;
                     72: esac])
                     73:
                     74: AC_ARG_WITH(alertmail, [  --with-alertmail        deprecated],
                     75: [case $with_alertmail in
                     76:     *)         with_mailto="$with_alertmail"
                     77:                AC_DEFINE(WITHOUT_PASSWD)
                     78:                AC_MSG_WARN([--with-alertmail option deprecated, treating as --mailto])
                     79:                ;;
                     80: esac])
                     81:
                     82: dnl
                     83: dnl Options for --with
                     84: dnl
                     85:
                     86: AC_ARG_WITH(CC, [  --with-CC               C compiler to use],
                     87: [case $with_CC in
                     88:     yes)       AC_MSG_ERROR(["must give --with-CC an argument."])
                     89:                ;;
                     90:     no)                AC_MSG_ERROR(["illegal argument: --without-CC."])
                     91:                ;;
                     92:     *)         CC=$with_CC
                     93:                ;;
                     94: esac])
                     95:
                     96: AC_ARG_WITH(incpath, [  --with-incpath          additional places to look for include files],
                     97: [case $with_incpath in
                     98:     yes)       AC_MSG_ERROR(["must give --with-incpath an argument."])
                     99:                ;;
                    100:     no)                AC_MSG_ERROR(["--without-incpath not supported."])
                    101:                ;;
                    102:     *)         echo "Adding ${with_incpath} to CPPFLAGS"
                    103:                for i in ${with_incpath}; do
                    104:                    CPPFLAGS="${CPPFLAGS} -I${i}"
                    105:                done
                    106:                ;;
                    107: esac])
                    108:
                    109: AC_ARG_WITH(libpath, [  --with-libpath          additional places to look for libraries],
                    110: [case $with_libpath in
                    111:     yes)       AC_MSG_ERROR(["must give --with-libpath an argument."])
                    112:                ;;
                    113:     no)                AC_MSG_ERROR(["--without-libpath not supported."])
                    114:                ;;
                    115:     *)         echo "Adding ${with_libpath} to LDFLAGS"
                    116:                for i in ${with_libpath}; do
                    117:                    LDFLAGS="${LDFLAGS} -L${i}"
                    118:                done
                    119:                ;;
                    120: esac])
                    121:
                    122: AC_ARG_WITH(libraries, [  --with-libraries        additional libraries to link with],
                    123: [case $with_libraries in
                    124:     yes)       AC_MSG_ERROR(["must give --with-libraries an argument."])
                    125:                ;;
                    126:     no)                AC_MSG_ERROR(["--without-libraries not supported."])
                    127:                ;;
                    128:     *)         echo "Adding ${with_libraries} to LIBS"
                    129:                for i in ${with_libraries}; do
                    130:                    case $i in
                    131:                        -l*)    ;;
                    132:                        *.a)    ;;
                    133:                        *.o)    ;;
                    134:                        *)      i="-l${i}";;
                    135:                    esac
                    136:                    LIBS="${LIBS} ${i}"
                    137:                done
                    138:                ;;
                    139: esac])
                    140:
                    141: AC_ARG_WITH(devel, [  --with-devel            add developement options],
                    142: [case $with_devel in
                    143:     yes)       echo 'Setting up for developement: -Wall, flex, yacc'
                    144:                PROGS="${PROGS} testsudoers"
                    145:                OSDEFS="${OSDEFS} -DSUDO_DEVEL"
                    146:                DEV=""
                    147:                ;;
                    148:     no)                ;;
                    149:     *)         echo "Ignoring unknown argument to --with-devel: $with_csops"
                    150:                ;;
                    151: esac])
                    152:
                    153: AC_ARG_WITH(csops, [  --with-csops            add CSOps standard options],
                    154: [case $with_csops in
                    155:     yes)       echo 'Adding CSOps standard options'
                    156:                CHECKSIA=false
                    157:                with_ignore_dot=yes
                    158:                with_insults=yes
                    159:                with_classic_insults=yes
                    160:                with_csops_insults=yes
                    161:                with_env_editor=yes
                    162:                ;;
                    163:     no)                ;;
                    164:     *)         echo "Ignoring unknown argument to --with-csops: $with_csops"
                    165:                ;;
                    166: esac])
                    167:
                    168: AC_ARG_WITH(passwd, [  --without-passwd        don't use passwd/shadow file for authentication],
                    169: [case $with_passwd in
                    170:     yes)       ;;
                    171:     no)                AC_DEFINE(WITHOUT_PASSWD)
                    172:                AC_MSG_CHECKING(whether to use shadow/passwd file authentication)
                    173:                AC_MSG_RESULT(no)
                    174:                ;;
                    175:     *)         AC_MSG_ERROR(["Sorry, --with-passwd does not take an argument."])
                    176:                ;;
                    177: esac])
                    178:
                    179: AC_ARG_WITH(skey, [  --with-skey             enable S/Key support ],
                    180: [case $with_skey in
                    181:     yes)       if test -n "$with_opie"; then
                    182:                    AC_MSG_ERROR(["cannot use both S/Key and OPIE"])
                    183:                fi
                    184:                AC_DEFINE(HAVE_SKEY)
                    185:                AC_MSG_CHECKING(whether to try S/Key authentication)
                    186:                AC_MSG_RESULT(yes)
                    187:                AUTH_OBJS="${AUTH_OBJS} rfc1938.o"
                    188:                ;;
                    189:     no)                ;;
                    190:     *)         echo "Ignoring unknown argument to --with-skey: $with_skey"
                    191:                ;;
                    192: esac])
                    193:
                    194: AC_ARG_WITH(opie, [  --with-opie             enable OPIE support ],
                    195: [case $with_opie in
                    196:     yes)       if test -n "$with_skey"; then
                    197:                    AC_MSG_ERROR(["cannot use both S/Key and OPIE"])
                    198:                fi
                    199:                AC_DEFINE(HAVE_OPIE)
                    200:                AC_MSG_CHECKING(whether to try NRL OPIE authentication)
                    201:                AC_MSG_RESULT(yes)
                    202:                AUTH_OBJS="${AUTH_OBJS} rfc1938.o"
                    203:                ;;
                    204:     no)                ;;
                    205:     *)         echo "Ignoring unknown argument to --with-opie: $with_opie"
                    206:                ;;
                    207: esac])
                    208:
                    209: AC_ARG_WITH(long-otp-prompt, [  --with-long-otp-prompt  use a two line OTP (skey/opie) prompt],
                    210: [case $with_long_otp_prompt in
                    211:     yes)       AC_DEFINE(LONG_OTP_PROMPT)
                    212:                AC_MSG_CHECKING(whether to use a two line prompt for OTP authentication)
                    213:                AC_MSG_RESULT(yes)
                    214:                ;;
                    215:     no)                ;;
                    216:     *)         AC_MSG_ERROR(["--with-long-otp-prompt does not take an argument."])
                    217:                ;;
                    218: esac])
                    219:
                    220: AC_ARG_WITH(SecurID, [  --with-SecurID          enable SecurID support],
                    221: [case $with_SecurID in
                    222:     no)                ;;
                    223:     *)         AC_DEFINE(HAVE_SECURID)
                    224:                AC_MSG_CHECKING(whether to use SecurID for authentication)
                    225:                AC_MSG_RESULT(yes)
                    226:                with_passwd=no
                    227:                AUTH_OBJS="securid.o"
                    228:                ;;
                    229: esac])
                    230:
                    231: AC_ARG_WITH(fwtk, [  --with-fwtk             enable FWTK AuthSRV support],
                    232: [case $with_fwtk in
                    233:     yes)       AC_DEFINE(HAVE_FWTK)
                    234:                AC_MSG_CHECKING(whether to use FWTK AuthSRV for authentication)
                    235:                AC_MSG_RESULT(yes)
                    236:                with_passwd=no
                    237:                AUTH_OBJS="fwtk.o"
                    238:                ;;
                    239:     no)                ;;
                    240:     *)         AC_DEFINE(HAVE_FWTK)
                    241:                AC_MSG_CHECKING(whether to use FWTK AuthSRV for authentication)
                    242:                AC_MSG_RESULT(yes)
                    243:                SUDO_LDFLAGS="${SUDO_LDFLAGS} -L${with_fwtk}"
                    244:                CPPFLAGS="${CPPFLAGS} -I${with_fwtk}"
                    245:                with_passwd=no
                    246:                AUTH_OBJS="fwtk.o"
                    247:                with_fwtk=yes
                    248:                ;;
                    249: esac])
                    250:
                    251: AC_ARG_WITH(kerb4, [  --with-kerb4            enable kerberos v4 support],
                    252: [case $with_kerb4 in
                    253:     yes)       AC_MSG_CHECKING(whether to try Kerberos 4 authentication)
                    254:                AC_MSG_RESULT(yes)
                    255:                ;;
                    256:     no)                ;;
                    257:     *)         AC_MSG_ERROR(["--with-kerb4 does not take an argument."])
                    258:                ;;
                    259: esac])
                    260:
                    261: AC_ARG_WITH(kerb5, [  --with-kerb5            enable kerberos v5 support],
                    262: [case $with_kerb5 in
                    263:     yes)       AC_MSG_CHECKING(whether to try Kerberos 5 authentication)
                    264:                AC_MSG_RESULT(yes)
                    265:                ;;
                    266:     no)                ;;
                    267:     *)         AC_MSG_ERROR(["--with-kerb5 does not take an argument."])
                    268:                ;;
                    269: esac])
                    270:
                    271: AC_ARG_WITH(authenticate, [  --with-authenticate     enable AIX general authentication support],
                    272: [case $with_authenticate in
                    273:     yes)       AC_DEFINE(HAVE_AUTHENTICATE)
                    274:                AC_MSG_CHECKING(whether to use AIX general authentication)
                    275:                AC_MSG_RESULT(yes)
                    276:                with_passwd=no
                    277:                AUTH_OBJS="aix_auth.o"
                    278:                ;;
                    279:     no)                ;;
                    280:     *)         AC_MSG_ERROR(["--with-authenticate does not take an argument."])
                    281:                ;;
                    282: esac])
                    283:
                    284: AC_ARG_WITH(pam, [  --with-pam              enable PAM support],
                    285: [case $with_pam in
                    286:     yes)       AC_DEFINE(HAVE_PAM)
                    287:                AC_MSG_CHECKING(whether to use PAM authentication)
                    288:                AC_MSG_RESULT(yes)
                    289:                with_passwd=no
                    290:                AUTH_OBJS="pam.o"
                    291:                ;;
                    292:     no)                ;;
                    293:     *)         AC_MSG_ERROR(["--with-pam does not take an argument."])
                    294:                ;;
                    295: esac])
                    296:
                    297: AC_ARG_WITH(AFS, [  --with-AFS              enable AFS support],
                    298: [case $with_AFS in
                    299:     yes)       AC_DEFINE(HAVE_AFS)
                    300:                AC_MSG_CHECKING(whether to try AFS (kerberos) authentication)
                    301:                AC_MSG_RESULT(yes)
                    302:                AUTH_OBJS="${AUTH_OBJS} afs.o"
                    303:                ;;
                    304:     no)                ;;
                    305:     *)         AC_MSG_ERROR(["--with-AFS does not take an argument."])
                    306:                ;;
                    307: esac])
                    308:
                    309: AC_ARG_WITH(DCE, [  --with-DCE              enable DCE support],
                    310: [case $with_DCE in
                    311:     yes)       AC_DEFINE(HAVE_DCE)
                    312:                AC_MSG_CHECKING(whether to try DCE (kerberos) authentication)
                    313:                AC_MSG_RESULT(yes)
                    314:                AUTH_OBJS="${AUTH_OBJS} dce.o"
                    315:                ;;
                    316:     no)                ;;
                    317:     *)         AC_MSG_ERROR(["--with-DCE does not take an argument."])
                    318:                ;;
                    319: esac])
                    320:
                    321: AC_MSG_CHECKING(whether to lecture users the first time they run sudo)
                    322: AC_ARG_WITH(lecture, [  --without-lecture       don't print lecture for first-time sudoer],
                    323: [case $with_lecture in
                    324:     yes|short) AC_MSG_RESULT(yes)
                    325:                ;;
                    326:     no|none)   AC_DEFINE(NO_LECTURE)
                    327:                AC_MSG_RESULT(no)
                    328:                ;;
                    329:     *)         AC_MSG_ERROR(["unknown argument to --with-lecture: $with_lecture"])
                    330:                ;;
                    331: esac], [AC_MSG_RESULT(yes)])
                    332:
                    333: AC_MSG_CHECKING(whether sudo should log via syslog or to a file by default)
                    334: AC_ARG_WITH(logging, [  --with-logging          log via syslog, file, or both],
                    335: [case $with_logging in
                    336:     yes)       AC_MSG_ERROR(["must give --with-logging an argument."])
                    337:                ;;
                    338:     no)                AC_MSG_ERROR(["--without-logging not supported."])
                    339:                ;;
                    340:     syslog)    AC_DEFINE(LOGGING, SLOG_SYSLOG)
                    341:                AC_MSG_RESULT(syslog)
                    342:                ;;
                    343:     file)      AC_DEFINE(LOGGING, SLOG_FILE)
                    344:                AC_MSG_RESULT(file)
                    345:                ;;
                    346:     both)      AC_DEFINE(LOGGING, SLOG_BOTH)
                    347:                AC_MSG_RESULT(both)
                    348:                ;;
                    349:     *)         AC_MSG_ERROR(["unknown argument to --with-logging: $with_logging"])
                    350:                ;;
                    351: esac], [AC_DEFINE(LOGGING, SLOG_SYSLOG) AC_MSG_RESULT(syslog)])
                    352:
                    353: AC_MSG_CHECKING(which syslog facility sudo should log with)
                    354: AC_ARG_WITH(logfac, [  --with-logfac           syslog facility to log with (default is local2)],
                    355: [case $with_logfac in
                    356:     yes)       AC_MSG_ERROR(["must give --with-logfac an argument."])
                    357:                ;;
                    358:     no)                AC_MSG_ERROR(["--without-logfac not supported."])
                    359:                ;;
                    360:     authpriv|auth|daemon|user|local0|local1|local2|local3|local4|local5|local6|local7)         AC_DEFINE_UNQUOTED(LOGFAC, "$with_logfac")
                    361:                AC_MSG_RESULT([$with_logfac])
                    362:                ;;
                    363:     *)         AC_MSG_ERROR(["$with_logfac is not a supported syslog facility."])
                    364:                ;;
                    365: esac], [AC_DEFINE_UNQUOTED(LOGFAC, "local2") AC_MSG_RESULT("local2")])
                    366:
                    367: AC_MSG_CHECKING(at which syslog priority to log commands)
                    368: AC_ARG_WITH(goodpri, [  --with-goodpri          syslog priority for commands (def is notice)],
                    369: [case $with_goodpri in
                    370:     yes)       AC_MSG_ERROR(["must give --with-goodpri an argument."])
                    371:                ;;
                    372:     no)                AC_MSG_ERROR(["--without-goodpri not supported."])
                    373:                ;;
                    374:     alert|crit|debug|emerg|err|info|notice|warning)            AC_DEFINE_UNQUOTED(PRI_SUCCESS, "$with_goodpri")
                    375:                AC_MSG_RESULT([$with_goodpri])
                    376:                ;;
                    377:     *)         AC_MSG_ERROR(["$with_goodpri is not a supported syslog priority."])
                    378:                ;;
                    379: esac], [AC_DEFINE_UNQUOTED(PRI_SUCCESS, "notice") AC_MSG_RESULT("notice")])
                    380:
                    381: AC_MSG_CHECKING(at which syslog priority to log failures)
                    382: AC_ARG_WITH(badpri, [  --with-badpri           syslog priority for failures (def is LOG_ALERT)],
                    383: [case $with_badpri in
                    384:     yes)       AC_MSG_ERROR(["must give --with-badpri an argument."])
                    385:                ;;
                    386:     no)                AC_MSG_ERROR(["--without-badpri not supported."])
                    387:                ;;
                    388:     alert|crit|debug|emerg|err|info|notice|warning)            AC_DEFINE_UNQUOTED(PRI_FAILURE, "$with_badpri")
                    389:                AC_MSG_RESULT([$with_badpri])
                    390:                ;;
                    391:     *)         AC_MSG_ERROR([$with_badpri is not a supported syslog priority.])
                    392:                ;;
                    393: esac], [AC_DEFINE_UNQUOTED(PRI_FAILURE, "alert") AC_MSG_RESULT("alert")])
                    394:
                    395: AC_ARG_WITH(logpath, [  --with-logpath          path to the sudo log file],
                    396: [case $with_logpath in
                    397:     yes)       AC_MSG_ERROR(["must give --with-logpath an argument."])
                    398:                ;;
                    399:     no)                AC_MSG_ERROR(["--without-logpath not supported."])
                    400:                ;;
                    401: esac])
                    402:
                    403: AC_MSG_CHECKING(how long a line in the log file should be)
                    404: AC_ARG_WITH(loglen, [  --with-loglen           maximum length of a log file line (default is 80)],
                    405: [case $with_loglen in
                    406:     yes)       AC_MSG_ERROR(["must give --with-loglen an argument."])
                    407:                ;;
                    408:     no)                AC_MSG_ERROR(["--without-loglen not supported."])
                    409:                ;;
                    410:     [[0-9]]*)  AC_DEFINE_UNQUOTED(MAXLOGFILELEN, $with_loglen)
                    411:                AC_MSG_RESULT([$with_loglen])
                    412:                ;;
                    413:     *)         AC_MSG_ERROR(["you must enter a number, not $with_loglen"])
                    414:                ;;
                    415: esac], [AC_DEFINE(MAXLOGFILELEN, 80) AC_MSG_RESULT(80)])
                    416:
                    417: AC_MSG_CHECKING(whether sudo should ignore '.' or '' in \$PATH)
                    418: AC_ARG_WITH(ignore-dot, [  --with-ignore-dot       ignore '.' in the PATH],
                    419: [case $with_ignore_dot in
                    420:     yes)       AC_DEFINE(IGNORE_DOT_PATH)
                    421:                AC_MSG_RESULT(yes)
                    422:                ;;
                    423:     no)                AC_MSG_RESULT(no)
                    424:                ;;
                    425:     *)         AC_MSG_ERROR(["--with-ignore-dot does not take an argument."])
                    426:                ;;
                    427: esac], AC_MSG_RESULT(no))
                    428:
                    429: AC_MSG_CHECKING(who should get the mail that sudo sends)
                    430: AC_ARG_WITH(mailto, [  --with-mailto           who should get sudo mail (default is "root")],
                    431: [case $with_mailto in
                    432:     yes)       AC_MSG_ERROR(["must give --with-mailto an argument."])
                    433:                ;;
                    434:     no)                AC_MSG_ERROR(["--without-mailto not supported."])
                    435:                ;;
                    436:     *)         AC_DEFINE_UNQUOTED(MAILTO, "$with_mailto")
                    437:                AC_MSG_RESULT([$with_mailto])
                    438:                ;;
                    439: esac], [AC_DEFINE(MAILTO, "root") AC_MSG_RESULT(root)])
                    440:
                    441: AC_ARG_WITH(mailsubject, [  --with-mailsubject      subject of sudo mail],
                    442: [case $with_mailsubject in
                    443:     yes)       AC_MSG_ERROR(["must give --with-mailsubject an argument."])
                    444:                ;;
                    445:     no)                echo "Sorry, --without-mailsubject not supported."
                    446:                ;;
                    447:     *)         AC_DEFINE_UNQUOTED(MAILSUBJECT, "$with_mailsubject")
                    448:                AC_MSG_CHECKING(sudo mail subject)
                    449:                AC_MSG_RESULT([Using alert mail subject: $with_mailsubject])
                    450:                ;;
                    451: esac], AC_DEFINE(MAILSUBJECT, "*** SECURITY information for %h ***"))
                    452:
                    453: AC_MSG_CHECKING(whether to send mail when a user is not in sudoers)
                    454: AC_ARG_WITH(mail-if-no-user, [  --without-mail-if-no-user do not send mail if user not in sudoers],
                    455: [case $with_mail_if_no_user in
                    456:     yes)       AC_DEFINE(SEND_MAIL_WHEN_NO_USER)
                    457:                AC_MSG_RESULT(yes)
                    458:                ;;
                    459:     no)                AC_MSG_RESULT(no)
                    460:                ;;
                    461:     *)         AC_MSG_ERROR(["unknown argument to --with-mail-if-no-user: $with_mail_if_no_user"])
                    462:                ;;
                    463: esac], [AC_DEFINE(SEND_MAIL_WHEN_NO_USER) AC_MSG_RESULT(yes)])
                    464:
                    465: AC_MSG_CHECKING(whether to send mail when user listed but not for this host)
                    466: AC_ARG_WITH(mail-if-no-host, [  --with-mail-if-no-host  send mail if user in sudoers but not for this host],
                    467: [case $with_mail_if_no_host in
                    468:     yes)       AC_DEFINE(SEND_MAIL_WHEN_NO_HOST)
                    469:                AC_MSG_RESULT(yes)
                    470:                ;;
                    471:     no)                AC_MSG_RESULT(no)
                    472:                ;;
                    473:     *)         AC_MSG_ERROR(["unknown argument to --with-mail-if-no-host: $with_mail_if_no_host"])
                    474:                ;;
                    475: esac], AC_MSG_RESULT(no))
                    476:
                    477: AC_MSG_CHECKING(whether to send mail when a user tries a disallowed command)
                    478: AC_ARG_WITH(mail-if-noperms, [  --with-mail-if-noperms  send mail if user not allowed to run command],
                    479: [case $with_mail_if_noperms in
                    480:     yes)       AC_DEFINE(SEND_MAIL_WHEN_NOT_OK)
                    481:                AC_MSG_RESULT(yes)
                    482:                ;;
                    483:     no)                AC_MSG_RESULT(no)
                    484:                ;;
                    485:     *)         AC_MSG_ERROR(["unknown argument to --with-mail-if-noperms: $with_mail_if_noperms"])
                    486:                ;;
                    487: esac], AC_MSG_RESULT(no))
                    488:
                    489: AC_MSG_CHECKING(for bad password prompt)
                    490: AC_ARG_WITH(passprompt, [  --with-passprompt       default password prompt],
                    491: [case $with_passprompt in
                    492:     yes)       AC_MSG_ERROR(["must give --with-passprompt an argument."])
                    493:                ;;
                    494:     no)                echo "Sorry, --without-passprompt not supported."
                    495:                ;;
                    496:     *)         AC_DEFINE_UNQUOTED(PASSPROMPT, "$with_passprompt")
                    497:                AC_MSG_RESULT([$with_passprompt])
                    498:                ;;
                    499: esac], [AC_DEFINE(PASSPROMPT, "Password:") AC_MSG_RESULT(Password:)])
                    500:
                    501: AC_MSG_CHECKING(for bad password message)
                    502: AC_ARG_WITH(badpass-message, [  --with-badpass-message  message the user sees when the password is wrong],
                    503: [case $with_badpass_message in
                    504:     yes)       AC_MSG_ERROR(["Must give --with-badpass-message an argument."])
                    505:                ;;
                    506:     no)                echo "Sorry, --without-badpass-message not supported."
                    507:                ;;
                    508:     *)         AC_DEFINE_UNQUOTED(INCORRECT_PASSWORD, "$with_badpass_message")
                    509:                AC_MSG_RESULT([$with_badpass_message])
                    510:                ;;
                    511: esac], [AC_DEFINE(INCORRECT_PASSWORD, ["Sorry, try again."]) AC_MSG_RESULT([Sorry, try again.])])
                    512:
                    513: AC_MSG_CHECKING(whether to expect fully qualified hosts in sudoers)
                    514: AC_ARG_WITH(fqdn, [  --with-fqdn             expect fully qualified hosts in sudoers],
                    515: [case $with_fqdn in
                    516:     yes)       AC_DEFINE(FQDN)
                    517:                AC_MSG_RESULT(yes)
                    518:                ;;
                    519:     no)                AC_MSG_RESULT(no)
                    520:                ;;
                    521:     *)         AC_MSG_ERROR(["--with-fqdn does not take an argument."])
                    522:                ;;
                    523: esac], AC_MSG_RESULT(no))
                    524:
                    525: AC_ARG_WITH(timedir, [  --with-timedir          path to the sudo timestamp dir],
                    526: [case $with_timedir in
                    527:     yes)       AC_MSG_ERROR(["must give --with-timedir an argument."])
                    528:                ;;
                    529:     no)                AC_MSG_ERROR(["--without-timedir not supported."])
                    530:                ;;
                    531: esac])
                    532:
                    533: AC_ARG_WITH(sendmail, [  --with-sendmail=path    set path to sendmail
                    534:   --without-sendmail      do not send mail at all],
                    535: [case $with_sendmail in
                    536:     yes)       with_sendmail=""
                    537:                ;;
                    538:     no)                ;;
                    539:     *)         AC_DEFINE_UNQUOTED(_PATH_SENDMAIL, "$with_sendmail")
                    540:                ;;
                    541: esac])
                    542:
                    543: AC_ARG_WITH(sudoers-mode, [  --with-sudoers-mode     mode of sudoers file (defaults to 0440)],
                    544: [case $with_sudoers_mode in
                    545:     yes)       AC_MSG_ERROR(["must give --with-sudoers-mode an argument."])
                    546:                ;;
                    547:     no)                AC_MSG_ERROR(["--without-sudoers-mode not supported."])
                    548:                ;;
                    549:     [[1-9]]*)  SUDOERS_MODE=0${with_sudoers_mode}
                    550:                ;;
                    551:     0*)                SUDOERS_MODE=$with_sudoers_mode
                    552:                ;;
                    553:     *)         AC_MSG_ERROR(["you must use a numeric uid, not a name."])
                    554:                ;;
                    555: esac])
                    556:
                    557: AC_ARG_WITH(sudoers-uid, [  --with-sudoers-uid      uid that owns sudoers file (defaults to 0)],
                    558: [case $with_sudoers_uid in
                    559:     yes)       AC_MSG_ERROR(["must give --with-sudoers-uid an argument."])
                    560:                ;;
                    561:     no)                AC_MSG_ERROR(["--without-sudoers-uid not supported."])
                    562:                ;;
                    563:     [[0-9]]*)  SUDOERS_UID=$with_sudoers_uid
                    564:                ;;
                    565:     *)         AC_MSG_ERROR(["you must use a numeric uid, not a name."])
                    566:                ;;
                    567: esac])
                    568:
                    569: AC_ARG_WITH(sudoers-gid, [  --with-sudoers-gid      gid that owns sudoers file (defaults to 0)],
                    570: [case $with_sudoers_gid in
                    571:     yes)       AC_MSG_ERROR(["must give --with-sudoers-gid an argument."])
                    572:                ;;
                    573:     no)                AC_MSG_ERROR(["--without-sudoers-gid not supported."])
                    574:                ;;
                    575:     [[0-9]]*)  SUDOERS_GID=$with_sudoers_gid
                    576:                ;;
                    577:     *)         AC_MSG_ERROR(["you must use a numeric gid, not a name."])
                    578:                ;;
                    579: esac])
                    580:
                    581: AC_MSG_CHECKING(for umask programs should be run with)
                    582: AC_ARG_WITH(umask, [  --with-umask            umask with which the prog should run (default is 0022)
                    583:   --without-umask         Preserves the umask of the user invoking sudo.],
                    584: [case $with_umask in
                    585:     yes)       AC_MSG_ERROR(["must give --with-umask an argument."])
                    586:                ;;
                    587:     no)                AC_MSG_RESULT(user)
                    588:                ;;
                    589:     [[0-9]]*)  AC_DEFINE_UNQUOTED(SUDO_UMASK, $with_umask)
                    590:                AC_MSG_RESULT([$with_umask])
                    591:                ;;
                    592:     *)         AC_MSG_ERROR(["you must enter a numeric mask."])
                    593:                ;;
                    594: esac], [AC_DEFINE(SUDO_UMASK, 0022) AC_MSG_RESULT(0022)])
                    595:
                    596: AC_MSG_CHECKING(for default user to run commands as)
                    597: AC_ARG_WITH(runas-default, [  --with-runas-default    User to run commands as (default is "root"],
                    598: [case $with_runas_default in
                    599:     yes)       AC_MSG_ERROR(["must give --with-runas-default an argument."])
                    600:                ;;
                    601:     no)                AC_MSG_ERROR(["--without-runas-default not supported."])
                    602:                ;;
                    603:     *)         AC_DEFINE_UNQUOTED(RUNAS_DEFAULT, "$with_runas_default")
                    604:                AC_MSG_RESULT([$with_runas_default])
                    605:                ;;
                    606: esac], [AC_DEFINE(RUNAS_DEFAULT, "root") AC_MSG_RESULT(root)])
                    607:
                    608: AC_ARG_WITH(exempt, [  --with-exempt=group     no passwd needed for users in this group],
                    609: [case $with_exempt in
                    610:     yes)       AC_MSG_ERROR(["must give --with-exempt an argument."])
                    611:                ;;
                    612:     no)                AC_MSG_ERROR(["--without-exempt not supported."])
                    613:                ;;
                    614:     *)         AC_DEFINE_UNQUOTED(EXEMPTGROUP, "$with_exempt")
                    615:                AC_MSG_CHECKING(for group to be exempt from password)
                    616:                AC_MSG_RESULT([$with_exempt])
                    617:                ;;
                    618: esac])
                    619:
                    620: AC_MSG_CHECKING(for editor that visudo should use)
                    621: AC_ARG_WITH(editor, [  --with-editor=path      Default editor for visudo (defaults to vi)],
                    622: [case $with_editor in
                    623:     yes)       AC_MSG_ERROR(["must give --with-editor an argument."])
                    624:                ;;
                    625:     no)                AC_MSG_ERROR(["--without-editor not supported."])
                    626:                ;;
                    627:     *)         AC_DEFINE_UNQUOTED(EDITOR, "$with_editor")
                    628:                AC_MSG_RESULT([$with_editor])
                    629:                ;;
                    630: esac], [AC_DEFINE(EDITOR, _PATH_VI) AC_MSG_RESULT(vi)])
                    631:
                    632: AC_MSG_CHECKING(whether to obey EDITOR and VISUAL environment variables)
                    633: AC_ARG_WITH(env-editor, [  --with-env-editor       Use the environment variable EDITOR for visudo],
                    634: [case $with_env_editor in
                    635:     yes)       AC_DEFINE(ENV_EDITOR)
                    636:                AC_MSG_RESULT(yes)
                    637:                ;;
                    638:     no)                AC_MSG_RESULT(no)
                    639:                ;;
                    640:     *)         AC_MSG_ERROR(["--with-env-editor does not take an argument."])
                    641:                ;;
                    642: esac], AC_MSG_RESULT(no))
                    643:
                    644: AC_MSG_CHECKING(number of tries a user gets to enter their password)
                    645: AC_ARG_WITH(passwd-tries, [  --with-passwd-tries     number of tries to enter password (default is 3)],
                    646: [case $with_passwd_tries in
                    647:     yes)       AC_DEFINE(TRIES_FOR_PASSWORD, 3)
                    648:                AC_MSG_RESULT(3)
                    649:                ;;
                    650:     no)                AC_MSG_ERROR(["--without-editor not supported."])
                    651:                ;;
                    652:     [[1-9]]*)  AC_DEFINE_UNQUOTED(TRIES_FOR_PASSWORD, $with_passwd_tries)
                    653:                AC_MSG_RESULT([$with_passwd_tries])
                    654:                ;;
                    655:     *)         AC_MSG_ERROR(["you must enter the numer of tries, > 0"])
                    656:                ;;
                    657: esac], [AC_DEFINE(TRIES_FOR_PASSWORD, 3) AC_MSG_RESULT(3)])
                    658:
                    659: AC_MSG_CHECKING(time in minutes after which sudo will ask for a password again)
                    660: AC_ARG_WITH(timeout, [  --with-timeout          minutes before sudo asks for passwd again (def is 5)],
                    661: [echo $with_timeout; case $with_timeout in
                    662:     yes)       AC_DEFINE(TIMEOUT, 5)
                    663:                AC_MSG_RESULT(5)
                    664:                ;;
                    665:     no)                AC_DEFINE(TIMEOUT, 0)
                    666:                AC_MSG_RESULT([no timeout])
                    667:                ;;
                    668:     [[0-9]]*)  AC_DEFINE_UNQUOTED(TIMEOUT, $with_timeout)
                    669:                AC_MSG_RESULT([$with_timeout])
                    670:                ;;
                    671:     *)         AC_MSG_ERROR(["you must enter the numer of minutes."])
                    672:                ;;
                    673: esac], [AC_DEFINE(TIMEOUT, 5) AC_MSG_RESULT(5)])
                    674:
                    675: AC_MSG_CHECKING(time in minutes after the password prompt will time out)
                    676: AC_ARG_WITH(password-timeout, [  --with-password-timeout passwd prompt timeout in minutes (default is 5)],
                    677: [case $with_password_timeout in
                    678:     yes)       AC_DEFINE(PASSWORD_TIMEOUT, 5)
                    679:                AC_MSG_RESULT(5)
                    680:                ;;
                    681:     no)                AC_DEFINE(PASSWORD_TIMEOUT, 0)
                    682:                AC_MSG_RESULT([no timeout])
                    683:                ;;
                    684:     [[0-9]]*)  AC_DEFINE_UNQUOTED(PASSWORD_TIMEOUT, $with_password_timeout)
                    685:                AC_MSG_RESULT([$with_password_timeout])
                    686:                ;;
                    687:     *)         AC_MSG_ERROR(["you must enter the numer of minutes."])
                    688:                ;;
                    689: esac], [AC_DEFINE(PASSWORD_TIMEOUT, 5) AC_MSG_RESULT(5)])
                    690:
                    691: AC_MSG_CHECKING(whether to use execvp or execv)
                    692: AC_ARG_WITH(execv, [  --with-execv            use execv() instead of execvp()],
                    693: [case $with_execv in
                    694:     yes)       AC_DEFINE(USE_EXECV)
                    695:                AC_MSG_RESULT(execv)
                    696:                ;;
                    697:     no)                AC_MSG_RESULT(execvp)
                    698:                ;;
                    699:     *)         AC_MSG_ERROR(["--with-execv does not take an argument."])
                    700:                ;;
                    701: esac], AC_MSG_RESULT(execvp))
                    702:
                    703: AC_MSG_CHECKING(whether to use per-tty ticket files)
                    704: AC_ARG_WITH(tty-tickets, [  --with-tty-tickets      use a different ticket file for each tty],
                    705: [case $with_tty_tickets in
                    706:     yes)       AC_DEFINE(USE_TTY_TICKETS)
                    707:                AC_MSG_RESULT(yes)
                    708:                ;;
                    709:     no)                AC_MSG_RESULT(no)
                    710:                ;;
                    711:     *)         AC_MSG_ERROR(["--with-tty-tickets does not take an argument."])
                    712:                ;;
                    713: esac], AC_MSG_RESULT(no))
                    714:
                    715: AC_MSG_CHECKING(whether to include insults)
                    716: AC_ARG_WITH(insults, [  --with-insults          insult the user for entering an incorrect password],
                    717: [case $with_insults in
                    718:     yes)       AC_DEFINE(USE_INSULTS)
                    719:                AC_MSG_RESULT(yes)
                    720:                with_classic_insults=yes
                    721:                with_csops_insults=yes
                    722:                ;;
                    723:     no)                AC_MSG_RESULT(no)
                    724:                ;;
                    725:     *)         AC_MSG_ERROR(["--with-insults does not take an argument."])
                    726:                ;;
                    727: esac], AC_MSG_RESULT(no))
                    728:
                    729: AC_ARG_WITH(all-insults, [  --with-all-insults      include all the sudo insult sets],
                    730: [case $with_all_insults in
                    731:     yes)       with_classic_insults=yes
                    732:                with_csops_insults=yes
                    733:                with_hal_insults=yes
                    734:                with_goons_insults=yes
                    735:                ;;
                    736:     no)                ;;
                    737:     *)         AC_MSG_ERROR(["--with-all-insults does not take an argument."])
                    738:                ;;
                    739: esac])
                    740:
                    741: AC_ARG_WITH(classic-insults, [  --with-classic-insults  include the insults from the "classic" sudo],
                    742: [case $with_classic_insults in
                    743:     yes)       AC_DEFINE(CLASSIC_INSULTS)
                    744:                ;;
                    745:     no)                ;;
                    746:     *)         AC_MSG_ERROR(["--with-classic-insults does not take an argument."])
                    747:                ;;
                    748: esac])
                    749:
                    750: AC_ARG_WITH(csops-insults, [  --with-csops-insults    include CSOps insults],
                    751: [case $with_csops_insults in
                    752:     yes)       AC_DEFINE(CSOPS_INSULTS)
                    753:                ;;
                    754:     no)                ;;
                    755:     *)         AC_MSG_ERROR(["--with-csops-insults does not take an argument."])
                    756:                ;;
                    757: esac])
                    758:
                    759: AC_ARG_WITH(hal-insults, [  --with-hal-insults      include 2001-like insults],
                    760: [case $with_hal_insults in
                    761:     yes)       AC_DEFINE(HAL_INSULTS)
                    762:                ;;
                    763:     no)                ;;
                    764:     *)         AC_MSG_ERROR(["--with-hal-insults does not take an argument."])
                    765:                ;;
                    766: esac])
                    767:
                    768: AC_ARG_WITH(goons-insults, [  --with-goons-insults    include the insults from the \"Goon Show\"],
                    769: [case $with_goons_insults in
                    770:     yes)       AC_DEFINE(GOONS_INSULTS)
                    771:                ;;
                    772:     no)                ;;
                    773:     *)         AC_MSG_ERROR(["--with-goons-insults does not take an argument."])
                    774:                ;;
                    775: esac])
                    776:
                    777: dnl include all insult sets on one line
                    778: if test "$with_insults" = "yes"; then
                    779:     AC_MSG_CHECKING(which insult sets to include)
                    780:     i=""
                    781:     test "$with_goons_insults" = "yes" && i="goons ${i}"
                    782:     test "$with_hal_insults" = "yes" && i="hal ${i}"
                    783:     test "$with_csops_insults" = "yes" && i="csops ${i}"
                    784:     test "$with_classic_insults" = "yes" && i="classic ${i}"
                    785:     AC_MSG_RESULT([$i])
                    786: fi
                    787:
                    788: AC_MSG_CHECKING(whether to override the user's path)
                    789: AC_ARG_WITH(secure-path, [  --with-secure-path      override the user's path with a builtin one],
                    790: [case $with_secure_path in
                    791:     yes)       AC_DEFINE_UNQUOTED(SECURE_PATH, "/bin:/usr/ucb:/usr/bin:/usr/sbin:/sbin:/usr/etc:/etc")
                    792:                AC_MSG_RESULT([:/usr/ucb:/usr/bin:/usr/sbin:/sbin:/usr/etc:/etc])
                    793:                ;;
                    794:     no)                AC_MSG_RESULT(no)
                    795:                ;;
                    796:     *)         AC_DEFINE_UNQUOTED(SECURE_PATH, "$with_secure_path")
                    797:                AC_MSG_RESULT([$with_secure_path])
                    798:                ;;
                    799: esac], AC_MSG_RESULT(no))
                    800:
                    801: AC_MSG_CHECKING(whether to get ip addresses from the network interfaces)
                    802: AC_ARG_WITH(interfaces, [  --without-interfaces    don't try to read the ip addr of ether interfaces],
                    803: [case $with_interfaces in
                    804:     yes)       AC_MSG_RESULT(yes)
                    805:                ;;
                    806:     no)                AC_DEFINE(STUB_LOAD_INTERFACES)
                    807:                AC_MSG_RESULT(no)
                    808:                ;;
                    809:     *)         AC_MSG_ERROR(["--with-interfaces does not take an argument."])
                    810:                ;;
                    811: esac], AC_MSG_RESULT(yes))
                    812:
                    813: dnl
                    814: dnl Options for --enable
                    815: dnl
                    816:
                    817: AC_MSG_CHECKING(whether to do user authentication by default)
                    818: AC_ARG_ENABLE(authentication,
                    819: [  --disable-authentication
                    820:                           Do not require authentication by default],
                    821: [ case "$enableval" in
                    822:     yes)       AC_MSG_RESULT(yes)
                    823:                ;;
                    824:     no)                AC_MSG_RESULT(no)
                    825:                AC_DEFINE(NO_AUTHENTICATION)
                    826:                ;;
                    827:     *)         AC_MSG_RESULT(no)
                    828:                echo "Ignoring unknown argument to --enable-authentication: $enableval"
                    829:                ;;
                    830:   esac
                    831: ], AC_MSG_RESULT(yes))
                    832:
                    833: AC_MSG_CHECKING(whether to disable shadow password support)
                    834: AC_ARG_ENABLE(shadow,
                    835: [  --disable-shadow        Never use shadow passwords],
                    836: [ case "$enableval" in
                    837:     yes)       AC_MSG_RESULT(no)
                    838:                ;;
                    839:     no)                AC_MSG_RESULT(yes)
                    840:                CHECKSHADOW="false"
                    841:                ;;
                    842:     *)         AC_MSG_RESULT(no)
                    843:                echo "Ignoring unknown argument to --enable-shadow: $enableval"
                    844:                ;;
                    845:   esac
                    846: ], AC_MSG_RESULT(no))
                    847:
                    848: AC_MSG_CHECKING(whether root should be allowed to use sudo)
                    849: AC_ARG_ENABLE(root-sudo,
                    850: [  --disable-root-sudo     don't allow root to run sudo],
                    851: [ case "$enableval" in
                    852:     yes)       AC_MSG_RESULT(yes)
                    853:                ;;
                    854:     no)                AC_DEFINE(NO_ROOT_SUDO)
                    855:                AC_MSG_RESULT(no)
                    856:                ;;
                    857:     *)         AC_MSG_ERROR(["--enable-root-sudo does not take an argument."])
                    858:                ;;
                    859:   esac
                    860: ], AC_MSG_RESULT(yes))
                    861:
                    862: AC_MSG_CHECKING(whether to log the hostname in the log file)
                    863: AC_ARG_ENABLE(log-host,
                    864: [  --enable-log-host       Log the hostname in the log file],
                    865: [ case "$enableval" in
                    866:     yes)       AC_MSG_RESULT(yes)
                    867:                AC_DEFINE(HOST_IN_LOG)
                    868:                ;;
                    869:     no)                AC_MSG_RESULT(no)
                    870:                ;;
                    871:     *)         AC_MSG_RESULT(no)
                    872:                echo "Ignoring unknown argument to --enable-log-host: $enableval"
                    873:                ;;
                    874:   esac
                    875: ], AC_MSG_RESULT(no))
                    876:
                    877: AC_MSG_CHECKING(whether to invoke a shell if sudo is given no arguments)
                    878: AC_ARG_ENABLE(noargs-shell,
                    879: [  --enable-noargs-shell   If sudo is given no arguments run a shell],
                    880: [ case "$enableval" in
                    881:     yes)       AC_MSG_RESULT(yes)
                    882:                AC_DEFINE(SHELL_IF_NO_ARGS)
                    883:                ;;
                    884:     no)                AC_MSG_RESULT(no)
                    885:                ;;
                    886:     *)         AC_MSG_RESULT(no)
                    887:                echo "Ignoring unknown argument to --enable-noargs-shell: $enableval"
                    888:                ;;
                    889:   esac
                    890: ], AC_MSG_RESULT(no))
                    891:
                    892: AC_MSG_CHECKING(whether to set \$HOME to target user in shell mode)
                    893: AC_ARG_ENABLE(shell-sets-home,
                    894: [  --enable-shell-sets-home
                    895:                           set \$HOME to target user in shell mode],
                    896: [ case "$enableval" in
                    897:     yes)       AC_MSG_RESULT(yes)
                    898:                AC_DEFINE(SHELL_SETS_HOME)
                    899:                ;;
                    900:     no)                AC_MSG_RESULT(no)
                    901:                ;;
                    902:     *)         AC_MSG_RESULT(no)
                    903:                echo "Ignoring unknown argument to --enable-shell-sets-home: $enableval"
                    904:                ;;
                    905:   esac
                    906: ], AC_MSG_RESULT(no))
                    907:
                    908: AC_MSG_CHECKING(whether to disable 'command not found' messages)
                    909: AC_ARG_ENABLE(path_info,
                    910: [  --disable-path-info     Print 'command not allowed' not 'command not found'],
                    911: [ case "$enableval" in
                    912:     yes)       AC_MSG_RESULT(no)
                    913:                ;;
                    914:     no)                AC_MSG_RESULT(yes)
                    915:                AC_DEFINE(DONT_LEAK_PATH_INFO)
                    916:                ;;
                    917:     *)         AC_MSG_RESULT(no)
                    918:                echo "Ignoring unknown argument to --enable-path-info: $enableval"
                    919:                ;;
                    920:   esac
                    921: ], AC_MSG_RESULT(no))
                    922:
                    923: dnl
                    924: dnl If we don't have egrep we can't do anything...
                    925: dnl
                    926: AC_CHECK_PROG(EGREPPROG, egrep, egrep, )
                    927: if test -z "$EGREPPROG"; then
                    928:     echo "Sorry, configure requires egrep to run."
                    929:     exit
                    930: fi
                    931:
                    932: dnl
                    933: dnl C compiler checks
                    934: dnl XXX - the cross-compiler check gets false positives so we override it
                    935: dnl
                    936: ac_cv_prog_cc_cross="no"
                    937: cross_compiling="no"
                    938: AC_PROG_CC
                    939: ac_cv_prog_cc_cross="no"
                    940: cross_compiling="no"
                    941: AC_PROG_CPP
                    942: AC_ISC_POSIX
                    943:
                    944: dnl
                    945: dnl It is now safe to modify CFLAGS and CPPFLAGS
                    946: dnl
                    947: if test "$with_devel" = "yes" -a -n "$GCC"; then
                    948:     CFLAGS="${CFLAGS} -Wall"
                    949: fi
                    950:
                    951: dnl
                    952: dnl Find programs we use
                    953: dnl
                    954: AC_CHECK_PROG(UNAMEPROG, uname, uname, )
                    955: AC_CHECK_PROG(TRPROG, tr, tr, )
                    956: AC_CHECK_PROG(SEDPROG, sed, sed, )
                    957: AC_CHECK_PROG(NROFFPROG, nroff, nroff, )
                    958: if test -z "$NROFFPROG"; then
                    959:     MANTYPE="cat"
                    960: fi
                    961:
                    962: dnl
                    963: dnl What kind of beastie are we being run on?
                    964: dnl Barf if config.cache was generated on another host.
                    965: dnl
                    966: AC_CANONICAL_HOST
                    967: if test -n "$sudo_cv_prev_host"; then
                    968:     if test "$sudo_cv_prev_host" != "$host"; then
                    969:        echo ""
                    970:        echo "Fatal Error: config.cache exists from another platform!"
                    971:        echo "Please remove it and re-run configure."
                    972:        echo ""
                    973:        exit 1
                    974:     else
                    975:        AC_MSG_CHECKING(previous host type)
                    976:        AC_CACHE_VAL(sudo_cv_prev_host, sudo_cv_prev_host="$host")
                    977:        echo $sudo_cv_prev_host
                    978:     fi
                    979: else
                    980:     # this will produce no output since there is no cached value
                    981:     AC_CACHE_VAL(sudo_cv_prev_host, sudo_cv_prev_host="$host")
                    982: fi
                    983:
                    984: dnl
                    985: dnl We want to be able to differentiate between different rev's
                    986: dnl
                    987: if test -n "$host_os"; then
                    988:     OS=`echo $host_os | sed 's/[[0-9]].*//'`
                    989:     OSREV=`echo $host_os | sed 's/^[[^0-9]]*\([[0-9]][[0-9]]*\).*$/\1/'`
                    990: else
                    991:     OS="unknown"
                    992:     OSREV=0
                    993: fi
                    994:
                    995: case "$host" in
                    996:     *-*-sunos4*)
                    997:                # getcwd(3) opens a pipe to getpwd(1)!?!
                    998:                BROKEN_GETCWD=1
                    999:
                   1000:                # system headers lack prototypes but gcc helps...
                   1001:                if test -n "$GCC"; then
                   1002:                    CPPFLAGS="${CPPFLAGS} -D__USE_FIXED_PROTOTYPES__"
                   1003:                fi
                   1004:
                   1005:                # check for password adjunct functions (shadow passwords)
                   1006:                if test "$CHECKSHADOW" = "true"; then
                   1007:                    AC_CHECK_FUNC(getpwanam, AC_DEFINE(HAVE_GETPWANAM) AC_CHECK_FUNCS(issecure))
                   1008:                    CHECKSHADOW="false"
                   1009:                fi
                   1010:                ;;
                   1011:     *-*-solaris2*)
                   1012:                # To get the crypt(3) prototype (so we pass -Wall)
                   1013:                CPPFLAGS="${CPPFLAGS} -D__EXTENSIONS__"
                   1014:                # AFS support needs -lucb
                   1015:                if test "$with_AFS" = "yes"; then
                   1016:                    AFS_LIBS="-lc -lucb"
                   1017:                fi
                   1018:                ;;
                   1019:     *-*-aix*)
                   1020:                # To get all prototypes (so we pass -Wall)
                   1021:                CPPFLAGS="${CPPFLAGS} -D_XOPEN_EXTENDED_SOURCE"
                   1022:                AC_DEFINE(_ALL_SOURCE)
                   1023:                SUDO_LDFLAGS="${SUDO_LDFLAGS} -Wl,-bI:\$(srcdir)/aixcrypt.exp"
                   1024:                ;;
                   1025:     *-*-hiuxmpp*)
                   1026:                if test "$CHECKSHADOW" = "true"; then
                   1027:                    AC_CHECK_LIB(sec, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [SUDO_LIBS="${SUDO_LIBS} -lsec"; LIBS="${LIBS} -lsec"; SECUREWARE=1], AC_CHECK_LIB(security, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [SUDO_LIBS="${SUDO_LIBS} -lsecurity"; LIBS="${LIBS} -lsecurity"; SECUREWARE=1]))
                   1028:                    CHECKSHADOW="false"
                   1029:                fi
                   1030:                ;;
                   1031:     *-*-hpux1[[0-9]]*)
                   1032:                # uncomment this for a statically linked sudo
                   1033:                # (XXX - should be an option to configure)
                   1034:                #STATIC_SUDO=true
                   1035:
                   1036:                if test "$CHECKSHADOW" = "true"; then
                   1037:                    AC_CHECK_LIB(sec, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) AC_CHECK_LIB(sec, iscomsec, AC_DEFINE(HAVE_ISCOMSEC)) [SUDO_LIBS="${SUDO_LIBS} -lsec"; LIBS="${LIBS} -lsec"; SECUREWARE=1])
                   1038:                    CHECKSHADOW="false"
                   1039:                fi
                   1040:
                   1041:                if test -n "$STATIC_SUDO"; then
                   1042:                    if test -n "$GCC"; then
                   1043:                        SUDO_LDFLAGS="${SUDO_LDFLAGS} -static"
                   1044:                    else
                   1045:                        SUDO_LDFLAGS="${SUDO_LDFLAGS} -Wl,-a,archive"
                   1046:                    fi
                   1047:                fi
                   1048:
                   1049:                # DCE support (requires ANSI C compiler)
                   1050:                if test "$with_DCE" = "yes"; then
                   1051:                    if test -n "$GCC"; then
                   1052:                        CPPFLAGS="${CPPFLAGS} -D_HPUX_SOURCE"
                   1053:                    else
                   1054:                        CPPFLAGS="${CPPFLAGS} -Aa -D_HPUX_SOURCE"
                   1055:                    fi
                   1056:                fi
                   1057:
                   1058:                # AFS support needs -lBSD
                   1059:                if test "$with_AFS" = "yes"; then
                   1060:                    AFS_LIBS="-lc -lBSD"
                   1061:                fi
                   1062:                ;;
                   1063:     *-*-hpux9*)
                   1064:                # uncomment this for a statically linked sudo
                   1065:                # (XXX - should be an option to configure)
                   1066:                #STATIC_SUDO=true
                   1067:
                   1068:                AC_DEFINE(BROKEN_SYSLOG)
                   1069:
                   1070:                if test "$CHECKSHADOW" = "true"; then
                   1071:                    AC_CHECK_FUNCS(getspwuid)
                   1072:                    CHECKSHADOW="false"
                   1073:                fi
                   1074:
                   1075:                if test -n "$STATIC_SUDO"; then
                   1076:                    if test -n "$GCC"; then
                   1077:                        SUDO_LDFLAGS="${SUDO_LDFLAGS} -static"
                   1078:                    else
                   1079:                        SUDO_LDFLAGS="${SUDO_LDFLAGS} -Wl,-a,archive"
                   1080:                    fi
                   1081:                fi
                   1082:
                   1083:                # DCE support (requires ANSI C compiler)
                   1084:                if test "$with_DCE" = "yes"; then
                   1085:                    # order of libs in 9.X is important. -lc_r must be last
                   1086:                    SUDO_LIBS="${SUDO_LIBS} -ldce -lM -lc_r"
                   1087:                    LIBS="${LIBS} -ldce -lM -lc_r"
                   1088:
                   1089:                    if test -n "$GCC"; then
                   1090:                        CPPFLAGS="${CPPFLAGS} -D_HPUX_SOURCE -D_REENTRANT -I/usr/include/reentrant"
                   1091:                    else
                   1092:                        CPPFLAGS="${CPPFLAGS} -Aa -D_HPUX_SOURCE -D_REENTRANT -I/usr/include/reentrant"
                   1093:                    fi
                   1094:                fi
                   1095:
                   1096:                # AFS support needs -lBSD
                   1097:                if test "$with_AFS" = "yes"; then
                   1098:                    AFS_LIBS="-lc -lBSD"
                   1099:                fi
                   1100:                ;;
                   1101:     *-*-hpux*)
                   1102:
                   1103:                AC_DEFINE(BROKEN_SYSLOG)
                   1104:
                   1105:                # Not sure if setuid binaries are safe in < 9.x
                   1106:                if test -n "$GCC"; then
                   1107:                    SUDO_LDFLAGS="${SUDO_LDFLAGS} -static"
                   1108:                else
                   1109:                    SUDO_LDFLAGS="${SUDO_LDFLAGS} -Wl,-a,archive"
                   1110:                fi
                   1111:
                   1112:                # AFS support needs -lBSD
                   1113:                if test "$with_AFS" = "yes"; then
                   1114:                    AFS_LIBS="-lc -lBSD"
                   1115:                fi
                   1116:                ;;
                   1117:     *-dec-osf*)
                   1118:                # ignore envariables wrt dynamic lib path
                   1119:                SUDO_LDFLAGS="${SUDO_LDFLAGS} -Wl,-no_library_replacement"
                   1120:
                   1121:                AC_MSG_CHECKING(whether to disable sia support on Digital UNIX)
                   1122:                AC_ARG_ENABLE(sia,
                   1123:                [  --disable-sia           Never use SIA on Digital UNIX],
                   1124:                [ case "$enableval" in
                   1125:                    yes)        AC_MSG_RESULT(no)
                   1126:                                ;;
                   1127:                    no)         AC_MSG_RESULT(yes)
                   1128:                                CHECKSIA=false
                   1129:                                ;;
                   1130:                    *)          AC_MSG_RESULT(no)
                   1131:                                echo "Ignoring unknown argument to --enable-sia: $enableval"
                   1132:                                ;;
                   1133:                  esac
                   1134:                ], AC_MSG_RESULT(no))
                   1135:
                   1136:                # use SIA by default, if we have it, else SecureWare
                   1137:                # unless overridden on the command line
                   1138:                if test "$CHECKSIA" = "true"; then
                   1139:                    AC_CHECK_FUNC(sia_ses_init, AC_DEFINE(HAVE_SIA) [
                   1140:                    if test -n "$with_skey" -o -n "$with_opie" -o -n "$with_otp_only" -o -n "$with_long_otp_prompt" -o -n "$with_SecurID" -o -n "$with_fwtk" -o -n "$with_kerb4" -o -n "$with_kerb5" -o -n "$with_pam" -o -n "$with_AFS" -o -n "$with_DCE"; then
                   1141:                        AC_MSG_ERROR(["you cannot mix SIA and other authentication schemes.  You can turn off SIA support via the --disable-sia option"])
                   1142:                    fi]; CHECKSHADOW=false)
                   1143:                fi
                   1144:                if test "$CHECKSHADOW" = "true"; then
                   1145:                    AC_CHECK_LIB(security, getprpwnam, SECUREWARE=1)
                   1146:                    CHECKSHADOW="false"
                   1147:                fi
                   1148:
                   1149:                if test -n "$SECUREWARE"; then
                   1150:                    AC_DEFINE(HAVE_GETPRPWNAM)
                   1151:                    # -ldb includes bogus versions of snprintf/vsnprintf
                   1152:                    AC_CHECK_FUNC(snprintf, AC_DEFINE(HAVE_SNPRINTF), NEED_SNPRINTF=1)
                   1153:                    AC_CHECK_FUNC(vsnprintf, AC_DEFINE(HAVE_VSNPRINTF), NEED_SNPRINTF=1)
                   1154:                    # 4.x and higher need -ldb too...
                   1155:                    AC_CHECK_LIB(db, dbopen, [SUDO_LIBS="${SUDO_LIBS} -lsecurity -ldb -laud -lm"; LIBS="${LIBS} -lsecurity -ldb -laud -lm"], [SUDO_LIBS="${SUDO_LIBS} -lsecurity -ldb -laud -lm"; LIBS="${LIBS} -lsecurity -ldb -laud -lm"])
                   1156:                    AC_CHECK_FUNCS(dispcrypt)
                   1157:                    AC_MSG_CHECKING([for broken /usr/include/prot.h])
                   1158:                    AC_TRY_COMPILE([
                   1159: #include <sys/types.h>
                   1160: #include <sys/security.h>
                   1161: #include <prot.h>
                   1162:                    ], [exit(0);], AC_MSG_RESULT(no),
                   1163:                    [AC_MSG_RESULT([yes, fixing locally])
                   1164:                    sed 's:<acl.h>:<sys/acl.h>:g' < /usr/include/prot.h > prot.h
                   1165:                    ])
                   1166:                else
                   1167:                    with_passwd=no
                   1168:                    AUTH_OBJS="sia.o"
                   1169:                fi
                   1170:                ;;
                   1171:     *-*-irix*)
                   1172:                # configure may not think irix has stdc headers
                   1173:                # but it's good enough for sudo
                   1174:                AC_DEFINE(STDC_HEADERS)
                   1175:                CPPFLAGS="${CPPFLAGS} -D_BSD_TYPES"
                   1176:                if test -z "$NROFFPROG"; then
                   1177:                    MAN_POSTINSTALL='   /bin/rm -f $(mandir8)/sudo.$(mansect8).z $(mandir8)/visudo.$(mansect8).z $(mandir5)/sudoers.$(mansect5).z ; /usr/bin/pack $(mandir8)/sudo.$(mansect8) $(mandir8)/visudo.$(mansect8) $(mandir5)/sudoers.$(mansect5)'
                   1178:                    if test "$prefix" = "/usr/local" -a "$mandir" = '$(prefix)/man'; then
                   1179:                        if test -d /usr/share/catman/local; then
                   1180:                            mandir="/usr/share/catman/local"
                   1181:                        else
                   1182:                            mandir="/usr/catman/local"
                   1183:                        fi
                   1184:                    fi
                   1185:                else
                   1186:                    if test "$prefix" = "/usr/local" -a "$mandir" = '$(prefix)/man'; then
                   1187:                        if test -d "/usr/share/man/local"; then
                   1188:                            mandir="/usr/share/man/local"
                   1189:                        else
                   1190:                            mandir="/usr/man/local"
                   1191:                        fi
                   1192:                    fi
                   1193:                fi
                   1194:                # IRIX <= 4 needs -lsun
                   1195:                if test "$OSREV" -le 4; then
                   1196:                    AC_CHECK_LIB(sun, getpwnam, [LIBS="${LIBS} -lsun"])
                   1197:                fi
                   1198:                ;;
                   1199:     *-*-linux*)
                   1200:                # To get crypt(3) and vasprintf() prototypes (so we pass -Wall)
                   1201:                AC_DEFINE(_GNU_SOURCE)
                   1202:
                   1203:                # Some Linux versions need to link with -lshadow
                   1204:                if test "$CHECKSHADOW" = "true"; then
                   1205:                    AC_CHECK_FUNC(getspnam, AC_DEFINE(HAVE_GETSPNAM), AC_CHECK_LIB(shadow, getspnam, AC_DEFINE(HAVE_GETSPNAM) [SUDO_LIBS="${SUDO_LIBS} -lshadow"; LIBS="${LIBS} -lshadow"]))
                   1206:                    CHECKSHADOW="false"
                   1207:                fi
                   1208:                ;;
                   1209:     *-convex-bsd*)
                   1210:                AC_DEFINE(_CONVEX_SOURCE)
                   1211:                if test -z "$GCC"; then
                   1212:                    CFLAGS="${CFLAGS} -D__STDC__"
                   1213:                fi
                   1214:
                   1215:                if test "$CHECKSHADOW" = "true"; then
                   1216:                    AC_CHECK_LIB(sec, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [SUDO_LIBS="${SUDO_LIBS} -lprot"; LIBS="${LIBS} -lprot"; OSDEFS="${OSDEFS} -D_AUDIT -D_ACL -DSecureWare"; SECUREWARE=1])
                   1217:                    CHECKSHADOW="false"
                   1218:                fi
                   1219:                ;;
                   1220:     *-*-ultrix*)
                   1221:                OS="ultrix"
                   1222:                if test "$CHECKSHADOW" = "true"; then
                   1223:                    AC_CHECK_LIB(auth, getauthuid, AC_DEFINE(HAVE_GETAUTHUID) [SUDO_LIBS="${SUDO_LIBS} -lauth"; LIBS="${LIBS} -lauth"])
                   1224:                    CHECKSHADOW="false"
                   1225:                fi
                   1226:                ;;
                   1227:     *-*-riscos*)
                   1228:                LIBS="${LIBS} -lsun -lbsd"
                   1229:                CPPFLAGS="${CPPFLAGS} -I/usr/include -I/usr/include/bsd"
                   1230:                OSDEFS="${OSDEFS} -D_MIPS"
                   1231:                ;;
                   1232:     *-*-isc*)
                   1233:                OSDEFS="${OSDEFS} -D_ISC"
                   1234:                LIB_CRYPT=1
                   1235:                SUDO_LIBS="${SUDO_LIBS} -lcrypt"
                   1236:                LIBS="${LIBS} -lcrypt"
                   1237:
                   1238:                if test "$CHECKSHADOW" = "true"; then
                   1239:                    AC_CHECK_LIB(sec, getspnam, AC_DEFINE(HAVE_GETSPNAM) [SUDO_LIBS="${SUDO_LIBS} -lsec"; LIBS="${LIBS} -lsec"])
                   1240:                    CHECKSHADOW="false"
                   1241:                fi
                   1242:                ;;
                   1243:     *-*-sco*)
                   1244:                if test "$CHECKSHADOW" = "true"; then
                   1245:                    AC_CHECK_LIB(prot, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [SUDO_LIBS="${SUDO_LIBS} -lprot -lx"; LIBS="${LIBS} -lprot -lx"; SECUREWARE=1], , -lx)
                   1246:                    AC_CHECK_LIB(gen, getspnam, AC_DEFINE(HAVE_GETSPNAM) [SUDO_LIBS="${SUDO_LIBS} -lgen"; LIBS="${LIBS} -lgen"])
                   1247:                    CHECKSHADOW="false"
                   1248:                fi
                   1249:                ;;
                   1250:     *-sequent-sysv*)
                   1251:                if test "$CHECKSHADOW" = "true"; then
                   1252:                    AC_CHECK_LIB(sec, getspnam, AC_DEFINE(HAVE_GETSPNAM) [SUDO_LIBS="${SUDO_LIBS} -lsec"; LIBS="${LIBS} -lsec"])
                   1253:                    CHECKSHADOW="false"
                   1254:                fi
                   1255:                ;;
                   1256:     *-ccur-sysv4|*-ccur-sysvr4)
                   1257:                LIBS="${LIBS} -lgen"
                   1258:                SUDO_LIBS="${SUDO_LIBS} -lgen"
                   1259:                ;;
                   1260:     *-*-bsdi*)
                   1261:                # Use shlicc for BSD/OS 2.x unless asked to do otherwise
                   1262:                if test "$OSREV" -ge 2 -a "${with_CC+set}" != set -a \
                   1263:                        "$ac_cv_prog_CC" = "gcc"; then
                   1264:                    echo 'using shlicc as CC'
                   1265:                    ac_cv_prog_CC=shlicc
                   1266:                    CC="$ac_cv_prog_CC"
                   1267:                fi
                   1268:                ;;
                   1269:     *-*-*bsd*)
                   1270:                if test "$CHECKSHADOW" = "true"; then
                   1271:                    CHECKSHADOW="false"
                   1272:                fi
                   1273:                ;;
                   1274: esac
                   1275:
                   1276: dnl
                   1277: dnl Check for shadow password routines if we have not already done so.
                   1278: dnl We check for SVR4-style first and then SecureWare-style.
                   1279: dnl
                   1280: if test "$CHECKSHADOW" = "true"; then
                   1281:     AC_CHECK_FUNC(getspnam, AC_DEFINE(HAVE_GETSPNAM) [CHECKSHADOW="false"])
                   1282: fi
                   1283: if test "$CHECKSHADOW" = "true"; then
                   1284:     AC_CHECK_FUNC(getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [CHECKSHADOW="false"; SECUREWARE=1], AC_CHECK_LIB(sec, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [CHECKSHADOW="false"; SECUREWARE=1; SUDO_LIBS="${SUDO_LIBS} -lsec"; LIBS="${LIBS} -lsec"], AC_CHECK_LIB(security, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [CHECKSHADOW="false"; SECUREWARE=1; SUDO_LIBS="${SUDO_LIBS} -lsecurity"; LIBS="${LIBS} -lsecurity"], AC_CHECK_LIB(prot, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [CHECKSHADOW="false"; SECUREWARE=1; SUDO_LIBS="${SUDO_LIBS} -lprot"; LIBS="${LIBS} -lprot"]))))
                   1285: fi
                   1286:
                   1287: dnl
                   1288: dnl C compiler checks (to be done after os checks)
                   1289: dnl
                   1290: AC_PROG_GCC_TRADITIONAL
                   1291: AC_C_CONST
                   1292: dnl
                   1293: dnl Program checks
                   1294: dnl
                   1295: AC_PROG_YACC
                   1296: if test -z "$with_sendmail"; then
                   1297:     SUDO_PROG_SENDMAIL
                   1298: fi
                   1299: SUDO_PROG_MV
                   1300: SUDO_PROG_BSHELL
                   1301: SUDO_PROG_VI
                   1302: dnl
                   1303: dnl Header file checks
                   1304: dnl
                   1305: AC_HEADER_STDC
                   1306: AC_HEADER_DIRENT
                   1307: AC_CHECK_HEADERS(string.h strings.h unistd.h malloc.h paths.h utime.h fnmatch.h netgroup.h sys/sockio.h sys/bsdtypes.h sys/select.h)
                   1308: dnl ultrix termio/termios are broken
                   1309: if test "$OS" != "ultrix"; then
                   1310:     AC_CHECK_HEADERS(termio.h)
                   1311:     AC_CHECK_HEADERS(termios.h, AC_CHECK_FUNCS(tcgetattr))
                   1312: fi
                   1313: dnl
                   1314: dnl typedef checks
                   1315: dnl
                   1316: AC_TYPE_MODE_T
                   1317: AC_TYPE_UID_T
                   1318: SUDO_TYPE_SIZE_T
                   1319: SUDO_TYPE_SSIZE_T
                   1320: SUDO_TYPE_DEV_T
                   1321: SUDO_TYPE_INO_T
                   1322: SUDO_FULL_VOID
                   1323: SUDO_UID_T_LEN
                   1324: SUDO_LONG_LONG
                   1325: SUDO_SOCK_SA_LEN
                   1326: dnl
                   1327: dnl only set RETSIGTYPE if it is not set already
                   1328: dnl
                   1329: case "$DEFS" in
                   1330:     *"RETSIGTYPE"*)    ;;
                   1331:     *)                 AC_TYPE_SIGNAL;;
                   1332: esac
                   1333: dnl
                   1334: dnl Function checks
                   1335: dnl
                   1336: AC_CHECK_FUNCS(strchr strrchr memchr memcpy memset sysconf sigaction tzset seteuid ftruncate strftime setrlimit)
                   1337: if test -n "$SECUREWARE"; then
                   1338:     AC_CHECK_FUNCS(bigcrypt)
                   1339:     AC_CHECK_FUNCS(set_auth_parameters)
                   1340:     AC_CHECK_FUNCS(initprivs)
                   1341: fi
                   1342: if test -z "$BROKEN_GETCWD"; then
                   1343:     AC_CHECK_FUNC(getcwd, AC_DEFINE(HAVE_GETCWD), LIBOBJS="$LIBOBJS getcwd.o")
                   1344: fi
                   1345: AC_CHECK_FUNC(lockf, AC_DEFINE(HAVE_LOCKF), AC_CHECK_FUNCS(flock))
                   1346: AC_CHECK_FUNC(waitpid, AC_DEFINE(HAVE_WAITPID), AC_CHECK_FUNCS(wait3))
                   1347: AC_CHECK_FUNC(innetgr, AC_DEFINE(HAVE_INNETGR) AC_CHECK_FUNCS(getdomainname))
                   1348: AC_CHECK_FUNC(lsearch, AC_DEFINE(HAVE_LSEARCH), AC_CHECK_LIB(compat, lsearch, AC_CHECK_HEADER(search.h, AC_DEFINE(HAVE_LSEARCH) [LIBS="${LIBS} -lcompat"], LIBOBJS="$LIBOBJS lsearch.o"), LIBOBJS="$LIBOBJS lsearch.o"))
                   1349: AC_CHECK_FUNC(setenv, AC_DEFINE(HAVE_SETENV), AC_FUNC_CHECK(putenv, AC_DEFINE(HAVE_PUTENV), LIBOBJS="$LIBOBJS putenv.o"))
                   1350: AC_CHECK_FUNC(utime, AC_DEFINE(HAVE_UTIME)
                   1351: SUDO_FUNC_UTIME_POSIX, LIBOBJS="$LIBOBJS utime.o")
                   1352: SUDO_FUNC_FNMATCH(AC_DEFINE(HAVE_FNMATCH), LIBOBJS="$LIBOBJS fnmatch.o")
                   1353: AC_REPLACE_FUNCS(strerror strcasecmp)
                   1354: AC_CHECK_FUNC(snprintf, AC_DEFINE(HAVE_SNPRINTF), NEED_SNPRINTF=1)
                   1355: AC_CHECK_FUNC(vsnprintf, AC_DEFINE(HAVE_VSNPRINTF), NEED_SNPRINTF=1)
                   1356: AC_CHECK_FUNC(asprintf, AC_DEFINE(HAVE_ASPRINTF), NEED_SNPRINTF=1)
                   1357: AC_CHECK_FUNC(vasprintf, AC_DEFINE(HAVE_VASPRINTF), NEED_SNPRINTF=1)
                   1358: dnl
                   1359: dnl If NEED_SNPRINTF is set, add snprintf.c to LIBOBJS
                   1360: dnl (it contains snprintf, vsnprintf, asprintf, and vasprintf)
                   1361: dnl
                   1362: if test -n "$NEED_SNPRINTF"; then
                   1363:     LIBOBJS="$LIBOBJS snprintf.o"
                   1364: fi
                   1365: dnl
                   1366: dnl if crypt(3) not in libc, look elsewhere
                   1367: dnl
                   1368: if test -z "$LIB_CRYPT"; then
                   1369:     AC_CHECK_FUNC(crypt, ,AC_CHECK_LIB(crypt, crypt, [SUDO_LIBS="${SUDO_LIBS} -lcrypt"; LIBS="${LIBS} -lcrypt"], AC_CHECK_LIB(crypt_d, crypt, [SUDO_LIBS="${SUDO_LIBS} -lcrypt_d"; LIBS="${LIBS} -lcrypt_d"], AC_CHECK_LIB(ufc, crypt, [SUDO_LIBS="${SUDO_LIBS} -lufc"; LIBS="${LIBS} -lufc"]))))
                   1370: fi
                   1371: dnl
                   1372: dnl If socket(2) not in libc, check -lsocket and -linet
                   1373: dnl May need to link with *both* -lnsl and -lsocket due to unresolved symbols
                   1374: dnl In this case we look for main(), not socket() to avoid using a cached value
                   1375: dnl
                   1376: AC_CHECK_FUNC(socket, ,AC_CHECK_LIB(socket, socket, [NET_LIBS="${NET_LIBS} -lsocket"; LIBS="${LIBS} -lsocket"], AC_CHECK_LIB(inet, socket, [NET_LIBS="${NET_LIBS} -linet"; LIBS="${LIBS} -linet"], AC_MSG_WARN(unable to find socket() trying -lsocket -lnsl)
                   1377: AC_CHECK_LIB(socket, socket, [NET_LIBS="${NET_LIBS} -lsocket -lnsl"; LIBS="${LIBS} -lsocket -lnsl"], , -lnsl))))
                   1378: dnl
                   1379: dnl If inet_addr(3) not in libc, check -lnsl and -linet
                   1380: dnl May need to link with *both* -lnsl and -lsocket due to unresolved symbols
                   1381: dnl
                   1382: AC_CHECK_FUNC(inet_addr, ,AC_CHECK_LIB(nsl, inet_addr, [NET_LIBS="${NET_LIBS} -lnsl"; LIBS="${LIBS} -lnsl"], AC_CHECK_LIB(inet, inet_addr, [NET_LIBS="${NET_LIBS} -linet"; LIBS="${LIBS} -linet"], AC_MSG_WARN(unable to find socket() trying -lsocket -lnsl)
                   1383: AC_CHECK_LIB(socket, inet_addr, [NET_LIBS="${NET_LIBS} -lsocket -lnsl"; LIBS="${LIBS} -lsocket -lnsl"], , -lnsl))))
                   1384: dnl
                   1385: dnl If syslog(3) not in libc, check -lsocket, -lnsl and -linet
                   1386: dnl
                   1387: AC_CHECK_FUNC(syslog, ,AC_CHECK_LIB(socket, syslog, [NET_LIBS="${NET_LIBS} -lsocket"; LIBS="${LIBS} -lsocket"], AC_CHECK_LIB(nsl, syslog, [NET_LIBS="${NET_LIBS} -lnsl"; LIBS="${LIBS} -lnsl"], AC_CHECK_LIB(inet, syslog, [NET_LIBS="${NET_LIBS} -linet"; LIBS="${LIBS} -linet"]))))
                   1388: dnl
                   1389: dnl Bison and DCE use alloca(3), if not in libc, use the sudo one (from gcc)
                   1390: dnl (gcc includes its own alloca(3) but other compilers may not)
                   1391: dnl
                   1392: if test "$with_DCE" = "yes" -o "$ac_cv_prog_YACC" = "bison -y"; then
                   1393:     AC_FUNC_ALLOCA
                   1394: fi
                   1395:
                   1396: dnl
                   1397: dnl Kerberos 5
                   1398: dnl
                   1399: if test "$with_kerb5" = "yes"; then
                   1400:     AC_DEFINE(HAVE_KERB5)
                   1401:     if test -f "/usr/local/include/krb5.h"; then
                   1402:        CPPFLAGS="$CPPFLAGS -I/usr/local/include"
                   1403:     elif test -f "/usr/local/kerberos/include/krb5.h"; then
                   1404:        CPPFLAGS="$CPPFLAGS -I/usr/local/kerberos/include"
                   1405:     elif test -f "/usr/local/krb5/include/krb5.h"; then
                   1406:        CPPFLAGS="$CPPFLAGS -I/usr/local/krb5/include"
                   1407:     else
                   1408:        echo 'Unable to locate kerberos 5 include files, you will have to edit the Makefile and add -I/path/to/krb/includes to CPPFLAGS'
                   1409:     fi
                   1410:
                   1411:     if test -f "/usr/local/lib/libkrb5.a"; then
                   1412:        SUDO_LDFLAGS="${SUDO_LDFLAGS} -L/usr/local/lib"
                   1413:     elif test -f "/usr/local/kerberos/lib/libkrb5.a"; then
                   1414:        SUDO_LDFLAGS="${SUDO_LDFLAGS} -L/usr/local/kerberos/lib"
                   1415:     elif test -f "/usr/local/krb5/lib/libkrb5.a"; then
                   1416:        SUDO_LDFLAGS="${SUDO_LDFLAGS} -L/usr/local/krb5/lib"
                   1417:     else
                   1418:        echo 'Unable to locate kerberos 5 libraries, you will have to edit the Makefile and add -L/path/to/krb/libs to SUDO_LDFLAGS'
                   1419:     fi
                   1420:
                   1421:     SUDO_LIBS="${SUDO_LIBS} -lkrb5 -lk5crypto -lcom_err"
                   1422:     AUTH_OBJS="${AUTH_OBJS} kerb5.o"
                   1423: fi
                   1424:
                   1425: dnl
                   1426: dnl Find kerberos 4 includes and libs or complain
                   1427: dnl
                   1428: if test "$with_kerb4" = "yes"; then
                   1429:     AC_DEFINE(HAVE_KERB4)
                   1430:     if test -f "/usr/include/kerberosIV/krb.h"; then
                   1431:        CPPFLAGS="${CPPFLAGS} -I/usr/include/kerberosIV"
                   1432:     elif test -f "/usr/local/include/kerberosIV/krb.h"; then
                   1433:        CPPFLAGS="${CPPFLAGS} -I/usr/local/include/kerberosIV"
                   1434:     elif test -f "/usr/kerberos/include/krb.h"; then
                   1435:        CPPFLAGS="${CPPFLAGS} -I/usr/kerberos/include"
                   1436:     elif test -f "/usr/local/kerberos/include/krb.h"; then
                   1437:        CPPFLAGS="${CPPFLAGS} -I/usr/local/kerberos/include"
                   1438:     else
                   1439:        echo 'Unable to locate kerberos 4 include files, you will have to edit the Makefile and add -I/path/to/krb/includes to CPPFLAGS'
                   1440:     fi
                   1441:
                   1442:     if test -d "/usr/kerberos/lib"; then
                   1443:        SUDO_LDFLAGS="${SUDO_LDFLAGS} -L/usr/kerberos/lib"
                   1444:     elif test -d "/usr/lib/kerberos"; then
                   1445:        SUDO_LDFLAGS="${SUDO_LDFLAGS} -L/usr/lib/kerberos"
                   1446:     elif test -f "/usr/local/lib/libkrb.a"; then
                   1447:        SUDO_LDFLAGS="${SUDO_LDFLAGS} -L/usr/local/lib"
                   1448:     elif test ! -f "/usr/lib/libkrb.a"; then
                   1449:        echo 'Unable to locate kerberos 4 libraries, you will have to edit the Makefile and add -L/path/to/krb/libs to SUDO_LDFLAGS'
                   1450:     fi
                   1451:
                   1452:     AC_HAVE_LIBRARY(des, SUDO_LIBS="${SUDO_LIBS} -lkrb -ldes", SUDO_LIBS="${SUDO_LIBS} -lkrb")
                   1453:     AUTH_OBJS="${AUTH_OBJS} kerb4.o"
                   1454: fi
                   1455:
                   1456: dnl
                   1457: dnl PAM libs
                   1458: dnl
                   1459: if test "$with_pam" = "yes"; then
                   1460:     SUDO_LIBS="${SUDO_LIBS} -ldl -lpam"
                   1461: fi
                   1462:
                   1463: dnl
                   1464: dnl extra AFS libs and includes
                   1465: dnl
                   1466: if test "$with_AFS" = "yes"; then
                   1467:
                   1468:     # looks like the "standard" place for AFS libs is /usr/afsws/lib
                   1469:     AFSLIBDIRS="/usr/lib/afs /usr/afsws/lib /usr/afsws/lib/afs"
                   1470:     for i in $AFSLIBDIRS; do
                   1471:        if test -d ${i}; then
                   1472:            SUDO_LDFLAGS="${SUDO_LDFLAGS} -L${i}"
                   1473:            FOUND_AFSLIBDIR=true
                   1474:        fi
                   1475:     done
                   1476:     if test -z "$FOUND_AFSLIBDIR"; then
                   1477:        echo 'Unable to locate AFS libraries, you will have to edit the Makefile and add -L/path/to/afs/libs to SUDO_LDFLAGS or rerun configure with the --with-libpath options.'
                   1478:     fi
                   1479:
                   1480:     # Order is important here.  Note that we build AFS_LIBS from right to left
                   1481:     # since AFS_LIBS may be initialized with BSD compat libs that must go last
                   1482:     AFS_LIBS="-laudit ${AFS_LIBS}"
                   1483:     for i in $AFSLIBDIRS; do
                   1484:        if test -f ${i}/util.a; then
                   1485:            AFS_LIBS="${i}/util.a ${AFS_LIBS}"
                   1486:            FOUND_UTIL_A=true
                   1487:            break;
                   1488:        fi
                   1489:     done
                   1490:     if test -z "$FOUND_UTIL_A"; then
                   1491:        AFS_LIBS="-lutil ${AFS_LIBS}"
                   1492:     fi
                   1493:     AFS_LIBS="-lkauth -lprot -lubik -lauth -lrxkad -lsys -ldes -lrx -llwp -lcom_err ${AFS_LIBS}"
                   1494:
                   1495:     # AFS includes may live in /usr/include on some machines...
                   1496:     for i in /usr/afsws/include; do
                   1497:        if test -d ${i}; then
                   1498:            CPPFLAGS="${CPPFLAGS} -I${i}"
                   1499:            FOUND_AFSINCDIR=true
                   1500:        fi
                   1501:     done
                   1502:
                   1503:     if test -z "$FOUND_AFSLIBDIR"; then
                   1504:        echo '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.'
                   1505:     fi
                   1506: fi
                   1507:
                   1508: dnl
                   1509: dnl extra DCE obj + lib
                   1510: dnl Order of libs in HP-UX 10.x is important, -ldce must be last.
                   1511: dnl
                   1512: if test "$with_DCE" = "yes"; then
                   1513:     DCE_OBJS="${DCE_OBJS} dce_pwent.o"
                   1514:     SUDO_LIBS="${SUDO_LIBS} -ldce"
                   1515: fi
                   1516:
                   1517: dnl
                   1518: dnl extra S/Key lib and includes
                   1519: dnl
                   1520: if test "$with_skey" = "yes"; then
                   1521:     SUDO_LIBS="${SUDO_LIBS} -lskey"
                   1522:     if test -f /usr/include/skey.h -a -f /usr/lib/libskey.a; then
                   1523:        :
                   1524:     elif test -f /usr/local/include/skey.h; then
                   1525:        CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
                   1526:        SUDO_LDFLAGS="${SUDO_LDFLAGS} -L/usr/local/lib"
                   1527:     elif test "$with_csops" = "yes" -a -f /tools/cs/skey/include/skey.h -a -f /tools/cs/skey/lib/libskey.a; then
                   1528:        CPPFLAGS="${CPPFLAGS} -I/tools/cs/skey/include"
                   1529:        SUDO_LDFLAGS="${SUDO_LDFLAGS} -L/tools/cs/skey/lib"
                   1530:     else
                   1531:        echo 'Unable to locate libskey.a and/or skey.h, you will have to edit the Makefile and add -L/path/to/skey/lib to SUDO_LDFLAGS and/or -I/path/to/skey.h to CPPFLAGS'
                   1532:     fi
                   1533: fi
                   1534:
                   1535: dnl
                   1536: dnl extra OPIE lib and includes
                   1537: dnl
                   1538: if test "$with_opie" = "yes"; then
                   1539:     SUDO_LIBS="${SUDO_LIBS} -lopie"
                   1540:     if test -f /usr/include/opie.h -a -f /usr/lib/libopie.a; then
                   1541:        :
                   1542:     elif test -f /usr/local/include/opie.h; then
                   1543:        CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
                   1544:        SUDO_LDFLAGS="${SUDO_LDFLAGS} -L/usr/local/lib"
                   1545:     else
                   1546:        echo 'Unable to locate libopie.a and/or opie.h, you will have to edit the Makefile and add -L/path/to/opie/lib to SUDO_LDFLAGS and/or -I/path/to/opie.h to CPPFLAGS'
                   1547:     fi
                   1548: fi
                   1549:
                   1550: dnl
                   1551: dnl extra SecurID lib + includes
                   1552: dnl
                   1553: if test -n "$with_SecurID" -a "$with_SecurID" != "no"; then
                   1554:     if test "$with_SecurID" != "yes"; then
                   1555:        SUDO_LIBS="${SUDO_LIBS} ${with_SecurID}/sdiclient.a"
                   1556:        CPPFLAGS="${CPPFLAGS} -I${with_SecurID}"
                   1557:     elif test -f /usr/ace/examples/sdiclient.a; then
                   1558:        SUDO_LIBS="${SUDO_LIBS} /usr/ace/examples/sdiclient.a"
                   1559:        CPPFLAGS="${CPPFLAGS} -I/usr/ace/examples"
                   1560:     else
                   1561:        SUDO_LIBS="${SUDO_LIBS} /usr/ace/sdiclient.a"
                   1562:        CPPFLAGS="${CPPFLAGS} -I/usr/ace"
                   1563:     fi
                   1564: fi
                   1565:
                   1566: dnl
                   1567: dnl extra FWTK libs + includes
                   1568: dnl
                   1569: if test "$with_fwtk" = "yes"; then
                   1570:     SUDO_LIBS="${SUDO_LIBS} -lauth -lfwall"
                   1571: fi
                   1572:
                   1573: dnl
                   1574: dnl extra 'authenticate' lib (AIX only?)
                   1575: dnl
                   1576: if test "$with_authenticate" = "yes"; then
                   1577:     SUDO_LIBS="${SUDO_LIBS} -ls"
                   1578: fi
                   1579:
                   1580: dnl
                   1581: dnl Check for log file and timestamp locations
                   1582: dnl
                   1583: SUDO_LOGFILE
                   1584: SUDO_TIMEDIR
                   1585:
                   1586: dnl
                   1587: dnl Use passwd (and secureware) auth modules?
                   1588: dnl
                   1589: if test "$with_passwd" = "no"; then
                   1590:     AC_DEFINE(WITHOUT_PASSWD)
                   1591:     if test -z "$AUTH_OBJS"; then
                   1592:        AC_MSG_ERROR([no authentication methods defined.])
                   1593:     fi
                   1594: else
                   1595:     if test -n "$SECUREWARE"; then
                   1596:        AUTH_OBJS="${AUTH_OBJS} passwd.o secureware.o"
                   1597:     else
                   1598:        AUTH_OBJS="${AUTH_OBJS} passwd.o"
                   1599:     fi
                   1600: fi
                   1601:
                   1602: dnl
                   1603: dnl LIBS may contain duplicates from SUDO_LIBS or NET_LIBS so prune it.
                   1604: dnl
                   1605: if test -n "$LIBS"; then
                   1606:     L="$LIBS"
                   1607:     LIBS=
                   1608:     for l in ${L}; do
                   1609:        dupe=0
                   1610:        for sl in ${SUDO_LIBS} ${NET_LIBS}; do
                   1611:            test $l = $sl && dupe=1
                   1612:        done
                   1613:        test $dupe = 0 && LIBS="${LIBS} $l"
                   1614:     done
                   1615: fi
                   1616:
                   1617: dnl
                   1618: dnl Set exec_prefix
                   1619: dnl
                   1620: test "$exec_prefix" = "NONE" && exec_prefix='$(prefix)'
                   1621:
                   1622: dnl
                   1623: dnl Substitute into the Makefiles
                   1624: dnl
                   1625: AC_OUTPUT(Makefile)
                   1626:
                   1627: dnl
                   1628: dnl Spew any text the user needs to know about
                   1629: dnl
                   1630: if test "$with_pam" = "yes"; then
                   1631:     echo ""
                   1632:     case $host in
                   1633:        *-*-linux*)
                   1634:            echo "You will need to customize sample.pam and install it as /etc/pam.d/sudo"
                   1635:            ;;
                   1636:     esac
                   1637:     echo ""
                   1638: fi