Add additional OPENSSL_init() handling add dummy call to (hopefully)
[openssl.git] / crypto / Makefile
index 7595cb4578a9029d7ede4d96db5f4a77c9ef2a04..33503a4d71d9a6d9e240289b620764c81506db28 100644 (file)
@@ -7,7 +7,7 @@ TOP=            ..
 CC=            cc
 INCLUDE=       -I. -I$(TOP) -I../include $(ZLIB_INCLUDE)
 # INCLUDES targets sudbirs!
-INCLUDES=      -I.. -I../.. -I../asn1 -I../evp -I../../include $(ZLIB_INCLUDE)
+INCLUDES=      -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include $(ZLIB_INCLUDE)
 CFLAG=         -g
 MAKEDEPPROG=   makedepend
 MAKEDEPEND=    $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
@@ -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)
 
@@ -50,6 +54,13 @@ top:
 
 all: shared
 
+fips: cryptlib.o thr_id.o uid.o $(CPUID_OBJ)
+       [ -n "$(SDIRS)" ] && for i in $(SDIRS) ; do \
+                   ( obj=`$(PERL) $(TOP)/util/fipsobj.pl $$i` && \
+                       cd $$i && echo "making fips in $(DIR)/$$i..." && \
+                   $(MAKE) -e TOP=../.. DIR=$$i INCLUDES='$(INCLUDES)' $$obj ) || exit 1; \
+               done;
+
 buildinf.h: ../Makefile
        ( echo "#ifndef MK1MF_BUILD"; \
        echo '  /* auto-generated by crypto/Makefile for crypto/cversion.c */'; \
@@ -77,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 )
@@ -170,13 +192,20 @@ ex_data.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 ex_data.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
 ex_data.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
 ex_data.o: ex_data.c
+fips_ers.o: ../include/openssl/bio.h ../include/openssl/crypto.h
+fips_ers.o: ../include/openssl/e_os2.h ../include/openssl/err.h
+fips_ers.o: ../include/openssl/fips.h ../include/openssl/lhash.h
+fips_ers.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+fips_ers.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+fips_ers.o: ../include/openssl/stack.h ../include/openssl/symhacks.h fips_err.h
+fips_ers.o: fips_ers.c
 lock.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
 lock.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-lock.o: ../include/openssl/err.h ../include/openssl/lhash.h
-lock.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
-lock.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
-lock.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
-lock.o: lock.c
+lock.o: ../include/openssl/err.h ../include/openssl/fips.h
+lock.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
+lock.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+lock.o: ../include/openssl/safestack.h ../include/openssl/stack.h
+lock.o: ../include/openssl/symhacks.h cryptlib.h lock.c
 mem.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
 mem.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
 mem.o: ../include/openssl/err.h ../include/openssl/lhash.h