
if [ $PCRE != NONE ]; then
    CORE_INCS="$CORE_INCS $PCRE"
    CORE_DEPS="$CORE_DEPS $REGEX_DEPS"
    CORE_SRCS="$CORE_SRCS $REGEX_SRCS"

    case "$CC" in

        cl | wcl386 | bcc32)
            have=HAVE_PCRE . auto/have
            have=PCRE_STATIC . auto/have
            CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
            LINK_DEPS="$LINK_DEPS $PCRE/pcre.lib"
            CORE_LIBS="$CORE_LIBS $PCRE/pcre.lib"
        ;;

        *icc)
            have=HAVE_PCRE . auto/have
            CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"

            LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"

            # to allow -ipo optimization we link with the *.o but not library
            CORE_LIBS="$CORE_LIBS $PCRE/maketables.o"
            CORE_LIBS="$CORE_LIBS $PCRE/get.o"
            CORE_LIBS="$CORE_LIBS $PCRE/study.o"
            CORE_LIBS="$CORE_LIBS $PCRE/pcre.o"
        ;;

        *)
            have=HAVE_PCRE . auto/have
            CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
            LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
            CORE_LIBS="$CORE_LIBS $PCRE/.libs/libpcre.a"
            #CORE_LIBS="$CORE_LIBS -L $PCRE/.libs -lpcre"
        ;;

    esac

else

    if [ $PLATFORM != win32 ]; then
            PCRE=NO

            ngx_lib_inc="#include <pcre.h>"
            ngx_lib="PCRE library"
            ngx_lib_test="pcre *re; pcre_compile(re, 0, NULL, 0, NULL)"
            ngx_libs=-lpcre
            . auto/lib/test


        if [ $ngx_found = yes ]; then
            have=HAVE_PCRE . auto/have
            CORE_DEPS="$CORE_DEPS $REGEX_DEPS"
            CORE_SRCS="$CORE_SRCS $REGEX_SRCS"
            CORE_LIBS="$CORE_LIBS $ngx_libs"
            PCRE=YES

        else
            # FreeBSD PCRE port.

            ngx_lib="PCRE library in /usr/local/"
            ngx_lib_cflags="-I /usr/local/include"
            . auto/lib/test
        fi


        if [ $ngx_found = yes ]; then
            have=HAVE_PCRE . auto/have
            CORE_DEPS="$CORE_DEPS $REGEX_DEPS"
            CORE_INCS="$CORE_INCS /usr/local/include"
            CORE_SRCS="$CORE_SRCS $REGEX_SRCS"
            CORE_LIBS="$CORE_LIBS $ngx_libs"
            PCRE=YES
        fi
    fi

fi
