diff options
Diffstat (limited to 'auto')
-rw-r--r-- | auto/cc/msvc | 3 | ||||
-rw-r--r-- | auto/lib/conf | 12 | ||||
-rw-r--r-- | auto/lib/make | 4 | ||||
-rw-r--r-- | auto/lib/md5/makefile.bcc | 2 | ||||
-rw-r--r-- | auto/lib/md5/makefile.msvc | 2 | ||||
-rw-r--r-- | auto/lib/sha1/conf | 81 | ||||
-rw-r--r-- | auto/lib/sha1/make | 96 | ||||
-rw-r--r-- | auto/lib/sha1/makefile.bcc | 19 | ||||
-rw-r--r-- | auto/lib/sha1/makefile.msvc | 19 | ||||
-rw-r--r-- | auto/lib/sha1/makefile.owc | 9 | ||||
-rw-r--r-- | auto/options | 13 | ||||
-rw-r--r-- | auto/summary | 13 |
12 files changed, 269 insertions, 4 deletions
diff --git a/auto/cc/msvc b/auto/cc/msvc index 5c8acc1b1..8cf87fa61 100644 --- a/auto/cc/msvc +++ b/auto/cc/msvc @@ -49,7 +49,7 @@ case $CPU in ;; esac -# __cdecl, use with OpenSSL +# __cdecl, use with OpenSSL, md5 asm, and sha1 asm #CPU_OPT="$CPU_OPT -Gd" # __stdcall #CPU_OPT="$CPU_OPT -Gz" @@ -62,7 +62,6 @@ CFLAGS="$CFLAGS $CPU_OPT" # warnings -#CFLAGS="$CFLAGS -W3" CFLAGS="$CFLAGS -W4" # stop on warning diff --git a/auto/lib/conf b/auto/lib/conf index 62d6029bb..e96103468 100644 --- a/auto/lib/conf +++ b/auto/lib/conf @@ -23,6 +23,18 @@ if [ $USE_MD5 = YES ]; then fi +if [ $USE_SHA1 = YES ]; then + + if [ $OPENSSL != NONE -a $OPENSSL != NO ]; then + have=NGX_HAVE_OPENSSL_SHA1_H . auto/have + SHA1=YES + + else + . auto/lib/sha1/conf + fi + +fi + if [ $USE_ZLIB = YES ]; then . auto/lib/zlib/conf fi diff --git a/auto/lib/make b/auto/lib/make index 60cd7bcd2..170311c63 100644 --- a/auto/lib/make +++ b/auto/lib/make @@ -10,6 +10,10 @@ if [ $MD5 != NONE -a $MD5 != NO -a $MD5 != YES ]; then . auto/lib/md5/make fi +if [ $SHA1 != NONE -a $SHA1 != NO -a $SHA1 != YES ]; then + . auto/lib/sha1/make +fi + if [ $OPENSSL != NONE -a $OPENSSL != NO -a $OPENSSL != YES ]; then . auto/lib/openssl/make fi diff --git a/auto/lib/md5/makefile.bcc b/auto/lib/md5/makefile.bcc index 837f2dff7..6d2151b21 100644 --- a/auto/lib/md5/makefile.bcc +++ b/auto/lib/md5/makefile.bcc @@ -8,7 +8,7 @@ CFLAGS = -q -O2 -tWM $(CPU_OPT) -DL_ENDIAN md5.lib: bcc32 -c $(CFLAGS) -DMD5_ASM md5_dgst.c - tlib md5.lib +md5_dgst.obj +asm/m-win32.obj + tlib md5.lib +md5_dgst.obj +"asm\m-win32.obj" !else diff --git a/auto/lib/md5/makefile.msvc b/auto/lib/md5/makefile.msvc index 68f5cc49b..aaffe1889 100644 --- a/auto/lib/md5/makefile.msvc +++ b/auto/lib/md5/makefile.msvc @@ -2,7 +2,7 @@ # Copyright (C) Igor Sysoev -CFLAGS = -nologo -MT -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT) -D L_ENDIAN +CFLAGS = -nologo -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT) -D L_ENDIAN !if "$(MD5_ASM)" == "YES" diff --git a/auto/lib/sha1/conf b/auto/lib/sha1/conf new file mode 100644 index 000000000..a1e20c9b2 --- /dev/null +++ b/auto/lib/sha1/conf @@ -0,0 +1,81 @@ + +# Copyright (C) Igor Sysoev + + +if [ $SHA1 != NONE ]; then + + CORE_INCS="$CORE_INCS $SHA1" + + case "$NGX_CC_NAME" in + + msvc* | owc* | bcc) + LINK_DEPS="$LINK_DEPS $SHA1/sha1.lib" + CORE_LIBS="$CORE_LIBS $SHA1/sha1.lib" + ;; + + icc*) + LINK_DEPS="$LINK_DEPS $SHA1/libsha.a" + + # to allow -ipo optimization we link with the *.o but not library + CORE_LIBS="$CORE_LIBS $SHA1/sha1_dgst.o" + + if [ $SHA1_ASM = YES ]; then + CORE_LIBS="$CORE_LIBS $SHA1/asm/sx86-elf.o" + fi + ;; + + *) + LINK_DEPS="$LINK_DEPS $SHA1/libsha.a" + CORE_LIBS="$CORE_LIBS $SHA1/libsha.a" + #CORE_LIBS="$CORE_LIBS -L $SHA1 -lsha" + ;; + + esac + +else + + if [ "$NGX_PLATFORM" != win32 ]; then + SHA1=NO + + # FreeBSD + + ngx_feature="sha1 in system md library" + ngx_feature_name= + ngx_feature_run=no + ngx_feature_incs="#include <sha.h>" + ngx_feature_libs="-lmd" + ngx_feature_test="SHA_CTX sha1; SHA1_Init(&sha1)" + . auto/feature + + + if [ $ngx_found = yes ]; then + CORE_LIBS="$CORE_LIBS $ngx_feature_libs" + SHA1=YES + SHA1_LIB=md + ngx_found=no + + else + if [ $SHA1 = NO ]; then + + # OpenSSL crypto library + + ngx_feature="OpenSSL sha1 crypto library" + ngx_feature_name= + ngx_feature_run=no + ngx_feature_incs="#include <openssl/sha.h>" + ngx_feature_libs="-lcrypto" + ngx_feature_test="SHA_CTX sha1; SHA1_Init(&sha1)" + . auto/feature + fi + fi + + + if [ $ngx_found = yes ]; then + have=NGX_HAVE_OPENSSL_SHA1_H . auto/have + CORE_LIBS="$CORE_LIBS $ngx_feature_libs" + SHA1=YES + SHA1_LIB=crypto + fi + fi + +fi diff --git a/auto/lib/sha1/make b/auto/lib/sha1/make new file mode 100644 index 000000000..bd1036e1f --- /dev/null +++ b/auto/lib/sha1/make @@ -0,0 +1,96 @@ + +# Copyright (C) Igor Sysoev + + +case "$NGX_CC_NAME" in + + msvc*) + ngx_makefile=makefile.msvc + ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC SHA1_ASM=$SHA1_ASM" + ;; + + owc*) + ngx_makefile=makefile.owc + ngx_opt="CPU_OPT=\"$CPU_OPT\"" + ;; + + bcc) + ngx_makefile=makefile.bcc + ngx_opt="-DCPU_OPT=\"$CPU_OPT\" -DSHA1_ASM=$SHA1_ASM" + ;; + +esac + + +done=NO + + +case "$NGX_PLATFORM" in + + win32) + cp auto/lib/sha1/$ngx_makefile $SHA1 + + cat << END >> $NGX_MAKEFILE + +`echo "$SHA1/sha1.lib: $NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"` + cd `echo $SHA1 | sed -e "s/\//$ngx_regex_dirsep/g"` + \$(MAKE) -f $ngx_makefile $ngx_opt + cd ..\\..\\.. + +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 diff --git a/auto/lib/sha1/makefile.bcc b/auto/lib/sha1/makefile.bcc new file mode 100644 index 000000000..255e56a89 --- /dev/null +++ b/auto/lib/sha1/makefile.bcc @@ -0,0 +1,19 @@ + +# Copyright (C) Igor Sysoev + + +CFLAGS = -q -O2 -tWM $(CPU_OPT) -DL_ENDIAN + +!if "$(SHA1_ASM)" == "YES" + +sha1.lib: + bcc32 -c $(CFLAGS) -DSHA1_ASM sha1dgst.c + tlib sha1.lib +sha1dgst.obj +"asm\s-win32.obj" + +!else + +sha1.lib: + bcc32 -c $(CFLAGS) sha1dgst.c + tlib sha1.lib +sha1dgst.obj + +!endif diff --git a/auto/lib/sha1/makefile.msvc b/auto/lib/sha1/makefile.msvc new file mode 100644 index 000000000..2ec55d5a8 --- /dev/null +++ b/auto/lib/sha1/makefile.msvc @@ -0,0 +1,19 @@ + +# Copyright (C) Igor Sysoev + + +CFLAGS = -nologo -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT) -D L_ENDIAN + +!if "$(SHA1_ASM)" == "YES" + +sha1.lib: + cl -c $(CFLAGS) -D SHA1_ASM sha1dgst.c + link -lib -out:sha1.lib sha1dgst.obj asm/s-win32.obj + +!else + +sha1.lib: + cl -c $(CFLAGS) sha1dgst.c + link -lib -out:sha1.lib sha1dgst.obj + +!endif diff --git a/auto/lib/sha1/makefile.owc b/auto/lib/sha1/makefile.owc new file mode 100644 index 000000000..767870d8a --- /dev/null +++ b/auto/lib/sha1/makefile.owc @@ -0,0 +1,9 @@ + +# Copyright (C) Igor Sysoev + + +CFLAGS = -zq -bt=nt -bm -ot -op -oi -oe -s $(CPU_OPT) + +sha1.lib: + wcl386 -c $(CFLAGS) -dL_ENDIAN sha1dgst.c + wlib -n sha1.lib sha1dgst.obj diff --git a/auto/options b/auto/options index 3fcc07134..6614c882d 100644 --- a/auto/options +++ b/auto/options @@ -89,6 +89,11 @@ MD5=NONE MD5_OPT= MD5_ASM=NO +USE_SHA1=NO +SHA1=NONE +SHA1_OPT= +SHA1_ASM=NO + USE_ZLIB=NO ZLIB=NONE ZLIB_OPT= @@ -191,6 +196,10 @@ do --with-md5-opt=*) MD5_OPT="$value" ;; --with-md5-asm) MD5_ASM=YES ;; + --with-sha1=*) SHA1="$value" ;; + --with-sha1-opt=*) SHA1_OPT="$value" ;; + --with-sha1-asm) SHA1_ASM=YES ;; + --with-zlib=*) ZLIB="$value" ;; --with-zlib-opt=*) ZLIB_OPT="$value" ;; --with-zlib-asm=*) ZLIB_ASM="$value" ;; @@ -285,6 +294,10 @@ cat << END --with-md5-opt=OPTIONS set additional options for md5 building --with-md5-asm use md5 assembler sources + --with-sha1=DIR set path to sha1 library sources + --with-sha1-opt=OPTIONS set additional options for sha1 building + --with-sha1-asm use sha1 assembler sources + --with-zlib=DIR set path to zlib library sources --with-zlib-opt=OPTIONS set additional options for zlib building --with-zlib-asm=CPU use zlib assembler sources optimized diff --git a/auto/summary b/auto/summary index 690a65e20..accb7b9ac 100644 --- a/auto/summary +++ b/auto/summary @@ -63,6 +63,19 @@ case $MD5 in *) echo " + using md5 library: $MD5" ;; esac +case $SHA1 in + YES) + case $OPENSSL in + NONE|NO) echo " + sha1: using system $SHA1_LIB library" ;; + *) echo " + sha1: using OpenSSL library" ;; + esac + ;; + + NONE) echo " + sha1 library is not used" ;; + NO) echo " + sha1 library is not found" ;; + *) echo " + using sha1 library: $SHA1" ;; +esac + case $ZLIB in YES) echo " + using system zlib library" ;; NONE) echo " + zlib library is not used" ;; |