|  |  | 
|  | # 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_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 |