From ae7a5e56804fcb6789b5512201cacb6f29b2fb7b Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Tue, 1 Mar 2011 23:12:46 +0100 Subject: [PATCH] configure: Use AC_ARG_WITH also for openssl options. Currently the check for openssl is performed by CHECK_SSL() in configure.ac. This function searches the given directory for the openssl-header but does not check the existence and usability of the openssl libraries. The argument of --enable-ssldir, if given, is tried first, and each member of a hard-coded list of directories is searched next. This patch replaces CHECK_SSL() by checks similar to those for other headers and libraries. In particular, we now also check for the openssl libraries, and the configure options are now called --with-openssl-headers and --with-openssl-libs rather than --enable-ssldir. --- Makefile.in | 2 +- configure.ac | 84 ++++++++++++++++++++++++++++------------------------ 2 files changed, 46 insertions(+), 40 deletions(-) diff --git a/Makefile.in b/Makefile.in index 8526716d..d7640b6c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -157,7 +157,7 @@ $(man_dir): $(object_dir)/crypt.o: crypt.c | $(object_dir) @[ -z "$(Q)" ] || echo 'CC $<' - $(Q) $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) @SSL_CPPFLAGS@ $< + $(Q) $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) @openssl_cppflags@ $< $(object_dir)/spx_common.o: spx_common.c | $(object_dir) @[ -z "$(Q)" ] || echo 'CC $<' $(Q) $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) @ogg_cppflags@ $< diff --git a/configure.ac b/configure.ac index 48f2958f..02018963 100644 --- a/configure.ac +++ b/configure.ac @@ -273,46 +273,52 @@ fi CPPFLAGS="$OLD_CPPFLAGS" LDFLAGS="$OLD_LDFLAGS" LIBS="$OLD_LIBS" -########################################################################### ssl -dnl @synopsis CHECK_SSL -dnl -dnl based on the follwing macro from the autoconf archive -dnl -dnl @category InstalledPackages -dnl @author Mark Ethan Trostler -dnl @version 2003-01-28 -dnl @license AllPermissive - -AC_DEFUN([CHECK_SSL], -[ - for ssldir in $1 /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr; do - AC_MSG_CHECKING(for openssl in $ssldir) - if test -f "$ssldir/include/openssl/ssl.h"; then - found_ssl="yes" - AC_MSG_RESULT(yes) - SSL_CFLAGS="-I$ssldir/include" - SSL_CPPFLAGS="-I$ssldir/include" - break - fi - AC_MSG_RESULT(no) - done - if test x_$found_ssl != x_yes; then - AC_MSG_ERROR(Cannot find ssl libraries) - else - SSL_LIBS="-lssl -lcrypto"; - SSL_LDFLAGS="-L$ssldir/lib"; +###################################################################### openssl +OLD_CPPFLAGS="$CPPFLAGS" +OLD_LD_FLAGS="$LDFLAGS" +OLD_LIBS="$LIBS" +have_openssl="yes" +AC_ARG_WITH(openssl_headers, [AC_HELP_STRING(--with-openssl-headers=dir, + [look for openssl headers also in dir])]) +if test -n "$with_openssl_headers"; then + openssl_cppflags="-I$with_openssl_headers" + CPPFLAGS="$CPPFLAGS $openssl_cppflags" +fi +AC_ARG_WITH(openssl_libs, [AC_HELP_STRING(--with-openssl-libs=dir, + [look for openssl libraries also in dir])]) +if test -n "$with_openssl_libs"; then + openssl_libs="-L$with_openssl_libs" + LDFLAGS="$LDFLAGS $openssl_libs" +fi +AC_CHECK_HEADER(openssl/ssl.h, [], [have_openssl="no"]) +AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"]) +if test "$have_openssl" = "no" -a -z "$with_openssl_headers$with_openssl_libs"; then + # try harder: openssl is sometimes installed in /usr/local/ssl + openssl_cppflags="-I/usr/local/ssl/include" + CPPFLAGS="$CPPFLAGS $openssl_cppflags" + openssl_libs="-L/usr/local/ssl/lib" + LDFLAGS="$LDFLAGS $openssl_libs" + # clear cache + unset ac_cv_header_openssl_ssl_h 2> /dev/null + unset ac_cv_lib_crypto_RAND_bytes 2> /dev/null + AC_CHECK_HEADER(openssl/ssl.h, [have_openssl="yes"], []) + if test "$have_openssl" = "yes"; then + AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"]) fi - AC_SUBST(SSL_CPPFLAGS) -])dnl - -AC_ARG_ENABLE(ssldir, [AS_HELP_STRING(--enable-ssldir=path, - [Search for openssl also in path.])]) -if test "$enable_ssldir" = "yes"; then enable_ssldir=""; fi -CHECK_SSL($enable_ssldir) -server_ldflags="$server_ldflags $SSL_LDFLAGS $SSL_LIBS" -client_ldflags="$client_ldflags $SSL_LDFLAGS $SSL_LIBS" -audiod_ldflags="$audiod_ldflags $SSL_LDFLAGS $SSL_LIBS" - +fi +if test "$have_openssl" = "yes"; then + AC_DEFINE(HAVE_OPENSSL, 1, [define to 1 to turn on openssl support]) + AC_SUBST(openssl_cppflags) + openssl_libs="$openssl_libs -lssl -lcrypto" + server_ldflags="$server_ldflags $openssl_libs" + client_ldflags="$client_ldflags $openssl_libs" + audiod_ldflags="$audiod_ldflags $openssl_libs" +else + AC_MSG_ERROR([openssl libraries not found]) +fi +CPPFLAGS="$OLD_CPPFLAGS" +LDFLAGS="$OLD_LDFLAGS" +LIBS="$OLD_LIBS" ########################################################################### libsocket AC_CHECK_LIB([c], [socket], [socket_lib=], -- 2.39.5