We've now covered the shared library support for Solaris, so the -shared hack
[openssl.git] / Makefile.org
index 3d718c0dbf05c7737c14e17f89a3f2994c7c59b5..b938ac4fe6e43ba505d2c9655c18fc323fdaf133 100644 (file)
@@ -207,7 +207,7 @@ all: Makefile.ssl
                $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' 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}' SDIRS='${SDIRS}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' all ) || exit 1; \
        fi; \
        done; \
-       if $$need_shlib && [ "$(SHLIB_TARGET)" != "" ]; then :; else \
+       if $$need_shlib && [ "$(SHLIB_MARK1)" != "" -o "$(SHLIB_MARK1)" != "" ]; then \
                $(MAKE) $(SHARED_LIBS); \
        fi
 
@@ -229,14 +229,22 @@ sub_all:
                $(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}' all ) || exit 1; \
        fi; \
        done; \
-       if $$need_shlib && [ "$(SHLIB_TARGET)" != "" ]; then :; else \
+       if $$need_shlib && [ "$(SHLIB_MARK1)" != "" -o "$(SHLIB_MARK1)" != "" ]; then \
                $(MAKE) $(SHARED_LIBS); \
        fi
 
 libcrypto.so: libcrypto.a
-       $(MAKE) $(SHLIB_TARGET)
+       @if [ "$(SHLIB_TARGET)" != "" ]; then \
+               $(MAKE) SHLIBDIRS=crypto $(SHLIB_TARGET); \
+       else \
+               echo "There's no support for shared libraries on this platform" >&2; \
+       fi
 libssl.so: libcrypto.so libssl.a
-       $(MAKE) $(SHLIB_TARGET)
+       @if [ "$(SHLIB_TARGET)" != "" ]; then \
+               $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-L. -lcrypto' $(SHLIB_TARGET); \
+       else \
+               echo "There's no support for shared libraries on this platform" >&2; \
+       fi
 
 clean-shared:
        for i in ${SHLIBDIRS}; do \
@@ -246,29 +254,44 @@ clean-shared:
        done
 
 linux-shared:
-       libs=; for i in ${SHLIBDIRS}; do \
+       libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
        rm -f lib$$i.so \
                lib$$i.so.${SHLIB_MAJOR} \
                lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
        ( set -x; ${CC}  -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                -Wl,-S,-soname=lib$$i.so.${SHLIB_MAJOR} \
                -Wl,--whole-archive lib$$i.a \
-               -Wl,--no-whole-archive -lc $$libs ) || exit 1; \
+               -Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \
        libs="$$libs -L. -l$$i"; \
        ( set -x; \
                ln -s lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                        lib$$i.so.${SHLIB_MAJOR}; \
                ln -s lib$$i.so.${SHLIB_MAJOR} lib$$i.so ); \
-       done;
+       done
 
 # This assumes that GNU utilities are *not* used
 true64-shared:
-       libs=; for i in ${SHLIBDIRS}; do \
+       libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
        ( set -x; ${CC}  -shared -no_archive -o lib$$i.so \
                -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
-               -all lib$$i.a -none -lc $$libs ) || exit 1; \
+               -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \
        libs="$$libs -L. -l$$i"; \
-       done;
+       done
+
+# This assumes that GNU utilities are *not* used
+solaris-shared:
+       libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+       rm -f lib$$i.so \
+               lib$$i.so.${SHLIB_MAJOR} \
+               lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
+       ( set -x; ${CC}  -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
+               -h lib$$i.so.${SHLIB_MAJOR} \
+               -z allextract lib$$i.a $$libs ${EX_LIBS} -lc ) || exit 1; \
+       libs="$$libs -L. -l$$i"; \
+       ln -s lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
+               lib$$i.so.${SHLIB_MAJOR}; \
+       ln -s lib$$i.so.${SHLIB_MAJOR} lib$$i.so; \
+       done
 
 Makefile.ssl: Makefile.org
        @echo "Makefile.ssl is older than Makefile.org."