dnl Copyright (C) 1999-2000 RTFM, Inc. dnl All Rights Reserved dnl This package is a SSLv3/TLS protocol analyzer written by Eric dnl Rescorla and licensed by RTFM, Inc. dnl Redistribution and use in source and binary forms, with or without dnl modification, are permitted provided that the following conditions dnl are met: dnl 1. Redistributions of source code must retain the above copyright dnl notice, this list of conditions and the following disclaimer. dnl 2. Redistributions in binary form must reproduce the above dnl copyright notice, this list of conditions and the following dnl disclaimer in the documentation and/or other materials provided dnl with the distribution. dnl 3. All advertising materials mentioning features or use of this dnl software must display the following acknowledgement: dnl dnl This product includes software developed by Eric Rescorla for dnl RTFM, Inc. dnl dnl 4. Neither the name of RTFM, Inc. nor the name of Eric Rescorla dnl may be used to endorse or promote products derived from this dnl software without specific prior written permission. dnl dnl THIS SOFTWARE IS PROVIDED BY ERIC RESCORLA AND RTFM, INC. ``AS dnl IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT dnl LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS dnl FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE dnl REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, dnl INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES dnl (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR dnl SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN dnl CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, dnl EVEN IF ADVISED OF THE POSSIBILITY SUCH DAMAGE. dnl Process this file with autoconf to produce a configure script. AC_INIT(ssldump, 0.9b3p1) AC_CANONICAL_SYSTEM dnl Checks for programs. AC_PROG_CC AC_PROG_MAKE_SET AC_PROG_RANLIB AC_PROG_INSTALL AC_MSG_RESULT(configuring for $target_os) dnl Replace `main' with a function in -lm: AC_CHECK_LIB(m, pow) dnl System-specific stuff case "$target_os" in linux*) DEFINES="$DEFINES -D_BSD_SOURCE=1 -DLINUX" ;; solaris*) LIBS="$LIBS -lsocket -lnsl" ;; esac RECORD_MOD="dummy" dnl Look for PCAP dnl We absolutely need pcap ac_pcap_inc_dir="/usr/include /usr/include/pcap /usr/local/include" ac_pcap_lib_dir="/usr/local/lib64 /usr/local/lib /usr/lib64 /usr/lib" AC_ARG_WITH(pcap,[--with-pcap root location for pcap library], if test "$withval" = "no"; then AC_MSG_ERROR(PCAP required for ssldump) else ac_pcap_inc_dir=$withval/include ac_pcap_lib_dir=$withval/lib fi ) AC_ARG_WITH(pcap-inc,[--with-pcap-inc PCAP include files], ac_pcap_inc_dir=$withval ) AC_ARG_WITH(pcap-lib,[--with-pcap-lib PCAP library files], ac_pcap_lib_dir=$withval ) dnl Now look for it AC_MSG_CHECKING(for PCAP include files) ac_found_pcap_inc_dir="no" for dir in $ac_pcap_inc_dir; do if test -f $dir/pcap.h; then if test "$dir" != "/usr/include"; then INCLUDES="-I$dir $INCLUDES" fi ac_found_pcap_inc_dir=$dir echo "found in $dir" break; fi done if test "$ac_found_pcap_inc_dir" = "no"; then echo AC_MSG_ERROR(Couldn't find PCAP includes: needed for ssldump) fi AC_MSG_CHECKING(for PCAP library) ac_found_pcap_lib_dir="no" for dir in $ac_pcap_lib_dir; do if test -f $dir/libpcap.a -o -f $dir/libpcap.so; then dnl Ok, we think we've found them, but check that they dnl actually contain the right functions. save_LIBS=$LIBS save_LDFLAGS=$LDFLAGS LIBS="-lpcap $LIBS" if test "$dir" != "/usr/lib" -a "$dir" != "/usr/lib64"; then LDFLAGS="-L$dir $LDFLAGS" fi AC_TRY_LINK_FUNC(pcap_open_live,ac_linked_libpcap="true", ac_linked_libpcap="false"); if test "$ac_linked_libpcap" != "false"; then ac_found_pcap_lib_dir=$dir break fi LIBS=$save_LIBS LDFLAGS=$save_LDFLAGS fi done if test "$ac_found_pcap_lib_dir" = "no"; then echo AC_MSG_ERROR(Couldn't find PCAP library: needed for ssldump) else echo "found in $ac_found_pcap_lib_dir" fi dnl See if we can find OpenSSL dnl We can compile without OpenSSL if we have to ac_use_openssl="true" ac_openssl_lib_dir="/usr/lib /usr/local /usr/local/ssl /usr/local/ssl/lib /usr/pkg" ac_openssl_inc_dir="/usr/include /usr/local /usr/local/ssl /usr/pkg /usr/local/ssl/include" AC_ARG_WITH(openssl,[--with-openssl root location for OpenSSL], if test "$withval" = "no"; then ac_use_openssl="false" else ac_openssl_lib_dir="$withval/lib $withval" ac_openssl_inc_dir=$withval/include fi ) AC_ARG_WITH(openssl-inc,[--with-openssl-inc OpenSSL include files], ac_openssl_inc_dir=$withval ) AC_ARG_WITH(openssl-lib,[--with-openssl-lib OpenSSL library files], ac_openssl_lib_dir=$withval ) dnl Now look for OpenSSL if test "$ac_use_openssl" != "false"; then ac_found_openssl_inc_dir="no" AC_MSG_CHECKING(for OpenSSL include files) for dir in $ac_openssl_inc_dir; do if test -f $dir/openssl/ssl.h; then ac_found_openssl_inc_dir=$dir break fi done if test "$ac_found_openssl_inc_dir" != "no"; then echo "found in $ac_found_openssl_inc_dir" else echo "not found." ac_use_openssl="false" fi fi if test "$ac_use_openssl" != "false"; then ac_found_openssl_lib_dir="no" AC_MSG_CHECKING(for OpenSSL libraries) for dir in $ac_openssl_lib_dir; do found_ssl="false" if test -f $dir/libssl.a -a -f $dir/libcrypto.a; then found_ssl="true" fi if test -f $dir/libssl.so -a -f $dir/libcrypto.so; then found_ssl="true" fi if $found_ssl != "false"; then dnl Ok, we think we've found them, but check that they dnl actually contain the right functions. save_LIBS=$LIBS save_LDFLAGS=$LDFLAGS LIBS="-lssl -lcrypto $LIBS" LDFLAGS="-L$dir $LDFLAGS" AC_TRY_LINK_FUNC(SSL_load_error_strings,ac_linked_libssl="true", ac_linked_libssl="false"); AC_TRY_LINK_FUNC(RC4_set_key,ac_linked_libcrypto="true", ac_linked_libcrypto="false"); if test "$ac_linked_libssl" != "false" -a \ "$ac_linked_libcrypto" != "false"; then ac_found_openssl_lib_dir=$dir break fi LIBS=$save_LIBS LDFLAGS=$save_LDFLAGS fi done if test "$ac_found_openssl_lib_dir" != "no"; then echo "found in $ac_found_openssl_lib_dir" INCLUDES="-I$ac_found_openssl_inc_dir $INCLUDES" DEFINES="-DOPENSSL $DEFINES" else echo "not found." ac_use_openssl="false" fi fi if test "$ac_use_openssl" = "false"; then AC_MSG_WARN(compiling without OpenSSL) fi AC_ARG_WITH(record,[--with-record Compile with record module (EKR Use Only)], DEFINES="-DENABLE_RECORD $DEFINES" RECORD_MOD="record" ) dnl Replace `main' with a function in -lpcap: AC_CHECK_LIB(pcap, pcap_open) dnl Checks for header files. AC_CHECK_HEADERS(sys/time.h) AC_HEADER_STDC dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_HEADER_TIME dnl Find a 4-byte integer size AC_CHECK_SIZEOF(unsigned short) AC_CHECK_SIZEOF(unsigned int) AC_CHECK_SIZEOF(unsigned long) AC_CHECK_SIZEOF(unsigned long long) dnl Checks for library functions. AC_FUNC_MEMCMP AC_TYPE_SIGNAL AC_FUNC_VPRINTF AC_CHECK_FUNCS(strdup) AC_SUBST(RECORD_MOD) AC_SUBST(INCLUDES) AC_SUBST(DEFINES) AC_OUTPUT(Makefile)