
echo
echo "Configuration summary"

if [ $USE_PCRE = DISABLED ]; then
    echo " + PCRE library is disabled"

else
    case $PCRE in
        YES)   echo " + using system PCRE library" ;;
        NO)    echo " + PCRE library is not found" ;;
        *)     echo " + using PCRE library: $PCRE" ;;
    esac
fi

case $MD5 in
    YES)   echo " + md5: using system $MD5_LIB library" ;;
    NONE)  echo " + md5 library is not used" ;;
    NO)    echo " + md5 library is not found" ;;
    *)     echo " + using md5 library: $MD5" ;;
esac

case $ZLIB in
    YES)   echo " + using system zlib library" ;;
    NONE)  echo " + zlib library is not used" ;;
    NO)    echo " + zlib library is not found" ;;
    *)     echo " + using zlib library: $ZLIB" ;;
esac

echo


if [ $HTTP_REWRITE = YES ]; then
    if [ $PCRE = NONE -o $PCRE = NO ]; then
        echo "$0: error: HTTP rewrite module requires PCRE library."
        echo $ngx_n "You can disable the module by using" $ngx_c
        echo "--without-http_rewrite_module option"
        echo "or you have to enable PCRE support"
        echo
        exit 1
    fi
fi


if [ $HTTP_GZIP = YES ]; then
    if [ $ZLIB = NONE -o $ZLIB = NO ]; then
        echo "$0: error: HTTP gzip module requires zlib library."
        echo $ngx_n "You can disable the module by using" $ngx_c
        echo "--without-http_gzip_module option"
        echo "or you have to enable zlib support"
        echo
        exit 1
    fi
fi
