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

    case "$CC" in

        cl)
            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.lib"
            CORE_LINK="$CORE_LINK -libpath:$PCRE"
        ;;

        wcl386)
            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 -L $PCRE/.libs -lpcre"
        ;;

    esac

else

    if [ $PLATFORM != win32 ]; then
        ngx_lib_inc="#include <pcre.h>"

        ngx_lib="PCRE"
        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
            PCRE=NO
        fi
    fi

fi
