Home | History | Annotate | Line # | Download | only in hcrypto
NTMakefile revision 1.1.1.1.24.1
      1 ########################################################################
      2 #
      3 # Copyright (c) 2009-2016, Secure Endpoints Inc.
      4 # All rights reserved.
      5 # 
      6 # Redistribution and use in source and binary forms, with or without
      7 # modification, are permitted provided that the following conditions
      8 # are met:
      9 # 
     10 # - Redistributions of source code must retain the above copyright
     11 #   notice, this list of conditions and the following disclaimer.
     12 # 
     13 # - Redistributions in binary form must reproduce the above copyright
     14 #   notice, this list of conditions and the following disclaimer in
     15 #   the documentation and/or other materials provided with the
     16 #   distribution.
     17 # 
     18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     21 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     22 # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     23 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
     24 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     25 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     26 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     27 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     28 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     29 # POSSIBILITY OF SUCH DAMAGE.
     30 # 
     31 
     32 SUBDIRS=libtommath
     33 
     34 RELDIR=lib\hcrypto
     35 
     36 !include ../../windows/NTMakefile.w32
     37 
     38 HCRYPTOINCLUDEDIR = $(INCDIR)\hcrypto
     39 
     40 HEIMBASEDIR = $(SRC)\lib\base
     41 
     42 HX509DIR = $(SRC)\lib\hx509
     43 
     44 !ifdef INCLUDE_openssl_crypto
     45 openssl_inc=-I$(INCLUDE_openssl_crypto)
     46 !endif
     47 
     48 intcflags=-DKRB5 -DASN1_LIB -I$(HCRYPTOINCLUDEDIR) -DUSE_HCRYPTO_LTM=1 \
     49 	-I$(HX509DIR) $(openssl_inc)
     50 
     51 # Do dependencies first
     52 
     53 all:: subdirs
     54 
     55 clean:: clean-subdirs
     56 
     57 test:: test-subdirs
     58 
     59 # Include files
     60 
     61 INCFILES=	\
     62 	$(HCRYPTOINCLUDEDIR)\aes.h	\
     63 	$(HCRYPTOINCLUDEDIR)\bn.h	\
     64 	$(HCRYPTOINCLUDEDIR)\des.h	\
     65 	$(HCRYPTOINCLUDEDIR)\dh.h	\
     66 	$(HCRYPTOINCLUDEDIR)\dsa.h	\
     67 	$(HCRYPTOINCLUDEDIR)\ec.h	\
     68 	$(HCRYPTOINCLUDEDIR)\ecdh.h	\
     69 	$(HCRYPTOINCLUDEDIR)\ecdsa.h	\
     70 	$(HCRYPTOINCLUDEDIR)\engine.h	\
     71 	$(HCRYPTOINCLUDEDIR)\evp.h	\
     72 	$(HCRYPTOINCLUDEDIR)\evp-hcrypto.h	\
     73 	$(HCRYPTOINCLUDEDIR)\evp-cc.h	\
     74 	$(HCRYPTOINCLUDEDIR)\evp-openssl.h	\
     75 	$(HCRYPTOINCLUDEDIR)\evp-pkcs11.h	\
     76 	$(HCRYPTOINCLUDEDIR)\evp-wincng.h	\
     77 	$(HCRYPTOINCLUDEDIR)\evp-w32.h	\
     78 	$(HCRYPTOINCLUDEDIR)\hmac.h	\
     79 	$(HCRYPTOINCLUDEDIR)\md2.h	\
     80 	$(HCRYPTOINCLUDEDIR)\md4.h	\
     81 	$(HCRYPTOINCLUDEDIR)\md5.h	\
     82 	$(HCRYPTOINCLUDEDIR)\pkcs12.h	\
     83 	$(HCRYPTOINCLUDEDIR)\rand.h	\
     84 	$(HCRYPTOINCLUDEDIR)\randi.h	\
     85 	$(HCRYPTOINCLUDEDIR)\rc2.h	\
     86 	$(HCRYPTOINCLUDEDIR)\rc4.h	\
     87 	$(HCRYPTOINCLUDEDIR)\rsa.h	\
     88 	$(HCRYPTOINCLUDEDIR)\sha.h	\
     89 	$(HCRYPTOINCLUDEDIR)\ui.h	\
     90 	$(HCRYPTOINCLUDEDIR)\undef.h
     91 
     92 mkincdir:
     93 !if !exist($(HCRYPTOINCLUDEDIR))
     94 	$(MKDIR) $(HCRYPTOINCLUDEDIR)
     95 !endif
     96 
     97 {}.h{$(HCRYPTOINCLUDEDIR)}.h:
     98 	$(CP) $** $@
     99 
    100 all:: mkincdir
    101 
    102 all:: $(INCFILES)
    103 
    104 # libhcrypto
    105 
    106 libhcrypto_OBJs = 			\
    107 	$(OBJ)\aes.obj			\
    108 	$(OBJ)\bn.obj			\
    109 	$(OBJ)\camellia.obj		\
    110 	$(OBJ)\camellia-ntt.obj		\
    111 	$(OBJ)\common.obj		\
    112 	$(OBJ)\des.obj			\
    113 	$(OBJ)\dh.obj			\
    114 	$(OBJ)\dh-ltm.obj		\
    115 	$(OBJ)\dh-tfm.obj		\
    116 	$(OBJ)\dsa.obj			\
    117 	$(OBJ)\evp.obj			\
    118 	$(OBJ)\evp-hcrypto.obj		\
    119 	$(OBJ)\evp-cc.obj		\
    120 	$(OBJ)\evp-openssl.obj		\
    121 	$(OBJ)\evp-pkcs11.obj		\
    122 	$(OBJ)\evp-wincng.obj		\
    123 	$(OBJ)\evp-w32.obj		\
    124 	$(OBJ)\engine.obj		\
    125 	$(OBJ)\hmac.obj			\
    126 	$(OBJ)\md2.obj			\
    127 	$(OBJ)\md4.obj			\
    128 	$(OBJ)\md5.obj			\
    129 	$(OBJ)\pkcs5.obj		\
    130 	$(OBJ)\pkcs12.obj		\
    131 	$(OBJ)\rand-w32.obj		\
    132 	$(OBJ)\rand.obj			\
    133 	$(OBJ)\rc2.obj			\
    134 	$(OBJ)\rc4.obj			\
    135 	$(OBJ)\rijndael-alg-fst.obj	\
    136 	$(OBJ)\rnd_keys.obj		\
    137 	$(OBJ)\rsa.obj			\
    138 	$(OBJ)\rsa-gmp.obj		\
    139 	$(OBJ)\rsa-ltm.obj		\
    140 	$(OBJ)\rsa-tfm.obj		\
    141 	$(OBJ)\sha.obj			\
    142 	$(OBJ)\sha256.obj		\
    143 	$(OBJ)\sha512.obj		\
    144 	$(OBJ)\ui.obj			\
    145 	$(OBJ)\validate.obj
    146 
    147 $(LIBHCRYPTO): $(libhcrypto_OBJs)
    148 	$(LIBCON)
    149 
    150 all:: $(LIBHCRYPTO)
    151 
    152 clean::
    153 	-$(RM) $(LIBHCRYPTO)
    154 
    155 # Tests
    156 
    157 TESTLIB=$(OBJ)\libhctest.lib
    158 
    159 $(TESTLIB):		    \
    160 	$(OBJ)\des.obj	    \
    161 	$(OBJ)\ui.obj
    162 	$(LIBCON)
    163 
    164 test-binaries:				\
    165 	$(OBJ)\destest.exe		\
    166 	$(OBJ)\example_evp_cipher.exe	\
    167 	$(OBJ)\mdtest.exe		\
    168 	$(OBJ)\rc2test.exe		\
    169 	$(OBJ)\rctest.exe		\
    170 	$(OBJ)\test_bn.exe		\
    171 	$(OBJ)\test_bulk.exe		\
    172 	$(OBJ)\test_cipher.exe		\
    173 	$(OBJ)\test_engine_dso.exe	\
    174 	$(OBJ)\test_hmac.exe		\
    175 	$(OBJ)\test_pkcs5.exe		\
    176 	$(OBJ)\test_pkcs12.exe		\
    177 	$(OBJ)\test_rsa.exe		\
    178 	$(OBJ)\test_dh.exe		\
    179 	$(OBJ)\test_rand.exe		\
    180 	$(OBJ)\test_crypto.sh
    181 
    182 $(OBJ)\destest.exe: $(OBJ)\destest.obj $(TESTLIB) $(LIBROKEN) $(LIBHEIMBASE)
    183 	$(EXECONLINK)
    184 	$(EXEPREP_NODIST)
    185 
    186 $(OBJ)\example_evp_cipher.exe: $(OBJ)\example_evp_cipher.obj $(TESTLIB) $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    187 	$(EXECONLINK)
    188 	$(EXEPREP_NODIST)
    189 
    190 $(OBJ)\mdtest.exe: $(OBJ)\mdtest.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(OBJ)\sha512.obj
    191 	$(EXECONLINK)
    192 	$(EXEPREP_NODIST)
    193 
    194 $(OBJ)\rc2test.exe: $(OBJ)\rc2test.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    195 	$(EXECONLINK)
    196 	$(EXEPREP_NODIST)
    197 
    198 $(OBJ)\rctest.exe: $(OBJ)\rctest.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    199 	$(EXECONLINK)
    200 	$(EXEPREP_NODIST)
    201 
    202 $(OBJ)\test_bn.exe: $(OBJ)\test_bn.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    203 	$(EXECONLINK)
    204 	$(EXEPREP_NODIST)
    205 
    206 $(OBJ)\test_bulk.exe: $(OBJ)\test_bulk.obj $(TESTLIB) $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
    207 	$(EXECONLINK)
    208 	$(EXEPREP_NODIST)
    209 
    210 $(OBJ)\test_cipher.exe: $(OBJ)\test_cipher.obj $(TESTLIB) $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
    211 	$(EXECONLINK)
    212 	$(EXEPREP_NODIST)
    213 
    214 $(OBJ)\test_engine_dso.exe: $(OBJ)\test_engine_dso.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
    215 	$(EXECONLINK)
    216 	$(EXEPREP_NODIST)
    217 
    218 $(OBJ)\test_hmac.exe: $(OBJ)\test_hmac.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    219 	$(EXECONLINK)
    220 	$(EXEPREP_NODIST)
    221 
    222 $(OBJ)\test_pkcs5.exe: $(OBJ)\test_pkcs5.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    223 	$(EXECONLINK)
    224 	$(EXEPREP_NODIST)
    225 
    226 $(OBJ)\test_pkcs12.exe: $(OBJ)\test_pkcs12.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    227 	$(EXECONLINK)
    228 	$(EXEPREP_NODIST)
    229 
    230 $(OBJ)\test_rsa.exe: $(OBJ)\test_rsa.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
    231 	$(EXECONLINK)
    232 	$(EXEPREP_NODIST)
    233 
    234 $(OBJ)\test_dh.exe: $(OBJ)\test_dh.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
    235 	$(EXECONLINK)
    236 	$(EXEPREP_NODIST)
    237 
    238 $(OBJ)\test_rand.exe: $(OBJ)\test_rand.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
    239 	$(EXECONLINK)
    240 	$(EXEPREP_NODIST)
    241 
    242 SRCDIR2=$(SRCDIR:\=\\\\)
    243 
    244 $(OBJ)\test_crypto.sh: test_crypto.in NTMakefile
    245 	$(SED) -e "s,[@]srcdir[@],$(SRCDIR2),g" -e "s,[@]exeext[@],.exe,g" -e "s,\r,," < test_crypto.in > $@ || $(RM) $@
    246 
    247 test-run:
    248 	cd $(OBJ)
    249 !ifdef SH
    250 	-$(SH) test_crypto.sh
    251 !endif
    252 	-destest.exe
    253 	-mdtest.exe
    254 	-rc2test.exe
    255 	-rctest.exe
    256 	-test_bn.exe
    257 	-test_bulk.exe --provider=hcrypto
    258 	-test_bulk.exe --provider=w32crypto
    259 	-test_cipher.exe
    260 	-test_engine_dso.exe
    261 	-test_hmac.exe
    262 	-test_pkcs5.exe
    263 	-test_pkcs12.exe
    264 	-test_rsa.exe
    265 	-test_dh.exe
    266 	cd $(SRCDIR)
    267 
    268 test:: $(TESTLIB) test-binaries test-run
    269 
    270 test-exports:
    271 	$(PERL) ..\..\cf\w32-check-exported-symbols.pl --vs version-script.map --def libhcrypto-exports.def
    272 
    273 test:: test-exports
    274