Update the configuration of CygWin32 to use the new capabilities of
authorRichard Levitte <levitte@openssl.org>
Wed, 13 Feb 2002 14:45:19 +0000 (14:45 +0000)
committerRichard Levitte <levitte@openssl.org>
Wed, 13 Feb 2002 14:45:19 +0000 (14:45 +0000)
CygWin 1.3.x, which includes thread and shared library support.

Submitted by Corinna Vinschen <vinschen@redhat.com> and modified a
little bit.

CHANGES
Configure
Makefile.org
config

diff --git a/CHANGES b/CHANGES
index f52b4da859e72ae2da1a7648409fe8ff89250c1f..41164fa1666208b8b48611cdde4659cc0fcf2ec8 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,10 @@
 
  Changes between 0.9.6c and 0.9.6d  [XX xxx XXXX]
 
+  *) Add information about CygWin32 1.3 and on, and preserve proper
+     configuration for the versions before that.
+     [Corinna Vinschen <vinschen@redhat.com> and Richard Levitte]
+
   *) Make removal from session cache (SSL_CTX_remove_session()) more robust:
      check whether we deal with a copy of a session and do not delete from
      the cache in this case. Problem reported by "Izhar Shoshani Levi"
index 67178956f4407e5bf26d3f7851ab06de7331012a..192acb74cc7c22f22a0ff42641f8d07f3b31ec49 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -468,7 +468,8 @@ my %table=(
 "Mingw32", "gcc:-DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32",
 
 # CygWin32
-"CygWin32", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32",
+"CygWin32-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32",
+"CygWin32", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -m486 -Wall::::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32:cygwin-shared::.dll",
 
 # Ultrix from Bernhard Simon <simon@zid.tuwien.ac.at>
 "ultrix-cc","cc:-std1 -O -Olimit 1000 -DL_ENDIAN::(unknown)::::::",
index 258c94b63224f360cd0a2ddd7aa59ed864aeb165..ab541a8fd30a4dcbea70315f6717648982f28a54 100644 (file)
@@ -236,6 +236,9 @@ clean-shared:
                        done; \
                fi; \
                ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
+               if [ "$(PLATFORM)" = "CygWin32" ]; then \
+                       ( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
+               fi; \
        done
 
 link-shared:
@@ -282,6 +285,15 @@ do_darwin-shared:
        echo "" ; \
        done
 
+do_cygwin-shared:
+       libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+       ( set -x; ${CC}  -shared -o cyg$$i.dll \
+               -Wl,--whole-archive lib$$i.a \
+               -Wl,--out-implib,lib$$i.dll.a \
+               -Wl,--no-whole-archive $$libs ) || exit 1; \
+       libs="$$libs -l$$i"; \
+       done
+
 # This assumes that GNU utilities are *not* used
 do_alpha-osf1-shared:
        if ${DETECT_GNU_LD}; then \
@@ -638,10 +650,18 @@ install: all install_docs
                tmp="$(SHARED_LIBS)"; \
                for i in $${tmp:-x}; \
                do \
-                       if [ -f "$$i" ]; then \
+                       if [ -f "$$i" -o -f "$$i.a" ]; then \
                        (       echo installing $$i; \
-                               cp -f $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
-                               chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
+                               if [ "$(PLATFORM)" != "CygWin32" ]; then \
+                                       cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
+                                       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
+                               else \
+                                       c=`echo $$i | sed 's/^lib/cyg/'`; \
+                                       cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
+                                       chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
+                                       cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
+                                       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
+                               fi ); \
                        fi \
                done; \
                (       here="`pwd`"; \
diff --git a/config b/config
index 0dec884f4ee69143ca3a7cdc55ef9c8ffe3feccd..a8ad359f09b15a97e1657864e940991d37f53be4 100755 (executable)
--- a/config
+++ b/config
@@ -299,7 +299,11 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
        ;;
 
     CYGWIN*)
-       echo "${MACHINE}-whatever-cygwin32"; exit 0
+       case "$RELEASE" in
+           [bB]*|1.0|1.[12].*)
+               echo "${MACHINE}-whatever-cygwin32_pre1.3"; exit 0
+           *)
+               echo "${MACHINE}-whatever-cygwin32"; exit 0
        ;;
 
 esac
@@ -581,8 +585,8 @@ EOF
   # *-aix) OUT="aix-$CC" ;;
   # *-dgux) OUT="dgux" ;;
   mips-sony-newsos4) OUT="newsos4-gcc" ;;
-  *-*-cygwin32) OUT="CygWin32"
-               options="$options no-threads no-asm" ;;
+  *-*-cygwin32_pre1.3) OUT="CygWin32-pre1.3" ;;
+  *-*-cygwin32) OUT="CygWin32" ;;
   *) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
 esac