From 2d252980eddcf8b77eed217704100e5d86c51430 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Thu, 14 May 2009 15:46:34 +0000 Subject: [PATCH] fix building OpenSSL on Win32 --- auto/lib/openssl/conf | 14 ++++++++------ auto/lib/openssl/make | 34 +++++++++++++++++++++------------- auto/lib/openssl/makefile.bcc | 10 ++++++++-- auto/lib/openssl/makefile.msvc | 14 ++++++++++++++ 4 files changed, 51 insertions(+), 21 deletions(-) create mode 100644 auto/lib/openssl/makefile.msvc diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf index ba016481d..f50af31cf 100644 --- a/auto/lib/openssl/conf +++ b/auto/lib/openssl/conf @@ -3,19 +3,19 @@ if [ $OPENSSL != NONE ]; then - CORE_INCS="$CORE_INCS $OPENSSL/include" case "$CC" in - cl|bcc32) + cl | bcc32) have=NGX_OPENSSL . auto/have have=NGX_SSL . auto/have - LINK_DEPS="$LINK_DEPS $OPENSSL/out32/ssleay32.lib" - CORE_LIBS="$CORE_LIBS $OPENSSL/out32/ssleay32.lib" + CFLAGS="$CFLAGS -DNO_SYS_TYPES_H" - LINK_DEPS="$LINK_DEPS $OPENSSL/out32/libeay32.lib" - CORE_LIBS="$CORE_LIBS $OPENSSL/out32/libeay32.lib" + CORE_INCS="$CORE_INCS $OPENSSL/openssl/include" + CORE_DEPS="$CORE_DEPS $OPENSSL/openssl/include/openssl/ssl.h" + CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib" + CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib" # libeay32.lib requires gdi32.lib CORE_LIBS="$CORE_LIBS gdi32.lib" @@ -24,6 +24,8 @@ if [ $OPENSSL != NONE ]; then *) have=NGX_OPENSSL . auto/have have=NGX_SSL . auto/have + + CORE_INCS="$CORE_INCS $OPENSSL/include" LINK_DEPS="$LINK_DEPS $OPENSSL/libssl.a $OPENSSL/libcrypto.a" CORE_LIBS="$CORE_LIBS $OPENSSL/libssl.a $OPENSSL/libcrypto.a" ;; diff --git a/auto/lib/openssl/make b/auto/lib/openssl/make index b2150c0a2..bfe9a3f31 100644 --- a/auto/lib/openssl/make +++ b/auto/lib/openssl/make @@ -3,7 +3,7 @@ if test -n "$OPENSSL_OPT"; then - NGX_OPENSSL_CONFIG="./Configure \"$OPENSSL_OPT\"" + NGX_OPENSSL_CONFIG="./Configure $OPENSSL_OPT" else NGX_OPENSSL_CONFIG="./config" fi @@ -14,29 +14,37 @@ case $USE_THREADS in esac case "$CC" in + cl) + cat << END >> $NGX_MAKEFILE -$OPENSSL/out32/ssleay32.lib: - cd $OPENSSL - perl Configure VC-WIN32 no-shared - ms\\do_ms - \$(MAKE) -f ms\\nt.mak - cd \$(MAKEDIR) +$OPENSSL/openssl/include/openssl/ssl.h: $NGX_MAKEFILE + \$(MAKE) -f auto/lib/openssl/makefile.msvc \ + OPENSSL="$OPENSSL" OPENSSL_OPT="$OPENSSL_OPT" END ;; - bcc32) + cl | bcc32) + + ngx_opt=`echo "-DOPENSSL=\"$OPENSSL\" -DOPENSSL_OPT=\"$OPENSSL_OPT\"" \ + | sed -e "s/\//$ngx_regex_dirsep/g"` + cat << END >> $NGX_MAKEFILE -`echo "$OPENSSL\\out32\\libeay32.lib: $OPENSSL\\out32\\ssleay32.lib" \ +`echo "$OPENSSL\\openssl\\lib\\libeay32.lib: \ + $OPENSSL\\openssl\\include\\openssl\\ssl.h" \ | sed -e "s/\//$ngx_regex_dirsep/g"` -`echo "$OPENSSL\\out32\\ssleay32.lib:" | sed -e "s/\//$ngx_regex_dirsep/g"` - \$(MAKE) -f auto/lib/openssl/$ngx_makefile \ - -DOPENSSL=`echo \"$OPENSSL\" | sed -e "s/\//$ngx_regex_dirsep/g"` +`echo "$OPENSSL\\openssl\\lib\\ssleay32.lib: \ + $OPENSSL\\openssl\\include\\openssl\\ssl.h" \ + | sed -e "s/\//$ngx_regex_dirsep/g"` + +`echo "$OPENSSL\\openssl\\include\\openssl\\ssl.h: $NGX_MAKEFILE" \ + | sed -e "s/\//$ngx_regex_dirsep/g"` + \$(MAKE) -f auto/lib/openssl/makefile.bcc $ngx_opt END @@ -45,7 +53,7 @@ END *) cat << END >> $NGX_MAKEFILE -$OPENSSL/libssl.a: +$OPENSSL/libssl.a: $NGX_MAKEFILE cd $OPENSSL \\ && \$(MAKE) clean \\ && $NGX_OPENSSL_CONFIG no-shared \\ diff --git a/auto/lib/openssl/makefile.bcc b/auto/lib/openssl/makefile.bcc index 3534b0ef8..679e7fe4a 100644 --- a/auto/lib/openssl/makefile.bcc +++ b/auto/lib/openssl/makefile.bcc @@ -2,11 +2,17 @@ # Copyright (C) Igor Sysoev -ssleay32.lib: +all: cd $(OPENSSL) - perl Configure BC-32 no-shared + perl Configure BC-32 no-shared --prefix=openssl -DNO_SYS_TYPES_H \ + $(OPENSSL_OPT) ms\do_nasm $(MAKE) -f ms\bcb.mak + $(MAKE) -f ms\bcb.mak install + + # Borland's make does not expand "[ch]" in + # copy "inc32\openssl\*.[ch]" "openssl\include\openssl" + copy inc32\openssl\*.h openssl\include\openssl diff --git a/auto/lib/openssl/makefile.msvc b/auto/lib/openssl/makefile.msvc new file mode 100644 index 000000000..0e45c487f --- /dev/null +++ b/auto/lib/openssl/makefile.msvc @@ -0,0 +1,14 @@ + +# Copyright (C) Igor Sysoev + + +all: + cd $(OPENSSL) + + perl Configure VC-WIN32 no-shared --prefix=openssl -DNO_SYS_TYPES_H \ + $(OPENSSL_OPT) + + ms\do_ms + + $(MAKE) -f ms\nt.mak + $(MAKE) -f ms\nt.mak install