The below diff to the OpenSSL 0.9.4 Makefile.org adds rules for building
shared library versions of OpenSSL on Solaris and Digital UNIX (formerly
OSF/1, now Compaq Tru64 UNIX). When linked against these shared
libraries the test suite passes all tests and I am successfully using
the shared libraries in production.
solaris-gcc-shared: builds Solaris ELF shared library with gcc
solaris-cc-shared: builds Solaris ELF shared library with Sun Workshop cc
osf-cc-shared: builds COFF shared library with Digital UNIX C compiler
(includes appropriate options for COFF shared library version
information)
Linkers other than GNU ld don't appear to have equivalents to the
--with-whole-archive option, so these rules extract the .o files from
the .a files created by the usual build process into openssl-0.9.4/tmp,
and link those to create the shared libraries.
--- openssl-0.9.4/Makefile.org~ Sun Aug 8 03:29:52 1999
+++ openssl-0.9.4/Makefile.org Wed Feb 23 13:52:35 2000
@@ -206,6 +206,55 @@
ln -s lib$$i.so.${MAJOR} lib$$i.so; \
done;
+solaris-gcc-shared:
+ for i in ${SHLIBDIRS}; do \
+ rm -f lib$$i.a lib$$i.so \
+ lib$$i.so.${MAJOR} lib$$i.so.${MAJOR}.${MINOR}; \
+ ${MAKE} CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='-fPIC ${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}' DIRS=$$i clean all || exit 1; \
+ ( set -x; rm -f tmp/*.o; cd tmp; ar x ../lib$$i.a; cd ..; \
+ ${CC} -shared -o lib$$i.so.${MAJOR}.${MINOR} \
+ -Wl,-h,lib$$i.so.${MAJOR} tmp/*.o ;\
+ rm -f tmp/*.o ) || exit 1; \
+ rm -f lib$$i.a; make -C $$i clean || exit 1 ;\
+ done;
+ @set -x; \
+ for i in ${SHLIBDIRS}; do \
+ ln -s lib$$i.so.${MAJOR}.${MINOR} lib$$i.so.${MAJOR}; \
+ ln -s lib$$i.so.${MAJOR} lib$$i.so; \
+ done;
+
+solaris-cc-shared:
+ for i in ${SHLIBDIRS}; do \
+ rm -f lib$$i.a lib$$i.so \
+ lib$$i.so.${MAJOR} lib$$i.so.${MAJOR}.${MINOR}; \
+ ${MAKE} CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='-KPIC ${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}' DIRS=$$i clean all || exit 1; \
+ ( set -x; rm -f tmp/*.o; cd tmp; ar x ../lib$$i.a; cd ..; \
+ ${CC} -G -KPIC ${CFLAG} -o lib$$i.so.${MAJOR}.${MINOR} \
+ -h lib$$i.so.${MAJOR} tmp/*.o \
+ -lc; rm -f tmp/*.o ) || exit 1; \
+ rm -f lib$$i.a; make -C $$i clean || exit 1 ;\
+ done;
+ @set -x; \
+ for i in ${SHLIBDIRS}; do \
+ ln -s lib$$i.so.${MAJOR}.${MINOR} lib$$i.so.${MAJOR}; \
+ ln -s lib$$i.so.${MAJOR} lib$$i.so; \
+ done;
+
+osf-cc-shared:
+ for i in ${SHLIBDIRS}; do \
+ rm -f lib$$i.so lib$$i.so.${MAJOR} lib$$i.so.${MAJOR}.${MINOR}; \
+ ${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}' DIRS=$$i
+all || exit 1; \
+ ( set -x; rm -f tmp/*.o; cd tmp; ar x ../lib$$i.a; cd ..;\
+ ${CC} -shared -o lib$$i.so.${MAJOR}.${MINOR} \
+ -soname lib$$i.so -set_version ${MAJOR}.${MINOR} tmp/*.o ;\
+ rm -f tmp/*.o ) || exit 1;\
+ done;
+ @set -x; \
+ for i in ${SHLIBDIRS}; do \
+ ln -s lib$$i.so.${MAJOR}.${MINOR} lib$$i.so.${MAJOR}; \
+ ln -s lib$$i.so.${MAJOR} lib$$i.so; \
+ done;
+
Makefile.ssl: Makefile.org
@echo "Makefile.ssl is older than Makefile.org."
@echo "Reconfigure the source tree (via './config' or 'perl Configure'),
please."
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]