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