s4:torture: Adapt KDC canon test to Heimdal upstream changes
[samba.git] / third_party / heimdal / lib / hcrypto / NTMakefile
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 x25519
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         $(HCRYPTOINCLUDEDIR)\x25519_ref10.h     \
92
93 mkincdir:
94 !if !exist($(HCRYPTOINCLUDEDIR))
95         $(MKDIR) $(HCRYPTOINCLUDEDIR)
96 !endif
97
98 {}.h{$(HCRYPTOINCLUDEDIR)}.h:
99         $(CP) $** $@
100
101 all:: mkincdir
102
103 all:: $(INCFILES)
104
105 # libhcrypto
106
107 libhcrypto_OBJs =                       \
108         $(OBJ)\aes.obj                  \
109         $(OBJ)\bn.obj                   \
110         $(OBJ)\camellia.obj             \
111         $(OBJ)\camellia-ntt.obj         \
112         $(OBJ)\common.obj               \
113         $(OBJ)\des.obj                  \
114         $(OBJ)\dh.obj                   \
115         $(OBJ)\dh-ltm.obj               \
116         $(OBJ)\dh-tfm.obj               \
117         $(OBJ)\dsa.obj                  \
118         $(OBJ)\evp.obj                  \
119         $(OBJ)\evp-hcrypto.obj          \
120         $(OBJ)\evp-cc.obj               \
121         $(OBJ)\evp-openssl.obj          \
122         $(OBJ)\evp-pkcs11.obj           \
123         $(OBJ)\evp-wincng.obj           \
124         $(OBJ)\evp-w32.obj              \
125         $(OBJ)\engine.obj               \
126         $(OBJ)\hmac.obj                 \
127         $(OBJ)\md2.obj                  \
128         $(OBJ)\md4.obj                  \
129         $(OBJ)\md5.obj                  \
130         $(OBJ)\pkcs5.obj                \
131         $(OBJ)\pkcs12.obj               \
132         $(OBJ)\rand-w32.obj             \
133         $(OBJ)\rand.obj                 \
134         $(OBJ)\rc2.obj                  \
135         $(OBJ)\rc4.obj                  \
136         $(OBJ)\rijndael-alg-fst.obj     \
137         $(OBJ)\rnd_keys.obj             \
138         $(OBJ)\rsa.obj                  \
139         $(OBJ)\rsa-gmp.obj              \
140         $(OBJ)\rsa-ltm.obj              \
141         $(OBJ)\rsa-tfm.obj              \
142         $(OBJ)\sha.obj                  \
143         $(OBJ)\sha256.obj               \
144         $(OBJ)\sha512.obj               \
145         $(OBJ)\ui.obj                   \
146         $(OBJ)\validate.obj
147
148 $(LIBHCRYPTO): $(libhcrypto_OBJs)
149         $(LIBCON)
150
151 all:: $(LIBHCRYPTO)
152
153 clean::
154         -$(RM) $(LIBHCRYPTO)
155
156 # Tests
157
158 TESTLIB=$(OBJ)\libhctest.lib
159
160 $(TESTLIB):                 \
161         $(OBJ)\des.obj      \
162         $(OBJ)\ui.obj
163         $(LIBCON)
164
165 test-binaries:                          \
166         $(OBJ)\destest.exe              \
167         $(OBJ)\example_evp_cipher.exe   \
168         $(OBJ)\mdtest.exe               \
169         $(OBJ)\rc2test.exe              \
170         $(OBJ)\rctest.exe               \
171         $(OBJ)\test_bn.exe              \
172         $(OBJ)\test_bulk.exe            \
173         $(OBJ)\test_cipher.exe          \
174         $(OBJ)\test_engine_dso.exe      \
175         $(OBJ)\test_hmac.exe            \
176         $(OBJ)\test_pkcs5.exe           \
177         $(OBJ)\test_pkcs12.exe          \
178         $(OBJ)\test_rsa.exe             \
179         $(OBJ)\test_dh.exe              \
180         $(OBJ)\test_rand.exe            \
181         $(OBJ)\test_crypto.sh
182
183 $(OBJ)\destest.exe: $(OBJ)\destest.obj $(TESTLIB) $(LIBROKEN) $(LIBHEIMBASE)
184         $(EXECONLINK)
185         $(EXEPREP_NODIST)
186
187 $(OBJ)\example_evp_cipher.exe: $(OBJ)\example_evp_cipher.obj $(TESTLIB) $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
188         $(EXECONLINK)
189         $(EXEPREP_NODIST)
190
191 $(OBJ)\mdtest.exe: $(OBJ)\mdtest.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(OBJ)\sha512.obj
192         $(EXECONLINK)
193         $(EXEPREP_NODIST)
194
195 $(OBJ)\rc2test.exe: $(OBJ)\rc2test.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
196         $(EXECONLINK)
197         $(EXEPREP_NODIST)
198
199 $(OBJ)\rctest.exe: $(OBJ)\rctest.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
200         $(EXECONLINK)
201         $(EXEPREP_NODIST)
202
203 $(OBJ)\test_bn.exe: $(OBJ)\test_bn.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
204         $(EXECONLINK)
205         $(EXEPREP_NODIST)
206
207 $(OBJ)\test_bulk.exe: $(OBJ)\test_bulk.obj $(TESTLIB) $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
208         $(EXECONLINK)
209         $(EXEPREP_NODIST)
210
211 $(OBJ)\test_cipher.exe: $(OBJ)\test_cipher.obj $(TESTLIB) $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
212         $(EXECONLINK)
213         $(EXEPREP_NODIST)
214
215 $(OBJ)\test_engine_dso.exe: $(OBJ)\test_engine_dso.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
216         $(EXECONLINK)
217         $(EXEPREP_NODIST)
218
219 $(OBJ)\test_hmac.exe: $(OBJ)\test_hmac.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
220         $(EXECONLINK)
221         $(EXEPREP_NODIST)
222
223 $(OBJ)\test_pkcs5.exe: $(OBJ)\test_pkcs5.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
224         $(EXECONLINK)
225         $(EXEPREP_NODIST)
226
227 $(OBJ)\test_pkcs12.exe: $(OBJ)\test_pkcs12.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
228         $(EXECONLINK)
229         $(EXEPREP_NODIST)
230
231 $(OBJ)\test_rsa.exe: $(OBJ)\test_rsa.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
232         $(EXECONLINK)
233         $(EXEPREP_NODIST)
234
235 $(OBJ)\test_dh.exe: $(OBJ)\test_dh.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
236         $(EXECONLINK)
237         $(EXEPREP_NODIST)
238
239 $(OBJ)\test_rand.exe: $(OBJ)\test_rand.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
240         $(EXECONLINK)
241         $(EXEPREP_NODIST)
242
243 SRCDIR2=$(SRCDIR:\=\\\\)
244
245 $(OBJ)\test_crypto.sh: test_crypto.in NTMakefile
246         $(SED) -e "s,[@]srcdir[@],$(SRCDIR2),g" -e "s,[@]exeext[@],.exe,g" -e "s,\r,," < test_crypto.in > $@ || $(RM) $@
247
248 test-run:
249         cd $(OBJ)
250 !ifdef SH
251         -$(SH) test_crypto.sh
252 !endif
253         -destest.exe
254         -mdtest.exe
255         -rc2test.exe
256         -rctest.exe
257         -test_bn.exe
258         -test_bulk.exe --provider=hcrypto
259         -test_bulk.exe --provider=w32crypto
260         -test_cipher.exe
261         -test_engine_dso.exe
262         -test_hmac.exe
263         -test_pkcs5.exe
264         -test_pkcs12.exe
265         -test_rsa.exe
266         -test_dh.exe
267         cd $(SRCDIR)
268
269 test:: $(TESTLIB) test-binaries test-run
270
271 test-exports:
272         $(PERL) ..\..\cf\w32-check-exported-symbols.pl --vs version-script.map --def libhcrypto-exports.def
273
274 test:: test-exports