view auto/lib/sha1/make @ 6403:e59e617f8fcb

Configure: fixed static nginx build with OpenSSL (ticket #903). Before 7142b04337d6, it was possible to build the OpenSSL library along with nginx, and link nginx statically with this library (--with-openssl=DIR --with-ld-opt=-static --with-http_ssl_module). This was broken on Linux by not adding -ldl after -lcrypto. The fix also makes it possible to link nginx statically on Linux with the system OpenSSL library, which never worked before.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 18 Feb 2016 11:39:57 +0300
parents 78f8ac479735
children
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