X-Git-Url: http://andersk.mit.edu/gitweb/openssh.git/blobdiff_plain/13652e527f923ca1e5df5d0ca2ca411779cc48e0..3548428432d86d072333b369df2f3622b653b4c4:/configure.in diff --git a/configure.in b/configure.in index 7f7326fb..b676193d 100644 --- a/configure.in +++ b/configure.in @@ -1,14 +1,10 @@ AC_INIT(ssh.c) AC_CONFIG_HEADER(config.h) +AC_PROG_CC AC_CANONICAL_HOST -# C Compiler features -if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -Wall"; fi -AC_C_INLINE - # Checks for programs. -AC_PROG_CC AC_PROG_CPP AC_PROG_RANLIB AC_PROG_INSTALL @@ -16,12 +12,26 @@ AC_CHECK_PROG(AR, ar, ar) AC_PATH_PROG(PERL, perl) AC_SUBST(PERL) +if test -z "$LD" ; then + LD=$CC +fi +AC_SUBST(LD) + +# C Compiler features +AC_C_INLINE +if test "$GCC" = "yes"; then + CFLAGS="$CFLAGS -Wall" +fi + # Check for some target-specific stuff case "$host" in *-*-aix*) AFS_LIBS="-lld" CFLAGS="$CFLAGS -I/usr/local/include" LDFLAGS="$LDFLAGS -L/usr/local/lib" + if test "$LD" != "gcc" -a -z "$blibpath"; then + blibpath="/usr/lib:/lib:/usr/local/lib" + fi AC_DEFINE(BROKEN_GETADDRINFO) ;; *-*-hpux10*) @@ -71,9 +81,8 @@ case "$host" in ;; *-*-solaris*) CFLAGS="$CFLAGS -I/usr/local/include" - LDFLAGS="$LDFLAGS -L/usr/local/lib -R/usr/local/lib" + LDFLAGS="$LDFLAGS -L/usr/local/lib -R/usr/local/lib -L/usr/ucblib -R/usr/ucblib" need_dash_r=1 - LDFLAGS="-L/usr/ucblib -R/usr/ucblib" AC_DEFINE(USE_UTMPX) ;; *-*-sysv*) @@ -101,7 +110,7 @@ fi AC_CHECK_HEADERS(bstring.h endian.h lastlog.h login.h maillock.h netdb.h netgroup.h paths.h poll.h pty.h shadow.h security/pam_appl.h sys/bitypes.h sys/bsdtty.h sys/cdefs.h sys/poll.h sys/select.h sys/stropts.h sys/sysmacros.h sys/time.h sys/ttcompat.h stddef.h util.h utmp.h utmpx.h) # Checks for library functions. -AC_CHECK_FUNCS(arc4random bindresvport_af freeaddrinfo gai_strerror getaddrinfo getnameinfo innetgr md5_crypt mkdtemp openpty rresvport_af setenv seteuid setlogin setproctitle setreuid snprintf strlcat strlcpy updwtmpx vsnprintf _getpty) +AC_CHECK_FUNCS(arc4random bindresvport_af clock freeaddrinfo gai_strerror getaddrinfo getnameinfo getrusage innetgr md5_crypt mkdtemp openpty rresvport_af setenv seteuid setlogin setproctitle setreuid snprintf strlcat strlcpy updwtmpx vsnprintf _getpty) AC_CHECK_FUNC(login, [AC_DEFINE(HAVE_LOGIN)], @@ -189,9 +198,14 @@ for ssldir in "" $tryssldir /usr/local/openssl /usr/lib/openssl /usr/local/ssl / #include #include int main(void) - {RSA *key; char seed[2048];memset(seed, 0, sizeof(seed)); - RAND_seed(seed, sizeof(seed));key=RSA_generate_key(32,3,NULL,NULL); - return(key==NULL);} + { + RSA *key; char a[2048],b[2048];; + memset(a, 0, sizeof(a));memset(b, 0, sizeof(b)); + RAND_add(a, sizeof(a), sizeof(a)); + key=RSA_generate_key(32,3,NULL,NULL); + if (key==NULL) return(1); + return(-1==RSA_private_decrypt(RSA_size(key),a,b,key,RSA_NO_PADDING)); + } ], [ AC_DEFINE(HAVE_OPENSSL) @@ -199,22 +213,6 @@ for ssldir in "" $tryssldir /usr/local/openssl /usr/lib/openssl /usr/local/ssl / break; ], [] ) - AC_TRY_RUN( - [ - #include - #include - #include - int main(void) - {RSA *key; char seed[2048];memset(seed, 0, sizeof(seed)); - RAND_seed(seed, sizeof(seed));key=RSA_generate_key(32,3,NULL,NULL); - return(key==NULL);} - ], - [ - AC_DEFINE(HAVE_SSL) - found_crypto=1 - break; - ], [] - ) done if test ! -z "$found_crypto" ; then @@ -233,6 +231,9 @@ else if test ! -z "$need_dash_r" ; then LDFLAGS="$LDFLAGS -R$ssldir/lib -R$ssldir" fi + if test ! -z "$blibpath" ; then + blibpath="$blibpath:$ssldir:$ssldir/lib" + fi fi if test -z "$WANTS_RSAREF" ; then LIBS="$saved_LIBS -lcrypto" @@ -252,7 +253,7 @@ AC_CHECK_SIZEOF(long long int, 8) AC_MSG_CHECKING([for intXX_t types]) AC_TRY_COMPILE( [#include ], - [int16_t a; int32_t b; a = 1235; b = 1235;], + [int8_t a; int16_t b; int32_t c; a = b = c = 1;], [ AC_DEFINE(HAVE_INTXX_T) AC_MSG_RESULT(yes) @@ -264,7 +265,7 @@ AC_TRY_COMPILE( AC_MSG_CHECKING([for u_intXX_t types]) AC_TRY_COMPILE( [#include ], - [u_int16_t c; u_int32_t d; c = 1235; d = 1235;], + [u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;], [ AC_DEFINE(HAVE_U_INTXX_T) AC_MSG_RESULT(yes) @@ -280,10 +281,9 @@ then AC_TRY_COMPILE( [#include ], [ - u_int16_t c; u_int32_t d; - int16_t e; int32_t f; - c = 1235; d = 1235; - e = 1235; f = 1235; + int8_t a; int16_t b; int32_t c; + u_int8_t e; u_int16_t f; u_int32_t g; + a = b = c = e = f = g = 1; ], [ AC_DEFINE(HAVE_U_INTXX_T) @@ -294,16 +294,18 @@ then ) fi -AC_MSG_CHECKING([for uintXX_t types]) -AC_TRY_COMPILE( - [#include ], - [uint16_t c; uint32_t d; c = 1235; d = 1235;], - [ - AC_DEFINE(HAVE_UINTXX_T) - AC_MSG_RESULT(yes) - ], - [AC_MSG_RESULT(no)] -) +if test -z "$have_u_intxx_t" ; then + AC_MSG_CHECKING([for uintXX_t types]) + AC_TRY_COMPILE( + [#include ], + [uint8_t a; uint16_t b; uint32_t c; a = b = c = 1;], + [ + AC_DEFINE(HAVE_UINTXX_T) + AC_MSG_RESULT(yes) + ], + [AC_MSG_RESULT(no)] + ) +fi AC_MSG_CHECKING([for socklen_t]) AC_TRY_COMPILE( @@ -581,8 +583,10 @@ AC_CHECK_FILE("/dev/ptc", AC_ARG_WITH(random, [ --with-random=FILE read randomness from FILE (default=/dev/urandom)], [ - RANDOM_POOL="$withval"; - AC_DEFINE_UNQUOTED(RANDOM_POOL, "$RANDOM_POOL") + if test "x$withval" != "xno" ; then + RANDOM_POOL="$withval"; + AC_DEFINE_UNQUOTED(RANDOM_POOL, "$RANDOM_POOL") + fi ], [ # Check for random device @@ -600,16 +604,72 @@ AC_ARG_WITH(random, AC_ARG_WITH(egd-pool, [ --with-egd-pool=FILE read randomness from EGD pool FILE (default none)], [ - RANDOM_POOL="$withval"; - AC_DEFINE(HAVE_EGD) - AC_SUBST(RANDOM_POOL) - AC_DEFINE_UNQUOTED(RANDOM_POOL, "$RANDOM_POOL") + if test "x$withval" != "xno" ; then + EGD_SOCKET="$withval"; + AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET") + fi ] ) -# Make sure we have some random number support -if test -z "$RANDOM_POOL" -a -z "$EGD_POOL"; then - AC_MSG_ERROR([No random device found, and no EGD random pool specified]) +if test -z "$RANDOM_POOL" -a -z "$EGD_SOCKET" ; then + # Use these commands to collect entropy + AC_PATH_PROG(PROG_LS, ls) + AC_PATH_PROG(PROG_NETSTAT, netstat) + AC_PATH_PROG(PROG_ARP, arp) + AC_PATH_PROG(PROG_IFCONFIG, ifconfig) + AC_PATH_PROG(PROG_PS, ps) + AC_PATH_PROG(PROG_W, w) + AC_PATH_PROG(PROG_WHO, who) + AC_PATH_PROG(PROG_LAST, last) + AC_PATH_PROG(PROG_LASTLOG, lastlog) + AC_PATH_PROG(PROG_DF, df) + AC_PATH_PROG(PROG_VMSTAT, vmstat) + AC_PATH_PROG(PROG_UPTIME, uptime) + AC_PATH_PROG(PROG_IPCS, ipcs) + AC_PATH_PROG(PROG_TAIL, tail) + AC_PATH_PROG(PROG_LS, ls) + if test ! -z "$PROG_LS" ; then + AC_DEFINE_UNQUOTED(PROG_LS, "$PROG_LS") + fi + if test ! -z "$PROG_NETSTAT" ; then + AC_DEFINE_UNQUOTED(PROG_NETSTAT, "$PROG_NETSTAT") + fi + if test ! -z "$PROG_ARP" ; then + AC_DEFINE_UNQUOTED(PROG_ARP, "$PROG_ARP") + fi + if test ! -z "$PROG_IFCONFIG" ; then + AC_DEFINE_UNQUOTED(PROG_IFCONFIG, "$PROG_IFCONFIG") + fi + if test ! -z "$PROG_PS" ; then + AC_DEFINE_UNQUOTED(PROG_PS, "$PROG_PS") + fi + if test ! -z "$PROG_W" ; then + AC_DEFINE_UNQUOTED(PROG_W, "$PROG_W") + fi + if test ! -z "$PROG_WHO" ; then + AC_DEFINE_UNQUOTED(PROG_WHO, "$PROG_WHO") + fi + if test ! -z "$PROG_LAST" ; then + AC_DEFINE_UNQUOTED(PROG_LAST, "$PROG_LAST") + fi + if test ! -z "$PROG_LASTLOG" ; then + AC_DEFINE_UNQUOTED(PROG_LASTLOG, "$PROG_LASTLOG") + fi + if test ! -z "$PROG_DF" ; then + AC_DEFINE_UNQUOTED(PROG_DF, "$PROG_DF") + fi + if test ! -z "$PROG_VMSTAT" ; then + AC_DEFINE_UNQUOTED(PROG_VMSTAT, "$PROG_VMSTAT") + fi + if test ! -z "$PROG_UPTIME" ; then + AC_DEFINE_UNQUOTED(PROG_UPTIME, "$PROG_UPTIME") + fi + if test ! -z "$PROG_UPTIME" ; then + AC_DEFINE_UNQUOTED(PROG_UPTIME, "$PROG_UPTIME") + fi + if test ! -z "$PROG_TAIL" ; then + AC_DEFINE_UNQUOTED(PROG_TAIL, "$PROG_TAIL") + fi fi AC_ARG_WITH(catman, @@ -640,6 +700,12 @@ AC_ARG_WITH(kerberos4, if test "x$withval" != "$xyes" ; then CFLAGS="$CFLAGS -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 CFLAGS="$CFLAGS -I/usr/include/kerberosIV" @@ -820,4 +886,9 @@ AC_ARG_WITH(pid-dir, AC_DEFINE_UNQUOTED(PIDDIR, "$piddir") AC_SUBST(piddir) +if test ! -z "$blibpath" ; then + LDFLAGS="$LDFLAGS -blibpath:$blibpath" + AC_MSG_WARN([Please check and edit -blibpath in LDFLAGS in Makefile]) +fi + AC_OUTPUT(Makefile)