Fix a problem if CFLAGS is too long cversion.c fails to compile when config
[openssl.git] / crypto / Makefile
index 1a882f02e9bd2591cc83b0f2872cfb9dc49b98b5..d4c7712ffdcc73bbf2d32e6f92c7606bf0596ff0 100644 (file)
@@ -7,7 +7,7 @@ TOP=            ..
 CC=            cc
 INCLUDE=       -I. -I$(TOP) -I../include $(ZLIB_INCLUDE)
 # INCLUDES targets sudbirs!
-INCLUDES=      -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include $(ZLIB_INCLUDE)
+INCLUDES=      -I.. -I../.. -I../modes -I../asn1 -I../evp -I../include -I../../include $(ZLIB_INCLUDE)
 CFLAG=         -g
 MAKEDEPPROG=   makedepend
 MAKEDEPEND=    $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
@@ -31,6 +31,7 @@ CPUID_OBJ=mem_clr.o
 LIBS=
 
 GENERAL=Makefile README crypto-lib.com install.com
+TEST=constant_time_test.c
 
 LIB= $(TOP)/libcrypto.a
 SHARED_LIB= libcrypto$(SHLIB_EXT)
@@ -45,7 +46,8 @@ SRC= $(LIBSRC)
 
 EXHEADER= crypto.h opensslv.h opensslconf.h ebcdic.h symhacks.h \
        ossl_typ.h
-HEADER=        cryptlib.h buildinf.h md32_common.h o_time.h o_str.h o_dir.h $(EXHEADER)
+HEADER=        cryptlib.h buildinf.h md32_common.h o_str.h o_dir.h \
+       constant_time_locl.h $(EXHEADER)
 
 ALL=    $(GENERAL) $(SRC) $(HEADER)
 
@@ -62,12 +64,7 @@ fips: cryptlib.o thr_id.o uid.o $(CPUID_OBJ)
                done;
 
 buildinf.h: ../Makefile
-       ( echo "#ifndef MK1MF_BUILD"; \
-       echo '  /* auto-generated by crypto/Makefile for crypto/cversion.c */'; \
-       echo '  #define CFLAGS "$(CC) $(CFLAG)"'; \
-       echo '  #define PLATFORM "$(PLATFORM)"'; \
-       echo "  #define DATE \"`LC_ALL=C LC_TIME=C date`\""; \
-       echo '#endif' ) >buildinf.h
+       $(PERL) $(TOP)/util/mkbuildinf.pl "$(CFLAGS)" "$(PLATFORM)" >buildinf.h
 
 x86cpuid.s:    x86cpuid.pl perlasm/x86asm.pl
        $(PERL) x86cpuid.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
@@ -86,30 +83,15 @@ ia64cpuid.s:        ia64cpuid.S;    $(CC) $(CFLAGS) -E ia64cpuid.S > $@
 ppccpuid.s:    ppccpuid.pl;    $(PERL) ppccpuid.pl $(PERLASM_SCHEME) $@
 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 )
-       [ -z "$(THIS)" ] || ( cd pkcs7 && $(MAKE) -e testapps );
-       @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
+       (preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
+       $(PERL) alphacpuid.pl > $$preproc && \
+       $(CC) -E -P $$preproc > $@ && rm $$preproc)
 
 subdirs:
        @target=all; $(RECURSIVE_MAKE)
 
 files:
-       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+       $(PERL) $(TOP)/util/files.pl "CPUID_OBJ=$(CPUID_OBJ)" Makefile >> $(TOP)/MINFO
        @target=files; $(RECURSIVE_MAKE)
 
 links:
@@ -122,7 +104,7 @@ links:
 lib:   $(LIB)
        @touch lib
 $(LIB):        $(LIBOBJ)
-       $(ARX) $(LIB) $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
        $(RANLIB) $(LIB) || echo Never mind.
 
 shared: buildinf.h lib subdirs
@@ -159,7 +141,6 @@ clean:
 dclean:
        $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
        mv -f Makefile.new $(MAKEFILE)
-       rm -f opensslconf.h
        @target=dclean; $(RECURSIVE_MAKE)
 
 # DO NOT DELETE THIS LINE -- make depend depends on it.
@@ -235,8 +216,10 @@ o_init.o: ../include/openssl/safestack.h ../include/openssl/stack.h
 o_init.o: ../include/openssl/symhacks.h o_init.c
 o_str.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
 o_str.o: o_str.c o_str.h
-o_time.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h o_time.c
-o_time.o: o_time.h
+o_time.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+o_time.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+o_time.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+o_time.o: ../include/openssl/stack.h ../include/openssl/symhacks.h o_time.c
 thr_id.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
 thr_id.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
 thr_id.o: ../include/openssl/err.h ../include/openssl/lhash.h