mirror of
				https://github.com/libssh2/libssh2.git
				synced 2025-11-03 22:13:11 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			246 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			246 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# AC_PREREQ(2.57)
 | 
						|
AC_INIT(libssh2, 0.15, libssh2-devel@lists.sourceforge.net)
 | 
						|
AM_INIT_AUTOMAKE(libssh2, 0.15)
 | 
						|
AC_CONFIG_SRCDIR([src])
 | 
						|
AC_CONFIG_HEADER([src/libssh2_config.h])
 | 
						|
AB_INIT
 | 
						|
 | 
						|
# Check for the OS.
 | 
						|
# Daniel's note: this should not be necessary and we need to work to
 | 
						|
# get this removed.
 | 
						|
AC_CANONICAL_HOST
 | 
						|
case "$host" in
 | 
						|
	*-cygwin)
 | 
						|
	CFLAGS="$CFLAGS -DLIBSSH2_WIN32"
 | 
						|
    ;;
 | 
						|
	*darwin*)
 | 
						|
	CFLAGS="$CFLAGS -DLIBSSH2_DARWIN"
 | 
						|
	;;
 | 
						|
    *hpux*)
 | 
						|
    ;;
 | 
						|
    *)
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
# Some systems (Solaris?) have socket() in -lsocket.
 | 
						|
AC_SEARCH_LIBS(socket, socket)
 | 
						|
 | 
						|
# Solaris has inet_addr() in -lnsl.
 | 
						|
AC_SEARCH_LIBS(inet_addr, nsl)
 | 
						|
 | 
						|
AC_SUBST(LIBS)
 | 
						|
 | 
						|
AC_PROG_CC
 | 
						|
AC_PROG_INSTALL
 | 
						|
AC_PROG_LN_S
 | 
						|
AC_PROG_MAKE_SET
 | 
						|
AC_PROG_LIBTOOL
 | 
						|
AC_C_BIGENDIAN
 | 
						|
if test -z "$PKG_CONFIG"; then
 | 
						|
  AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
 | 
						|
fi
 | 
						|
 | 
						|
# Look for libgcrypt.
 | 
						|
AC_ARG_WITH(libgcrypt,
 | 
						|
  AC_HELP_STRING([--with-libgcrypt],[Use libgcrypt for crypto]),
 | 
						|
  use_libgcrypt=$withval,use_libgcrypt=no)
 | 
						|
