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