Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/bearssl/mk/mkrules.sh
39482 views
1
#! /bin/sh
2
3
# ========================================================================
4
#
5
# Copyright (c) 2017 Thomas Pornin <[email protected]>
6
#
7
# Permission is hereby granted, free of charge, to any person obtaining
8
# a copy of this software and associated documentation files (the
9
# "Software"), to deal in the Software without restriction, including
10
# without limitation the rights to use, copy, modify, merge, publish,
11
# distribute, sublicense, and/or sell copies of the Software, and to
12
# permit persons to whom the Software is furnished to do so, subject to
13
# the following conditions:
14
#
15
# The above copyright notice and this permission notice shall be
16
# included in all copies or substantial portions of the Software.
17
#
18
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
22
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
23
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
24
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25
# SOFTWARE.
26
#
27
# ========================================================================
28
#
29
# This script is used to generate the 'Rules.mk' file from the list
30
# of source file included below. If the list changes (e.g. to add a
31
# new source file), then add it here and rerun this script.
32
#
33
# ========================================================================
34
35
# Solaris compatibility: switch to a more POSIX-compliant /bin/sh.
36
if [ -z "$BR_SCRIPT_LOOP" ] ; then
37
BR_SCRIPT_LOOP=yes
38
export BR_SCRIPT_LOOP
39
if [ -x /usr/xpg6/bin/sh ] ; then
40
exec /usr/xpg6/bin/sh "$0" "$@"
41
fi
42
if [ -x /usr/xpg4/bin/sh ] ; then
43
exec /usr/xpg4/bin/sh "$0" "$@"
44
fi
45
fi
46
47
# Exit on first error.
48
set -e
49
50
# Source files. Please keep in alphabetical order.
51
coresrc=" \
52
src/settings.c \
53
src/aead/ccm.c \
54
src/aead/eax.c \
55
src/aead/gcm.c \
56
src/codec/ccopy.c \
57
src/codec/dec16be.c \
58
src/codec/dec16le.c \
59
src/codec/dec32be.c \
60
src/codec/dec32le.c \
61
src/codec/dec64be.c \
62
src/codec/dec64le.c \
63
src/codec/enc16be.c \
64
src/codec/enc16le.c \
65
src/codec/enc32be.c \
66
src/codec/enc32le.c \
67
src/codec/enc64be.c \
68
src/codec/enc64le.c \
69
src/codec/pemdec.c \
70
src/codec/pemenc.c \
71
src/ec/ec_all_m15.c \
72
src/ec/ec_all_m31.c \
73
src/ec/ec_c25519_i15.c \
74
src/ec/ec_c25519_i31.c \
75
src/ec/ec_c25519_m15.c \
76
src/ec/ec_c25519_m31.c \
77
src/ec/ec_c25519_m62.c \
78
src/ec/ec_c25519_m64.c \
79
src/ec/ec_curve25519.c \
80
src/ec/ec_default.c \
81
src/ec/ec_keygen.c \
82
src/ec/ec_p256_m15.c \
83
src/ec/ec_p256_m31.c \
84
src/ec/ec_p256_m62.c \
85
src/ec/ec_p256_m64.c \
86
src/ec/ec_prime_i15.c \
87
src/ec/ec_prime_i31.c \
88
src/ec/ec_pubkey.c \
89
src/ec/ec_secp256r1.c \
90
src/ec/ec_secp384r1.c \
91
src/ec/ec_secp521r1.c \
92
src/ec/ecdsa_atr.c \
93
src/ec/ecdsa_default_sign_asn1.c \
94
src/ec/ecdsa_default_sign_raw.c \
95
src/ec/ecdsa_default_vrfy_asn1.c \
96
src/ec/ecdsa_default_vrfy_raw.c \
97
src/ec/ecdsa_i15_bits.c \
98
src/ec/ecdsa_i15_sign_asn1.c \
99
src/ec/ecdsa_i15_sign_raw.c \
100
src/ec/ecdsa_i15_vrfy_asn1.c \
101
src/ec/ecdsa_i15_vrfy_raw.c \
102
src/ec/ecdsa_i31_bits.c \
103
src/ec/ecdsa_i31_sign_asn1.c \
104
src/ec/ecdsa_i31_sign_raw.c \
105
src/ec/ecdsa_i31_vrfy_asn1.c \
106
src/ec/ecdsa_i31_vrfy_raw.c \
107
src/ec/ecdsa_rta.c \
108
src/hash/dig_oid.c \
109
src/hash/dig_size.c \
110
src/hash/ghash_ctmul.c \
111
src/hash/ghash_ctmul32.c \
112
src/hash/ghash_ctmul64.c \
113
src/hash/ghash_pclmul.c \
114
src/hash/ghash_pwr8.c \
115
src/hash/md5.c \
116
src/hash/md5sha1.c \
117
src/hash/mgf1.c \
118
src/hash/multihash.c \
119
src/hash/sha1.c \
120
src/hash/sha2big.c \
121
src/hash/sha2small.c \
122
src/int/i15_add.c \
123
src/int/i15_bitlen.c \
124
src/int/i15_decmod.c \
125
src/int/i15_decode.c \
126
src/int/i15_decred.c \
127
src/int/i15_encode.c \
128
src/int/i15_fmont.c \
129
src/int/i15_iszero.c \
130
src/int/i15_moddiv.c \
131
src/int/i15_modpow.c \
132
src/int/i15_modpow2.c \
133
src/int/i15_montmul.c \
134
src/int/i15_mulacc.c \
135
src/int/i15_muladd.c \
136
src/int/i15_ninv15.c \
137
src/int/i15_reduce.c \
138
src/int/i15_rshift.c \
139
src/int/i15_sub.c \
140
src/int/i15_tmont.c \
141
src/int/i31_add.c \
142
src/int/i31_bitlen.c \
143
src/int/i31_decmod.c \
144
src/int/i31_decode.c \
145
src/int/i31_decred.c \
146
src/int/i31_encode.c \
147
src/int/i31_fmont.c \
148
src/int/i31_iszero.c \
149
src/int/i31_moddiv.c \
150
src/int/i31_modpow.c \
151
src/int/i31_modpow2.c \
152
src/int/i31_montmul.c \
153
src/int/i31_mulacc.c \
154
src/int/i31_muladd.c \
155
src/int/i31_ninv31.c \
156
src/int/i31_reduce.c \
157
src/int/i31_rshift.c \
158
src/int/i31_sub.c \
159
src/int/i31_tmont.c \
160
src/int/i32_add.c \
161
src/int/i32_bitlen.c \
162
src/int/i32_decmod.c \
163
src/int/i32_decode.c \
164
src/int/i32_decred.c \
165
src/int/i32_div32.c \
166
src/int/i32_encode.c \
167
src/int/i32_fmont.c \
168
src/int/i32_iszero.c \
169
src/int/i32_modpow.c \
170
src/int/i32_montmul.c \
171
src/int/i32_mulacc.c \
172
src/int/i32_muladd.c \
173
src/int/i32_ninv32.c \
174
src/int/i32_reduce.c \
175
src/int/i32_sub.c \
176
src/int/i32_tmont.c \
177
src/int/i62_modpow2.c \
178
src/kdf/hkdf.c \
179
src/kdf/shake.c \
180
src/mac/hmac.c \
181
src/mac/hmac_ct.c \
182
src/rand/aesctr_drbg.c \
183
src/rand/hmac_drbg.c \
184
src/rand/sysrng.c \
185
src/rsa/rsa_default_keygen.c \
186
src/rsa/rsa_default_modulus.c \
187
src/rsa/rsa_default_oaep_decrypt.c \
188
src/rsa/rsa_default_oaep_encrypt.c \
189
src/rsa/rsa_default_pkcs1_sign.c \
190
src/rsa/rsa_default_pkcs1_vrfy.c \
191
src/rsa/rsa_default_priv.c \
192
src/rsa/rsa_default_privexp.c \
193
src/rsa/rsa_default_pss_sign.c \
194
src/rsa/rsa_default_pss_vrfy.c \
195
src/rsa/rsa_default_pub.c \
196
src/rsa/rsa_default_pubexp.c \
197
src/rsa/rsa_i15_keygen.c \
198
src/rsa/rsa_i15_modulus.c \
199
src/rsa/rsa_i15_oaep_decrypt.c \
200
src/rsa/rsa_i15_oaep_encrypt.c \
201
src/rsa/rsa_i15_pkcs1_sign.c \
202
src/rsa/rsa_i15_pkcs1_vrfy.c \
203
src/rsa/rsa_i15_priv.c \
204
src/rsa/rsa_i15_privexp.c \
205
src/rsa/rsa_i15_pss_sign.c \
206
src/rsa/rsa_i15_pss_vrfy.c \
207
src/rsa/rsa_i15_pub.c \
208
src/rsa/rsa_i15_pubexp.c \
209
src/rsa/rsa_i31_keygen.c \
210
src/rsa/rsa_i31_keygen_inner.c \
211
src/rsa/rsa_i31_modulus.c \
212
src/rsa/rsa_i31_oaep_decrypt.c \
213
src/rsa/rsa_i31_oaep_encrypt.c \
214
src/rsa/rsa_i31_pkcs1_sign.c \
215
src/rsa/rsa_i31_pkcs1_vrfy.c \
216
src/rsa/rsa_i31_priv.c \
217
src/rsa/rsa_i31_privexp.c \
218
src/rsa/rsa_i31_pss_sign.c \
219
src/rsa/rsa_i31_pss_vrfy.c \
220
src/rsa/rsa_i31_pub.c \
221
src/rsa/rsa_i31_pubexp.c \
222
src/rsa/rsa_i32_oaep_decrypt.c \
223
src/rsa/rsa_i32_oaep_encrypt.c \
224
src/rsa/rsa_i32_pkcs1_sign.c \
225
src/rsa/rsa_i32_pkcs1_vrfy.c \
226
src/rsa/rsa_i32_priv.c \
227
src/rsa/rsa_i32_pss_sign.c \
228
src/rsa/rsa_i32_pss_vrfy.c \
229
src/rsa/rsa_i32_pub.c \
230
src/rsa/rsa_i62_keygen.c \
231
src/rsa/rsa_i62_oaep_decrypt.c \
232
src/rsa/rsa_i62_oaep_encrypt.c \
233
src/rsa/rsa_i62_pkcs1_sign.c \
234
src/rsa/rsa_i62_pkcs1_vrfy.c \
235
src/rsa/rsa_i62_priv.c \
236
src/rsa/rsa_i62_pss_sign.c \
237
src/rsa/rsa_i62_pss_vrfy.c \
238
src/rsa/rsa_i62_pub.c \
239
src/rsa/rsa_oaep_pad.c \
240
src/rsa/rsa_oaep_unpad.c \
241
src/rsa/rsa_pkcs1_sig_pad.c \
242
src/rsa/rsa_pkcs1_sig_unpad.c \
243
src/rsa/rsa_pss_sig_pad.c \
244
src/rsa/rsa_pss_sig_unpad.c \
245
src/rsa/rsa_ssl_decrypt.c \
246
src/ssl/prf.c \
247
src/ssl/prf_md5sha1.c \
248
src/ssl/prf_sha256.c \
249
src/ssl/prf_sha384.c \
250
src/ssl/ssl_ccert_single_ec.c \
251
src/ssl/ssl_ccert_single_rsa.c \
252
src/ssl/ssl_client.c \
253
src/ssl/ssl_client_default_rsapub.c \
254
src/ssl/ssl_client_full.c \
255
src/ssl/ssl_engine.c \
256
src/ssl/ssl_engine_default_aescbc.c \
257
src/ssl/ssl_engine_default_aesccm.c \
258
src/ssl/ssl_engine_default_aesgcm.c \
259
src/ssl/ssl_engine_default_chapol.c \
260
src/ssl/ssl_engine_default_descbc.c \
261
src/ssl/ssl_engine_default_ec.c \
262
src/ssl/ssl_engine_default_ecdsa.c \
263
src/ssl/ssl_engine_default_rsavrfy.c \
264
src/ssl/ssl_hashes.c \
265
src/ssl/ssl_hs_client.c \
266
src/ssl/ssl_hs_server.c \
267
src/ssl/ssl_io.c \
268
src/ssl/ssl_keyexport.c \
269
src/ssl/ssl_lru.c \
270
src/ssl/ssl_rec_cbc.c \
271
src/ssl/ssl_rec_ccm.c \
272
src/ssl/ssl_rec_chapol.c \
273
src/ssl/ssl_rec_gcm.c \
274
src/ssl/ssl_scert_single_ec.c \
275
src/ssl/ssl_scert_single_rsa.c \
276
src/ssl/ssl_server.c \
277
src/ssl/ssl_server_full_ec.c \
278
src/ssl/ssl_server_full_rsa.c \
279
src/ssl/ssl_server_mine2c.c \
280
src/ssl/ssl_server_mine2g.c \
281
src/ssl/ssl_server_minf2c.c \
282
src/ssl/ssl_server_minf2g.c \
283
src/ssl/ssl_server_minr2g.c \
284
src/ssl/ssl_server_minu2g.c \
285
src/ssl/ssl_server_minv2g.c \
286
src/symcipher/aes_big_cbcdec.c \
287
src/symcipher/aes_big_cbcenc.c \
288
src/symcipher/aes_big_ctr.c \
289
src/symcipher/aes_big_ctrcbc.c \
290
src/symcipher/aes_big_dec.c \
291
src/symcipher/aes_big_enc.c \
292
src/symcipher/aes_common.c \
293
src/symcipher/aes_ct.c \
294
src/symcipher/aes_ct64.c \
295
src/symcipher/aes_ct64_cbcdec.c \
296
src/symcipher/aes_ct64_cbcenc.c \
297
src/symcipher/aes_ct64_ctr.c \
298
src/symcipher/aes_ct64_ctrcbc.c \
299
src/symcipher/aes_ct64_dec.c \
300
src/symcipher/aes_ct64_enc.c \
301
src/symcipher/aes_ct_cbcdec.c \
302
src/symcipher/aes_ct_cbcenc.c \
303
src/symcipher/aes_ct_ctr.c \
304
src/symcipher/aes_ct_ctrcbc.c \
305
src/symcipher/aes_ct_dec.c \
306
src/symcipher/aes_ct_enc.c \
307
src/symcipher/aes_pwr8.c \
308
src/symcipher/aes_pwr8_cbcdec.c \
309
src/symcipher/aes_pwr8_cbcenc.c \
310
src/symcipher/aes_pwr8_ctr.c \
311
src/symcipher/aes_pwr8_ctrcbc.c \
312
src/symcipher/aes_small_cbcdec.c \
313
src/symcipher/aes_small_cbcenc.c \
314
src/symcipher/aes_small_ctr.c \
315
src/symcipher/aes_small_ctrcbc.c \
316
src/symcipher/aes_small_dec.c \
317
src/symcipher/aes_small_enc.c \
318
src/symcipher/aes_x86ni.c \
319
src/symcipher/aes_x86ni_cbcdec.c \
320
src/symcipher/aes_x86ni_cbcenc.c \
321
src/symcipher/aes_x86ni_ctr.c \
322
src/symcipher/aes_x86ni_ctrcbc.c \
323
src/symcipher/chacha20_ct.c \
324
src/symcipher/chacha20_sse2.c \
325
src/symcipher/des_ct.c \
326
src/symcipher/des_ct_cbcdec.c \
327
src/symcipher/des_ct_cbcenc.c \
328
src/symcipher/des_support.c \
329
src/symcipher/des_tab.c \
330
src/symcipher/des_tab_cbcdec.c \
331
src/symcipher/des_tab_cbcenc.c \
332
src/symcipher/poly1305_ctmul.c \
333
src/symcipher/poly1305_ctmul32.c \
334
src/symcipher/poly1305_ctmulq.c \
335
src/symcipher/poly1305_i15.c \
336
src/x509/asn1enc.c \
337
src/x509/encode_ec_pk8der.c \
338
src/x509/encode_ec_rawder.c \
339
src/x509/encode_rsa_pk8der.c \
340
src/x509/encode_rsa_rawder.c \
341
src/x509/skey_decoder.c \
342
src/x509/x509_decoder.c \
343
src/x509/x509_knownkey.c \
344
src/x509/x509_minimal.c \
345
src/x509/x509_minimal_full.c"
346
347
# Source files for the 'brssl' command-line tool.
348
toolssrc=" \
349
tools/brssl.c \
350
tools/certs.c \
351
tools/chain.c \
352
tools/client.c \
353
tools/errors.c \
354
tools/files.c \
355
tools/impl.c \
356
tools/keys.c \
357
tools/names.c \
358
tools/server.c \
359
tools/skey.c \
360
tools/sslio.c \
361
tools/ta.c \
362
tools/twrch.c \
363
tools/vector.c \
364
tools/verify.c \
365
tools/xmem.c"
366
367
# Source files the the 'testcrypto' command-line tool.
368
testcryptosrc=" \
369
test/test_crypto.c"
370
371
# Source files the the 'testspeed' command-line tool.
372
testspeedsrc=" \
373
test/test_speed.c"
374
375
# Source files the the 'testx509' command-line tool.
376
testx509src=" \
377
test/test_x509.c"
378
379
# Public header files.
380
headerspub=" \
381
inc/bearssl.h \
382
inc/bearssl_aead.h \
383
inc/bearssl_block.h \
384
inc/bearssl_ec.h \
385
inc/bearssl_hash.h \
386
inc/bearssl_hmac.h \
387
inc/bearssl_kdf.h \
388
inc/bearssl_pem.h \
389
inc/bearssl_prf.h \
390
inc/bearssl_rand.h \
391
inc/bearssl_rsa.h \
392
inc/bearssl_ssl.h \
393
inc/bearssl_x509.h"
394
395
# Private header files.
396
headerspriv=" \
397
src/config.h \
398
src/inner.h"
399
400
# Header files for the 'brssl' command-line tool.
401
headerstools=" \
402
tools/brssl.h"
403
404
# T0 compiler source code.
405
t0compsrc=" \
406
T0/BlobWriter.cs \
407
T0/CPU.cs \
408
T0/CodeElement.cs \
409
T0/CodeElementJump.cs \
410
T0/CodeElementUInt.cs \
411
T0/CodeElementUIntExpr.cs \
412
T0/CodeElementUIntInt.cs \
413
T0/CodeElementUIntUInt.cs \
414
T0/ConstData.cs \
415
T0/Opcode.cs \
416
T0/OpcodeCall.cs \
417
T0/OpcodeConst.cs \
418
T0/OpcodeGetLocal.cs \
419
T0/OpcodeJump.cs \
420
T0/OpcodeJumpIf.cs \
421
T0/OpcodeJumpIfNot.cs \
422
T0/OpcodeJumpUncond.cs \
423
T0/OpcodePutLocal.cs \
424
T0/OpcodeRet.cs \
425
T0/SType.cs \
426
T0/T0Comp.cs \
427
T0/TPointerBase.cs \
428
T0/TPointerBlob.cs \
429
T0/TPointerExpr.cs \
430
T0/TPointerNull.cs \
431
T0/TPointerXT.cs \
432
T0/TValue.cs \
433
T0/Word.cs \
434
T0/WordBuilder.cs \
435
T0/WordData.cs \
436
T0/WordInterpreted.cs \
437
T0/WordNative.cs"
438
439
t0compkern=" \
440
T0/kern.t0"
441
442
# Function to turn slashes into $P (macro for path separator).
443
escsep() {
444
printf '%s' "$1" | sed 's/\//$P/g'
445
}
446
447
# Create rules file.
448
rm -f Rules.mk
449
cat > Rules.mk <<EOF
450
# Automatically generated rules. Use 'mkrules.sh' to modify/regenerate.
451
EOF
452
453
(printf "\nOBJ ="
454
for f in $coresrc ; do
455
printf ' \\\n $(OBJDIR)$P%s' "$(basename "$f" .c)\$O"
456
done
457
printf "\nOBJBRSSL ="
458
for f in $toolssrc ; do
459
printf ' \\\n $(OBJDIR)$P%s' "$(basename "$f" .c)\$O"
460
done
461
printf "\nOBJTESTCRYPTO ="
462
for f in $testcryptosrc ; do
463
printf ' \\\n $(OBJDIR)$P%s' "$(basename "$f" .c)\$O"
464
done
465
printf "\nOBJTESTSPEED ="
466
for f in $testspeedsrc ; do
467
printf ' \\\n $(OBJDIR)$P%s' "$(basename "$f" .c)\$O"
468
done
469
printf "\nOBJTESTX509 ="
470
for f in $testx509src ; do
471
printf ' \\\n $(OBJDIR)$P%s' "$(basename "$f" .c)\$O"
472
done
473
printf "\nHEADERSPUB ="
474
for f in $headerspub ; do
475
printf " %s" "$(escsep "$f")"
476
done
477
printf "\nHEADERSPRIV = %s" '$(HEADERSPUB)'
478
for f in $headerspriv ; do
479
printf " %s" "$(escsep "$f")"
480
done
481
printf "\nHEADERSTOOLS = %s" '$(HEADERSPUB)'
482
for f in $headerstools ; do
483
printf " %s" "$(escsep "$f")"
484
done
485
printf "\nT0SRC ="
486
for f in $t0compsrc ; do
487
printf " %s" "$(escsep "$f")"
488
done
489
printf "\nT0KERN ="
490
for f in $t0kernsrc ; do
491
printf " %s" "$(escsep "$f")"
492
done
493
printf "\n") >> Rules.mk
494
495
cat >> Rules.mk <<EOF
496
497
all: \$(STATICLIB) \$(DLL) \$(TOOLS) \$(TESTS)
498
499
no:
500
501
lib: \$(BEARSSLLIB)
502
503
dll: \$(BEARSSLDLL)
504
505
tools: \$(BRSSL)
506
507
tests: \$(TESTCRYPTO) \$(TESTSPEED) \$(TESTX509)
508
509
T0: kT0
510
511
kT0: \$(T0COMP) src\$Pssl\$Pssl_hs_common.t0 src\$Pssl\$Pssl_hs_client.t0 src\$Pssl\$Pssl_hs_server.t0 src\$Px509\$Pasn1.t0 src\$Px509\$Pskey_decoder.t0 src\$Px509\$Px509_decoder.t0 src\$Px509\$Px509_minimal.t0
512
\$(RUNT0COMP) -o src\$Pcodec\$Ppemdec -r br_pem_decoder src\$Pcodec\$Ppemdec.t0
513
\$(RUNT0COMP) -o src\$Pssl\$Pssl_hs_client -r br_ssl_hs_client src\$Pssl\$Pssl_hs_common.t0 src\$Pssl\$Pssl_hs_client.t0
514
\$(RUNT0COMP) -o src\$Pssl\$Pssl_hs_server -r br_ssl_hs_server src\$Pssl\$Pssl_hs_common.t0 src\$Pssl\$Pssl_hs_server.t0
515
\$(RUNT0COMP) -o src\$Px509\$Pskey_decoder -r br_skey_decoder src\$Px509\$Pasn1.t0 src\$Px509\$Pskey_decoder.t0
516
\$(RUNT0COMP) -o src\$Px509\$Px509_decoder -r br_x509_decoder src\$Px509\$Pasn1.t0 src\$Px509\$Px509_decoder.t0
517
\$(RUNT0COMP) -o src\$Px509\$Px509_minimal -r br_x509_minimal src\$Px509\$Pasn1.t0 src\$Px509\$Px509_minimal.t0
518
519
\$(T0COMP): \$(T0SRC) \$(T0KERN)
520
\$(MKT0COMP)
521
522
clean:
523
-\$(RM) \$(OBJDIR)\$P*\$O
524
-\$(RM) \$(BEARSSLLIB) \$(BEARSSLDLL) \$(BRSSL) \$(TESTCRYPTO) \$(TESTSPEED) \$(TESTX509)
525
526
\$(OBJDIR):
527
-\$(MKDIR) \$(OBJDIR)
528
529
\$(BEARSSLLIB): \$(OBJDIR) \$(OBJ)
530
\$(AR) \$(ARFLAGS) \$(AROUT)\$(BEARSSLLIB) \$(OBJ)
531
532
\$(BEARSSLDLL): \$(OBJDIR) \$(OBJ)
533
\$(LDDLL) \$(LDDLLFLAGS) \$(LDDLLOUT)\$(BEARSSLDLL) \$(OBJ)
534
535
\$(BRSSL): \$(BEARSSLLIB) \$(OBJBRSSL)
536
\$(LD) \$(LDFLAGS) \$(LDOUT)\$(BRSSL) \$(OBJBRSSL) \$(BEARSSLLIB)
537
538
\$(TESTCRYPTO): \$(BEARSSLLIB) \$(OBJTESTCRYPTO)
539
\$(LD) \$(LDFLAGS) \$(LDOUT)\$(TESTCRYPTO) \$(OBJTESTCRYPTO) \$(BEARSSLLIB)
540
541
\$(TESTSPEED): \$(BEARSSLLIB) \$(OBJTESTSPEED)
542
\$(LD) \$(LDFLAGS) \$(LDOUT)\$(TESTSPEED) \$(OBJTESTSPEED) \$(BEARSSLLIB)
543
544
\$(TESTX509): \$(BEARSSLLIB) \$(OBJTESTX509)
545
\$(LD) \$(LDFLAGS) \$(LDOUT)\$(TESTX509) \$(OBJTESTX509) \$(BEARSSLLIB)
546
EOF
547
548
(for f in $coresrc ; do
549
b="$(basename "$f" .c)\$O"
550
g="$(escsep "$f")"
551
printf '\n$(OBJDIR)$P%s: %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g"
552
done
553
554
for f in $toolssrc ; do
555
b="$(basename "$f" .c)\$O"
556
g="$(escsep "$f")"
557
printf '\n$(OBJDIR)$P%s: %s $(HEADERSTOOLS)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g"
558
done
559
560
for f in $testcryptosrc $testspeedsrc ; do
561
b="$(basename "$f" .c)\$O"
562
g="$(escsep "$f")"
563
printf '\n$(OBJDIR)$P%s: %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g"
564
done
565
566
for f in $testx509src ; do
567
b="$(basename "$f" .c)\$O"
568
g="$(escsep "$f")"
569
printf '\n$(OBJDIR)$P%s: %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) -DSRCDIRNAME=".." $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g"
570
done) >> Rules.mk
571
572