if test "$use_libgcrypt" != "no"; then
 | 
						|
  AC_LIB_HAVE_LINKFLAGS([gcrypt], [], [#include <gcrypt.h>])
 | 
						|
fi
 | 
						|
if test "$ac_cv_libgcrypt" = yes; then
 | 
						|
  use_libgcrypt=yes
 | 
						|
  AC_DEFINE(LIBSSH2_LIBGCRYPT, 1, [Use libgcrypt])
 | 
						|
fi
 | 
						|
AM_CONDITIONAL(LIBGCRYPT, test "$use_libgcrypt" != "no")
 | 
						|
 | 
						|
# Need to define SHLIB_SUFFIX_NAME before checking for libcrypt and libz
 | 
						|
# $shrext_cmds (from libtool) can contain commands so it must be eval'd
 | 
						|
# Simon's note: replace the find-openssl/libz logic with Bruno's
 | 
						|
# AC_LIB_LINKFLAGS which is more portable and flexible.
 | 
						|
eval SHLIB_SUFFIX_NAME=\"$shrext_cmds\"
 | 
						|
AC_SUBST(SHLIB_SUFFIX_NAME)
 | 
						|
 | 
						|
#
 | 
						|
# Look for OpenSSL
 | 
						|
#
 | 
						|
AC_ARG_WITH(openssl,
 | 
						|
  AC_HELP_STRING([--with-openssl=DIR],[Look for OpenSSL in PATH]),
 | 
						|
  [LIBSSH2_OPENSSL_DIR=$withval],[LIBSSH2_OPENSSL_DIR=yes])
 | 
						|
 | 
						|
if test "$use_libgcrypt" = "no"; then
 | 
						|
 | 
						|
if test "$LIBSSH2_OPENSSL_DIR" = "no" || test "$LIBSSH2_OPENSSL_DIR" = "yes"; then
 | 
						|
  unset LIBSSH2_OPENSSL_DIR
 | 
						|
fi
 | 
						|
 | 
						|
found_openssl=no
 | 
						|
pkgcfg_openssl=no
 | 
						|
unset OPENSSL_INCDIR
 | 
						|
unset OPENSSL_INCLINE
 | 
						|
unset OPENSSL_LIBLINE
 | 
						|
 | 
						|
AC_MSG_CHECKING([for OpenSSL])
 | 
						|
 | 
						|
# Explicit path given, use it rather than pkg-config
 | 
						|
if test ! -z "$LIBSSH2_OPENSSL_DIR"; then
 | 
						|
  found_openssl=yes
 | 
						|
  OPENSSL_LIBLINE="-L$LIBSSH2_OPENSSL_DIR/lib -lcrypto"
 | 
						|
  OPENSSL_INCLINE="-I$LIBSSH2_OPENSSL_DIR/include"
 | 
						|
  OPENSSL_INCDIR=$LIBSSH2_OPENSSL_DIR/include
 | 
						|
  AC_MSG_RESULT([Using explicit path $LIBSSH2_OPENSSL_DIR])
 | 
						|
fi
 | 
						|
 | 
						|
# If pkg-config is found try using it
 | 
						|
if test "$found_openssl" = "no" && test -x "$PKG_CONFIG" && $PKG_CONFIG --exists openssl; then
 | 
						|
  found_openssl=yes
 | 
						|
  pkgcfg_openssl=yes
 | 
						|
  OPENSSL_LIBLINE=`$PKG_CONFIG --libs openssl`
 | 
						|
  OPENSSL_INCLINE=`$PKG_CONFIG --cflags-only-I openssl`
 | 
						|
  AC_MSG_RESULT([Using paths from pkg-config])
 | 
						|
fi
 | 
						|
 | 
						|
# Elsewise, search for OpenSSL wherever it might be
 | 
						|
if test "$found_openssl" = "no"; then
 | 
						|
  OPENSSL_SEARCH_PATH="/usr/local/ssl /usr/local /usr /usr/local/openssl"
 | 
						|
 | 
						|
  for i in $OPENSSL_SEARCH_PATH; do
 | 
						|
    if test -r $i/include/openssl/evp.h; then
 | 
						|
      OPENSSL_INCLINE="-I$i/include"
 | 
						|
      OPENSSL_INCDIR=$i/include
 | 
						|
    fi
 | 
						|
    if test -r $i/include/openssl/hmac.h; then
 | 
						|
      OPENSSL_INCLINE="-I$i/include"
 | 
						|
      OPENSSL_INCDIR=$i/include
 | 
						|
    fi
 | 
						|
    if test -r $i/lib/libcrypto.a -o -r $i/lib/libcrypto$SHLIB_SUFFIX_NAME; then
 | 
						|
      OPENSSL_LIBLINE="-L$i/lib -lcrypto"
 | 
						|
    fi
 | 
						|
    test -n "$OPENSSL_INCLINE" && test -n "$OPENSSL_LIBLINE" && break
 | 
						|
  done
 | 
						|
 | 
						|
  if test -z "$OPENSSL_INCLINE"; then
 | 
						|
    AC_MSG_ERROR([Cannot find OpenSSL's <evp.h> or <hmac.h>])
 | 
						|
  fi
 | 
						|
 | 
						|
  if test -z "$OPENSSL_LIBLINE"; then
 | 
						|
    AC_MSG_ERROR([Cannot find OpenSSL's libcrypto])
 | 
						|
  fi
 | 
						|
 | 
						|
  AC_MSG_RESULT([$OPENSSL_INCLINE $OPENSSL_LIBLINE])
 | 
						|
fi
 | 
						|
 | 
						|
#
 | 
						|
# Confirm required OpenSSL libs
 | 
						|
#
 | 
						|
if test ! "$pkgcfg_openssl" = "yes"; then
 | 
						|
  if test ! -r $OPENSSL_INCDIR/openssl/bn.h || test ! -r $OPENSSL_INCDIR/openssl/evp.h || \
 | 
						|
     test ! -r $OPENSSL_INCDIR/openssl/hmac.h || test ! -r $OPENSSL_INCDIR/openssl/pem.h || \
 | 
						|
     test ! -r $OPENSSL_INCDIR/openssl/sha.h; then
 | 
						|
       AC_MSG_ERROR([Missing one or more of <openssl/bn.h>, <openssl/evp.h>, <openssl/hmac.h>, <openssl/pem.h>, <openssl/sha.h>])
 | 
						|
  fi
 | 
						|
fi
 | 
						|
 | 
						|
CFLAGS="$CFLAGS $OPENSSL_INCLINE"
 | 
						|
LDFLAGS="$LDFLAGS $OPENSSL_LIBLINE"
 | 
						|
 | 
						|
fi
 | 
						|
 | 
						|
#
 | 
						|
# zlib
 | 
						|
#
 | 
						|
AC_ARG_WITH(libz,
 | 
						|
  AC_HELP_STRING([--with-libz=PATH],[Look for libz in PATH]),
 | 
						|
  [LIBSSH2_LIBZ_DIR=$withval],[LIBSSH2_LIBZ_DIR="/usr/local /usr /usr/local/libz /usr/libz /usr/local/zlib /usr/zlib"])
 | 
						|
 | 
						|
if test "$LIBSSH2_LIBZ_DIR" = "no" || test "$LIBSSH2_LIBZ_DIR" = "yes"; then
 | 
						|
  unset LIBSSH2_LIBZ_DIR
 | 
						|
fi
 | 
						|
 | 
						|
unset LIBZ_INCDIR
 | 
						|
unset LIBZ_LIBDIR
 | 
						|
 | 
						|
AC_MSG_CHECKING([for libz])
 | 
						|
 | 
						|
for i in $LIBSSH2_LIBZ_DIR; do
 | 
						|
  if test -r $i/include/zlib.h; then
 | 
						|
    LIBZ_INCDIR=$i/include
 | 
						|
  fi
 | 
						|
  if test -r $i/lib/libz.a -o -r $i/lib/libz$SHLIB_SUFFIX_NAME; then
 | 
						|
    LIBZ_LIBDIR=$i/lib
 | 
						|
  fi
 | 
						|
  test -n "$LIBZ_INCDIR" && test -n "$LIBZ_LIBDIR" && break
 | 
						|
done
 | 
						|
 | 
						|
if test -n "$LIBZ_INCDIR" && test -n "$LIBZ_LIBDIR"; then
 | 
						|
  AC_MSG_RESULT([Found in $LIBZ_INCDIR $LIBZ_LIBDIR])
 | 
						|
  CFLAGS="$CFLAGS -I$LIBZ_INCDIR"
 | 
						|
  LDFLAGS="$LDFLAGS -L$LIBZ_LIBDIR -lz"
 | 
						|
  AC_DEFINE(LIBSSH2_HAVE_ZLIB, 1, [Compile in zlib support])
 | 
						|
else
 | 
						|
  AC_MSG_RESULT([Cannot find libz's <zlib.h>])
 | 
						|
fi
 | 
						|
 | 
						|
#
 | 
						|
# Optional Settings
 | 
						|
#
 | 
						|
AC_ARG_ENABLE(crypt-none,
 | 
						|
  AC_HELP_STRING([--enable-crypt-none],[Permit "none" cipher -- NOT RECOMMENDED]),
 | 
						|
  [AC_DEFINE(LIBSSH2_CRYPT_NONE, 1, [Enable "none" cipher -- NOT RECOMMENDED])])
 | 
						|
 | 
						|
AC_ARG_ENABLE(mac-none,
 | 
						|
  AC_HELP_STRING([--enable-mac-none],[Permit "none" MAC -- NOT RECOMMENDED]),
 | 
						|
  [AC_DEFINE(LIBSSH2_MAC_NONE, 1, [Enable "none" MAC -- NOT RECOMMENDED])])
 | 
						|
 | 
						|
AC_ARG_ENABLE(gex-new,
 | 
						|
  AC_HELP_STRING([--disable-gex-new],[Disable "new" diffie-hellman-group-exchange-sha1 method]),
 | 
						|
  [GEX_NEW=$enableval])
 | 
						|
if test "$GEX_NEW" != "no"; then
 | 
						|
  AC_DEFINE(LIBSSH2_DH_GEX_NEW, 1, [Enable newer diffie-hellman-group-exchange-sha1 syntax])
 | 
						|
fi
 | 
						|
 | 
						|
dnl ************************************************************
 | 
						|
dnl option to switch on compiler debug options
 | 
						|
dnl
 | 
						|
AC_MSG_CHECKING([whether to enable pedantic and debug compiler options])
 | 
						|
AC_ARG_ENABLE(debug,
 | 
						|
AC_HELP_STRING([--enable-debug],[Enable pedantic and debug options])
 | 
						|
AC_HELP_STRING([--disable-debug],[Disable debug options]),
 | 
						|
[ case "$enableval" in
 | 
						|
  no)
 | 
						|
       AC_MSG_RESULT(no)
 | 
						|
       ;;
 | 
						|
  *)   AC_MSG_RESULT(yes)
 | 
						|
 | 
						|
    CPPFLAGS="$CPPFLAGS -DLIBSSH2DEBUG"
 | 
						|
    CFLAGS="$CFLAGS -g"
 | 
						|
 | 
						|
    dnl set compiler "debug" options to become more picky, and remove
 | 
						|
    dnl optimize options from CFLAGS
 | 
						|
    CURL_CC_DEBUG_OPTS
 | 
						|
       ;;
 | 
						|
  esac
 | 
						|
 ],
 | 
						|
       AC_MSG_RESULT(no)
 | 
						|
)
 | 
						|
 | 
						|
# Checks for header files.
 | 
						|
# AC_HEADER_STDC
 | 
						|
AC_CHECK_HEADERS([errno.h fcntl.h stdio.h stdlib.h unistd.h sys/uio.h])
 | 
						|
AC_CHECK_HEADERS([sys/select.h sys/socket.h sys/ioctl.h sys/time.h])
 | 
						|
AC_CHECK_HEADERS([arpa/inet.h netinet/in.h])
 | 
						|
AC_CHECK_FUNCS(poll gettimeofday select)
 | 
						|
 | 
						|
# Checks for typedefs, structures, and compiler characteristics.
 | 
						|
AC_C_CONST
 | 
						|
AC_C_INLINE
 | 
						|
 | 
						|
CURL_CHECK_NONBLOCKING_SOCKET
 | 
						|
 | 
						|
AC_CONFIG_FILES([Makefile
 | 
						|
                 src/Makefile
 | 
						|
                 tests/Makefile
 | 
						|
                 example/Makefile
 | 
						|
                 example/simple/Makefile
 | 
						|
                 docs/Makefile])
 | 
						|
AC_OUTPUT
 |