174 lines
4.8 KiB
Plaintext
174 lines
4.8 KiB
Plaintext
# AC_PREREQ(2.57)
|
|
AC_INIT(libssh2,0.8,sarag@libssh2.org)
|
|
AC_CONFIG_SRCDIR([src])
|
|
AC_CONFIG_HEADER([include/libssh2_config.h])
|
|
|
|
# Check for the OS.
|
|
AC_CANONICAL_HOST
|
|
case "$host" in
|
|
*-cygwin)
|
|
SHLIB_SUFFIX_NAME="dll"
|
|
SHLIB_LDFLAGS="-shared"
|
|
CFLAGS="$CFLAGS -DLIBSSH2_WIN32"
|
|
;;
|
|
*darwin*)
|
|
SHLIB_SUFFIX_NAME="dylib"
|
|
SHLIB_LDFLAGS="-dynamiclib -flat_namespace"
|
|
CFLAGS="$CFLAGS -DLIBSSH2_DARWIN"
|
|
;;
|
|
*)
|
|
SHLIB_SUFFIX_NAME="so"
|
|
SHLIB_LDFLAGS="-shared"
|
|
;;
|
|
esac
|
|
AC_SUBST(SHLIB_SUFFIX_NAME)
|
|
AC_SUBST(SHLIB_LDFLAGS)
|
|
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
AC_PROG_MAKE_SET
|
|
AC_PROG_RANLIB
|
|
AC_C_BIGENDIAN
|
|
if test -z "$PKG_CONFIG"; then
|
|
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
|
fi
|
|
|
|
#
|
|
# 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 "$LIBSSH2_OPENSSL_DIR" = "no" || test "$LIBSSH2_OPENSSL_DIR" = "yes"; then
|
|
unset LIBSSH2_OPENSSL_DIR
|
|
fi
|
|
|
|
found_openssl=no
|
|
unset OPENSSL_INCDIR
|
|
unset OPENSSL_LIBDIR
|
|
|
|
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_LIBDIR=$LIBSSH2_OPENSSL_DIR/lib
|
|
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
|
|
OPENSSL_LIBDIR=`$PKG_CONFIG --libs openssl`
|
|
OPENSSL_INCDIR=`$PKG_CONFIG --variable=includedir 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_INCDIR=$i/include
|
|
fi
|
|
if test -r $i/include/openssl/hmac.h; then
|
|
OPENSSL_INCDIR=$i/include
|
|
fi
|
|
if test -r $i/lib/libcrypto.a -o -r $i/lib/libcrypto.$SHLIB_SUFFIX_NAME; then
|
|
OPENSSL_LIBDIR=$i/lib
|
|
fi
|
|
test -n "$OPENSSL_INCDIR" && test -n "$OPENSSL_LIBDIR" && break
|
|
done
|
|
|
|
if test -z "$OPENSSL_INCDIR"; then
|
|
AC_MSG_ERROR([Cannot find OpenSSL's <evp.h> or <hmac.h>])
|
|
fi
|
|
|
|
if test -z "$OPENSSL_LIBDIR"; then
|
|
AC_MSG_ERROR([Cannot find OpenSSL's libcrypto])
|
|
fi
|
|
|
|
AC_MSG_RESULT([$OPENSSL_INCDIR $OPENSSL_LIBDIR])
|
|
fi
|
|
|
|
#
|
|
# Confirm required OpenSSL libs
|
|
#
|
|
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
|
|
|
|
CFLAGS="$CFLAGS -I$OPENSSL_INCDIR"
|
|
LDFLAGS="$LDFLAGS -L$OPENSSL_LIBDIR -lcrypto"
|
|
|
|
#
|
|
# 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
|
|
|
|
# Checks for header files.
|
|
# AC_HEADER_STDC
|
|
AC_CHECK_HEADERS([errno.h fcntl.h stdio.h stdlib.h unistd.h sys/uio.h sys/select.h])
|
|
AC_CHECK_FUNCS(poll gettimeofday select)
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
|
|
AC_CONFIG_FILES([Makefile
|
|
src/Makefile])
|
|
AC_OUTPUT
|