Commit ea6b2158 authored by Ralf S. Engelschall's avatar Ralf S. Engelschall
Browse files

Integrate mod_ssl into the Autoconf facility.

(currently only stub files are compiled)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89002 13f79535-47bb-0310-9956-ffa450edef68
parent 7ac0c845
Loading
Loading
Loading
Loading
+50 −0
Original line number Diff line number Diff line
## ====================================================================
## The Apache Software License, Version 1.1
##
## Copyright (c) 2000-2001 The Apache Software Foundation.  All rights
## reserved.
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted provided that the following conditions
## are met:
##
## 1. Redistributions of source code must retain the above copyright
##    notice, this list of conditions and the following disclaimer.
##
## 2. Redistributions in binary form must reproduce the above copyright
##    notice, this list of conditions and the following disclaimer in
##    the documentation and/or other materials provided with the
##    distribution.
##
## 3. The end-user documentation included with the redistribution,
##    if any, must include the following acknowledgment:
##       "This product includes software developed by the
##        Apache Software Foundation (http://www.apache.org/)."
##    Alternately, this acknowledgment may appear in the software itself,
##    if and wherever such third-party acknowledgments normally appear.
##
## 4. The names "Apache" and "Apache Software Foundation" must
##    not be used to endorse or promote products derived from this
##    software without prior written permission. For written
##    permission, please contact apache@apache.org.
##
## 5. Products derived from this software may not be called "Apache",
##    nor may "Apache" appear in their name, without prior written
##    permission of the Apache Software Foundation.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
## OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
## DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
## ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
## ====================================================================

include $(top_srcdir)/build/special.mk

modules/ssl/config.m4

0 → 100644
+160 −0
Original line number Diff line number Diff line
dnl ## ====================================================================
dnl ## The Apache Software License, Version 1.1
dnl ##  
dnl ## Copyright (c) 2000-2001 The Apache Software Foundation.  All rights
dnl ## reserved.
dnl ##
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 ##
dnl ## 1. Redistributions of source code must retain the above copyright
dnl ##    notice, this list of conditions and the following disclaimer.
dnl ##
dnl ## 2. Redistributions in binary form must reproduce the above copyright
dnl ##    notice, this list of conditions and the following disclaimer in
dnl ##    the documentation and/or other materials provided with the
dnl ##    distribution.
dnl ##
dnl ## 3. The end-user documentation included with the redistribution,
dnl ##    if any, must include the following acknowledgment:
dnl ##       "This product includes software developed by the
dnl ##        Apache Software Foundation (http://www.apache.org/)."
dnl ##    Alternately, this acknowledgment may appear in the software itself,
dnl ##    if and wherever such third-party acknowledgments normally appear.
dnl ##
dnl ## 4. The names "Apache" and "Apache Software Foundation" must
dnl ##    not be used to endorse or promote products derived from this
dnl ##    software without prior written permission. For written
dnl ##    permission, please contact apache@apache.org.
dnl ##
dnl ## 5. Products derived from this software may not be called "Apache",
dnl ##    nor may "Apache" appear in their name, without prior written
dnl ##    permission of the Apache Software Foundation.
dnl ##
dnl ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
dnl ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
dnl ## OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
dnl ## DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
dnl ## ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
dnl ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
dnl ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
dnl ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
dnl ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
dnl ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
dnl ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
dnl ## SUCH DAMAGE.
dnl ## ====================================================================

dnl #  start of module specific part
APACHE_MODPATH_INIT(ssl)

dnl #  list of module object files
ssl_objs="mod_ssl.lo"
ssl_objs="$ssl_objs ssl_engine_config.lo"

