Add additional OPENSSL_init() handling add dummy call to (hopefully)
[openssl.git] / crypto / Makefile
index be0cf890b003424707ab831eab5c3ddd2c6bbb34..33503a4d71d9a6d9e240289b620764c81506db28 100644 (file)
@@ -34,8 +34,12 @@ GENERAL=Makefile README crypto-lib.com install.com
 
 LIB= $(TOP)/libcrypto.a
 SHARED_LIB= libcrypto$(SHLIB_EXT)
-LIBSRC=        cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c cpt_err.c ebcdic.c uid.c o_time.c o_str.c o_dir.c thr_id.c lock.c fips_ers.c
-LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o cpt_err.o ebcdic.o uid.o o_time.o o_str.o o_dir.o thr_id.o lock.o fips_ers.o $(CPUID_OBJ)
+LIBSRC=        cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c cpt_err.c \
+       ebcdic.c uid.c o_time.c o_str.c o_dir.c thr_id.c lock.c fips_ers.c \
+       o_init.c
+LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o cpt_err.o \
+       ebcdic.o uid.o o_time.o o_str.o o_dir.o thr_id.o lock.o fips_ers.o \
+       o_init.o $(CPUID_OBJ)
 
 SRC= $(LIBSRC)
 
@@ -84,6 +88,17 @@ pariscid.s:  pariscid.pl;    $(PERL) pariscid.pl $(PERLASM_SCHEME) $@
 alphacpuid.s:  alphacpuid.pl
        $(PERL) $< | $(CC) -E - | tee $@ > /dev/null
 
+o_init.o: o_init.c
+       case "`(uname -s) 2>/dev/null`" in \
+       OSF1|IRIX*)     _WL_INIT="-Wl,-init,OPENSSL_init"       ;; \
+       HP-UX)          _WL_INIT="-Wl,+init,OPENSSL_init"       ;; \
+       AIX)            _WL_INIT="-Wl,-binitfini:OPENSSL_init,-bnoobjreorder";; \
+       Darwin)         (   while [ "x$1" != "x" -a "x$1" != "x-dynamiclib" ]; do shift; done; \
+                           [ $# -ge 1 ] \
+                       ) && _WL_INIT="-Wl,-init,_OPENSSL_init" ;; \
+       esac ; \
+       $(CC) $(CFLAGS) $(_WL_INIT) -c -o $@ $<
+
 testapps:
        [ -z "$(THIS)" ] || (   if expr " $(SDIRS) " : ".* des " >/dev/null; \
                                then cd des && $(MAKE) -e des; fi )