mirror of
https://github.com/nginx/nginx.git
synced 2024-12-16 14:19:00 +08:00
4cfd9ba3c1
Now we always set NGX_CC_NAME to "msvc", and additionally test compiler version as reported by "cl" in auto/cc/msvc (the same version is also available via the _MSC_VER define). In particular, this approach allows to properly check for C99 variadic macros support, which previously was not used with MSVC versions not explicitly recognized. Now unneeded wildcards in NGX_CC_NAME tests for msvc removed accordingly, as well as unused wildcards for owc and icc.
204 lines
5.8 KiB
Plaintext
204 lines
5.8 KiB
Plaintext
|
|
# Copyright (C) Igor Sysoev
|
|
# Copyright (C) Nginx, Inc.
|
|
|
|
|
|
if [ $PCRE != NONE ]; then
|
|
CORE_INCS="$CORE_INCS $PCRE"
|
|
|
|
case "$NGX_CC_NAME" in
|
|
|
|
msvc | owc | bcc)
|
|
have=NGX_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=NGX_PCRE . auto/have
|
|
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
|
|
|
|
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
|
|
|
|
echo $ngx_n "checking for PCRE library ...$ngx_c"
|
|
|
|
if [ -f $PCRE/pcre.h ]; then
|
|
ngx_pcre_ver=`grep PCRE_MAJOR $PCRE/pcre.h \
|
|
| sed -e 's/^.*PCRE_MAJOR.* \(.*\)$/\1/'`
|
|
|
|
else if [ -f $PCRE/configure.in ]; then
|
|
ngx_pcre_ver=`grep PCRE_MAJOR= $PCRE/configure.in \
|
|
| sed -e 's/^.*=\(.*\)$/\1/'`
|
|
|
|
else
|
|
ngx_pcre_ver=`grep pcre_major, $PCRE/configure.ac \
|
|
| sed -e 's/^.*pcre_major,.*\[\(.*\)\].*$/\1/'`
|
|
fi
|
|
fi
|
|
|
|
echo " $ngx_pcre_ver major version found"
|
|
|
|
# to allow -ipo optimization we link with the *.o but not library
|
|
|
|
case "$ngx_pcre_ver" in
|
|
4|5)
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre.o"
|
|
;;
|
|
|
|
6)
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_chartables.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_compile.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_exec.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_fullinfo.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_globals.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_tables.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_try_flipped.o"
|
|
;;
|
|
|
|
*)
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_chartables.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_compile.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_exec.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_fullinfo.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_globals.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_tables.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_try_flipped.o"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_newline.o"
|
|
;;
|
|
|
|
esac
|
|
;;
|
|
|
|
*)
|
|
have=NGX_PCRE . auto/have
|
|
|
|
if [ "$NGX_PLATFORM" = win32 ]; then
|
|
have=PCRE_STATIC . auto/have
|
|
fi
|
|
|
|
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
|
|
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
|
|
CORE_LIBS="$CORE_LIBS $PCRE/.libs/libpcre.a"
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
if [ $PCRE_JIT = YES ]; then
|
|
have=NGX_HAVE_PCRE_JIT . auto/have
|
|
PCRE_CONF_OPT="$PCRE_CONF_OPT --enable-jit"
|
|
fi
|
|
|
|
else
|
|
|
|
if [ "$NGX_PLATFORM" != win32 ]; then
|
|
|
|
PCRE=NO
|
|
|
|
ngx_feature="PCRE library"
|
|
ngx_feature_name="NGX_PCRE"
|
|
ngx_feature_run=no
|
|
ngx_feature_incs="#include <pcre.h>"
|
|
ngx_feature_path=
|
|
ngx_feature_libs="-lpcre"
|
|
ngx_feature_test="pcre *re;
|
|
re = pcre_compile(NULL, 0, NULL, 0, NULL);
|
|
if (re == NULL) return 1"
|
|
. auto/feature
|
|
|
|
if [ $ngx_found = no ]; then
|
|
|
|
# FreeBSD port
|
|
|
|
ngx_feature="PCRE library in /usr/local/"
|
|
ngx_feature_path="/usr/local/include"
|
|
|
|
if [ $NGX_RPATH = YES ]; then
|
|
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lpcre"
|
|
else
|
|
ngx_feature_libs="-L/usr/local/lib -lpcre"
|
|
fi
|
|
|
|
. auto/feature
|
|
fi
|
|
|
|
if [ $ngx_found = no ]; then
|
|
|
|
# RedHat RPM, Solaris package
|
|
|
|
ngx_feature="PCRE library in /usr/include/pcre/"
|
|
ngx_feature_path="/usr/include/pcre"
|
|
ngx_feature_libs="-lpcre"
|
|
|
|
. auto/feature
|
|
fi
|
|
|
|
if [ $ngx_found = no ]; then
|
|
|
|
# NetBSD port
|
|
|
|
ngx_feature="PCRE library in /usr/pkg/"
|
|
ngx_feature_path="/usr/pkg/include"
|
|
|
|
if [ $NGX_RPATH = YES ]; then
|
|
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lpcre"
|
|
else
|
|
ngx_feature_libs="-L/usr/pkg/lib -lpcre"
|
|
fi
|
|
|
|
. auto/feature
|
|
fi
|
|
|
|
if [ $ngx_found = no ]; then
|
|
|
|
# MacPorts
|
|
|
|
ngx_feature="PCRE library in /opt/local/"
|
|
ngx_feature_path="/opt/local/include"
|
|
|
|
if [ $NGX_RPATH = YES ]; then
|
|
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lpcre"
|
|
else
|
|
ngx_feature_libs="-L/opt/local/lib -lpcre"
|
|
fi
|
|
|
|
. auto/feature
|
|
fi
|
|
|
|
if [ $ngx_found = yes ]; then
|
|
CORE_INCS="$CORE_INCS $ngx_feature_path"
|
|
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
|
|
PCRE=YES
|
|
fi
|
|
|
|
if [ $PCRE = YES ]; then
|
|
ngx_feature="PCRE JIT support"
|
|
ngx_feature_name="NGX_HAVE_PCRE_JIT"
|
|
ngx_feature_test="int jit = 0;
|
|
pcre_free_study(NULL);
|
|
pcre_config(PCRE_CONFIG_JIT, &jit);
|
|
if (jit != 1) return 1;"
|
|
. auto/feature
|
|
|
|
if [ $ngx_found = yes ]; then
|
|
PCRE_JIT=YES
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ $PCRE != YES ]; then
|
|
cat << END
|
|
|
|
$0: error: the HTTP rewrite module requires the PCRE library.
|
|
You can either disable the module by using --without-http_rewrite_module
|
|
option, or install the PCRE library into the system, or build the PCRE library
|
|
statically from the source with nginx by using --with-pcre=<path> option.
|
|
|
|
END
|
|
exit 1
|
|
fi
|
|
|
|
fi
|