Update the configuration of CygWin32 to use the new capabilities of
[openssl.git] / Makefile.org
index 8e225ef54ce1e326b405f06869171129dc3b0376..89f2747b43ad5a6334e4056273dc264a3e3869ab 100644 (file)
@@ -211,7 +211,7 @@ sub_all:
        do \
        if [ -d "$$i" ]; then \
                (cd $$i && echo "making all in $$i..." && \
-               $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' all ) || exit 1; \
+               $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' all ) || exit 1; \
        else \
                $(MAKE) $$i; \
        fi; \
@@ -240,19 +240,22 @@ 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:
-       @for i in $(SHLIBDIRS); do \
-               prev=lib$$i$(SHLIB_EXT); \
-               if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
-                       tmp="$(SHARED_LIBS_LINK_EXTS)"; \
+       @if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
+               tmp="$(SHARED_LIBS_LINK_EXTS)"; \
+               for i in $(SHLIBDIRS); do \
+                       prev=lib$$i$(SHLIB_EXT); \
                        for j in $${tmp:-x}; do \
                                ( set -x; ln -f -s $$prev lib$$i$$j ); \
                                prev=lib$$i$$j; \
                        done; \
-               fi; \
-       done
+               done; \
+       fi
 
 build-shared: clean-shared do_$(SHLIB_TARGET) link-shared
 
@@ -286,6 +289,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 \
@@ -608,6 +620,7 @@ tags:
 
 errors:
        $(PERL) util/mkerr.pl -recurse -write
+       (cd crypto/engine; $(MAKE) PERL=$(PERL) errors)
 
 stacks:
        $(PERL) util/mkstack.pl -write
@@ -688,10 +701,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`"; \