1######################################################################## 2# Copyright(c) 2011-2024 Intel Corporation All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions 6# are met: 7# * Redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer. 9# * Redistributions in binary form must reproduce the above copyright 10# notice, this list of conditions and the following disclaimer in 11# the documentation and/or other materials provided with the 12# distribution. 13# * Neither the name of Intel Corporation nor the names of its 14# contributors may be used to endorse or promote products derived 15# from this software without specific prior written permission. 16# 17# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28# 29# SPDX-License-Identifier: BSD-3-Clause 30######################################################################## 31 32# This file can be auto-regenerated with $make -f Makefile.unx Makefile.nmake 33 34objs = \ 35 bin\sha1_ctx_sse.obj \ 36 bin\sha1_ctx_avx.obj \ 37 bin\sha1_ctx_avx2.obj \ 38 bin\sha1_ctx_base.obj \ 39 bin\sha1_mb_mgr_init_sse.obj \ 40 bin\sha1_mb_mgr_init_avx2.obj \ 41 bin\sha1_mb_mgr_submit_sse.obj \ 42 bin\sha1_mb_mgr_submit_avx.obj \ 43 bin\sha1_mb_mgr_submit_avx2.obj \ 44 bin\sha1_mb_mgr_flush_sse.obj \ 45 bin\sha1_mb_mgr_flush_avx.obj \ 46 bin\sha1_mb_mgr_flush_avx2.obj \ 47 bin\sha1_mb_x4_sse.obj \ 48 bin\sha1_mb_x4_avx.obj \ 49 bin\sha1_mb_x8_avx2.obj \ 50 bin\sha1_multibinary.obj \ 51 bin\sha1_ctx_avx512.obj \ 52 bin\sha1_mb_mgr_init_avx512.obj \ 53 bin\sha1_mb_mgr_submit_avx512.obj \ 54 bin\sha1_mb_mgr_flush_avx512.obj \ 55 bin\sha1_mb_x16_avx512.obj \ 56 bin\sha1_opt_x1.obj \ 57 bin\sha1_ni_x1.obj \ 58 bin\sha1_ni_x2.obj \ 59 bin\sha1_ctx_sse_ni.obj \ 60 bin\sha1_ctx_avx512_ni.obj \ 61 bin\sha1_mb_mgr_submit_sse_ni.obj \ 62 bin\sha1_mb_mgr_flush_sse_ni.obj \ 63 bin\sha1_mb_mgr_flush_avx512_ni.obj \ 64 bin\sha256_ctx_sse.obj \ 65 bin\sha256_ctx_avx.obj \ 66 bin\sha256_ctx_avx2.obj \ 67 bin\sha256_ctx_base.obj \ 68 bin\sha256_mb_mgr_init_sse.obj \ 69 bin\sha256_mb_mgr_init_avx2.obj \ 70 bin\sha256_mb_mgr_submit_sse.obj \ 71 bin\sha256_mb_mgr_submit_avx.obj \ 72 bin\sha256_mb_mgr_submit_avx2.obj \ 73 bin\sha256_mb_mgr_flush_sse.obj \ 74 bin\sha256_mb_mgr_flush_avx.obj \ 75 bin\sha256_mb_mgr_flush_avx2.obj \ 76 bin\sha256_mb_x4_sse.obj \ 77 bin\sha256_mb_x4_avx.obj \ 78 bin\sha256_mb_x8_avx2.obj \ 79 bin\sha256_multibinary.obj \ 80 bin\sha256_ctx_avx512.obj \ 81 bin\sha256_mb_mgr_init_avx512.obj \ 82 bin\sha256_mb_mgr_submit_avx512.obj \ 83 bin\sha256_mb_mgr_flush_avx512.obj \ 84 bin\sha256_mb_x16_avx512.obj \ 85 bin\sha256_opt_x1.obj \ 86 bin\sha256_ni_x1.obj \ 87 bin\sha256_ni_x2.obj \ 88 bin\sha256_ctx_sse_ni.obj \ 89 bin\sha256_ctx_avx512_ni.obj \ 90 bin\sha256_mb_mgr_submit_sse_ni.obj \ 91 bin\sha256_mb_mgr_flush_sse_ni.obj \ 92 bin\sha256_mb_mgr_flush_avx512_ni.obj \ 93 bin\sha512_ctx_sse.obj \ 94 bin\sha512_ctx_avx.obj \ 95 bin\sha512_ctx_avx2.obj \ 96 bin\sha512_ctx_sb_sse4.obj \ 97 bin\sha512_ctx_base.obj \ 98 bin\sha512_mb_mgr_init_sse.obj \ 99 bin\sha512_mb_mgr_init_avx2.obj \ 100 bin\sha512_sb_mgr_init_sse4.obj \ 101 bin\sha512_mb_mgr_submit_sse.obj \ 102 bin\sha512_mb_mgr_submit_avx.obj \ 103 bin\sha512_mb_mgr_submit_avx2.obj \ 104 bin\sha512_mb_mgr_flush_sse.obj \ 105 bin\sha512_mb_mgr_flush_avx.obj \ 106 bin\sha512_mb_mgr_flush_avx2.obj \ 107 bin\sha512_mb_x2_sse.obj \ 108 bin\sha512_mb_x2_avx.obj \ 109 bin\sha512_mb_x4_avx2.obj \ 110 bin\sha512_multibinary.obj \ 111 bin\sha512_sb_mgr_submit_sse4.obj \ 112 bin\sha512_sb_mgr_flush_sse4.obj \ 113 bin\sha512_sse4.obj \ 114 bin\sha512_ctx_avx512.obj \ 115 bin\sha512_mb_mgr_init_avx512.obj \ 116 bin\sha512_mb_mgr_submit_avx512.obj \ 117 bin\sha512_mb_mgr_flush_avx512.obj \ 118 bin\sha512_mb_x8_avx512.obj \ 119 bin\md5_ctx_sse.obj \ 120 bin\md5_ctx_avx.obj \ 121 bin\md5_ctx_avx2.obj \ 122 bin\md5_ctx_base.obj \ 123 bin\md5_mb_mgr_init_sse.obj \ 124 bin\md5_mb_mgr_init_avx2.obj \ 125 bin\md5_mb_mgr_init_avx512.obj \ 126 bin\md5_mb_mgr_submit_sse.obj \ 127 bin\md5_mb_mgr_submit_avx.obj \ 128 bin\md5_mb_mgr_submit_avx2.obj \ 129 bin\md5_mb_mgr_flush_sse.obj \ 130 bin\md5_mb_mgr_flush_avx.obj \ 131 bin\md5_mb_mgr_flush_avx2.obj \ 132 bin\md5_mb_x4x2_sse.obj \ 133 bin\md5_mb_x4x2_avx.obj \ 134 bin\md5_mb_x8x2_avx2.obj \ 135 bin\md5_multibinary.obj \ 136 bin\md5_mb_mgr_submit_avx512.obj \ 137 bin\md5_mb_mgr_flush_avx512.obj \ 138 bin\md5_mb_x16x2_avx512.obj \ 139 bin\md5_ctx_avx512.obj \ 140 bin\mh_sha1_block_base.obj \ 141 bin\mh_sha1_finalize_base.obj \ 142 bin\mh_sha1_update_base.obj \ 143 bin\sha1_for_mh_sha1.obj \ 144 bin\mh_sha1.obj \ 145 bin\mh_sha1_multibinary.obj \ 146 bin\mh_sha1_block_sse.obj \ 147 bin\mh_sha1_block_avx.obj \ 148 bin\mh_sha1_block_avx2.obj \ 149 bin\mh_sha1_block_avx512.obj \ 150 bin\mh_sha1_avx512.obj \ 151 bin\murmur3_x64_128_internal.obj \ 152 bin\mh_sha1_murmur3_x64_128.obj \ 153 bin\mh_sha1_murmur3_x64_128_finalize_base.obj \ 154 bin\mh_sha1_murmur3_x64_128_update_base.obj \ 155 bin\mh_sha1_murmur3_x64_128_block_sse.obj \ 156 bin\mh_sha1_murmur3_x64_128_block_avx.obj \ 157 bin\mh_sha1_murmur3_x64_128_block_avx2.obj \ 158 bin\mh_sha1_murmur3_x64_128_multibinary.obj \ 159 bin\mh_sha1_murmur3_x64_128_avx512.obj \ 160 bin\mh_sha1_murmur3_x64_128_block_avx512.obj \ 161 bin\sha256_for_mh_sha256.obj \ 162 bin\mh_sha256.obj \ 163 bin\mh_sha256_block_sse.obj \ 164 bin\mh_sha256_block_avx.obj \ 165 bin\mh_sha256_block_avx2.obj \ 166 bin\mh_sha256_multibinary.obj \ 167 bin\mh_sha256_finalize_base.obj \ 168 bin\mh_sha256_update_base.obj \ 169 bin\mh_sha256_block_base.obj \ 170 bin\mh_sha256_block_avx512.obj \ 171 bin\mh_sha256_avx512.obj \ 172 bin\rolling_hashx_base.obj \ 173 bin\rolling_hash2.obj \ 174 bin\rolling_hash2_until_04.obj \ 175 bin\rolling_hash2_until_00.obj \ 176 bin\rolling_hash2_multibinary.obj \ 177 bin\sm3_ctx_base.obj \ 178 bin\sm3_multibinary.obj \ 179 bin\sm3_ctx_avx512.obj \ 180 bin\sm3_mb_mgr_submit_avx512.obj \ 181 bin\sm3_mb_mgr_flush_avx512.obj \ 182 bin\sm3_mb_x16_avx512.obj \ 183 bin\sm3_ctx_avx2.obj \ 184 bin\sm3_mb_mgr_submit_avx2.obj \ 185 bin\sm3_mb_mgr_flush_avx2.obj \ 186 bin\sm3_mb_x8_avx2.obj \ 187 bin\gcm_multibinary.obj \ 188 bin\gcm_pre.obj \ 189 bin\gcm128_avx_gen2.obj \ 190 bin\gcm128_avx_gen4.obj \ 191 bin\gcm128_sse.obj \ 192 bin\gcm256_avx_gen2.obj \ 193 bin\gcm256_avx_gen4.obj \ 194 bin\gcm256_sse.obj \ 195 bin\gcm128_vaes_avx512.obj \ 196 bin\gcm256_vaes_avx512.obj \ 197 bin\gcm128_avx_gen2_nt.obj \ 198 bin\gcm128_avx_gen4_nt.obj \ 199 bin\gcm128_sse_nt.obj \ 200 bin\gcm256_avx_gen2_nt.obj \ 201 bin\gcm256_avx_gen4_nt.obj \ 202 bin\gcm256_sse_nt.obj \ 203 bin\gcm128_vaes_avx512_nt.obj \ 204 bin\gcm256_vaes_avx512_nt.obj \ 205 bin\gcm_multibinary_nt.obj \ 206 bin\keyexp_multibinary.obj \ 207 bin\keyexp_128.obj \ 208 bin\keyexp_192.obj \ 209 bin\keyexp_256.obj \ 210 bin\cbc_multibinary.obj \ 211 bin\cbc_dec_128_x8_sse.obj \ 212 bin\cbc_dec_128_x8_avx.obj \ 213 bin\cbc_dec_192_x8_sse.obj \ 214 bin\cbc_dec_192_x8_avx.obj \ 215 bin\cbc_dec_256_x8_sse.obj \ 216 bin\cbc_dec_256_x8_avx.obj \ 217 bin\cbc_enc_128_x4_sb.obj \ 218 bin\cbc_enc_128_x8_sb.obj \ 219 bin\cbc_enc_192_x4_sb.obj \ 220 bin\cbc_enc_192_x8_sb.obj \ 221 bin\cbc_enc_256_x4_sb.obj \ 222 bin\cbc_enc_256_x8_sb.obj \ 223 bin\cbc_dec_vaes_avx512.obj \ 224 bin\cbc_pre.obj \ 225 bin\xts_aes_128_multibinary.obj \ 226 bin\XTS_AES_128_dec_sse.obj \ 227 bin\XTS_AES_128_dec_expanded_key_sse.obj \ 228 bin\XTS_AES_128_enc_sse.obj \ 229 bin\XTS_AES_128_enc_expanded_key_sse.obj \ 230 bin\XTS_AES_128_dec_avx.obj \ 231 bin\XTS_AES_128_dec_expanded_key_avx.obj \ 232 bin\XTS_AES_128_enc_avx.obj \ 233 bin\XTS_AES_128_enc_expanded_key_avx.obj \ 234 bin\xts_aes_256_multibinary.obj \ 235 bin\XTS_AES_256_dec_avx.obj \ 236 bin\XTS_AES_256_dec_expanded_key_avx.obj \ 237 bin\XTS_AES_256_enc_avx.obj \ 238 bin\XTS_AES_256_enc_expanded_key_avx.obj \ 239 bin\XTS_AES_256_dec_sse.obj \ 240 bin\XTS_AES_256_dec_expanded_key_sse.obj \ 241 bin\XTS_AES_256_enc_sse.obj \ 242 bin\XTS_AES_256_enc_expanded_key_sse.obj \ 243 bin\XTS_AES_256_enc_vaes.obj \ 244 bin\XTS_AES_128_enc_vaes.obj \ 245 bin\XTS_AES_256_enc_expanded_key_vaes.obj \ 246 bin\XTS_AES_128_enc_expanded_key_vaes.obj \ 247 bin\XTS_AES_256_dec_vaes.obj \ 248 bin\XTS_AES_128_dec_vaes.obj \ 249 bin\XTS_AES_256_dec_expanded_key_vaes.obj \ 250 bin\XTS_AES_128_dec_expanded_key_vaes.obj \ 251 bin\aes_keyexp.obj \ 252 bin\md5_mb.obj \ 253 bin\sha1_mb.obj \ 254 bin\aes_cbc.obj \ 255 bin\aes_xts.obj \ 256 bin\sha256_mb.obj \ 257 bin\sha512_mb.obj \ 258 bin\aes_gcm.obj \ 259 bin\aes_self_tests.obj \ 260 bin\sha_self_tests.obj \ 261 bin\self_tests.obj \ 262 bin\asm_self_tests.obj \ 263 bin\sm3_mb.obj \ 264 bin\version.obj 265 266 267INCLUDES = -I./ -Isha1_mb/ -Isha256_mb/ -Isha512_mb/ -Imd5_mb/ -Imh_sha1/ -Imh_sha1_murmur3_x64_128/ -Imh_sha256/ -Irolling_hash/ -Ism3_mb/ -Iaes/ -Iinclude/ -Iintel-ipsec-mb/lib 268# Modern asm feature level, consider upgrading nasm before decreasing feature_level 269FEAT_FLAGS = -DAS_FEATURE_LEVEL=10 270CFLAGS_REL = -O2 -DNDEBUG /Z7 /Gy /ZH:SHA_256 /guard:cf 271CFLAGS_DBG = -Od -DDEBUG /Z7 272 273!if "$(CONFIG)" == "DEBUG" 274CFLAGS=$(CFLAGS_DBG) 275!else 276CFLAGS=$(CFLAGS_REL) 277!endif 278 279LINKFLAGS = -nologo -incremental:no -debug -guard:cf -DYNAMICBASE -CETCOMPAT 280CFLAGS = $(CFLAGS) -nologo -D_USE_MATH_DEFINES -DNO_COMPAT_ISAL_CRYPTO_API_2_24 $(FEAT_FLAGS) $(INCLUDES) $(D) /W3 281AFLAGS = -f win64 $(FEAT_FLAGS) $(INCLUDES) $(D) 282CC = cl 283# or CC = icl -Qstd=c99 284AS = nasm 285 286!if "$(SAFE_DATA)" != "n" 287CFLAGS = $(CFLAGS) /DSAFE_DATA 288AFLAGS = $(AFLAGS) -DSAFE_DATA 289!endif 290 291!if "$(SAFE_PARAM)" != "n" 292CFLAGS = $(CFLAGS) /DSAFE_PARAM 293AFLAGS = $(AFLAGS) -DSAFE_PARAM 294!endif 295 296!if "$(FIPS_MODE)" == "y" 297CFLAGS = $(CFLAGS) /DFIPS_MODE 298AFLAGS = $(AFLAGS) -DFIPS_MODE 299!endif 300 301lib: bin static dll 302static: bin isa-l_crypto_static.lib 303dll: bin isa-l_crypto.dll 304 305bin: ; -mkdir $@ 306 307isa-l_crypto_static.lib: $(objs) 308 lib -out:$@ @<< 309$? 310<< 311 312isa-l_crypto.dll: $(objs) 313 link -out:$@ -dll -def:isa-l_crypto.def $(LINKFLAGS) @<< 314$? 315<< 316 317{sha1_mb}.c.obj: 318 $(CC) $(CFLAGS) /c -Fo$@ $? 319{sha1_mb}.asm.obj: 320 $(AS) $(AFLAGS) -o $@ $? 321 322{sha256_mb}.c.obj: 323 $(CC) $(CFLAGS) /c -Fo$@ $? 324{sha256_mb}.asm.obj: 325 $(AS) $(AFLAGS) -o $@ $? 326 327{sha512_mb}.c.obj: 328 $(CC) $(CFLAGS) /c -Fo$@ $? 329{sha512_mb}.asm.obj: 330 $(AS) $(AFLAGS) -o $@ $? 331 332{md5_mb}.c.obj: 333 $(CC) $(CFLAGS) /c -Fo$@ $? 334{md5_mb}.asm.obj: 335 $(AS) $(AFLAGS) -o $@ $? 336 337{mh_sha1}.c.obj: 338 $(CC) $(CFLAGS) /c -Fo$@ $? 339{mh_sha1}.asm.obj: 340 $(AS) $(AFLAGS) -o $@ $? 341 342{mh_sha1_murmur3_x64_128}.c.obj: 343 $(CC) $(CFLAGS) /c -Fo$@ $? 344{mh_sha1_murmur3_x64_128}.asm.obj: 345 $(AS) $(AFLAGS) -o $@ $? 346 347{mh_sha256}.c.obj: 348 $(CC) $(CFLAGS) /c -Fo$@ $? 349{mh_sha256}.asm.obj: 350 $(AS) $(AFLAGS) -o $@ $? 351 352{rolling_hash}.c.obj: 353 $(CC) $(CFLAGS) /c -Fo$@ $? 354{rolling_hash}.asm.obj: 355 $(AS) $(AFLAGS) -o $@ $? 356 357{sm3_mb}.c.obj: 358 $(CC) $(CFLAGS) /c -Fo$@ $? 359{sm3_mb}.asm.obj: 360 $(AS) $(AFLAGS) -o $@ $? 361 362{aes}.c.obj: 363 $(CC) $(CFLAGS) /c -Fo$@ $? 364{aes}.asm.obj: 365 $(AS) $(AFLAGS) -o $@ $? 366 367{fips}.c.obj: 368 $(CC) $(CFLAGS) /c -Fo$@ $? 369{fips}.asm.obj: 370 $(AS) $(AFLAGS) -o $@ $? 371{misc}.c.obj: 372 $(CC) $(CFLAGS) /c -Fo$@ $? 373 374 375# Examples 376ex = \ 377 sha1_multi_buffer_example.exe \ 378 gcm_simple_example.exe 379 380ex: lib $(ex) 381 382$(ex): $(@B).obj 383 384.obj.exe: 385 link /out:$@ $(LINKFLAGS) isa-l_crypto.lib $? 386 387# Check tests 388checks = \ 389 sha1_mb_test.exe \ 390 sha1_mb_rand_test.exe \ 391 sha1_mb_rand_update_test.exe \ 392 sha1_mb_flush_test.exe \ 393 sha256_mb_test.exe \ 394 sha256_mb_rand_test.exe \ 395 sha256_mb_rand_update_test.exe \ 396 sha256_mb_flush_test.exe \ 397 sha512_mb_test.exe \ 398 sha512_mb_rand_test.exe \ 399 sha512_mb_rand_update_test.exe \ 400 md5_mb_test.exe \ 401 md5_mb_rand_test.exe \ 402 md5_mb_rand_update_test.exe \ 403 mh_sha1_test.exe \ 404 mh_sha256_test.exe \ 405 rolling_hash2_test.exe \ 406 sm3_ref_test.exe \ 407 cbc_std_vectors_test.exe \ 408 gcm_std_vectors_test.exe \ 409 gcm_nt_std_vectors_test.exe \ 410 xts_128_test.exe \ 411 xts_256_test.exe \ 412 xts_128_expanded_key_test.exe \ 413 xts_256_expanded_key_test.exe \ 414 aes_param_test.exe \ 415 mh_sha1_param_test.exe \ 416 mh_sha256_param_test.exe \ 417 md5_mb_param_test.exe \ 418 sha1_mb_param_test.exe \ 419 sha256_mb_param_test.exe \ 420 sha512_mb_param_test.exe \ 421 mh_sha1_murmur3_x64_128_param_test.exe \ 422 sm3_mb_param_test.exe \ 423 rolling_hash2_param_test.exe \ 424 version_test.exe \ 425 self_tests_test.exe 426 427 428checks: lib $(checks) 429$(checks): $(@B).obj 430check: $(checks) 431 !$? 432 433# Unit tests 434tests = \ 435 sha1_mb_rand_ssl_test.exe \ 436 sha256_mb_rand_ssl_test.exe \ 437 sha512_mb_rand_ssl_test.exe \ 438 md5_mb_rand_ssl_test.exe \ 439 mh_sha1_update_test.exe \ 440 mh_sha1_murmur3_x64_128_test.exe \ 441 mh_sha1_murmur3_x64_128_update_test.exe \ 442 mh_sha256_update_test.exe \ 443 sm3_mb_rand_ssl_test.exe \ 444 sm3_mb_rand_test.exe \ 445 sm3_mb_rand_update_test.exe \ 446 sm3_mb_flush_test.exe \ 447 sm3_mb_test.exe \ 448 cbc_std_vectors_random_test.exe \ 449 gcm_std_vectors_random_test.exe \ 450 gcm_nt_rand_test.exe \ 451 xts_128_rand.exe \ 452 xts_128_rand_ossl_test.exe \ 453 xts_256_rand.exe \ 454 xts_256_rand_ossl_test.exe 455 456tests: lib $(tests) 457$(tests): $(@B).obj 458 459# Performance tests 460perfs = \ 461 sha1_mb_vs_ossl_perf.exe \ 462 sha1_mb_vs_ossl_shortage_perf.exe \ 463 sha256_mb_vs_ossl_perf.exe \ 464 sha256_mb_vs_ossl_shortage_perf.exe \ 465 sha512_mb_vs_ossl_perf.exe \ 466 md5_mb_vs_ossl_perf.exe \ 467 mh_sha1_perf.exe \ 468 mh_sha1_murmur3_x64_128_perf.exe \ 469 mh_sha256_perf.exe \ 470 rolling_hash2_perf.exe \ 471 sm3_mb_vs_ossl_perf.exe \ 472 sm3_mb_vs_ossl_shortage_perf.exe \ 473 cbc_ossl_perf.exe \ 474 gcm_ossl_perf.exe \ 475 xts_128_enc_ossl_perf.exe \ 476 xts_256_enc_ossl_perf.exe \ 477 xts_128_enc_perf.exe \ 478 xts_128_dec_perf.exe \ 479 xts_128_dec_ossl_perf.exe \ 480 xts_256_enc_perf.exe \ 481 xts_256_dec_perf.exe \ 482 xts_256_dec_ossl_perf.exe 483 484perfs: lib $(perfs) 485$(perfs): $(@B).obj 486 487progs = 488 489progs: lib $(progs) 490 491clean: 492 -if exist *.obj del *.obj 493 -if exist bin\*.obj del bin\*.obj 494 -if exist isa-l_crypto_static.lib del isa-l_crypto_static.lib 495 -if exist *.exe del *.exe 496 -if exist *.pdb del *.pdb 497 -if exist isa-l_crypto.lib del isa-l_crypto.lib 498 -if exist isa-l_crypto.dll del isa-l_crypto.dll 499 -if exist isa-l_crypto.exp del isa-l_crypto.exp 500 501libcrypto.lib: 502sha1_mb_rand_test.exe: sha1_ref.obj 503sha1_mb_rand_update_test.exe: sha1_ref.obj 504sha1_mb_flush_test.exe: sha1_ref.obj 505sha1_mb_rand_ssl_test.exe: libcrypto.lib 506sha1_mb_vs_ossl_perf.exe: libcrypto.lib 507sha1_mb_vs_ossl_shortage_perf.exe: libcrypto.lib 508sha256_mb_rand_ssl_test.exe: sha256_ref.obj 509sha256_mb_rand_test.exe: sha256_ref.obj 510sha256_mb_rand_update_test.exe: sha256_ref.obj 511sha256_mb_flush_test.exe: sha256_ref.obj 512sha256_mb_rand_ssl_test.exe: libcrypto.lib 513sha256_mb_vs_ossl_perf.exe: libcrypto.lib 514sha256_mb_vs_ossl_shortage_perf.exe: libcrypto.lib 515sha512_mb_rand_test.exe: sha512_ref.obj 516sha512_mb_rand_update_test.exe: sha512_ref.obj 517sha512_mb_rand_ssl_test.exe: libcrypto.lib 518sha512_mb_vs_ossl_perf.exe: libcrypto.lib 519md5_mb_rand_test.exe: md5_ref.obj 520md5_mb_rand_update_test.exe: md5_ref.obj 521md5_mb_rand_ssl_test.exe: libcrypto.lib 522md5_mb_vs_ossl_perf.exe: libcrypto.lib 523mh_sha1_test.exe: mh_sha1_ref.obj 524mh_sha1_update_test.exe: mh_sha1_ref.obj 525mh_sha1_murmur3_x64_128_test.exe: mh_sha1_ref.obj murmur3_x64_128.obj 526mh_sha1_murmur3_x64_128_update_test.exe: mh_sha1_ref.obj murmur3_x64_128.obj 527mh_sha1_murmur3_x64_128_perf.exe: mh_sha1_ref.obj murmur3_x64_128.obj 528mh_sha256_test.exe: mh_sha256_ref.obj 529mh_sha256_update_test.exe: mh_sha256_ref.obj 530sm3_mb_rand_ssl_test.exe: libcrypto.lib 531sm3_mb_rand_ssl_test.exe: sm3_test_helper.obj 532sm3_mb_rand_update_test.exe: libcrypto.lib 533sm3_mb_rand_update_test.exe: sm3_test_helper.obj 534sm3_mb_flush_test.exe: libcrypto.lib 535sm3_mb_flush_test.exe: sm3_test_helper.obj 536sm3_mb_rand_test.exe: libcrypto.lib 537sm3_mb_rand_test.exe: sm3_test_helper.obj 538sm3_mb_vs_ossl_perf.exe: libcrypto.lib 539sm3_mb_vs_ossl_perf.exe: sm3_test_helper.obj 540sm3_mb_vs_ossl_shortage_perf.exe: libcrypto.lib 541sm3_mb_vs_ossl_shortage_perf.exe: sm3_test_helper.obj 542cbc_ossl_perf.exe: libcrypto.lib 543cbc_std_vectors_random_test.exe: libcrypto.lib 544gcm_ossl_perf.exe: libcrypto.lib 545gcm_std_vectors_random_test.exe: libcrypto.lib 546gcm_nt_rand_test.exe: libcrypto.lib 547xts_128_enc_ossl_perf.exe: libcrypto.lib 548xts_128_dec_ossl_perf.exe: libcrypto.lib 549xts_128_rand_ossl_test.exe: libcrypto.lib 550xts_256_enc_ossl_perf.exe: libcrypto.lib 551xts_256_dec_ossl_perf.exe: libcrypto.lib 552xts_256_rand_ossl_test.exe: libcrypto.lib 553