
# Copyright (C) Igor Sysoev


case "$CC" in

    cl)
        makefile=makefile.msvc
        opt="CPU_OPT=$CPU_OPT LIBC=$LIBC"

    ;;

    wcl386)
        makefile=makefile.owc
        opt="CPU_OPT=$CPU_OPT"
    ;;

    bcc32)
        makefile=makefile.bcc
        opt="-DCPU_OPT=$CPU_OPT"
    ;;

esac


case $PLATFORM in

    win32)
        line=`echo $ZLIB/zlib.lib: | sed -e "s/\//$ngx_regex_dirsep/g"`
        echo "$line"                                              >> $MAKEFILE
    ;;

    *)
        echo "$ZLIB/libz.a:"                                      >> $MAKEFILE
    ;;

esac


done=NO


case $PLATFORM in

    win32)
        zlib=`echo $ZLIB | sed -e "s/\//$ngx_regex_dirsep/g"`

        cp auto/lib/zlib/$makefile $ZLIB
        echo "	cd $zlib"                                         >> $MAKEFILE
        echo "	\$(MAKE) -f $makefile $opt"                       >> $MAKEFILE
        echo "	cd ..\\..\\.."                                    >> $MAKEFILE

        done=YES
    ;;

    # FreeBSD: i386
    # Linux: i686

    *:i386 | *:i686)
        case $ZLIB_ASM in
            pentium)
                echo "	cd $ZLIB \\"                              >> $MAKEFILE
                echo "	&& cp contrib/asm586/match.S . \\"        >> $MAKEFILE
                echo "	&& CFLAGS=\"$ZLIB_OPT -DASMV\" \\"        >> $MAKEFILE
                echo "		CC=\"\$(CC)\" \\"                 >> $MAKEFILE
                echo "		./configure \\"                   >> $MAKEFILE
                echo "	&& \$(MAKE) OBJA=match.o libz.a"          >> $MAKEFILE

                done=YES
            ;;

            pentiumpro)
                echo "	cd $ZLIB \\"                              >> $MAKEFILE
                echo "	&& cp contrib/asm686/match.S . \\"        >> $MAKEFILE
                echo "	&& CFLAGS=\"$ZLIB_OPT -DASMV\" \\"        >> $MAKEFILE
                echo "		CC=\"\$(CC)\" \\"                 >> $MAKEFILE
                echo "		./configure \\"                   >> $MAKEFILE
                echo "	&& \$(MAKE) OBJA=match.o libz.a"          >> $MAKEFILE

                done=YES
            ;;

            NO)
            ;;

            *)
                echo "$0: error: invalid --with-zlib-asm=$ZLIB_ASM option."
                echo "The valid values are \"pentium\" and \"pentiumpro\" only".
                echo

                exit 1;
            ;;
        esac
    ;;

esac


if [ $done = NO ]; then
    echo "	cd $ZLIB \\"                                      >> $MAKEFILE
    echo "	&& CFLAGS=\"$ZLIB_OPT\" CC=\"\$(CC)\" \\"         >> $MAKEFILE
    echo "		./configure \\"                           >> $MAKEFILE
    echo "	&& \$(MAKE) libz.a"                               >> $MAKEFILE
fi


echo                                                              >> $MAKEFILE
