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