AC_CONFIG_HEADER(config.h)
AC_PROG_CC
AC_CANONICAL_HOST
+AC_C_BIGENDIAN
# Checks for programs.
AC_PROG_CPP
AC_PROG_RANLIB
AC_PROG_INSTALL
AC_PATH_PROG(AR, ar)
-AC_PATH_PROG(PERL, perl)
+AC_PATH_PROGS(PERL, perl5 perl)
AC_SUBST(PERL)
AC_PATH_PROG(ENT, ent)
AC_SUBST(ENT)
fi
AC_SUBST(LD)
-# C Compiler features
AC_C_INLINE
-if test "$GCC" = "yes"; then
- CFLAGS="$CFLAGS -Wall"
+if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
+ CFLAGS="$CFLAGS -Wall -Wpointer-arith -Wno-uninitialized"
fi
# Check for some target-specific stuff
fi
AC_CHECK_FUNC(authenticate, [AC_DEFINE(WITH_AIXAUTHENTICATE)])
AC_DEFINE(BROKEN_GETADDRINFO)
- MANTYPE='$(CATMAN)'
- mansubdir=cat
dnl AIX handles lastlog as part of its login message
AC_DEFINE(DISABLE_LASTLOG)
- MANTYPE='$(CATMAN)'
- mansubdir=cat
;;
*-*-cygwin*)
LIBS="$LIBS -lregex /usr/lib/textmode.o"
AC_DEFINE(HAVE_CYGWIN)
+ AC_DEFINE(USE_PIPES)
AC_DEFINE(DISABLE_SHADOW)
AC_DEFINE(IPV4_DEFAULT)
AC_DEFINE(IP_TOS_IS_BROKEN)
- AC_DEFINE(BROKEN_VHANGUP)
AC_DEFINE(NO_X11_UNIX_SOCKETS)
no_libsocket=1
no_libnsl=1
*-*-dgux*)
AC_DEFINE(IP_TOS_IS_BROKEN)
;;
+*-*-darwin*)
+ AC_DEFINE(BROKEN_GETADDRINFO)
+ ;;
*-*-hpux10*)
if test -z "$GCC"; then
CFLAGS="$CFLAGS -Ae"
fi
- CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
+ CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
IPADDR_IN_DISPLAY=yes
AC_DEFINE(USE_PIPES)
AC_DEFINE(DISABLE_SHADOW)
AC_DEFINE(DISABLE_UTMP)
AC_DEFINE(SPT_TYPE,SPT_PSTAT)
- LIBS="$LIBS -lsec"
- MANTYPE='$(CATMAN)'
- mansubdir=cat
+ LIBS="$LIBS -lxnet -lsec"
;;
*-*-hpux11*)
- CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
+ CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
IPADDR_IN_DISPLAY=yes
AC_DEFINE(PAM_SUN_CODEBASE)
AC_DEFINE(USE_PIPES)
AC_DEFINE(DISABLE_SHADOW)
AC_DEFINE(DISABLE_UTMP)
AC_DEFINE(SPT_TYPE,SPT_PSTAT)
- LIBS="$LIBS -lsec"
- MANTYPE='$(CATMAN)'
- mansubdir=cat
+ LIBS="$LIBS -lxnet -lsec"
;;
*-*-irix5*)
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
LDFLAGS="$LDFLAGS"
PATH="$PATH:/usr/etc"
- MANTYPE='$(CATMAN)'
no_libsocket=1
no_libnsl=1
AC_DEFINE(BROKEN_INET_NTOA)
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
LDFLAGS="$LDFLAGS"
PATH="$PATH:/usr/etc"
- MANTYPE='$(CATMAN)'
AC_DEFINE(WITH_IRIX_ARRAY)
AC_DEFINE(WITH_IRIX_PROJECT)
AC_DEFINE(WITH_IRIX_AUDIT)
no_libsocket=1
no_libnsl=1
AC_DEFINE(BROKEN_INET_NTOA)
- mansubdir=man
;;
*-*-linux*)
no_dev_ptmx=1
LDFLAGS="$LDFLAGS -L/usr/local/lib -R/usr/local/lib"
need_dash_r=1
AC_DEFINE(PAM_SUN_CODEBASE)
+ AC_DEFINE(LOGIN_NEEDS_UTMPX)
+ AC_DEFINE(LOGIN_NEEDS_TERM)
# hardwire lastlog location (can't detect it on some versions)
conf_lastlog_location="/var/adm/lastlog"
AC_MSG_CHECKING(for obsolete utmp and wtmp in solaris2.x)
conf_wtmp_location=/var/adm/wtmp
conf_lastlog_location=/var/adm/lastlog
AC_DEFINE(USE_PIPES)
- MANTYPE='$(CATMAN)'
- mansubdir=cat
;;
*-ncr-sysv*)
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
- MANTYPE='$(CATMAN)'
- mansubdir=cat
LIBS="$LIBS -lc89 -lnsl -lgen -lsocket"
+ AC_DEFINE(HAVE_BOGUS_SYS_QUEUE_H)
;;
*-sni-sysv*)
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib -L/usr/ucblib"
- MANTYPE='$(CATMAN)'
IPADDR_IN_DISPLAY=yes
AC_DEFINE(USE_PIPES)
AC_DEFINE(IP_TOS_IS_BROKEN)
- mansubdir=cat
+ AC_DEFINE(HAVE_BOGUS_SYS_QUEUE_H)
LIBS="$LIBS -lgen -lnsl -lucb"
;;
*-*-sysv4.2*)
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
- MANTYPE='$(CATMAN)'
- mansubdir=cat
enable_suid_ssh=no
AC_DEFINE(USE_PIPES)
;;
*-*-sysv5*)
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
- MANTYPE='$(CATMAN)'
- mansubdir=cat
enable_suid_ssh=no
AC_DEFINE(USE_PIPES)
;;
*-*-sysv*)
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
- MANTYPE='$(CATMAN)'
- mansubdir=cat
LIBS="$LIBS -lgen -lsocket"
;;
*-*-sco3.2v4*)
CPPFLAGS="$CPPFLAGS -Dftruncate=chsize -I/usr/local/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
- MANTYPE='$(CATMAN)'
LIBS="$LIBS -lgen -lsocket -los -lprot -lx -ltinfo -lm"
- mansubdir=cat
rsh_path="/usr/bin/rcmd"
RANLIB=true
no_dev_ptmx=1
AC_DEFINE(HAVE_BOGUS_SYS_QUEUE_H)
AC_DEFINE(BROKEN_SAVED_UIDS)
AC_CHECK_FUNCS(getluid setluid)
+ MANTYPE=man
;;
*-*-sco3.2v5*)
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
LIBS="$LIBS -lprot -lx -ltinfo -lm"
- MANTYPE='$(CATMAN)'
- mansubdir=cat
no_dev_ptmx=1
rsh_path="/usr/bin/rcmd"
AC_DEFINE(USE_PIPES)
AC_DEFINE(DISABLE_SHADOW)
AC_DEFINE(HAVE_BOGUS_SYS_QUEUE_H)
AC_CHECK_FUNCS(getluid setluid)
+ MANTYPE=man
;;
+*-*-unicos*)
+ no_libsocket=1
+ no_libnsl=1
+ AC_DEFINE(USE_PIPES)
+ LDFLAGS="$LDFLAGS -L/usr/local/lib"
+ LIBS="$LIBS -lgen -lrsc"
+ ;;
*-dec-osf*)
- if test ! -z "USE_SIA" ; then
- AC_MSG_CHECKING(for Digital Unix Security Integration Architecture)
+ AC_MSG_CHECKING(for Digital Unix SIA)
+ no_osfsia=""
+ AC_ARG_WITH(osfsia,
+ [ --with-osfsia Enable Digital Unix SIA],
+ [
+ if test "x$withval" = "xno" ; then
+ AC_MSG_RESULT(disabled)
+ no_osfsia=1
+ fi
+ ],
+ )
+ if test -z "$no_osfsia" ; then
if test -f /etc/sia/matrix.conf; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_OSF_SIA)
AC_FUNC_STRFTIME
# Checks for header files.
-AC_CHECK_HEADERS(bstring.h endian.h floatingpoint.h getopt.h lastlog.h limits.h login.h login_cap.h maillock.h netdb.h netgroup.h netinet/in_systm.h paths.h poll.h pty.h regex.h shadow.h security/pam_appl.h sys/bitypes.h sys/bsdtty.h sys/cdefs.h sys/poll.h sys/queue.h sys/select.h sys/stat.h sys/stropts.h sys/sysmacros.h sys/time.h sys/ttcompat.h sys/un.h stddef.h time.h ttyent.h usersec.h util.h utime.h utmp.h utmpx.h vis.h)
+AC_CHECK_HEADERS(bstring.h crypt.h endian.h floatingpoint.h getopt.h glob.h lastlog.h libgen.h limits.h login.h login_cap.h maillock.h netdb.h netgroup.h netinet/in_systm.h paths.h poll.h pty.h regex.h shadow.h security/pam_appl.h sys/bitypes.h sys/bsdtty.h sys/cdefs.h sys/poll.h sys/queue.h sys/select.h sys/stat.h sys/stropts.h sys/sysmacros.h sys/time.h sys/ttcompat.h sys/un.h stddef.h time.h ttyent.h usersec.h util.h utime.h utmp.h utmpx.h vis.h)
-# Check whether user wants Kerberos support
-KRB4_MSG="no"
-AC_ARG_WITH(kerberos4,
- [ --with-kerberos4=PATH Enable Kerberos 4 support],
+# Check for ALTDIRFUNC glob() extension
+AC_MSG_CHECKING(for GLOB_ALTDIRFUNC support)
+AC_EGREP_CPP(FOUNDIT,
[
- if test "x$withval" != "xno" ; then
-
- if test "x$withval" != "xyes" ; then
- CPPFLAGS="$CPPFLAGS -I${withval}/include"
- LDFLAGS="$LDFLAGS -L${withval}/lib"
- if test ! -z "$need_dash_r" ; then
- LDFLAGS="$LDFLAGS -R${withval}/lib"
- fi
- if test ! -z "$blibpath" ; then
- blibpath="$blibpath:${withval}/lib"
- fi
- else
- if test -d /usr/include/kerberosIV ; then
- CPPFLAGS="$CPPFLAGS -I/usr/include/kerberosIV"
- fi
- fi
-
- AC_CHECK_HEADERS(krb.h)
- AC_CHECK_LIB(krb, main)
- if test "$ac_cv_header_krb_h" != yes; then
- AC_MSG_WARN([Cannot find krb.h, build may fail])
- fi
- if test "$ac_cv_lib_krb_main" != yes; then
- AC_MSG_WARN([Cannot find libkrb, build may fail])
- fi
-
- KLIBS="-lkrb -ldes"
- AC_CHECK_LIB(resolv, dn_expand, , )
- KRB4=yes
- KRB4_MSG="yes"
- AC_DEFINE(KRB4)
- fi
+ #include <glob.h>
+ #ifdef GLOB_ALTDIRFUNC
+ FOUNDIT
+ #endif
+ ],
+ [
+ AC_DEFINE(GLOB_HAS_ALTDIRFUNC)
+ AC_MSG_RESULT(yes)
+ ],
+ [
+ AC_MSG_RESULT(no)
]
)
-# Check whether user wants AFS support
-AFS_MSG="no"
-AC_ARG_WITH(afs,
- [ --with-afs=PATH Enable AFS support],
- [
- if test "x$withval" != "xno" ; then
-
- if test "x$withval" != "xyes" ; then
- CPPFLAGS="$CPPFLAGS -I${withval}/include"
- LDFLAGS="$LDFLAGS -L${withval}/lib"
- fi
-
- if test -z "$KRB4" ; then
- AC_MSG_WARN([AFS requires Kerberos IV support, build may fail])
- fi
+# Check for g.gl_matchc glob() extension
+AC_MSG_CHECKING(for gl_matchc field in glob_t)
+AC_EGREP_CPP(FOUNDIT,
+ [
+ #include <glob.h>
+ int main(void){glob_t g; g.gl_matchc = 1;}
+ ],
+ [
+ AC_DEFINE(GLOB_HAS_GL_MATCHC)
+ AC_MSG_RESULT(yes)
+ ],
+ [
+ AC_MSG_RESULT(no)
+ ]
+)
- LIBS="$LIBS -lkafs"
- if test ! -z "$AFS_LIBS" ; then
- LIBS="$LIBS $AFS_LIBS"
- fi
- AC_DEFINE(AFS)
- AFS_MSG="yes"
- fi
+AC_MSG_CHECKING([whether struct dirent allocates space for d_name])
+AC_TRY_RUN(
+ [
+#include <sys/types.h>
+#include <dirent.h>
+int main(void){struct dirent d;return(sizeof(d.d_name)<=sizeof(char));}
+ ],
+ [AC_MSG_RESULT(yes)],
+ [
+ AC_MSG_RESULT(no)
+ AC_DEFINE(BROKEN_ONE_BYTE_DIRENT_D_NAME)
]
)
-LIBS="$LIBS $KLIBS"
# Check whether user wants S/Key support
SKEY_MSG="no"
)
dnl Checks for library functions.
-AC_CHECK_FUNCS(arc4random atexit b64_ntop bcopy bindresvport_sa clock fchown fchmod freeaddrinfo futimes gai_strerror getcwd getaddrinfo getgrouplist getnameinfo getrlimit getrusage getttyent inet_aton inet_ntoa innetgr login_getcapbool md5_crypt memmove mkdtemp on_exit openpty realpath rresvport_af setdtablesize setenv seteuid setlogin setproctitle setreuid setrlimit setsid sigaction sigvec snprintf strerror strlcat strlcpy strmode strsep strtok_r sysconf tcgetpgrp utimes vsnprintf vhangup vis waitpid _getpty __b64_ntop)
+AC_CHECK_FUNCS(arc4random atexit b64_ntop bcopy bindresvport_sa clock dirname fchown fchmod freeaddrinfo futimes gai_strerror getcwd getaddrinfo getgrouplist getopt getnameinfo getrlimit getrusage getttyent glob inet_aton inet_ntoa innetgr login_getcapbool md5_crypt memmove mkdtemp on_exit openpty readpassphrase realpath rresvport_af setdtablesize setenv setegid seteuid setlogin setproctitle setresgid setreuid setrlimit setsid setvbuf sigaction sigvec snprintf strerror strlcat strlcpy strmode strsep sysconf tcgetpgrp utimes vsnprintf vhangup vis waitpid _getpty __b64_ntop)
dnl Checks for time functions
AC_CHECK_FUNCS(gettimeofday time)
dnl Checks for libutil functions
# Try to use $ssldir/lib if it exists, otherwise
# $ssldir
if test -d "$ssldir/lib" ; then
- LDFLAGS="$saved_LDFLAGS -L$ssldir/lib"
+ LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
if test ! -z "$need_dash_r" ; then
- LDFLAGS="$LDFLAGS -R$ssldir/lib"
+ LDFLAGS="-R$ssldir/lib $LDFLAGS"
fi
else
- LDFLAGS="$saved_LDFLAGS -L$ssldir"
+ LDFLAGS="-L$ssldir $saved_LDFLAGS"
if test ! -z "$need_dash_r" ; then
- LDFLAGS="$LDFLAGS -R$ssldir"
+ LDFLAGS="-R$ssldir $LDFLAGS"
fi
fi
# Try to use $ssldir/include if it exists, otherwise
# $ssldir
if test -d "$ssldir/include" ; then
- CPPFLAGS="$saved_CPPFLAGS -I$ssldir/include"
+ CPPFLAGS="-I$ssldir/include $saved_CPPFLAGS"
else
- CPPFLAGS="$saved_CPPFLAGS -I$ssldir"
+ CPPFLAGS="-I$ssldir $saved_CPPFLAGS"
fi
fi
# Try to use $ssldir/lib if it exists, otherwise
# $ssldir
if test -d "$ssldir/lib" ; then
- LDFLAGS="$saved_LDFLAGS -L$ssldir/lib"
+ LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
if test ! -z "$need_dash_r" ; then
- LDFLAGS="$LDFLAGS -R$ssldir/lib"
+ LDFLAGS="-R$ssldir/lib $LDFLAGS"
fi
else
- LDFLAGS="$saved_LDFLAGS -L$ssldir"
+ LDFLAGS="-L$ssldir $saved_LDFLAGS"
if test ! -z "$need_dash_r" ; then
- LDFLAGS="$LDFLAGS -R$ssldir"
+ LDFLAGS="-R$ssldir $LDFLAGS"
fi
fi
# Try to use $ssldir/include if it exists, otherwise
# $ssldir
if test -d "$ssldir/include" ; then
- CPPFLAGS="$saved_CPPFLAGS -I$ssldir/include"
+ CPPFLAGS="-I$ssldir/include $saved_CPPFLAGS"
else
- CPPFLAGS="$saved_CPPFLAGS -I$ssldir"
+ CPPFLAGS="-I$ssldir $saved_CPPFLAGS"
fi
fi
fi
break;
], [])
done
+LIBS="$saved_LIBS"
if test ! -z "$no_rsa" ; then
AC_MSG_RESULT(disabled)
else
RSA_MSG="yes (using RSAref)"
AC_MSG_RESULT(using RSAref)
- LIBS="$saved_LIBS -lcrypto -lRSAglue -lrsaref"
+ LIBS="$LIBS -lcrypto -lRSAglue -lrsaref"
fi
fi
fi
# Some Linux systems (Slackware) need crypt() from libcrypt, *not* the
# version in OpenSSL. Skip this for PAM
if test "x$PAM_MSG" = "xno" -a "x$check_for_libcrypt_later" = "x1"; then
- AC_CHECK_LIB(crypt, crypt, , )
+ AC_CHECK_LIB(crypt, crypt, LIBS="$LIBS -lcrypt")
fi
# Cheap hack to ensure NEWS-OS libraries are arranged right.
"x$ac_cv_sizeof_long_int" != "x8" -a \
"x$ac_cv_sizeof_long_long_int" = "x0" ; then
NO_SFTP='#'
+else
+dnl test snprintf (broken on SCO w/gcc)
+ AC_TRY_RUN(
+ [
+#include <stdio.h>
+#include <string.h>
+#ifdef HAVE_SNPRINTF
+main()
+{
+ char buf[50];
+ char expected_out[50];
+ int mazsize = 50 ;
+#if (SIZEOF_LONG_INT == 8)
+ long int num = 0x7fffffffffffffff;
+#else
+ long long num = 0x7fffffffffffffffll;
+#endif
+ strcpy(expected_out, "9223372036854775807");
+ snprintf(buf, mazsize, "%lld", num);
+ if(strcmp(buf, expected_out) != 0)
+ exit(1);
+ exit(0);
+}
+#else
+main() { exit(0); }
+#endif
+ ], [ true ], [ AC_DEFINE(BROKEN_SNPRINTF) ]
+ )
fi
AC_SUBST(NO_SFTP)
AC_DEFINE(HAVE_PW_CLASS_IN_PASSWD)
fi
+AC_CACHE_CHECK([for pw_expire field in struct passwd],
+ ac_cv_have_pw_expire_in_struct_passwd, [
+ AC_TRY_COMPILE(
+ [
+#include <pwd.h>
+ ],
+ [ struct passwd p; p.pw_expire = 0; ],
+ [ ac_cv_have_pw_expire_in_struct_passwd="yes" ],
+ [ ac_cv_have_pw_expire_in_struct_passwd="no" ]
+ )
+])
+if test "x$ac_cv_have_pw_expire_in_struct_passwd" = "xyes" ; then
+ AC_DEFINE(HAVE_PW_EXPIRE_IN_PASSWD)
+fi
+
+AC_CACHE_CHECK([for pw_change field in struct passwd],
+ ac_cv_have_pw_change_in_struct_passwd, [
+ AC_TRY_COMPILE(
+ [
+#include <pwd.h>
+ ],
+ [ struct passwd p; p.pw_change = 0; ],
+ [ ac_cv_have_pw_change_in_struct_passwd="yes" ],
+ [ ac_cv_have_pw_change_in_struct_passwd="no" ]
+ )
+])
+if test "x$ac_cv_have_pw_change_in_struct_passwd" = "xyes" ; then
+ AC_DEFINE(HAVE_PW_CHANGE_IN_PASSWD)
+fi
AC_CACHE_CHECK([if libc defines __progname], ac_cv_libc_defines___progname, [
AC_TRY_LINK([],
AC_DEFINE(HAVE___PROGNAME)
fi
+AC_CACHE_CHECK([whether getopt has optreset support],
+ ac_cv_have_getopt_optreset, [
+ AC_TRY_LINK(
+ [
+#include <getopt.h>
+ ],
+ [ extern int optreset; optreset = 0; ],
+ [ ac_cv_have_getopt_optreset="yes" ],
+ [ ac_cv_have_getopt_optreset="no" ]
+ )
+])
+if test "x$ac_cv_have_getopt_optreset" = "xyes" ; then
+ AC_DEFINE(HAVE_GETOPT_OPTRESET)
+fi
AC_CACHE_CHECK([if libc defines sys_errlist], ac_cv_libc_defines_sys_errlist, [
AC_TRY_LINK([],
fi
+# Check whether user wants Kerberos support
+KRB4_MSG="no"
+AC_ARG_WITH(kerberos4,
+ [ --with-kerberos4=PATH Enable Kerberos 4 support],
+ [
+ if test "x$withval" != "xno" ; then
+
+ if test "x$withval" != "xyes" ; then
+ CPPFLAGS="$CPPFLAGS -I${withval}/include"
+ LDFLAGS="$LDFLAGS -L${withval}/lib"
+ if test ! -z "$need_dash_r" ; then
+ LDFLAGS="$LDFLAGS -R${withval}/lib"
+ fi
+ if test ! -z "$blibpath" ; then
+ blibpath="$blibpath:${withval}/lib"
+ fi
+ else
+ if test -d /usr/include/kerberosIV ; then
+ CPPFLAGS="$CPPFLAGS -I/usr/include/kerberosIV"
+ fi
+ fi
+
+ AC_CHECK_HEADERS(krb.h)
+ if test "$ac_cv_header_krb_h" != yes; then
+ AC_MSG_WARN([Cannot find krb.h, build may fail])
+ fi
+ AC_CHECK_LIB(krb, main)
+ if test "$ac_cv_lib_krb_main" != yes; then
+ AC_CHECK_LIB(krb4, main)
+ if test "$ac_cv_lib_krb4_main" != yes; then
+ AC_MSG_WARN([Cannot find libkrb nor libkrb4, build may fail])
+ else
+ KLIBS="-lkrb4"
+ fi
+ else
+ KLIBS="-lkrb"
+ fi
+ AC_CHECK_LIB(des, des_cbc_encrypt)
+ if test "$ac_cv_lib_des_des_cbc_encrypt" != yes; then
+ AC_CHECK_LIB(des425, des_cbc_encrypt)
+ if test "$ac_cv_lib_des425_des_cbc_encrypt" != yes; then
+ AC_MSG_WARN([Cannot find libdes nor libdes425, build may fail])
+ else
+ KLIBS="-ldes425"
+ fi
+ else
+ KLIBS="-ldes"
+ fi
+ AC_CHECK_LIB(resolv, dn_expand, , )
+ KRB4=yes
+ KRB4_MSG="yes"
+ AC_DEFINE(KRB4)
+ fi
+ ]
+)
+
+# Check whether user wants AFS support
+AFS_MSG="no"
+AC_ARG_WITH(afs,
+ [ --with-afs=PATH Enable AFS support],
+ [
+ if test "x$withval" != "xno" ; then
+
+ if test "x$withval" != "xyes" ; then
+ CPPFLAGS="$CPPFLAGS -I${withval}/include"
+ LDFLAGS="$LDFLAGS -L${withval}/lib"
+ fi
+
+ if test -z "$KRB4" ; then
+ AC_MSG_WARN([AFS requires Kerberos IV support, build may fail])
+ fi
+
+ LIBS="-lkafs $LIBS"
+ if test ! -z "$AFS_LIBS" ; then
+ LIBS="$LIBS $AFS_LIBS"
+ fi
+ AC_DEFINE(AFS)
+ AFS_MSG="yes"
+ fi
+ ]
+)
+LIBS="$LIBS $KLIBS"
+
# Looking for programs, paths and files
AC_ARG_WITH(rsh,
[ --with-rsh=PATH Specify path to remote shell program ],
]
)
-# Check for EGD pool file
-AC_ARG_WITH(egd-pool,
- [ --with-egd-pool=FILE read entropy from PRNGD/EGD socket FILE (default=/var/run/egd-pool)],
+# Check for PRNGD/EGD pool file
+AC_ARG_WITH(prngd-port,
+ [ --with-prngd-port=PORT read entropy from PRNGD/EGD localhost:PORT],
+ [
+ if test ! -z "$withval" -a "x$withval" != "xno" ; then
+ PRNGD_PORT="$withval"
+ AC_DEFINE_UNQUOTED(PRNGD_PORT, $PRNGD_PORT)
+ fi
+ ]
+)
+
+# Check for PRNGD/EGD pool file
+AC_ARG_WITH(prngd-socket,
+ [ --with-prngd-socket=FILE read entropy from PRNGD/EGD socket FILE (default=/var/run/egd-pool)],
[
if test "x$withval" != "xno" ; then
- EGD_SOCKET="$withval";
- AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET")
+ PRNGD_SOCKET="$withval"
+ AC_DEFINE_UNQUOTED(PRNGD_SOCKET, "$PRNGD_SOCKET")
fi
],
[
if test -z "$RANDOM_POOL" ; then
AC_MSG_CHECKING(for PRNGD/EGD socket)
# Insert other locations here
- for egdsock in /var/run/egd-pool /etc/entropy /tmp/entropy ; do
- if test -r $egdsock && $TEST_MINUS_S_SH -c "test -S $egdsock -o -p $egdsock" ; then
- EGD_SOCKET="$egdsock"
- AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET")
+ for sock in /var/run/egd-pool /dev/egd-pool /etc/entropy; do
+ if test -r $sock && $TEST_MINUS_S_SH -c "test -S $sock -o -p $sock" ; then
+ PRNGD_SOCKET="$sock"
+ AC_DEFINE_UNQUOTED(PRNGD_SOCKET, "$PRNGD_SOCKET")
break;
fi
done
- if test -x "$EGD_SOCKET" ; then
- AC_MSG_RESULT($EGD_SOCKET)
+ if test ! -z "$PRNGD_SOCKET" ; then
+ AC_MSG_RESULT($PRNGD_SOCKET)
else
AC_MSG_RESULT(not found)
fi
# detect pathnames for entropy gathering commands, if we need them
INSTALL_SSH_PRNG_CMDS=""
rm -f prng_commands
-if (test -z "$RANDOM_POOL" && test -z "$EGD_SOCKET") ; then
+if (test -z "$RANDOM_POOL" && test -z "$PRNGD") ; then
# Use these commands to collect entropy
OSSH_PATH_ENTROPY_PROG(PROG_LS, ls)
OSSH_PATH_ENTROPY_PROG(PROG_NETSTAT, netstat)
OSSH_PATH_ENTROPY_PROG(PROG_ARP, arp)
OSSH_PATH_ENTROPY_PROG(PROG_IFCONFIG, ifconfig)
+ OSSH_PATH_ENTROPY_PROG(PROG_JSTAT, jstat)
OSSH_PATH_ENTROPY_PROG(PROG_PS, ps)
OSSH_PATH_ENTROPY_PROG(PROG_W, w)
OSSH_PATH_ENTROPY_PROG(PROG_WHO, who)
AC_SUBST(INSTALL_SSH_PRNG_CMDS)
-AC_ARG_WITH(catman,
- [ --with-catman=man|cat Install preformatted manpages[no]],
+AC_ARG_WITH(mantype,
+ [ --with-mantype=man|cat|doc Set man page type],
[
- MANTYPE='$(CATMAN)'
- if test x"$withval" != x"yes" ; then
- mansubdir=$withval
- else
- mansubdir=cat
- fi
- ], [
- if test -z "$MANTYPE" ; then
- MANTYPE='$(TROFFMAN)'
- mansubdir=man
- fi
+ case "$withval" in
+ man|cat|doc)
+ MANTYPE=$withval
+ ;;
+ *)
+ AC_MSG_ERROR(invalid man type: $withval)
+ ;;
+ esac
]
)
+if test -z "$MANTYPE"; then
+ AC_PATH_PROGS(NROFF, nroff awf, /bin/false, /usr/bin:/usr/ucb)
+ if ${NROFF} -mdoc ${srcdir}/ssh.1 >/dev/null 2>&1; then
+ MANTYPE=doc
+ elif ${NROFF} -man ${srcdir}/ssh.1 >/dev/null 2>&1; then
+ MANTYPE=man
+ else
+ MANTYPE=cat
+ fi
+fi
AC_SUBST(MANTYPE)
+if test "$MANTYPE" = "doc"; then
+ mansubdir=man;
+else
+ mansubdir=$MANTYPE;
+fi
AC_SUBST(mansubdir)
# Check whether to enable MD5 passwords
[ --with-default-path=PATH Specify default \$PATH environment for server],
[
if test "x$withval" != "xno" ; then
- AC_DEFINE_UNQUOTED(USER_PATH, "$withval")
+ user_path="$withval"
SERVER_PATH_MSG="$withval"
fi
+ ],
+ [
+ AC_TRY_RUN(
+ [
+/* find out what STDPATH is */
+#include <stdio.h>
+#ifdef HAVE_PATHS_H
+# include <paths.h>
+#endif
+#ifndef _PATH_STDPATH
+# define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin"
+#endif
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#define DATA "conftest.stdpath"
+
+main()
+{
+ FILE *fd;
+ int rc;
+
+ fd = fopen(DATA,"w");
+ if(fd == NULL)
+ exit(1);
+
+ if ((rc = fprintf(fd,"%s", _PATH_STDPATH)) < 0)
+ exit(1);
+
+ exit(0);
+}
+ ], [ user_path=`cat conftest.stdpath` ],
+ [ user_path="/usr/bin:/bin:/usr/sbin:/sbin" ],
+ [ user_path="/usr/bin:/bin:/usr/sbin:/sbin" ]
+ )
+# make sure $bindir is in USER_PATH so scp will work
+ t_bindir=`eval echo ${bindir}`
+ case $t_bindir in
+ NONE/*) t_bindir=`echo $t_bindir | sed "s~NONE~$prefix~"` ;;
+ esac
+ case $t_bindir in
+ NONE/*) t_bindir=`echo $t_bindir | sed "s~NONE~$ac_default_prefix~"` ;;
+ esac
+ echo $user_path | grep ":$t_bindir" > /dev/null 2>&1
+ if test $? -ne 0 ; then
+ echo $user_path | grep "^$t_bindir" > /dev/null 2>&1
+ if test $? -ne 0 ; then
+ user_path=$user_path:$t_bindir
+ AC_MSG_RESULT(Adding $t_bindir to USER_PATH so scp will work)
+ fi
+ fi
]
)
+AC_DEFINE_UNQUOTED(USER_PATH, "$user_path")
+AC_SUBST(user_path)
# Whether to force IPv4 by default (needed on broken glibc Linux)
IPV4_HACK_MSG="no"
SSHMODE=0711
;;
*) AC_MSG_RESULT(yes)
- SSHMODE=04711
+ SSHMODE=4711
;;
esac ],
AC_MSG_RESULT(yes)
- SSHMODE=04711
+ SSHMODE=4711
)
AC_SUBST(SSHMODE)
# Print summary of options
-if test x$MANTYPE = x'$(CATMAN)' ; then
- MAN_MSG=cat
-else
- MAN_MSG=man
-fi
if test ! -z "$RANDOM_POOL" ; then
RAND_MSG="Device ($RANDOM_POOL)"
else
- if test ! -z "$EGD_SOCKET" ; then
- RAND_MSG="EGD/PRNGD ($EGD_SOCKET)"
+ if test ! -z "$PRNGD_PORT" ; then
+ RAND_MSG="PRNGD/EGD (port localhost:$PRNGD_PORT)"
+ elif test ! -z "$PRNGD_SOCKET" ; then
+ RAND_MSG="PRNGD/EGD (socket $PRNGD_SOCKET)"
else
RAND_MSG="Builtin (timeout $entropy_timeout)"
BUILTIN_RNG=1
E=`eval echo ${libexecdir}/ssh-askpass` ; E=`eval echo ${E}`
F=`eval echo ${mandir}/${mansubdir}X` ; F=`eval echo ${F}`
G=`eval echo ${piddir}` ; G=`eval echo ${G}`
+H=`eval echo ${user_path}` ; H=`eval echo ${H}`
echo ""
-echo "OpenSSH configured has been configured with the following options."
+echo "OpenSSH has been configured with the following options:"
echo " User binaries: $B"
echo " System binaries: $C"
echo " Configuration files: $D"
echo " Askpass program: $E"
echo " Manual pages: $F"
echo " PID file: $G"
+echo " sshd default user PATH: $H"
echo " Random number collection: $RAND_MSG"
-echo " Manpage format: $MAN_MSG"
+echo " Manpage format: $MANTYPE"
echo " PAM support: ${PAM_MSG}"
echo " KerberosIV support: $KRB4_MSG"
echo " AFS support: $AFS_MSG"