# 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 AC_CHECK_LIB(socket, socket, [ SHLIB_LDFLAGS="$SHLIB_LDFLAGS -lsocket" LIBS="$LIBS -lsocket" ]) # Solaris has inet_addr in -lnsl. AC_SEARCH_LIB(inet_addr, nsl) AC_SUBST(SHLIB_SUFFIX_NAME) AC_SUBST(SHLIB_LDFLAGS) 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 AM_PATH_LIBGCRYPT(1:1.2.2,,use_libgcrypt=no) fi if test "$use_libgcrypt" != "no"; then CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS" LDFLAGS="$LDFLAGS $LIBGCRYPT_LIBS" AC_DEFINE(LIBSSH2_LIBGCRYPT, 1, [Use libgcrypt]) fi AM_CONDITIONAL(LIBGCRYPT, test "$use_libgcrypt" != "no") # # 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 or ]) 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 , , , , ]) 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 ]) 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 sys/select.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