1# 2# SSLeay/fips/Makefile 3# 4 5DIR= fips 6TOP= .. 7CC= cc 8INCLUDE= -I. -I$(TOP) -I../include 9INCLUDES= -I.. -I../.. -I../../include 10CFLAG= -g 11INSTALL_PREFIX= 12OPENSSLDIR= /usr/local/ssl 13INSTALLTOP= /usr/local/ssl 14MAKEDEPPROG= makedepend 15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG) 16MAKEFILE= Makefile 17RM= rm -f 18AR= ar r 19 20PEX_LIBS= 21EX_LIBS= 22 23CFLAGS= $(INCLUDE) $(CFLAG) 24 25 26LIBS= 27 28FDIRS=sha1 rand des aes dsa rsa dh 29 30GENERAL=Makefile README fips-lib.com install.com 31 32LIB= $(TOP)/libcrypto.a 33SHARED_LIB= libcrypto$(SHLIB_EXT) 34LIBSRC=fips.c fips_err_wrapper.c 35LIBOBJ=fips.o fips_err_wrapper.o 36 37SRC= $(LIBSRC) 38 39EXHEADER=fips.h 40HEADER=$(EXHEADER) fips_err.h 41EXE=openssl_fips_fingerprint 42 43ALL= $(GENERAL) $(SRC) $(HEADER) 44 45top: 46 @(cd ..; $(MAKE) DIRS=$(DIR) all) 47 48all: 49 @if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \ 50 $(MAKE) -e subdirs check lib shared; \ 51 fi 52 53check: 54 TOP=`pwd`/$(TOP) ./fips_check_sha1 fingerprint.sha1 $(SRC) $(HEADER) 55 56subdirs: 57 @for i in $(FDIRS) ;\ 58 do \ 59 (cd $$i && echo "making all in fips/$$i..." && \ 60 $(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' all ) || exit 1; \ 61 done; 62 63sub_target: 64 @for i in $(FDIRS) ;\ 65 do \ 66 (cd $$i && echo "making $(TARGET) in fips/$$i..." && \ 67 $(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' $(TARGET) ) || exit 1; \ 68 done; 69 70files: 71 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO 72 @for i in $(FDIRS) ;\ 73 do \ 74 (cd $$i && echo "making 'files' in fips/$$i..." && \ 75 $(MAKE) PERL='${PERL}' files ); \ 76 done; 77 78links: 79 @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER) 80 @for i in $(FDIRS); do \ 81 (cd $$i && echo "making links in fips/$$i..." && \ 82 $(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' PERL='${PERL}' links ); \ 83 done; 84 85lib: $(LIBOBJ) 86 $(AR) $(LIB) $(LIBOBJ) 87 $(RANLIB) $(LIB) || echo Never mind. 88 @touch lib 89 90shared: 91 if [ -n "$(SHARED_LIBS)" ]; then \ 92 (cd ..; $(MAKE) $(SHARED_LIB)); \ 93 fi 94 95libs: 96 @for i in $(FDIRS) ;\ 97 do \ 98 (cd $$i && echo "making libs in fips/$$i..." && \ 99 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' AR='${AR}' lib ); \ 100 done; 101 102tests: 103 @for i in $(FDIRS) ;\ 104 do \ 105 (cd $$i && echo "making tests in fips/$$i..." && \ 106 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' AR='${AR}' tests ); \ 107 done; 108 109top_fips_test_suite: 110 (cd $(TOP); $(MAKE) DIRS=fips FDIRS=. TARGET=fips_test_suite sub_target) 111 112fips_test_suite: fips_test_suite.o $(TOP)/libcrypto.a 113 $(CC) $(CFLAGS) -o fips_test_suite fips_test_suite.o $(PEX_LIBS) $(TOP)/libcrypto.a $(EX_LIBS) 114 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a fips_test_suite || { rm fips_test_suite; false; } 115 116fips_test: top top_fips_test_suite 117 cd testvectors && perl -p -i -e 's/COUNT=/COUNT = /' des[23]/req/*.req 118 @for i in dsa sha1 aes des ; \ 119 do \ 120 (cd $$i && echo "making fips_test in fips/$$i..." && $(MAKE) fips_test) \ 121 done; 122 123install: 124 @headerlist="$(EXHEADER)"; for i in $$headerlist ;\ 125 do \ 126 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ 127 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ 128 done; 129 @for i in $(FDIRS) ;\ 130 do \ 131 (cd $$i && echo "making install in fips/$$i..." && \ 132 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' install ); \ 133 done; 134 @for i in $(EXE) ; \ 135 do \ 136 echo "installing $$i"; \ 137 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \ 138 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \ 139 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \ 140 done 141 142lint: 143 @for i in $(FDIRS) ;\ 144 do \ 145 (cd $$i && echo "making lint in fips/$$i..." && \ 146 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' lint ); \ 147 done; 148 149depend: 150 if [ ! -f buildinf.h ]; then touch buildinf.h; fi # fake buildinf.h if it does not exist 151 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDE) $(DEPFLAG) -- $(SRC) 152 if [ ! -s buildinf.h ]; then rm buildinf.h; fi 153 @for i in $(FDIRS) ;\ 154 do \ 155 (cd $$i && echo "making depend in fips/$$i..." && \ 156 $(MAKE) MAKEFILE='${MAKEFILE}' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' DEPFLAG='${DEPFLAG}' MAKEDEPPROG='${MAKEDEPPROG}' KRB5_INCLUDES='${KRB5_INCLUDES}' PERL='${PERL}' depend ); \ 157 done; 158 159clean: 160 rm -f buildinf.h *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff 161 @for i in $(FDIRS) ;\ 162 do \ 163 (cd $$i && echo "making clean in fips/$$i..." && \ 164 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' clean ); \ 165 done; 166 167dclean: 168 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new 169 mv -f Makefile.new $(MAKEFILE) 170 @for i in $(FDIRS) ;\ 171 do \ 172 (cd $$i && echo "making dclean in fips/$$i..." && \ 173 $(MAKE) PERL='${PERL}' CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' dclean ); \ 174 done; 175 176# DO NOT DELETE THIS LINE -- make depend depends on it. 177 178fips.o: ../include/openssl/aes.h ../include/openssl/asn1.h 179fips.o: ../include/openssl/bio.h ../include/openssl/blowfish.h 180fips.o: ../include/openssl/bn.h ../include/openssl/cast.h 181fips.o: ../include/openssl/crypto.h ../include/openssl/des.h 182fips.o: ../include/openssl/des_old.h ../include/openssl/dh.h 183fips.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h 184fips.o: ../include/openssl/err.h ../include/openssl/evp.h 185fips.o: ../include/openssl/fips.h ../include/openssl/fips_rand.h 186fips.o: ../include/openssl/hmac.h ../include/openssl/idea.h 187fips.o: ../include/openssl/lhash.h ../include/openssl/md2.h 188fips.o: ../include/openssl/md4.h ../include/openssl/md5.h 189fips.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h 190fips.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h 191fips.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h 192fips.o: ../include/openssl/rand.h ../include/openssl/rc2.h 193fips.o: ../include/openssl/rc4.h ../include/openssl/rc5.h 194fips.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h 195fips.o: ../include/openssl/safestack.h ../include/openssl/sha.h 196fips.o: ../include/openssl/stack.h ../include/openssl/symhacks.h 197fips.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h fips.c 198fips.o: fips_locl.h 199fips_err_wrapper.o: ../include/openssl/opensslconf.h fips_err_wrapper.c 200