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