
case $CC in

    cl)
        makefile=makefile.msvc
    ;;

    wcl386)
        makefile=makefile.owc
    ;;

esac


case $PLATFORM in

    win32)
        echo "$MD5/md5.lib:"                                      >> $MAKEFILE
    ;;

    *)
        echo "$MD5/libmd5.a:"                                     >> $MAKEFILE
    ;;

esac


done=NO


case $PLATFORM in

    win32)

        cp auto/lib/md5/$makefile $MD5
        echo "	cd $MD5"                                          >> $MAKEFILE
        echo $ngx_n "	\$(MAKE) -f $makefile" $ngx_c             >> $MAKEFILE
        echo " CPU_OPT=$CPU_OPT LIBC=$LIBC MD5_ASM=$MD5_ASM"      >> $MAKEFILE
        echo "	cd ..\\..\\.."                                    >> $MAKEFILE

        done=YES
    ;;

    SunOS:*:i86pc)
        if [ $MD5_ASM = YES ]; then

            MD5_OPT="CFLAGS=\"$MD5_OPT -DSOL -DMD5_ASM -DL_ENDIAN\""

            echo "	cd $MD5 \\"                               >> $MAKEFILE
            echo "	&& \$(MAKE) $MD5_OPT \\"                  >> $MAKEFILE
            echo "		MD5_ASM_OBJ=asm/mx86-sol.o \\"    >> $MAKEFILE
            echo "		CC=$CC CPP=\"$CPP\" libmd5.a"     >> $MAKEFILE

            done=YES
        fi
    ;;

    # FreeBSD: i386
    # Linux: i686

    *:i386 | *:i686)
        if [ $MD5_ASM = YES ]; then

            MD5_OPT="CFLAGS=\"$MD5_OPT -DELF -DMD5_ASM -DL_ENDIAN\""

            echo "	cd $MD5 \\"                               >> $MAKEFILE
            echo "	&& \$(MAKE) $MD5_OPT \\"                  >> $MAKEFILE
            echo "		MD5_ASM_OBJ=asm/mx86-elf.o \\"    >> $MAKEFILE
            echo "		CC=$CC CPP=\"$CPP\" libmd5.a"     >> $MAKEFILE

            done=YES
        fi
    ;;

esac


if [ $done = NO ]; then
    echo "	cd $MD5 \\"                                       >> $MAKEFILE
    echo "	&& \$(MAKE) CFLAGS=\"$MD5_OPT\" \\"               >> $MAKEFILE
    echo "		MD5_ASM_OBJ= CC=$CC libmd5.a"             >> $MAKEFILE
fi


echo                                                              >> $MAKEFILE
