📄 configure
字号:
#!/bin/sh#### configure -- mod_ssl configuration script#### ====================================================================## Copyright (c) 1998-2006 Ralf S. Engelschall. 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. All advertising materials mentioning features or use of this## software must display the following acknowledgment:## "This product includes software developed by ## Ralf S. Engelschall <rse@engelschall.com> for use in the## mod_ssl project (http://www.modssl.org/)."## ## 4. The names "mod_ssl" must not be used to endorse or promote## products derived from this software without prior written## permission. For written permission, please contact## rse@engelschall.com.## ## 5. Products derived from this software may not be called "mod_ssl"## nor may "mod_ssl" appear in their names without prior## written permission of Ralf S. Engelschall.## ## 6. Redistributions of any form whatsoever must retain the following## acknowledgment:## "This product includes software developed by ## Ralf S. Engelschall <rse@engelschall.com> for use in the## mod_ssl project (http://www.modssl.org/)."## ## THIS SOFTWARE IS PROVIDED BY RALF S. ENGELSCHALL ``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 RALF S. ENGELSCHALL OR## HIS 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.## ====================================================================## # ``Programming in Bourne-Shell # is a higher form of masochism.'' # -- UnknownDIFS=' '## configuration#prefix=" +"prefixo=" o"prefixe=" "apache=''ssl=''mm=''crt=''key=''patch=''apaci=''configstatus=config.statushelp=noquiet=noverbose=noforce=noexpert=noeapionly=0apxs=''# some optional terminal sequencescase $TERM in xterm|xterm*|vt220|vt220*) T_MD=`echo dummy | awk '{ printf("%c%c%c%c", 27, 91, 49, 109); }'` T_ME=`echo dummy | awk '{ printf("%c%c%c", 27, 91, 109); }'` ;; vt100|vt100*) T_MD=`echo dummy | awk '{ printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }'` T_ME=`echo dummy | awk '{ printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }'` ;; default) T_MD='' T_ME='' ;;esac## pre-determine feedback options and display modes#case "$*" in --help|*--help|--help*|*--help*|-h|*-h|-h*|*\ -h\ * ) help=yes; quiet=yes ;; --quiet|*--quiet|--quiet*|*--quiet*|-q|*-q|-q*|*\ -q\ * ) quiet=yes ;; --verbose|*--verbose|--verbose*|*--verbose*|-v|*-v|-v*|*\ -v\ * ) verbose=yes ;; * ) ;;esacif [ .$quiet = .no ]; then disp_std='cat' if [ .$verbose = .yes ]; then disp_ver='cat' else disp_ver='cat >/dev/null' fielse disp_std='cat >/dev/null' disp_ver='cat >/dev/null'fi## determine versions#V_MODSSL=`cat pkg.sslmod/libssl.version | sed -e 's;-.*;;' -e 's;.*/;;'`V_APACHE=`cat pkg.sslmod/libssl.version | sed -e 's; .*;;' -e 's;.*-;;'`## look for deadly broken echo commands which interpret escape# sequences `\XX' *per default*. For those we first try the -E option# and if it then is still broken we give a warning message.# If it works set the `Safe Echo Option' (SEO) variable.#SEO='' # CHANGE THIS VARIABLE HERE IF YOU HAVE PROBLEMS WITH ECHO!bytes=`echo $SEO '\1' | wc -c | awk '{ printf("%s", $1); }'`if [ ".$bytes" != .3 ]; then bytes=`echo -E '\1' | wc -c | awk '{ printf("%s", $1); }'` if [ ".$bytes" != .3 ]; then echo " + Warning: Your 'echo' command is slightly broken." 1>&2 echo " + It interprets escape sequences per default. We already" 1>&2 echo " + tried 'echo -E' but had no real success. If errors occur" 1>&2 echo " + please set the SEO variable in 'configure' manually to" 1>&2 echo " + the required 'echo' options, i.e. those which force your" 1>&2 echo " + 'echo' to not interpret escape sequences per default." 1>&2 else SEO='-E' fifi## parse argument line#prev=''OIFS="$IFS" IFS="$DIFS"for optiondo if [ ".$prev" != . ]; then eval "$prev=\$option" prev="" continue fi case "$option" in -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg='' ;; esac case "$option" in --help|-h) help=yes ;; --quiet|-q) quiet=yes ;; --verbose|-v) verbose=yes ;; --force|-f) force=yes ;; --expert|-e) expert=yes ;; --with-apache=*) apache="$optarg" ;; --with-apxs=*) apache="dummy"; apxs="$optarg" ;; --with-apxs) apache="dummy"; apxs="apxs" ;; --with-crt=*) crt="$optarg" ;; --with-key=*) key="$optarg" ;; --with-ssl=*) ssl="$optarg" ;; --with-mm=*) mm="$optarg" ;; --with-patch=*) patch="$optarg" ;; --with-eapi-only) eapionly=1 ;; * ) apaci="$apaci $option" ;; esacdoneIFS="$OIFS"if [ ".$prev" != . ]; then echo "$0:${T_MD}Error${T_ME}: missing argument to --`echo $prev | sed 's/_/-/g'`" 1>&2 exit 1fi## usage#if [ ".$apache" = . -o $help = yes ]; then if [ $help != yes ]; then echo "$0:${T_MD}Error${T_ME}: Bad argument line: missing --with-apache=DIR" echo "$0:${T_MD}Usage${T_ME}: $0 [mod_ssl options] [APACI options]" fi echo "${T_MD}mod_ssl feedback options:${T_ME}" echo " --help ...this message [OPTIONAL]" echo " --quiet ...configure totally quiet [OPTIONAL]" echo " --verbose ...configure with verbosity [OPTIONAL]" echo " --force ...configure with disabled checks [OPTIONAL]" echo " --expert ...configure without user hints [OPTIONAL]" echo "${T_MD}mod_ssl configure options:${T_ME}" echo " --with-apache=DIR ...path to Apache 1.3.x source tree [${T_MD}REQUIRED${T_ME}]" echo " --with-apxs[=FILE] ...path to APXS program [OPTIONAL]" echo " --with-ssl=DIR ...path to OpenSSL source tree [OPTIONAL]" echo " --with-mm=DIR ...path to MM source tree [OPTIONAL]" echo " --with-crt=FILE ...path to SSL X.509 certificate file [OPTIONAL]" echo " --with-key=FILE ...path to SSL RSA private key file [OPTIONAL]" echo " --with-patch=FILE ...path to your vendor 'patch' program [OPTIONAL]" echo " --with-eapi-only ...apply EAPI to Apache source only [OPTIONAL]" echo "${T_MD}APACI configure options:${T_ME} [OPTIONAL]" echo " --prefix=DIR ...installation prefix for Apache" echo " --... ...see INSTALL file of Apache for more options!" exit 1fi## create a config status script for restoring# the configuration via a simple shell script#rm -f $configstatus 2>/dev/nullecho "#!/bin/sh" >$configstatusecho "##" >>$configstatusecho "## $configstatus -- mod_ssl auto-generated configuration restore script" >>$configstatusecho "##" >>$configstatusecho "## Use this shell script to re-run the mod_ssl configure script for" >>$configstatusecho "## restoring your configuration. Additional parameters can be supplied." >>$configstatusecho "##" >>$configstatusecho "" >>$configstatusif [ $# -eq 0 ]; then echo "./configure" >>$configstatuselse echo $SEO "./configure \\" >>$configstatus for arg do echo "$arg" |\ sed -e 's:\(["$\\]\):\\\1:g' \ -e 's:^:":' \ -e 's:$:" \\:' >>$configstatus donefiecho '"$@"' >>$configstatusecho '' >>$configstatuschmod a+x $configstatus## give a friendly header#echo "Configuring ${T_MD}mod_ssl/$V_MODSSL${T_ME} for ${T_MD}Apache/$V_APACHE${T_ME}" | eval $disp_std## check for Apache 1.3#if [ ".$apxs" != . ]; then # check for APXS if [ ! -f "$apxs" ]; then echo "$0:${T_MD}Error${T_ME}: APXS program not found: $apxs" 1>&2 exit 1 fi # query information APXS_TARGET="`$apxs -q TARGET`" APXS_CC="`$apxs -q CC`" APXS_CFLAGS="`$apxs -q CFLAGS`" APXS_CFLAGS_SHLIB="`$apxs -q CFLAGS_SHLIB`" APXS_LD_SHLIB="`$apxs -q LD_SHLIB`" APXS_LDFLAGS_SHLIB="`$apxs -q LDFLAGS_SHLIB`" APXS_LIBS_SHLIB="`$apxs -q LIBS_SHLIB`" APXS_PREFIX="`$apxs -q PREFIX`" APXS_SBINDIR="`$apxs -q SBINDIR`" APXS_INCLUDEDIR="`$apxs -q INCLUDEDIR`" # check for EAPI case $APXS_CFLAGS in *-DEAPI* ) ;; * ) echo "$0:${T_MD}Error${T_ME}: Installed Apache doesn't contain Extended API (EAPI)" 1>&2 exit 1 ;; esac # determine Apache parameters apache=$APXS_PREFIX APV=`$APXS_SBINDIR/$APXS_TARGET -v | grep "Server version:" |\ sed -e 's;^.*Apache/;;' -e 's; .*$;;'`else if [ ! -f "$apache/src/include/httpd.h" ]; then echo "$0:${T_MD}Error${T_ME}: Cannot find Apache 1.3 source tree under $apache" 1>&2 echo "$0:${T_MD}Hint${T_ME}: Please specify location via --with-apache=DIR" 1>&2 exit 1 fi APV=`cat $apache/src/include/httpd.h |\ grep "#define SERVER_BASEREVISION" |\ sed -e 's/^[^"]*"//' -e 's/[" ].*$//'`fiif [ .$force != .yes ]; then if [ ".$V_APACHE" != ".$APV" ]; then echo "$0:${T_MD}Error${T_ME}: The mod_ssl/$V_MODSSL can be used for Apache/$V_APACHE only." 1>&2 echo "$0:${T_MD}Error${T_ME}: Your Apache source tree under $apache is version $APV." 1>&2 echo "$0:${T_MD}Hint${T_ME}: Please use an extracted apache_$V_APACHE.tar.gz tarball" 1>&2 echo "$0:${T_MD}Hint${T_ME}: with the --with-apache option, only." 1>&2 exit 1 fifiecho "$prefix Apache location: $apache (Version $APV)" | eval $disp_std## check for OpenSSL#if [ ".$ssl" != . ]; then if [ ".$ssl" = .SYSTEM ]; then echo "$prefix OpenSSL location: SYSTEM" | eval $disp_std else if [ ! -d "$ssl" ]; then echo "$0:${T_MD}Error${T_ME}: Cannot find OpenSSL source or install tree under $ssl" 1>&2 echo "$0:${T_MD}Hint${T_ME}: Please specify location via --with-ssl=DIR" 1>&2 exit 1 fi echo "$prefix OpenSSL location: $ssl" | eval $disp_std ssl="`cd $ssl; pwd`" fifi## check for MM (when used)#if [ ".$mm" != . ]; then if [ ".$mm" = .SYSTEM ]; then echo "$prefix MM location: SYSTEM" | eval $disp_std else if [ ! -d "$mm" ]; then echo "$0:${T_MD}Error${T_ME}: Cannot find MM source or install tree under $mm" 1>&2 echo "$0:${T_MD}Hint${T_ME}: Please specify location via --with-mm=DIR" 1>&2 exit 1 fi echo "$prefix MM location: $mm" | eval $disp_std fifi## support for stand-alone APXS-based upgrading of libssl.so only#if [ ".$apxs" != . ]; then # # now we do a tricky thing: we emulate src/Configure for libssl.module # echo "$prefix Configuring SSL module inside pkg.sslmod" | eval $disp_std file=Makefile.config # create inherited variables from APXS echo "" >$file echo "LIBEXT=so" >>$file echo "INCDIR=$APXS_INCLUDEDIR" >>$file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -