xref: /isa-l_crypto/Makefile.nmake (revision 9b7a2b842c9f4e54b8dc1c82899e5a5520c53301)
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