dnl #  hook module into the Autoconf mechanism (--enable-ssl option)
APACHE_MODULE(ssl, [SSL/TLS support (mod_ssl)], $ssl_objs, , no, [

    dnl #  hook into Autoconf mechanism (--with-ssl[=DIR] option)
    AC_MSG_CHECKING(for SSL/TLS toolkit base)
    ssltk_base="SYSTEM"
    AC_ARG_WITH(ssl, [  --with-ssl[=DIR]        SSL/TLS toolkit (OpenSSL)], [
        if test ".$withval" != .yes -a ".$withval" != .; then
            ssltk_base="$withval"
            if test ! -d $ssltk_base; then
                AC_MSG_ERROR([invalid SSL/TLS toolkit base directory $ssltk_base])
            fi
        fi
    ])
    AC_MSG_RESULT($ssltk_base)
    
    dnl #   determine SSL/TLS toolkit frontend (openssl binary)
    AC_MSG_CHECKING(for SSL/TLS toolkit frontend)
    ssltk_frontend=""
    if test ".$ssltk_base" = .SYSTEM; then
        for p in . `echo $PATH | sed -e 's/:/ /g'`; do
            if test -f "$p/openssl"; then
                ssltk_frontend="$p/openssl"
                break
            fi
        done
        if test ".$ssltk_frontend" = .; then
            AC_MSG_ERROR(['openssl' not found in $PATH])
        fi
    else
        if test -f "$ssltk_base/bin/openssl"; then
            ssltk_frontend="$ssltk_base/bin/openssl"
        else
            AC_MSG_ERROR(['openssl' not found in $ssltk_base/bin/])
        fi
    fi
    AC_MSG_RESULT($ssltk_frontend)

    dnl #   determine SSL/TLS toolkit version
    AC_MSG_CHECKING(for SSL/TLS toolkit version)
    ssltk_version="`$ssltk_frontend version`"
    case "$ssltk_version" in
        *0.9.[[6789]]* ) ;;
        * ) AC_MSG_ERROR([SSL/TLS toolkit version $ssltk_version not supported]) ;;
    esac
    AC_MSG_RESULT($ssltk_version)

    dnl #   determine SSL/TLS toolkit include directory
    AC_MSG_CHECKING(for SSL/TLS toolkit includes)
    ssltk_incdir=""
    if test ".$ssltk_base" = .SYSTEM; then
        for p in . /usr/include /usr/include/ssl/ /usr/local/include /usr/local/include/ssl; do
            if test -f "$p/openssl/ssl.h"; then
                ssltk_incdir="$p"
                break
            fi
        done
        if test ".$ssltk_incdir" = .; then
            AC_MSG_ERROR([OpenSSL headers not found])
        fi
    else
        if test -f "$ssltk_base/include/openssl/ssl.h"; then
            ssltk_incdir="$ssltk_base/include"
        else
            AC_MSG_ERROR([OpenSSL headers not found under $ssltk_base])
        fi
    fi
    AC_MSG_RESULT($ssltk_incdir)

    dnl #   determine SSL/TLS toolkit library directory
    AC_MSG_CHECKING(for SSL/TLS toolkit libraries)
    ssltk_libdir=""
    if test ".$ssltk_base" = .SYSTEM; then
        for p in . /lib /usr/lib /usr/local/lib; do
            if test -f "$p/libssl.a" -o -f "$p/libssl.so"; then
                ssltk_libdir="$p"
                break
            fi
        done
        if test ".$ssltk_libdir" = .; then
            AC_MSG_ERROR([OpenSSL libraries not found])
        fi
    else
        if test -f "$ssltk_base/libssl.a" -o -f "$ssltk_base/libssl.so"; then
            ssltk_libdir="$ssltk_base"
        elif test -f "$ssltk_base/lib/libssl.a" -o -f "$ssltk_base/lib/libssl.so"; then
            ssltk_libdir="$ssltk_base/lib"
        else
            AC_MSG_ERROR([OpenSSL libraries not found under $ssltk_base])
        fi
    fi
    AC_MSG_RESULT($ssltk_libdir)

    dnl #  annotate the Apache build environment with determined information
    if test ".$ssltk_incdir" != "./usr/include"; then
        INCLUDES="$INCLUDES -I$ssltk_incdir"
    fi
    if test ".$ssltk_libdir" != "./usr/lib"; then
        LIBS="$LIBS -L$ssltk_libdir -lssl -lcrypto"
    fi
])

dnl #  end of module specific part
APACHE_MODPATH_FINISH
+18 −1
Original line number Diff line number Diff line
@@ -60,6 +60,11 @@
                                  others think that what you
                                  are doing is honourable.''
                                    -- Ben Laurie, Apache-SSL author */
#include "httpd.h"
#include "http_config.h"

#if 0 /* XXX */

#include "mod_ssl.h"

/*  _________________________________________________________________
@@ -72,7 +77,7 @@
 *  identify the module to SCCS `what' and RCS `ident' commands
 */
static char const sccsid[] = "@(#) mod_ssl/" MOD_SSL_VERSION " >";
static char const rcsid[]  = "$Id: mod_ssl.c,v 1.2 2001/05/04 22:20:45 rse Exp $";
static char const rcsid[]  = "$Id: mod_ssl.c,v 1.3 2001/05/05 09:25:52 rse Exp $";

/*
 *  the table of configuration directives we provide
@@ -244,3 +249,15 @@ module MODULE_VAR_EXPORT ssl_module = {
    ssl_hook_CloseConnection  /* socket connection close             */
};

#endif /* XXX */

module AP_MODULE_DECLARE_DATA ssl_module = {
    STANDARD20_MODULE_STUFF,
    NULL,                       /* create per-directory config structure */
    NULL,                       /* merge per-directory config structures */
    NULL,                       /* create per-server config structure */
    NULL,                       /* merge per-server config structures */
    NULL,                       /* command apr_table_t */
    NULL                        /* register hooks */
};
+4 −0
Original line number Diff line number Diff line
@@ -64,6 +64,8 @@
#ifndef MOD_SSL_H
#define MOD_SSL_H 1

#if 0 /* XXX */

/* 
 * Check whether Extended API (EAPI) is enabled
 */
@@ -849,4 +851,6 @@ void ssl_vendor_register(void);
void         ssl_vendor_unregister(void);
#endif

#endif /* XXX */

#endif /* MOD_SSL_H */
+4 −1
Original line number Diff line number Diff line
@@ -60,8 +60,9 @@
                                      /* ``Damned if you do,
                                           damned if you don't.''
                                               -- Unknown        */
#include "mod_ssl.h"
#if 0 /* XXX */

#include "mod_ssl.h"

/*  _________________________________________________________________
**
@@ -1089,3 +1090,5 @@ const char *ssl_cmd_SSLProxyMachineCertificatePath(

#endif /* SSL_EXPERIMENTAL_PROXY */

#endif /* XXX */