mirror of https://github.com/nginx/nginx
170 lines
4.4 KiB
Plaintext
170 lines
4.4 KiB
Plaintext
|
|
# Copyright (C) Igor Sysoev
|
|
# Copyright (C) Nginx, Inc.
|
|
|
|
|
|
if [ $PCRE_LIBRARY = PCRE2 ]; then
|
|
|
|
# PCRE2
|
|
|
|
if [ $NGX_CC_NAME = msvc ]; then
|
|
|
|
# With PCRE2, it is not possible to compile all sources.
|
|
# Since list of source files changes between versions, we
|
|
# test files which might not be present.
|
|
|
|
ngx_pcre_srcs="pcre2_auto_possess.c \
|
|
pcre2_chartables.c \
|
|
pcre2_compile.c \
|
|
pcre2_config.c \
|
|
pcre2_context.c \
|
|
pcre2_dfa_match.c \
|
|
pcre2_error.c \
|
|
pcre2_jit_compile.c \
|
|
pcre2_maketables.c \
|
|
pcre2_match.c \
|
|
pcre2_match_data.c \
|
|
pcre2_newline.c \
|
|
pcre2_ord2utf.c \
|
|
pcre2_pattern_info.c \
|
|
pcre2_string_utils.c \
|
|
pcre2_study.c \
|
|
pcre2_substitute.c \
|
|
pcre2_substring.c \
|
|
pcre2_tables.c \
|
|
pcre2_ucd.c \
|
|
pcre2_valid_utf.c \
|
|
pcre2_xclass.c"
|
|
|
|
ngx_pcre_test="pcre2_chkdint.c \
|
|
pcre2_convert.c \
|
|
pcre2_extuni.c \
|
|
pcre2_find_bracket.c \
|
|
pcre2_script_run.c \
|
|
pcre2_serialize.c"
|
|
|
|
for ngx_src in $ngx_pcre_test
|
|
do
|
|
if [ -f $PCRE/src/$ngx_src ]; then
|
|
ngx_pcre_srcs="$ngx_pcre_srcs $ngx_src"
|
|
fi
|
|
done
|
|
|
|
ngx_pcre_objs=`echo $ngx_pcre_srcs \
|
|
| sed -e "s#\([^ ]*\.\)c#\1$ngx_objext#g"`
|
|
|
|
ngx_pcre_srcs=`echo $ngx_pcre_srcs \
|
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g"`
|
|
ngx_pcre_objs=`echo $ngx_pcre_objs \
|
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g"`
|
|
|
|
cat << END >> $NGX_MAKEFILE
|
|
|
|
PCRE_CFLAGS = -O2 -Ob1 -Oi -Gs $LIBC $CPU_OPT
|
|
PCRE_FLAGS = -DHAVE_CONFIG_H -DPCRE2_STATIC -DPCRE2_CODE_UNIT_WIDTH=8 \\
|
|
-DHAVE_MEMMOVE
|
|
|
|
PCRE_SRCS = $ngx_pcre_srcs
|
|
PCRE_OBJS = $ngx_pcre_objs
|
|
|
|
$PCRE/src/pcre2.h:
|
|
cd $PCRE/src \\
|
|
&& copy /y config.h.generic config.h \\
|
|
&& copy /y pcre2.h.generic pcre2.h \\
|
|
&& copy /y pcre2_chartables.c.dist pcre2_chartables.c
|
|
|
|
$PCRE/src/pcre2-8.lib: $PCRE/src/pcre2.h $NGX_MAKEFILE
|
|
cd $PCRE/src \\
|
|
&& cl -nologo -c \$(PCRE_CFLAGS) -I . \$(PCRE_FLAGS) \$(PCRE_SRCS) \\
|
|
&& link -lib -out:pcre2-8.lib -verbose:lib \$(PCRE_OBJS)
|
|
|
|
END
|
|
|
|
else
|
|
|
|
cat << END >> $NGX_MAKEFILE
|
|
|
|
$PCRE/src/pcre2.h: $PCRE/Makefile
|
|
|
|
$PCRE/Makefile: $NGX_MAKEFILE
|
|
cd $PCRE \\
|
|
&& if [ -f Makefile ]; then \$(MAKE) distclean; fi \\
|
|
&& CC="\$(CC)" CFLAGS="$PCRE_OPT" \\
|
|
./configure --disable-shared $PCRE_CONF_OPT
|
|
|
|
$PCRE/.libs/libpcre2-8.a: $PCRE/Makefile
|
|
cd $PCRE \\
|
|
&& \$(MAKE) libpcre2-8.la
|
|
|
|
END
|
|
|
|
fi
|
|
|
|
|
|
else
|
|
|
|
# PCRE
|
|
|
|
case "$NGX_CC_NAME" in
|
|
|
|
msvc)
|
|
ngx_makefile=makefile.msvc
|
|
ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC"
|
|
ngx_pcre="PCRE=\"$PCRE\""
|
|
;;
|
|
|
|
owc)
|
|
ngx_makefile=makefile.owc
|
|
ngx_opt="CPU_OPT=\"$CPU_OPT\""
|
|
ngx_pcre=`echo PCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"`
|
|
;;
|
|
|
|
bcc)
|
|
ngx_makefile=makefile.bcc
|
|
ngx_opt="-DCPU_OPT=\"$CPU_OPT\""
|
|
ngx_pcre=`echo \-DPCRE=\"$PCRE\" \
|
|
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
|
;;
|
|
|
|
*)
|
|
ngx_makefile=
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
if [ -n "$ngx_makefile" ]; then
|
|
|
|
cat << END >> $NGX_MAKEFILE
|
|
|
|
`echo "$PCRE/pcre.lib: $PCRE/pcre.h $NGX_MAKEFILE" \
|
|
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
|
\$(MAKE) -f auto/lib/pcre/$ngx_makefile $ngx_pcre $ngx_opt
|
|
|
|
`echo "$PCRE/pcre.h:" | sed -e "s/\//$ngx_regex_dirsep/g"`
|
|
\$(MAKE) -f auto/lib/pcre/$ngx_makefile $ngx_pcre pcre.h
|
|
|
|
END
|
|
|
|
else
|
|
|
|
cat << END >> $NGX_MAKEFILE
|
|
|
|
$PCRE/pcre.h: $PCRE/Makefile
|
|
|
|
$PCRE/Makefile: $NGX_MAKEFILE
|
|
cd $PCRE \\
|
|
&& if [ -f Makefile ]; then \$(MAKE) distclean; fi \\
|
|
&& CC="\$(CC)" CFLAGS="$PCRE_OPT" \\
|
|
./configure --disable-shared $PCRE_CONF_OPT
|
|
|
|
$PCRE/.libs/libpcre.a: $PCRE/Makefile
|
|
cd $PCRE \\
|
|
&& \$(MAKE) libpcre.la
|
|
|
|
END
|
|
|
|
fi
|
|
|
|
fi
|