
# Copyright (C) Igor Sysoev


case "$NGX_CC_NAME" in

    msvc*)
        ngx_makefile=makefile.msvc
        ngx_opt="CPU_OPT=$CPU_OPT LIBC=$LIBC"
    ;;

    owc*)
        ngx_makefile=makefile.owc
        ngx_opt="CPU_OPT=$CPU_OPT"
    ;;

    bcc)
        ngx_makefile=makefile.bcc
        ngx_opt="-DCPU_OPT=$CPU_OPT"
    ;;

esac


case $NGX_PLATFORM in

    win32)
        cp auto/lib/pcre/patch.pcre.in $PCRE
        cp auto/lib/pcre/patch.config.in $PCRE
        cp auto/lib/pcre/$ngx_makefile $PCRE

        ngx_pcre=`echo $PCRE | sed -e "s/\//$ngx_regex_dirsep/g"`

        cat << END                                            >> $NGX_MAKEFILE

`echo "$PCRE/pcre.h:	$NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"`
	cd $ngx_pcre
	\$(MAKE) -f $ngx_makefile pcre.h
	cd ..\\..\\..


`echo "$PCRE/pcre.lib:	$PCRE/pcre.h" | sed -e "s/\//$ngx_regex_dirsep/g"`
	cd $ngx_pcre
	\$(MAKE) -f $ngx_makefile $ngx_opt
	cd ..\\..\\..

END

    ;;

    *)
        cat << END                                            >> $NGX_MAKEFILE

$PCRE/pcre.h:	$NGX_MAKEFILE
	cd $PCRE \\
	&& if [ -f Makefile ]; then \$(MAKE) distclean; fi

	cd $PCRE \\
	&& CC="\$(CC)" CFLAGS="$PCRE_OPT" \\
	./configure --disable-shared


$PCRE/.libs/libpcre.a:	$PCRE/pcre.h
	cd $PCRE \\
	&& \$(MAKE) libpcre.la

END

    ;;

esac
