16df3ef80SGreg Tucker######################################################################## 2081d472cSPablo de Lara# Copyright(c) 2011-2024 Intel Corporation All rights reserved. 36df3ef80SGreg Tucker# 46df3ef80SGreg Tucker# Redistribution and use in source and binary forms, with or without 56df3ef80SGreg Tucker# modification, are permitted provided that the following conditions 66df3ef80SGreg Tucker# are met: 76df3ef80SGreg Tucker# * Redistributions of source code must retain the above copyright 86df3ef80SGreg Tucker# notice, this list of conditions and the following disclaimer. 96df3ef80SGreg Tucker# * Redistributions in binary form must reproduce the above copyright 106df3ef80SGreg Tucker# notice, this list of conditions and the following disclaimer in 116df3ef80SGreg Tucker# the documentation and/or other materials provided with the 126df3ef80SGreg Tucker# distribution. 136df3ef80SGreg Tucker# * Neither the name of Intel Corporation nor the names of its 146df3ef80SGreg Tucker# contributors may be used to endorse or promote products derived 156df3ef80SGreg Tucker# from this software without specific prior written permission. 166df3ef80SGreg Tucker# 176df3ef80SGreg Tucker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 186df3ef80SGreg Tucker# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 196df3ef80SGreg Tucker# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 206df3ef80SGreg Tucker# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 216df3ef80SGreg Tucker# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 226df3ef80SGreg Tucker# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 236df3ef80SGreg Tucker# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 246df3ef80SGreg Tucker# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 256df3ef80SGreg Tucker# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 266df3ef80SGreg Tucker# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 276df3ef80SGreg Tucker# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28081d472cSPablo de Lara# 29081d472cSPablo de Lara# SPDX-License-Identifier: BSD-3-Clause 306df3ef80SGreg Tucker######################################################################## 316df3ef80SGreg Tucker 329ba2dbe8SGreg Tucker# This file can be auto-regenerated with $make -f Makefile.unx Makefile.nmake 339ba2dbe8SGreg Tucker 34e6e0f980SGreg Tuckerobjs = \ 359ba2dbe8SGreg Tucker bin\sha1_ctx_sse.obj \ 36e6e0f980SGreg Tucker bin\sha1_ctx_avx.obj \ 37e6e0f980SGreg Tucker bin\sha1_ctx_avx2.obj \ 38ef566c95SChunyang Hui bin\sha1_ctx_base.obj \ 39e6e0f980SGreg Tucker bin\sha1_mb_mgr_init_sse.obj \ 409ba2dbe8SGreg Tucker bin\sha1_mb_mgr_init_avx2.obj \ 419ba2dbe8SGreg Tucker bin\sha1_mb_mgr_submit_sse.obj \ 42e6e0f980SGreg Tucker bin\sha1_mb_mgr_submit_avx.obj \ 43e6e0f980SGreg Tucker bin\sha1_mb_mgr_submit_avx2.obj \ 449ba2dbe8SGreg Tucker bin\sha1_mb_mgr_flush_sse.obj \ 459ba2dbe8SGreg Tucker bin\sha1_mb_mgr_flush_avx.obj \ 469ba2dbe8SGreg Tucker bin\sha1_mb_mgr_flush_avx2.obj \ 47e6e0f980SGreg Tucker bin\sha1_mb_x4_sse.obj \ 489ba2dbe8SGreg Tucker bin\sha1_mb_x4_avx.obj \ 49e6e0f980SGreg Tucker bin\sha1_mb_x8_avx2.obj \ 50e6e0f980SGreg Tucker bin\sha1_multibinary.obj \ 519ba2dbe8SGreg Tucker bin\sha1_ctx_avx512.obj \ 529ba2dbe8SGreg Tucker bin\sha1_mb_mgr_init_avx512.obj \ 539ba2dbe8SGreg Tucker bin\sha1_mb_mgr_submit_avx512.obj \ 549ba2dbe8SGreg Tucker bin\sha1_mb_mgr_flush_avx512.obj \ 559ba2dbe8SGreg Tucker bin\sha1_mb_x16_avx512.obj \ 569ba2dbe8SGreg Tucker bin\sha1_opt_x1.obj \ 579ba2dbe8SGreg Tucker bin\sha1_ni_x1.obj \ 589ba2dbe8SGreg Tucker bin\sha1_ni_x2.obj \ 599ba2dbe8SGreg Tucker bin\sha1_ctx_sse_ni.obj \ 609ba2dbe8SGreg Tucker bin\sha1_ctx_avx512_ni.obj \ 619ba2dbe8SGreg Tucker bin\sha1_mb_mgr_submit_sse_ni.obj \ 629ba2dbe8SGreg Tucker bin\sha1_mb_mgr_flush_sse_ni.obj \ 639ba2dbe8SGreg Tucker bin\sha1_mb_mgr_flush_avx512_ni.obj \ 649ba2dbe8SGreg Tucker bin\sha256_ctx_sse.obj \ 65e6e0f980SGreg Tucker bin\sha256_ctx_avx.obj \ 66e6e0f980SGreg Tucker bin\sha256_ctx_avx2.obj \ 67ef566c95SChunyang Hui bin\sha256_ctx_base.obj \ 68e6e0f980SGreg Tucker bin\sha256_mb_mgr_init_sse.obj \ 699ba2dbe8SGreg Tucker bin\sha256_mb_mgr_init_avx2.obj \ 709ba2dbe8SGreg Tucker bin\sha256_mb_mgr_submit_sse.obj \ 71e6e0f980SGreg Tucker bin\sha256_mb_mgr_submit_avx.obj \ 72e6e0f980SGreg Tucker bin\sha256_mb_mgr_submit_avx2.obj \ 739ba2dbe8SGreg Tucker bin\sha256_mb_mgr_flush_sse.obj \ 749ba2dbe8SGreg Tucker bin\sha256_mb_mgr_flush_avx.obj \ 759ba2dbe8SGreg Tucker bin\sha256_mb_mgr_flush_avx2.obj \ 76e6e0f980SGreg Tucker bin\sha256_mb_x4_sse.obj \ 779ba2dbe8SGreg Tucker bin\sha256_mb_x4_avx.obj \ 78e6e0f980SGreg Tucker bin\sha256_mb_x8_avx2.obj \ 79e6e0f980SGreg Tucker bin\sha256_multibinary.obj \ 809ba2dbe8SGreg Tucker bin\sha256_ctx_avx512.obj \ 819ba2dbe8SGreg Tucker bin\sha256_mb_mgr_init_avx512.obj \ 829ba2dbe8SGreg Tucker bin\sha256_mb_mgr_submit_avx512.obj \ 839ba2dbe8SGreg Tucker bin\sha256_mb_mgr_flush_avx512.obj \ 849ba2dbe8SGreg Tucker bin\sha256_mb_x16_avx512.obj \ 859ba2dbe8SGreg Tucker bin\sha256_opt_x1.obj \ 869ba2dbe8SGreg Tucker bin\sha256_ni_x1.obj \ 879ba2dbe8SGreg Tucker bin\sha256_ni_x2.obj \ 889ba2dbe8SGreg Tucker bin\sha256_ctx_sse_ni.obj \ 899ba2dbe8SGreg Tucker bin\sha256_ctx_avx512_ni.obj \ 909ba2dbe8SGreg Tucker bin\sha256_mb_mgr_submit_sse_ni.obj \ 919ba2dbe8SGreg Tucker bin\sha256_mb_mgr_flush_sse_ni.obj \ 929ba2dbe8SGreg Tucker bin\sha256_mb_mgr_flush_avx512_ni.obj \ 939ba2dbe8SGreg Tucker bin\sha512_ctx_sse.obj \ 94e6e0f980SGreg Tucker bin\sha512_ctx_avx.obj \ 95e6e0f980SGreg Tucker bin\sha512_ctx_avx2.obj \ 96e6e0f980SGreg Tucker bin\sha512_ctx_sb_sse4.obj \ 97ef566c95SChunyang Hui bin\sha512_ctx_base.obj \ 98e6e0f980SGreg Tucker bin\sha512_mb_mgr_init_sse.obj \ 999ba2dbe8SGreg Tucker bin\sha512_mb_mgr_init_avx2.obj \ 1009ba2dbe8SGreg Tucker bin\sha512_sb_mgr_init_sse4.obj \ 1019ba2dbe8SGreg Tucker bin\sha512_mb_mgr_submit_sse.obj \ 102e6e0f980SGreg Tucker bin\sha512_mb_mgr_submit_avx.obj \ 103e6e0f980SGreg Tucker bin\sha512_mb_mgr_submit_avx2.obj \ 1049ba2dbe8SGreg Tucker bin\sha512_mb_mgr_flush_sse.obj \ 1059ba2dbe8SGreg Tucker bin\sha512_mb_mgr_flush_avx.obj \ 1069ba2dbe8SGreg Tucker bin\sha512_mb_mgr_flush_avx2.obj \ 107e6e0f980SGreg Tucker bin\sha512_mb_x2_sse.obj \ 1089ba2dbe8SGreg Tucker bin\sha512_mb_x2_avx.obj \ 109e6e0f980SGreg Tucker bin\sha512_mb_x4_avx2.obj \ 110e6e0f980SGreg Tucker bin\sha512_multibinary.obj \ 111e6e0f980SGreg Tucker bin\sha512_sb_mgr_submit_sse4.obj \ 1129ba2dbe8SGreg Tucker bin\sha512_sb_mgr_flush_sse4.obj \ 113e6e0f980SGreg Tucker bin\sha512_sse4.obj \ 1149ba2dbe8SGreg Tucker bin\sha512_ctx_avx512.obj \ 1159ba2dbe8SGreg Tucker bin\sha512_mb_mgr_init_avx512.obj \ 1169ba2dbe8SGreg Tucker bin\sha512_mb_mgr_submit_avx512.obj \ 1179ba2dbe8SGreg Tucker bin\sha512_mb_mgr_flush_avx512.obj \ 1189ba2dbe8SGreg Tucker bin\sha512_mb_x8_avx512.obj \ 1199ba2dbe8SGreg Tucker bin\md5_ctx_sse.obj \ 1209ba2dbe8SGreg Tucker bin\md5_ctx_avx.obj \ 1219ba2dbe8SGreg Tucker bin\md5_ctx_avx2.obj \ 1229ba2dbe8SGreg Tucker bin\md5_ctx_base.obj \ 1239ba2dbe8SGreg Tucker bin\md5_mb_mgr_init_sse.obj \ 1249ba2dbe8SGreg Tucker bin\md5_mb_mgr_init_avx2.obj \ 1259ba2dbe8SGreg Tucker bin\md5_mb_mgr_init_avx512.obj \ 1269ba2dbe8SGreg Tucker bin\md5_mb_mgr_submit_sse.obj \ 1279ba2dbe8SGreg Tucker bin\md5_mb_mgr_submit_avx.obj \ 1289ba2dbe8SGreg Tucker bin\md5_mb_mgr_submit_avx2.obj \ 1299ba2dbe8SGreg Tucker bin\md5_mb_mgr_flush_sse.obj \ 1309ba2dbe8SGreg Tucker bin\md5_mb_mgr_flush_avx.obj \ 1319ba2dbe8SGreg Tucker bin\md5_mb_mgr_flush_avx2.obj \ 1329ba2dbe8SGreg Tucker bin\md5_mb_x4x2_sse.obj \ 1339ba2dbe8SGreg Tucker bin\md5_mb_x4x2_avx.obj \ 1349ba2dbe8SGreg Tucker bin\md5_mb_x8x2_avx2.obj \ 1359ba2dbe8SGreg Tucker bin\md5_multibinary.obj \ 1369ba2dbe8SGreg Tucker bin\md5_mb_mgr_submit_avx512.obj \ 1379ba2dbe8SGreg Tucker bin\md5_mb_mgr_flush_avx512.obj \ 1389ba2dbe8SGreg Tucker bin\md5_mb_x16x2_avx512.obj \ 1399ba2dbe8SGreg Tucker bin\md5_ctx_avx512.obj \ 1409ba2dbe8SGreg Tucker bin\mh_sha1_block_base.obj \ 1419ba2dbe8SGreg Tucker bin\mh_sha1_finalize_base.obj \ 1429ba2dbe8SGreg Tucker bin\mh_sha1_update_base.obj \ 1439ba2dbe8SGreg Tucker bin\sha1_for_mh_sha1.obj \ 1449ba2dbe8SGreg Tucker bin\mh_sha1.obj \ 1459ba2dbe8SGreg Tucker bin\mh_sha1_multibinary.obj \ 1469ba2dbe8SGreg Tucker bin\mh_sha1_block_sse.obj \ 1479ba2dbe8SGreg Tucker bin\mh_sha1_block_avx.obj \ 1489ba2dbe8SGreg Tucker bin\mh_sha1_block_avx2.obj \ 1499ba2dbe8SGreg Tucker bin\mh_sha1_block_avx512.obj \ 1509ba2dbe8SGreg Tucker bin\mh_sha1_avx512.obj \ 1519ba2dbe8SGreg Tucker bin\murmur3_x64_128_internal.obj \ 1529ba2dbe8SGreg Tucker bin\mh_sha1_murmur3_x64_128.obj \ 1539ba2dbe8SGreg Tucker bin\mh_sha1_murmur3_x64_128_finalize_base.obj \ 1549ba2dbe8SGreg Tucker bin\mh_sha1_murmur3_x64_128_update_base.obj \ 1559ba2dbe8SGreg Tucker bin\mh_sha1_murmur3_x64_128_block_sse.obj \ 1569ba2dbe8SGreg Tucker bin\mh_sha1_murmur3_x64_128_block_avx.obj \ 1579ba2dbe8SGreg Tucker bin\mh_sha1_murmur3_x64_128_block_avx2.obj \ 1589ba2dbe8SGreg Tucker bin\mh_sha1_murmur3_x64_128_multibinary.obj \ 1599ba2dbe8SGreg Tucker bin\mh_sha1_murmur3_x64_128_avx512.obj \ 1609ba2dbe8SGreg Tucker bin\mh_sha1_murmur3_x64_128_block_avx512.obj \ 1619ba2dbe8SGreg Tucker bin\sha256_for_mh_sha256.obj \ 1629ba2dbe8SGreg Tucker bin\mh_sha256.obj \ 1639ba2dbe8SGreg Tucker bin\mh_sha256_block_sse.obj \ 1649ba2dbe8SGreg Tucker bin\mh_sha256_block_avx.obj \ 1659ba2dbe8SGreg Tucker bin\mh_sha256_block_avx2.obj \ 1669ba2dbe8SGreg Tucker bin\mh_sha256_multibinary.obj \ 1679ba2dbe8SGreg Tucker bin\mh_sha256_finalize_base.obj \ 1689ba2dbe8SGreg Tucker bin\mh_sha256_update_base.obj \ 1699ba2dbe8SGreg Tucker bin\mh_sha256_block_base.obj \ 1709ba2dbe8SGreg Tucker bin\mh_sha256_block_avx512.obj \ 1719ba2dbe8SGreg Tucker bin\mh_sha256_avx512.obj \ 1729ba2dbe8SGreg Tucker bin\rolling_hashx_base.obj \ 1739ba2dbe8SGreg Tucker bin\rolling_hash2.obj \ 1749ba2dbe8SGreg Tucker bin\rolling_hash2_until_04.obj \ 1759ba2dbe8SGreg Tucker bin\rolling_hash2_until_00.obj \ 1769ba2dbe8SGreg Tucker bin\rolling_hash2_multibinary.obj \ 1779ba2dbe8SGreg Tucker bin\sm3_ctx_base.obj \ 1789ba2dbe8SGreg Tucker bin\sm3_multibinary.obj \ 1799ba2dbe8SGreg Tucker bin\sm3_ctx_avx512.obj \ 1809ba2dbe8SGreg Tucker bin\sm3_mb_mgr_submit_avx512.obj \ 1819ba2dbe8SGreg Tucker bin\sm3_mb_mgr_flush_avx512.obj \ 1829ba2dbe8SGreg Tucker bin\sm3_mb_x16_avx512.obj \ 183b524e658SGreg Tucker bin\sm3_ctx_avx2.obj \ 184b524e658SGreg Tucker bin\sm3_mb_mgr_submit_avx2.obj \ 185b524e658SGreg Tucker bin\sm3_mb_mgr_flush_avx2.obj \ 186b524e658SGreg Tucker bin\sm3_mb_x8_avx2.obj \ 1879ba2dbe8SGreg Tucker bin\gcm_multibinary.obj \ 1889ba2dbe8SGreg Tucker bin\gcm_pre.obj \ 1899ba2dbe8SGreg Tucker bin\gcm128_avx_gen2.obj \ 1909ba2dbe8SGreg Tucker bin\gcm128_avx_gen4.obj \ 1919ba2dbe8SGreg Tucker bin\gcm128_sse.obj \ 1929ba2dbe8SGreg Tucker bin\gcm256_avx_gen2.obj \ 1939ba2dbe8SGreg Tucker bin\gcm256_avx_gen4.obj \ 1949ba2dbe8SGreg Tucker bin\gcm256_sse.obj \ 1959ba2dbe8SGreg Tucker bin\gcm128_vaes_avx512.obj \ 1969ba2dbe8SGreg Tucker bin\gcm256_vaes_avx512.obj \ 1979ba2dbe8SGreg Tucker bin\gcm128_avx_gen2_nt.obj \ 1989ba2dbe8SGreg Tucker bin\gcm128_avx_gen4_nt.obj \ 1999ba2dbe8SGreg Tucker bin\gcm128_sse_nt.obj \ 2009ba2dbe8SGreg Tucker bin\gcm256_avx_gen2_nt.obj \ 2019ba2dbe8SGreg Tucker bin\gcm256_avx_gen4_nt.obj \ 2029ba2dbe8SGreg Tucker bin\gcm256_sse_nt.obj \ 2039ba2dbe8SGreg Tucker bin\gcm128_vaes_avx512_nt.obj \ 2049ba2dbe8SGreg Tucker bin\gcm256_vaes_avx512_nt.obj \ 2059ba2dbe8SGreg Tucker bin\gcm_multibinary_nt.obj \ 2069ba2dbe8SGreg Tucker bin\keyexp_multibinary.obj \ 2079ba2dbe8SGreg Tucker bin\keyexp_128.obj \ 2089ba2dbe8SGreg Tucker bin\keyexp_192.obj \ 2099ba2dbe8SGreg Tucker bin\keyexp_256.obj \ 2109ba2dbe8SGreg Tucker bin\cbc_multibinary.obj \ 211abedecddSPablo de Lara bin\cbc_dec_128_x8_sse.obj \ 212e6e0f980SGreg Tucker bin\cbc_dec_128_x8_avx.obj \ 213abedecddSPablo de Lara bin\cbc_dec_192_x8_sse.obj \ 214e6e0f980SGreg Tucker bin\cbc_dec_192_x8_avx.obj \ 215abedecddSPablo de Lara bin\cbc_dec_256_x8_sse.obj \ 216e6e0f980SGreg Tucker bin\cbc_dec_256_x8_avx.obj \ 217e6e0f980SGreg Tucker bin\cbc_enc_128_x4_sb.obj \ 218e6e0f980SGreg Tucker bin\cbc_enc_128_x8_sb.obj \ 219e6e0f980SGreg Tucker bin\cbc_enc_192_x4_sb.obj \ 220e6e0f980SGreg Tucker bin\cbc_enc_192_x8_sb.obj \ 221e6e0f980SGreg Tucker bin\cbc_enc_256_x4_sb.obj \ 222e6e0f980SGreg Tucker bin\cbc_enc_256_x8_sb.obj \ 22301994c26SGreg Tucker bin\cbc_dec_vaes_avx512.obj \ 224e6e0f980SGreg Tucker bin\cbc_pre.obj \ 225e6e0f980SGreg Tucker bin\xts_aes_128_multibinary.obj \ 2269ba2dbe8SGreg Tucker bin\XTS_AES_128_dec_sse.obj \ 2279ba2dbe8SGreg Tucker bin\XTS_AES_128_dec_expanded_key_sse.obj \ 2289ba2dbe8SGreg Tucker bin\XTS_AES_128_enc_sse.obj \ 2299ba2dbe8SGreg Tucker bin\XTS_AES_128_enc_expanded_key_sse.obj \ 2309ba2dbe8SGreg Tucker bin\XTS_AES_128_dec_avx.obj \ 2319ba2dbe8SGreg Tucker bin\XTS_AES_128_dec_expanded_key_avx.obj \ 2329ba2dbe8SGreg Tucker bin\XTS_AES_128_enc_avx.obj \ 2339ba2dbe8SGreg Tucker bin\XTS_AES_128_enc_expanded_key_avx.obj \ 2348790127bSGreg Tucker bin\xts_aes_256_multibinary.obj \ 2359ba2dbe8SGreg Tucker bin\XTS_AES_256_dec_avx.obj \ 2369ba2dbe8SGreg Tucker bin\XTS_AES_256_dec_expanded_key_avx.obj \ 2379ba2dbe8SGreg Tucker bin\XTS_AES_256_enc_avx.obj \ 2389ba2dbe8SGreg Tucker bin\XTS_AES_256_enc_expanded_key_avx.obj \ 2399ba2dbe8SGreg Tucker bin\XTS_AES_256_dec_sse.obj \ 2409ba2dbe8SGreg Tucker bin\XTS_AES_256_dec_expanded_key_sse.obj \ 2419ba2dbe8SGreg Tucker bin\XTS_AES_256_enc_sse.obj \ 2429ba2dbe8SGreg Tucker bin\XTS_AES_256_enc_expanded_key_sse.obj \ 2439ba2dbe8SGreg Tucker bin\XTS_AES_256_enc_vaes.obj \ 2449ba2dbe8SGreg Tucker bin\XTS_AES_128_enc_vaes.obj \ 2459ba2dbe8SGreg Tucker bin\XTS_AES_256_enc_expanded_key_vaes.obj \ 2469ba2dbe8SGreg Tucker bin\XTS_AES_128_enc_expanded_key_vaes.obj \ 2479ba2dbe8SGreg Tucker bin\XTS_AES_256_dec_vaes.obj \ 2489ba2dbe8SGreg Tucker bin\XTS_AES_128_dec_vaes.obj \ 2499ba2dbe8SGreg Tucker bin\XTS_AES_256_dec_expanded_key_vaes.obj \ 2507080fff2SMarcel Cornu bin\XTS_AES_128_dec_expanded_key_vaes.obj \ 2519475391eSMarcel Cornu bin\aes_keyexp.obj \ 2528c5795a3SMarcel Cornu bin\md5_mb.obj \ 253b60da680SMarcel Cornu bin\sha1_mb.obj \ 254bc3ec2c2SPablo de Lara bin\aes_cbc.obj \ 255fc3226e8SMarcel Cornu bin\aes_xts.obj \ 256f69ff2b8SMarcel Cornu bin\sha256_mb.obj \ 25775ef4190SMarcel Cornu bin\sha512_mb.obj \ 25875ef4190SMarcel Cornu bin\aes_gcm.obj \ 2595e4dc74cSPablo de Lara bin\aes_self_tests.obj \ 260ee4f1205SPablo de Lara bin\sha_self_tests.obj \ 2615e4dc74cSPablo de Lara bin\self_tests.obj \ 26206a2548dSMarcel Cornu bin\asm_self_tests.obj \ 263fea2d86aSMarcel Cornu bin\sm3_mb.obj \ 264fea2d86aSMarcel Cornu bin\version.obj 265bc3ec2c2SPablo de Lara 2666df3ef80SGreg Tucker 26766a48ecdSTomasz KanteckiINCLUDES = -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 268151e9bcaSPablo de Lara# Modern asm feature level, consider upgrading nasm before decreasing feature_level 269d28f1034SPablo de LaraFEAT_FLAGS = -DAS_FEATURE_LEVEL=10 270b00314aaSMarcel CornuCFLAGS_REL = -O2 -DNDEBUG /Z7 /Gy /ZH:SHA_256 /guard:cf 271f448a5d7SGreg TuckerCFLAGS_DBG = -Od -DDEBUG /Z7 27238d4b13aSPablo de Lara 27338d4b13aSPablo de Lara!if "$(CONFIG)" == "DEBUG" 27438d4b13aSPablo de LaraCFLAGS=$(CFLAGS_DBG) 27538d4b13aSPablo de Lara!else 27638d4b13aSPablo de LaraCFLAGS=$(CFLAGS_REL) 27738d4b13aSPablo de Lara!endif 27838d4b13aSPablo de Lara 279*9b7a2b84SMarcel CornuLINKFLAGS = -nologo -incremental:no -debug -guard:cf -DYNAMICBASE -CETCOMPAT 28038d4b13aSPablo de LaraCFLAGS = $(CFLAGS) -nologo -D_USE_MATH_DEFINES -DNO_COMPAT_ISAL_CRYPTO_API_2_24 $(FEAT_FLAGS) $(INCLUDES) $(D) /W3 2819ba2dbe8SGreg TuckerAFLAGS = -f win64 $(FEAT_FLAGS) $(INCLUDES) $(D) 2829ba2dbe8SGreg TuckerCC = cl 2839ba2dbe8SGreg Tucker# or CC = icl -Qstd=c99 2849ba2dbe8SGreg TuckerAS = nasm 2856df3ef80SGreg Tucker 28659de7709SPablo de Lara!if "$(SAFE_DATA)" != "n" 28759de7709SPablo de LaraCFLAGS = $(CFLAGS) /DSAFE_DATA 28859de7709SPablo de LaraAFLAGS = $(AFLAGS) -DSAFE_DATA 28959de7709SPablo de Lara!endif 29059de7709SPablo de Lara 2917b5b2f46SMarcel Cornu!if "$(SAFE_PARAM)" != "n" 2927b5b2f46SMarcel CornuCFLAGS = $(CFLAGS) /DSAFE_PARAM 2937b5b2f46SMarcel CornuAFLAGS = $(AFLAGS) -DSAFE_PARAM 2947b5b2f46SMarcel Cornu!endif 2957b5b2f46SMarcel Cornu 296158a2fa5SPablo de Lara!if "$(FIPS_MODE)" == "y" 297158a2fa5SPablo de LaraCFLAGS = $(CFLAGS) /DFIPS_MODE 298158a2fa5SPablo de LaraAFLAGS = $(AFLAGS) -DFIPS_MODE 299158a2fa5SPablo de Lara!endif 300158a2fa5SPablo de Lara 3016df3ef80SGreg Tuckerlib: bin static dll 3026df3ef80SGreg Tuckerstatic: bin isa-l_crypto_static.lib 3036df3ef80SGreg Tuckerdll: bin isa-l_crypto.dll 3046df3ef80SGreg Tucker 3056df3ef80SGreg Tuckerbin: ; -mkdir $@ 3066df3ef80SGreg Tucker 3076df3ef80SGreg Tuckerisa-l_crypto_static.lib: $(objs) 30854038377SXiaodong Liu lib -out:$@ @<< 30954038377SXiaodong Liu$? 31054038377SXiaodong Liu<< 3116df3ef80SGreg Tucker 3126df3ef80SGreg Tuckerisa-l_crypto.dll: $(objs) 3139ba2dbe8SGreg Tucker link -out:$@ -dll -def:isa-l_crypto.def $(LINKFLAGS) @<< 31454038377SXiaodong Liu$? 31554038377SXiaodong Liu<< 3166df3ef80SGreg Tucker 3176df3ef80SGreg Tucker{sha1_mb}.c.obj: 3186df3ef80SGreg Tucker $(CC) $(CFLAGS) /c -Fo$@ $? 3196df3ef80SGreg Tucker{sha1_mb}.asm.obj: 3206df3ef80SGreg Tucker $(AS) $(AFLAGS) -o $@ $? 3216df3ef80SGreg Tucker 3226df3ef80SGreg Tucker{sha256_mb}.c.obj: 3236df3ef80SGreg Tucker $(CC) $(CFLAGS) /c -Fo$@ $? 3246df3ef80SGreg Tucker{sha256_mb}.asm.obj: 3256df3ef80SGreg Tucker $(AS) $(AFLAGS) -o $@ $? 3266df3ef80SGreg Tucker 3276df3ef80SGreg Tucker{sha512_mb}.c.obj: 3286df3ef80SGreg Tucker $(CC) $(CFLAGS) /c -Fo$@ $? 3296df3ef80SGreg Tucker{sha512_mb}.asm.obj: 3306df3ef80SGreg Tucker $(AS) $(AFLAGS) -o $@ $? 3316df3ef80SGreg Tucker 3326df3ef80SGreg Tucker{md5_mb}.c.obj: 3336df3ef80SGreg Tucker $(CC) $(CFLAGS) /c -Fo$@ $? 3346df3ef80SGreg Tucker{md5_mb}.asm.obj: 3356df3ef80SGreg Tucker $(AS) $(AFLAGS) -o $@ $? 3366df3ef80SGreg Tucker 337e6e0f980SGreg Tucker{mh_sha1}.c.obj: 338e6e0f980SGreg Tucker $(CC) $(CFLAGS) /c -Fo$@ $? 339e6e0f980SGreg Tucker{mh_sha1}.asm.obj: 340e6e0f980SGreg Tucker $(AS) $(AFLAGS) -o $@ $? 341e6e0f980SGreg Tucker 342e6e0f980SGreg Tucker{mh_sha1_murmur3_x64_128}.c.obj: 343e6e0f980SGreg Tucker $(CC) $(CFLAGS) /c -Fo$@ $? 344e6e0f980SGreg Tucker{mh_sha1_murmur3_x64_128}.asm.obj: 345e6e0f980SGreg Tucker $(AS) $(AFLAGS) -o $@ $? 346e6e0f980SGreg Tucker 347090572c5SGreg Tucker{mh_sha256}.c.obj: 348090572c5SGreg Tucker $(CC) $(CFLAGS) /c -Fo$@ $? 349090572c5SGreg Tucker{mh_sha256}.asm.obj: 350090572c5SGreg Tucker $(AS) $(AFLAGS) -o $@ $? 351090572c5SGreg Tucker 3528790127bSGreg Tucker{rolling_hash}.c.obj: 3538790127bSGreg Tucker $(CC) $(CFLAGS) /c -Fo$@ $? 3548790127bSGreg Tucker{rolling_hash}.asm.obj: 3558790127bSGreg Tucker $(AS) $(AFLAGS) -o $@ $? 3566df3ef80SGreg Tucker 3579ba2dbe8SGreg Tucker{sm3_mb}.c.obj: 3589ba2dbe8SGreg Tucker $(CC) $(CFLAGS) /c -Fo$@ $? 3599ba2dbe8SGreg Tucker{sm3_mb}.asm.obj: 3609ba2dbe8SGreg Tucker $(AS) $(AFLAGS) -o $@ $? 3619ba2dbe8SGreg Tucker 3629ba2dbe8SGreg Tucker{aes}.c.obj: 3639ba2dbe8SGreg Tucker $(CC) $(CFLAGS) /c -Fo$@ $? 3649ba2dbe8SGreg Tucker{aes}.asm.obj: 3659ba2dbe8SGreg Tucker $(AS) $(AFLAGS) -o $@ $? 3669ba2dbe8SGreg Tucker 3675e4dc74cSPablo de Lara{fips}.c.obj: 3685e4dc74cSPablo de Lara $(CC) $(CFLAGS) /c -Fo$@ $? 3695e4dc74cSPablo de Lara{fips}.asm.obj: 3705e4dc74cSPablo de Lara $(AS) $(AFLAGS) -o $@ $? 371fea2d86aSMarcel Cornu{misc}.c.obj: 372fea2d86aSMarcel Cornu $(CC) $(CFLAGS) /c -Fo$@ $? 3735e4dc74cSPablo de Lara 3749ba2dbe8SGreg Tucker 3756df3ef80SGreg Tucker# Examples 3769ba2dbe8SGreg Tuckerex = \ 3779ba2dbe8SGreg Tucker sha1_multi_buffer_example.exe \ 3789ba2dbe8SGreg Tucker gcm_simple_example.exe 3799ba2dbe8SGreg Tucker 3806df3ef80SGreg Tuckerex: lib $(ex) 3816df3ef80SGreg Tucker 3826df3ef80SGreg Tucker$(ex): $(@B).obj 3836df3ef80SGreg Tucker 3846df3ef80SGreg Tucker.obj.exe: 3856df3ef80SGreg Tucker link /out:$@ $(LINKFLAGS) isa-l_crypto.lib $? 3866df3ef80SGreg Tucker 3876df3ef80SGreg Tucker# Check tests 388e6e0f980SGreg Tuckerchecks = \ 3899ba2dbe8SGreg Tucker sha1_mb_test.exe \ 390e6e0f980SGreg Tucker sha1_mb_rand_test.exe \ 391e6e0f980SGreg Tucker sha1_mb_rand_update_test.exe \ 3929ba2dbe8SGreg Tucker sha1_mb_flush_test.exe \ 3939ba2dbe8SGreg Tucker sha256_mb_test.exe \ 394e6e0f980SGreg Tucker sha256_mb_rand_test.exe \ 395e6e0f980SGreg Tucker sha256_mb_rand_update_test.exe \ 3969ba2dbe8SGreg Tucker sha256_mb_flush_test.exe \ 3979ba2dbe8SGreg Tucker sha512_mb_test.exe \ 398e6e0f980SGreg Tucker sha512_mb_rand_test.exe \ 399e6e0f980SGreg Tucker sha512_mb_rand_update_test.exe \ 4009ba2dbe8SGreg Tucker md5_mb_test.exe \ 4019ba2dbe8SGreg Tucker md5_mb_rand_test.exe \ 4029ba2dbe8SGreg Tucker md5_mb_rand_update_test.exe \ 403e6e0f980SGreg Tucker mh_sha1_test.exe \ 404090572c5SGreg Tucker mh_sha256_test.exe \ 4059ba2dbe8SGreg Tucker rolling_hash2_test.exe \ 4069ba2dbe8SGreg Tucker sm3_ref_test.exe \ 407e6e0f980SGreg Tucker cbc_std_vectors_test.exe \ 408e6e0f980SGreg Tucker gcm_std_vectors_test.exe \ 409dfe009e5SGreg Tucker gcm_nt_std_vectors_test.exe \ 410e6e0f980SGreg Tucker xts_128_test.exe \ 4118790127bSGreg Tucker xts_256_test.exe \ 4129ba2dbe8SGreg Tucker xts_128_expanded_key_test.exe \ 4137080fff2SMarcel Cornu xts_256_expanded_key_test.exe \ 4147080fff2SMarcel Cornu aes_param_test.exe \ 4159de7f4ddSMarcel Cornu mh_sha1_param_test.exe \ 4169475391eSMarcel Cornu mh_sha256_param_test.exe \ 417fc3226e8SMarcel Cornu md5_mb_param_test.exe \ 41806a2548dSMarcel Cornu sha1_mb_param_test.exe \ 419f69ff2b8SMarcel Cornu sha256_mb_param_test.exe \ 42084137cd0SMarcel Cornu sha512_mb_param_test.exe \ 42106a2548dSMarcel Cornu mh_sha1_murmur3_x64_128_param_test.exe \ 42262c012adSMarcel Cornu sm3_mb_param_test.exe \ 423fea2d86aSMarcel Cornu rolling_hash2_param_test.exe \ 42424110570SMarcel Cornu version_test.exe \ 42524110570SMarcel Cornu self_tests_test.exe 426f80afdf4SMarcel Cornu 4276df3ef80SGreg Tucker 4286df3ef80SGreg Tuckerchecks: lib $(checks) 4296df3ef80SGreg Tucker$(checks): $(@B).obj 4306df3ef80SGreg Tuckercheck: $(checks) 4316df3ef80SGreg Tucker !$? 4326df3ef80SGreg Tucker 4336df3ef80SGreg Tucker# Unit tests 434e6e0f980SGreg Tuckertests = \ 435e6e0f980SGreg Tucker sha1_mb_rand_ssl_test.exe \ 436e6e0f980SGreg Tucker sha256_mb_rand_ssl_test.exe \ 437e6e0f980SGreg Tucker sha512_mb_rand_ssl_test.exe \ 4389ba2dbe8SGreg Tucker md5_mb_rand_ssl_test.exe \ 4399ba2dbe8SGreg Tucker mh_sha1_update_test.exe \ 4409ba2dbe8SGreg Tucker mh_sha1_murmur3_x64_128_test.exe \ 4419ba2dbe8SGreg Tucker mh_sha1_murmur3_x64_128_update_test.exe \ 4429ba2dbe8SGreg Tucker mh_sha256_update_test.exe \ 4439ba2dbe8SGreg Tucker sm3_mb_rand_ssl_test.exe \ 4449ba2dbe8SGreg Tucker sm3_mb_rand_test.exe \ 4459ba2dbe8SGreg Tucker sm3_mb_rand_update_test.exe \ 4469ba2dbe8SGreg Tucker sm3_mb_flush_test.exe \ 4479ba2dbe8SGreg Tucker sm3_mb_test.exe \ 448e6e0f980SGreg Tucker cbc_std_vectors_random_test.exe \ 449e6e0f980SGreg Tucker gcm_std_vectors_random_test.exe \ 4509ba2dbe8SGreg Tucker gcm_nt_rand_test.exe \ 451e6e0f980SGreg Tucker xts_128_rand.exe \ 452e6e0f980SGreg Tucker xts_128_rand_ossl_test.exe \ 453e6e0f980SGreg Tucker xts_256_rand.exe \ 4549ba2dbe8SGreg Tucker xts_256_rand_ossl_test.exe 4556df3ef80SGreg Tucker 4566df3ef80SGreg Tuckertests: lib $(tests) 4576df3ef80SGreg Tucker$(tests): $(@B).obj 4586df3ef80SGreg Tucker 4596df3ef80SGreg Tucker# Performance tests 46054038377SXiaodong Liuperfs = \ 46154038377SXiaodong Liu sha1_mb_vs_ossl_perf.exe \ 4629ba2dbe8SGreg Tucker sha1_mb_vs_ossl_shortage_perf.exe \ 46354038377SXiaodong Liu sha256_mb_vs_ossl_perf.exe \ 4649ba2dbe8SGreg Tucker sha256_mb_vs_ossl_shortage_perf.exe \ 46554038377SXiaodong Liu sha512_mb_vs_ossl_perf.exe \ 4669ba2dbe8SGreg Tucker md5_mb_vs_ossl_perf.exe \ 46754038377SXiaodong Liu mh_sha1_perf.exe \ 46854038377SXiaodong Liu mh_sha1_murmur3_x64_128_perf.exe \ 46954038377SXiaodong Liu mh_sha256_perf.exe \ 47054038377SXiaodong Liu rolling_hash2_perf.exe \ 4719ba2dbe8SGreg Tucker sm3_mb_vs_ossl_perf.exe \ 4729ba2dbe8SGreg Tucker sm3_mb_vs_ossl_shortage_perf.exe \ 4739ba2dbe8SGreg Tucker cbc_ossl_perf.exe \ 4749ba2dbe8SGreg Tucker gcm_ossl_perf.exe \ 4759ba2dbe8SGreg Tucker xts_128_enc_ossl_perf.exe \ 4769ba2dbe8SGreg Tucker xts_256_enc_ossl_perf.exe \ 4779ba2dbe8SGreg Tucker xts_128_enc_perf.exe \ 4789ba2dbe8SGreg Tucker xts_128_dec_perf.exe \ 4799ba2dbe8SGreg Tucker xts_128_dec_ossl_perf.exe \ 4809ba2dbe8SGreg Tucker xts_256_enc_perf.exe \ 4819ba2dbe8SGreg Tucker xts_256_dec_perf.exe \ 4829ba2dbe8SGreg Tucker xts_256_dec_ossl_perf.exe 4836df3ef80SGreg Tucker 4846df3ef80SGreg Tuckerperfs: lib $(perfs) 4856df3ef80SGreg Tucker$(perfs): $(@B).obj 4866df3ef80SGreg Tucker 4879ba2dbe8SGreg Tuckerprogs = 4889ba2dbe8SGreg Tucker 4899ba2dbe8SGreg Tuckerprogs: lib $(progs) 4909ba2dbe8SGreg Tucker 4916df3ef80SGreg Tuckerclean: 4926df3ef80SGreg Tucker -if exist *.obj del *.obj 4936df3ef80SGreg Tucker -if exist bin\*.obj del bin\*.obj 4946df3ef80SGreg Tucker -if exist isa-l_crypto_static.lib del isa-l_crypto_static.lib 4956df3ef80SGreg Tucker -if exist *.exe del *.exe 4969ba2dbe8SGreg Tucker -if exist *.pdb del *.pdb 4976df3ef80SGreg Tucker -if exist isa-l_crypto.lib del isa-l_crypto.lib 4986df3ef80SGreg Tucker -if exist isa-l_crypto.dll del isa-l_crypto.dll 4999ba2dbe8SGreg Tucker -if exist isa-l_crypto.exp del isa-l_crypto.exp 5006df3ef80SGreg Tucker 501cc95d49fSGreg Tuckerlibcrypto.lib: 5026df3ef80SGreg Tuckersha1_mb_rand_test.exe: sha1_ref.obj 5036df3ef80SGreg Tuckersha1_mb_rand_update_test.exe: sha1_ref.obj 5049ba2dbe8SGreg Tuckersha1_mb_flush_test.exe: sha1_ref.obj 505cc95d49fSGreg Tuckersha1_mb_rand_ssl_test.exe: libcrypto.lib 506cc95d49fSGreg Tuckersha1_mb_vs_ossl_perf.exe: libcrypto.lib 507cc95d49fSGreg Tuckersha1_mb_vs_ossl_shortage_perf.exe: libcrypto.lib 5086df3ef80SGreg Tuckersha256_mb_rand_ssl_test.exe: sha256_ref.obj 5096df3ef80SGreg Tuckersha256_mb_rand_test.exe: sha256_ref.obj 5106df3ef80SGreg Tuckersha256_mb_rand_update_test.exe: sha256_ref.obj 5119ba2dbe8SGreg Tuckersha256_mb_flush_test.exe: sha256_ref.obj 512cc95d49fSGreg Tuckersha256_mb_rand_ssl_test.exe: libcrypto.lib 513cc95d49fSGreg Tuckersha256_mb_vs_ossl_perf.exe: libcrypto.lib 514cc95d49fSGreg Tuckersha256_mb_vs_ossl_shortage_perf.exe: libcrypto.lib 5156df3ef80SGreg Tuckersha512_mb_rand_test.exe: sha512_ref.obj 5166df3ef80SGreg Tuckersha512_mb_rand_update_test.exe: sha512_ref.obj 517cc95d49fSGreg Tuckersha512_mb_rand_ssl_test.exe: libcrypto.lib 518cc95d49fSGreg Tuckersha512_mb_vs_ossl_perf.exe: libcrypto.lib 5196df3ef80SGreg Tuckermd5_mb_rand_test.exe: md5_ref.obj 5206df3ef80SGreg Tuckermd5_mb_rand_update_test.exe: md5_ref.obj 521cc95d49fSGreg Tuckermd5_mb_rand_ssl_test.exe: libcrypto.lib 522cc95d49fSGreg Tuckermd5_mb_vs_ossl_perf.exe: libcrypto.lib 523e6e0f980SGreg Tuckermh_sha1_test.exe: mh_sha1_ref.obj 524e6e0f980SGreg Tuckermh_sha1_update_test.exe: mh_sha1_ref.obj 525e6e0f980SGreg Tuckermh_sha1_murmur3_x64_128_test.exe: mh_sha1_ref.obj murmur3_x64_128.obj 526e6e0f980SGreg Tuckermh_sha1_murmur3_x64_128_update_test.exe: mh_sha1_ref.obj murmur3_x64_128.obj 527e6e0f980SGreg Tuckermh_sha1_murmur3_x64_128_perf.exe: mh_sha1_ref.obj murmur3_x64_128.obj 528090572c5SGreg Tuckermh_sha256_test.exe: mh_sha256_ref.obj 529090572c5SGreg Tuckermh_sha256_update_test.exe: mh_sha256_ref.obj 530cc95d49fSGreg Tuckersm3_mb_rand_ssl_test.exe: libcrypto.lib 5319ba2dbe8SGreg Tuckersm3_mb_rand_ssl_test.exe: sm3_test_helper.obj 532cc95d49fSGreg Tuckersm3_mb_rand_update_test.exe: libcrypto.lib 5339ba2dbe8SGreg Tuckersm3_mb_rand_update_test.exe: sm3_test_helper.obj 534cc95d49fSGreg Tuckersm3_mb_flush_test.exe: libcrypto.lib 5359ba2dbe8SGreg Tuckersm3_mb_flush_test.exe: sm3_test_helper.obj 536cc95d49fSGreg Tuckersm3_mb_rand_test.exe: libcrypto.lib 5379ba2dbe8SGreg Tuckersm3_mb_rand_test.exe: sm3_test_helper.obj 538cc95d49fSGreg Tuckersm3_mb_vs_ossl_perf.exe: libcrypto.lib 5399ba2dbe8SGreg Tuckersm3_mb_vs_ossl_perf.exe: sm3_test_helper.obj 540cc95d49fSGreg Tuckersm3_mb_vs_ossl_shortage_perf.exe: libcrypto.lib 5419ba2dbe8SGreg Tuckersm3_mb_vs_ossl_shortage_perf.exe: sm3_test_helper.obj 542cc95d49fSGreg Tuckercbc_ossl_perf.exe: libcrypto.lib 543cc95d49fSGreg Tuckercbc_std_vectors_random_test.exe: libcrypto.lib 544cc95d49fSGreg Tuckergcm_ossl_perf.exe: libcrypto.lib 545cc95d49fSGreg Tuckergcm_std_vectors_random_test.exe: libcrypto.lib 546cc95d49fSGreg Tuckergcm_nt_rand_test.exe: libcrypto.lib 547cc95d49fSGreg Tuckerxts_128_enc_ossl_perf.exe: libcrypto.lib 548cc95d49fSGreg Tuckerxts_128_dec_ossl_perf.exe: libcrypto.lib 549cc95d49fSGreg Tuckerxts_128_rand_ossl_test.exe: libcrypto.lib 550cc95d49fSGreg Tuckerxts_256_enc_ossl_perf.exe: libcrypto.lib 551cc95d49fSGreg Tuckerxts_256_dec_ossl_perf.exe: libcrypto.lib 552cc95d49fSGreg Tuckerxts_256_rand_ossl_test.exe: libcrypto.lib 553