view auto/lib/sha1/make @ 4616:b194fb640d3e

Fastcgi: fixed padding handling on fixed-size records. Padding was incorrectly ignored on end request, empty stdout and stderr fastcgi records. This resulted in protocol desynchronization if fastcgi application used these records with padding for some reason. Reported by Ilia Vinokurov.
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 11 May 2012 13:14:58 +0000
parents d620f497c50f
children 78f8ac479735
line wrap: on
line source


# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.


case "$NGX_CC_NAME" in

    msvc*)
        ngx_makefile=makefile.msvc
        ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC SHA1_ASM=$SHA1_ASM"
        ngx_sha1="SHA1=\"$SHA1\""
    ;;

    owc*)
        ngx_makefile=makefile.owc
        ngx_opt="CPU_OPT=\"$CPU_OPT\""
        ngx_sha1=`echo SHA1=\"$SHA1\" | sed -e "s/\//$ngx_regex_dirsep/g"`
    ;;

    bcc)
        ngx_makefile=makefile.bcc
        ngx_opt="-DCPU_OPT=\"$CPU_OPT\" -DSHA1_ASM=$SHA1_ASM"
        ngx_sha1=`echo \-DSHA1=\"$SHA1\" | sed -e "s/\//$ngx_regex_dirsep/g"`
    ;;

esac


done=NO


case "$NGX_PLATFORM" in

    win32)
        cat << END                                        >> $NGX_MAKEFILE

`echo "$SHA1/sha1.lib:	$NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"`
	\$(MAKE) -f auto/lib/sha1/$ngx_makefile $ngx_opt $ngx_sha1

END

        done=YES
    ;;

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

            cat << END                                        >> $NGX_MAKEFILE

$SHA1/libsha.a:	$NGX_MAKEFILE
	cd $SHA1 \\
	&& \$(MAKE) CFLAGS="$SHA1_OPT -DSOL -DSHA1_ASM -DL_ENDIAN" \\
		CC="\$(CC)" CPP="\$(CPP)" \\
		SHA_ASM_OBJ=asm/sx86-sol.o clean libsha.a

END

            done=YES
        fi
    ;;

    # FreeBSD: i386
    # Linux: i686

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

            cat << END                                        >> $NGX_MAKEFILE

$SHA1/libsha.a:	$NGX_MAKEFILE
	cd $SHA1 \\
	&& \$(MAKE) CFLAGS="$SHA1_OPT -DELF -DSHA1_ASM -DL_ENDIAN" \\
		CC="\$(CC)" CPP="\$(CPP)" \\
		SHA_ASM_OBJ=asm/sx86-elf.o clean libsha.a

END

            done=YES
        fi
    ;;

esac


if [ $done = NO ]; then

    cat << END                                                >> $NGX_MAKEFILE

$SHA1/libsha.a:	$NGX_MAKEFILE
	cd $SHA1 \\
	&& \$(MAKE) CFLAGS="$SHA1_OPT" \\
		CC="\$(CC)" SHA_ASM_OBJ= clean libsha.a

END

fi