Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/secure/lib/libcrypto/Makefile.asm
39534 views
1
# Use this to help generate the asm *.S files after an import. It is not
2
# perfect by any means, but does what is needed.
3
# Do a 'make -f Makefile.asm all' and it will generate *.S. Move them
4
# to the arch subdir, and correct any exposed paths.
5
6
.include "Makefile.inc"
7
8
.if defined(ASM_aarch64)
9
10
.PATH: ${LCRYPTO_SRC}/crypto \
11
${LCRYPTO_SRC}/crypto/aes/asm \
12
${LCRYPTO_SRC}/crypto/bn/asm \
13
${LCRYPTO_SRC}/crypto/chacha/asm \
14
${LCRYPTO_SRC}/crypto/ec/asm \
15
${LCRYPTO_SRC}/crypto/md5/asm \
16
${LCRYPTO_SRC}/crypto/modes/asm \
17
${LCRYPTO_SRC}/crypto/poly1305/asm \
18
${LCRYPTO_SRC}/crypto/sha/asm \
19
${LCRYPTO_SRC}/crypto/sm3/asm \
20
${LCRYPTO_SRC}/crypto/sm4/asm
21
22
PERLPATH= -I${LCRYPTO_SRC}/crypto/perlasm
23
24
# cpuid
25
SRCS= arm64cpuid.pl
26
27
# aes
28
SRCS+= aesv8-armx.pl bsaes-armv8.pl vpaes-armv8.pl
29
30
# bn
31
SRCS+= armv8-mont.pl
32
33
# chacha
34
SRCS+= chacha-armv8.pl chacha-armv8-sve.pl
35
36
# ec
37
SRCS+= ecp_nistz256-armv8.pl ecp_sm2p256-armv8.pl
38
39
# md5
40
SRCS+= md5-aarch64.pl
41
42
# modes
43
SRCS+= ghashv8-armx.pl aes-gcm-armv8_64.pl aes-gcm-armv8-unroll8_64.pl
44
45
# poly1305
46
SRCS+= poly1305-armv8.pl
47
48
# sha
49
SRCS+= keccak1600-armv8.pl sha1-armv8.pl sha512-armv8.pl
50
51
# sm3
52
SRCS+= sm3-armv8.pl
53
54
# sm4
55
SRCS+= sm4-armv8.pl vpsm4-armv8.pl vpsm4_ex-armv8.pl
56
57
ASM= ${SRCS:R:S/$/.S/} sha256-armv8.S
58
59
all: ${ASM}
60
rm -f ${ASM:R:S/$/.s/}
61
${CP} ${LCRYPTO_SRC}/crypto/arm_arch.h ../arm_arch.h
62
63
CLEANFILES= ${ASM}
64
.SUFFIXES: .pl
65
66
sha256-armv8.S: sha512-armv8.pl
67
env CC=cc perl ${.ALLSRC} linux64 ${.TARGET:R:S/$/.s/}
68
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
69
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
70
71
.pl.S:
72
env CC=cc perl ${.IMPSRC} linux64 ${.TARGET:R:S/$/.s/}
73
( echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T}. */' ;\
74
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
75
76
.elif defined(ASM_amd64)
77
78
.PATH: ${LCRYPTO_SRC}/crypto \
79
${LCRYPTO_SRC}/crypto/aes/asm \
80
${LCRYPTO_SRC}/crypto/bn/asm \
81
${LCRYPTO_SRC}/crypto/camellia/asm \
82
${LCRYPTO_SRC}/crypto/chacha/asm \
83
${LCRYPTO_SRC}/crypto/ec/asm \
84
${LCRYPTO_SRC}/crypto/md5/asm \
85
${LCRYPTO_SRC}/crypto/modes/asm \
86
${LCRYPTO_SRC}/crypto/poly1305/asm \
87
${LCRYPTO_SRC}/crypto/rc4/asm \
88
${LCRYPTO_SRC}/crypto/sha/asm \
89
${LCRYPTO_SRC}/crypto/whrlpool/asm \
90
${LCRYPTO_SRC}/engines/asm
91
92
# cpuid
93
SRCS= x86_64cpuid.pl
94
95
# aes
96
SRCS+= aes-x86_64.pl \
97
aesni-mb-x86_64.pl aesni-sha1-x86_64.pl aesni-sha256-x86_64.pl \
98
aesni-x86_64.pl aesni-xts-avx512.pl bsaes-x86_64.pl vpaes-x86_64.pl
99
100
# bn
101
SRCS+= rsaz-avx2.pl rsaz-x86_64.pl \
102
rsaz-2k-avx512.pl rsaz-2k-avxifma.pl \
103
rsaz-3k-avx512.pl rsaz-3k-avxifma.pl \
104
rsaz-4k-avx512.pl rsaz-4k-avxifma.pl \
105
x86_64-gf2m.pl x86_64-mont.pl x86_64-mont5.pl
106
107
# camellia
108
SRCS+= cmll-x86_64.pl
109
110
# chacha
111
SRCS+= chacha-x86_64.pl
112
113
# ec
114
SRCS+= ecp_nistz256-x86_64.pl x25519-x86_64.pl
115
116
# md5
117
SRCS+= md5-x86_64.pl
118
119
# modes
120
SRCS+= aes-gcm-avx512.pl aesni-gcm-x86_64.pl ghash-x86_64.pl
121
122
# poly1305
123
SRCS+= poly1305-x86_64.pl
124
125
# rc4
126
SRCS+= rc4-md5-x86_64.pl rc4-x86_64.pl
127
128
# sha
129
SRCS+= keccak1600-x86_64.pl sha1-mb-x86_64.pl sha1-x86_64.pl \
130
sha256-mb-x86_64.pl
131
132
# whrlpool
133
SRCS+= wp-x86_64.pl
134
135
# engines
136
SRCS+= e_padlock-x86_64.pl
137
138
SHA_ASM= sha256-x86_64 sha512-x86_64
139
SHA_SRC= sha512-x86_64.pl
140
SHA_TMP= ${SHA_ASM:S/$/.s/}
141
142
ASM= ${SRCS:R:S/$/.S/} ${SHA_ASM:S/$/.S/}
143
144
all: ${ASM}
145
rm -f ${SHA_TMP}
146
147
CLEANFILES= ${ASM}
148
.SUFFIXES: .pl
149
150
.pl.S:
151
( echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T}. */' ;\
152
env CC=cc perl ${.IMPSRC} elf ) > ${.TARGET}
153
154
${SHA_TMP}: ${SHA_SRC}
155
env CC=cc perl ${.ALLSRC} elf ${.TARGET}
156
157
.for s in ${SHA_ASM}
158
${s}.S: ${s}.s
159
( echo '/* Do not modify. This file is auto-generated from ${SHA_SRC}. */' ;\
160
cat ${s}.s ) > ${.TARGET}
161
.endfor
162
163
.elif defined(ASM_arm)
164
165
.PATH: ${LCRYPTO_SRC}/crypto \
166
${LCRYPTO_SRC}/crypto/aes/asm \
167
${LCRYPTO_SRC}/crypto/bn/asm \
168
${LCRYPTO_SRC}/crypto/chacha/asm \
169
${LCRYPTO_SRC}/crypto/ec/asm \
170
${LCRYPTO_SRC}/crypto/modes/asm \
171
${LCRYPTO_SRC}/crypto/poly1305/asm \
172
${LCRYPTO_SRC}/crypto/sha/asm
173
174
PERLPATH= -I${LCRYPTO_SRC}/crypto/perlasm
175
176
# cpuid
177
SRCS= armv4cpuid.pl
178
179
# aes
180
SRCS+= aes-armv4.pl aesv8-armx.pl bsaes-armv7.pl
181
182
# bn
183
SRCS+= armv4-mont.pl armv4-gf2m.pl
184
185
# chacha
186
SRCS+= chacha-armv4.pl
187
188
# ec
189
SRCS+= ecp_nistz256-armv4.pl
190
191
# modes
192
SRCS+= ghash-armv4.pl ghashv8-armx.pl
193
194
# poly1305
195
SRCS+= poly1305-armv4.pl
196
197
# sha
198
SRCS+= keccak1600-armv4.pl sha1-armv4-large.pl sha256-armv4.pl sha512-armv4.pl
199
200
ASM= ${SRCS:R:S/$/.S/}
201
202
all: ${ASM}
203
rm -f ${ASM:R:S/$/.s/}
204
${CP} ${LCRYPTO_SRC}/crypto/arm_arch.h ../arm_arch.h
205
206
CLEANFILES= ${ASM}
207
.SUFFIXES: .pl
208
209
.pl.S:
210
env CC=cc perl ${.IMPSRC} linux32 ${.TARGET:R:S/$/.s/}
211
( echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T}. */' ;\
212
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
213
214
.elif defined(ASM_i386)
215
216
.PATH: ${LCRYPTO_SRC}/crypto \
217
${LCRYPTO_SRC}/crypto/aes/asm \
218
${LCRYPTO_SRC}/crypto/bf/asm \
219
${LCRYPTO_SRC}/crypto/bn/asm \
220
${LCRYPTO_SRC}/crypto/camellia/asm \
221
${LCRYPTO_SRC}/crypto/cast/asm \
222
${LCRYPTO_SRC}/crypto/chacha/asm \
223
${LCRYPTO_SRC}/crypto/des/asm \
224
${LCRYPTO_SRC}/crypto/ec/asm \
225
${LCRYPTO_SRC}/crypto/md5/asm \
226
${LCRYPTO_SRC}/crypto/modes/asm \
227
${LCRYPTO_SRC}/crypto/poly1305/asm \
228
${LCRYPTO_SRC}/crypto/rc4/asm \
229
${LCRYPTO_SRC}/crypto/rc5/asm \
230
${LCRYPTO_SRC}/crypto/ripemd/asm \
231
${LCRYPTO_SRC}/crypto/sha/asm \
232
${LCRYPTO_SRC}/crypto/whrlpool/asm \
233
${LCRYPTO_SRC}/engines/asm
234
235
#PERLPATH= -I${LCRYPTO_SRC}/crypto/des/asm -I${LCRYPTO_SRC}/crypto/perlasm
236
CFLAGS= -DOPENSSL_IA32_SSE2
237
238
# cpuid
239
SRCS= x86cpuid.pl
240
241
# aes
242
SRCS+= aes-586.pl aesni-x86.pl vpaes-x86.pl
243
244
# blowfish
245
SRCS+= bf-586.pl
246
247
# bn
248
SRCS+= bn-586.pl co-586.pl x86-gf2m.pl x86-mont.pl
249
250
# camellia
251
SRCS+= cmll-x86.pl
252
253
# cast
254
SRCS+= cast-586.pl
255
256
# chacha
257
SRCS+= chacha-x86.pl
258
259
# des
260
SRCS+= crypt586.pl des-586.pl
261
262
# ec
263
SRCS+= ecp_nistz256-x86.pl
264
265
# md5
266
SRCS+= md5-586.pl
267
268
# modes
269
SRCS+= ghash-x86.pl
270
271
# poly1305
272
SRCS+= poly1305-x86.pl
273
274
# rc4
275
SRCS+= rc4-586.pl
276
277
# rc5
278
SRCS+= rc5-586.pl
279
280
# ripemd
281
SRCS+= rmd-586.pl
282
283
# sha
284
SRCS+= sha1-586.pl sha256-586.pl sha512-586.pl
285
286
# whrlpool
287
SRCS+= wp-mmx.pl
288
289
# engines
290
SRCS+= e_padlock-x86.pl
291
292
ASM= ${SRCS:R:S/$/.S/}
293
294
all: ${ASM}
295
296
CLEANFILES= ${ASM}
297
.SUFFIXES: .pl
298
299
.pl.S:
300
( echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T}. */' ;\
301
echo '#ifdef PIC' ;\
302
env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} -fpic /dev/stdout ;\
303
echo '#else' ;\
304
env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} /dev/stdout ;\
305
echo '#endif' ) > ${.TARGET}
306
307
.elif defined(ASM_powerpc)
308
309
.PATH: ${LCRYPTO_SRC}/crypto \
310
${LCRYPTO_SRC}/crypto/aes/asm \
311
${LCRYPTO_SRC}/crypto/bn/asm \
312
${LCRYPTO_SRC}/crypto/chacha/asm \
313
${LCRYPTO_SRC}/crypto/modes/asm \
314
${LCRYPTO_SRC}/crypto/poly1305/asm \
315
${LCRYPTO_SRC}/crypto/sha/asm
316
317
PERLPATH= -I${LCRYPTO_SRC}/crypto/perlasm
318
319
#cpuid
320
SRCS= ppccpuid.pl
321
322
#bn
323
SRCS+= ppc.pl ppc-mont.pl
324
325
#aes
326
SRCS+= aes-ppc.pl vpaes-ppc.pl aesp8-ppc.pl
327
328
#sha1
329
SRCS+= sha1-ppc.pl sha512-ppc.pl sha512p8-ppc.pl
330
331
#modes
332
SRCS+= aes-gcm-ppc.pl ghashp8-ppc.pl
333
334
#chacha
335
SRCS+= chacha-ppc.pl chachap10-ppc.pl
336
337
#poly1305
338
SRCS+= poly1305-ppc.pl poly1305-ppcfp.pl
339
340
ASM= ${SRCS:R:S/$/.S/} bn-ppc.S sha256-ppc.S sha256p8-ppc.S
341
342
all: ${ASM}
343
rm -f ${ASM:R:S/$/.s/}
344
345
CLEANFILES= ${ASM}
346
.SUFFIXES: .pl
347
348
bn-ppc.S: ppc.pl
349
env CC=cc perl ${.ALLSRC} linux32 ${.TARGET:R:S/$/.s/}
350
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
351
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
352
353
sha256-ppc.S: sha512-ppc.pl
354
env CC=cc perl ${.ALLSRC} linux32 ${.TARGET:R:S/$/.s/}
355
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
356
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
357
358
sha256p8-ppc.S: sha512p8-ppc.pl
359
env CC=cc perl ${.ALLSRC} linux32 ${.TARGET:R:S/$/.s/}
360
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
361
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
362
363
.pl.S:
364
env CC=cc perl ${.IMPSRC} linux32 ${.TARGET:R:S/$/.s/}
365
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
366
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
367
368
.elif defined(ASM_powerpc64)
369
370
.PATH: ${LCRYPTO_SRC}/crypto \
371
${LCRYPTO_SRC}/crypto/aes/asm \
372
${LCRYPTO_SRC}/crypto/bn/asm \
373
${LCRYPTO_SRC}/crypto/chacha/asm \
374
${LCRYPTO_SRC}/crypto/ec/asm \
375
${LCRYPTO_SRC}/crypto/modes/asm \
376
${LCRYPTO_SRC}/crypto/poly1305/asm \
377
${LCRYPTO_SRC}/crypto/sha/asm
378
379
PERLPATH= -I${LCRYPTO_SRC}/crypto/perlasm
380
381
#cpuid
382
SRCS= ppccpuid.pl
383
384
#bn
385
SRCS+= ppc.pl ppc-mont.pl
386
387
#aes
388
SRCS+= aes-ppc.pl vpaes-ppc.pl aesp8-ppc.pl
389
390
#sha1
391
SRCS+= sha1-ppc.pl sha512-ppc.pl sha512p8-ppc.pl
392
393
#modes
394
SRCS+= aes-gcm-ppc.pl ghashp8-ppc.pl
395
396
#chacha
397
SRCS+= chacha-ppc.pl chachap10-ppc.pl
398
399
#poly1305
400
SRCS+= poly1305-ppc.pl poly1305-ppcfp.pl
401
402
#ec
403
SRCS+= ecp_nistp384-ppc64.pl ecp_nistp521-ppc64.pl ecp_nistz256-ppc64.pl x25519-ppc64.pl
404
405
406
#keccak1600
407
SRCS+= keccak1600-ppc64.pl
408
409
ASM= ${SRCS:R:S/$/.S/} bn-ppc.S sha256-ppc.S sha256p8-ppc.S
410
411
all: ${ASM}
412
rm -f ${ASM:R:S/$/.s/}
413
414
CLEANFILES= ${ASM}
415
.SUFFIXES: .pl
416
417
bn-ppc.S: ppc.pl
418
env CC=cc perl ${.ALLSRC} linux64v2 ${.TARGET:R:S/$/.s/}
419
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
420
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
421
422
sha256-ppc.S: sha512-ppc.pl
423
env CC=cc perl ${.ALLSRC} linux64v2 ${.TARGET:R:S/$/.s/}
424
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
425
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
426
427
sha256p8-ppc.S: sha512p8-ppc.pl
428
env CC=cc perl ${.ALLSRC} linux64v2 ${.TARGET:R:S/$/.s/}
429
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
430
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
431
432
.pl.S:
433
env CC=cc perl ${.IMPSRC} linux64v2 ${.TARGET:R:S/$/.s/}
434
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
435
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
436
437
.elif defined(ASM_powerpc64le)
438
439
.PATH: ${LCRYPTO_SRC}/crypto \
440
${LCRYPTO_SRC}/crypto/aes/asm \
441
${LCRYPTO_SRC}/crypto/bn/asm \
442
${LCRYPTO_SRC}/crypto/chacha/asm \
443
${LCRYPTO_SRC}/crypto/ec/asm \
444
${LCRYPTO_SRC}/crypto/modes/asm \
445
${LCRYPTO_SRC}/crypto/poly1305/asm \
446
${LCRYPTO_SRC}/crypto/sha/asm
447
448
PERLPATH= -I${LCRYPTO_SRC}/crypto/perlasm
449
450
#cpuid
451
SRCS= ppccpuid.pl
452
453
#bn
454
SRCS+= ppc.pl ppc-mont.pl
455
456
#aes
457
SRCS+= aes-ppc.pl vpaes-ppc.pl aesp8-ppc.pl
458
459
#sha1
460
SRCS+= sha1-ppc.pl sha512-ppc.pl sha512p8-ppc.pl
461
462
#modes
463
SRCS+= aes-gcm-ppc.pl ghashp8-ppc.pl
464
465
#chacha
466
SRCS+= chacha-ppc.pl chachap10-ppc.pl
467
468
#poly1305
469
SRCS+= poly1305-ppc.pl poly1305-ppcfp.pl
470
471
#ec
472
SRCS+= ecp_nistp384-ppc64.pl ecp_nistp521-ppc64.pl ecp_nistz256-ppc64.pl x25519-ppc64.pl
473
474
#keccak1600
475
SRCS+= keccak1600-ppc64.pl
476
477
ASM= ${SRCS:R:S/$/.S/} bn-ppc.S sha256-ppc.S sha256p8-ppc.S
478
479
all: ${ASM}
480
rm -f ${ASM:R:S/$/.s/}
481
482
CLEANFILES= ${ASM}
483
.SUFFIXES: .pl
484
485
bn-ppc.S: ppc.pl
486
env CC=cc perl ${.ALLSRC} linux64le ${.TARGET:R:S/$/.s/}
487
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
488
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
489
490
sha256-ppc.S: sha512-ppc.pl
491
env CC=cc perl ${.ALLSRC} linux64le ${.TARGET:R:S/$/.s/}
492
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
493
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
494
495
sha256p8-ppc.S: sha512p8-ppc.pl
496
env CC=cc perl ${.ALLSRC} linux64le ${.TARGET:R:S/$/.s/}
497
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
498
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
499
500
.pl.S:
501
env CC=cc perl ${.IMPSRC} linux64le ${.TARGET:R:S/$/.s/}
502
( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
503
cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
504
505
.endif
506
507
.include <bsd.prog.mk>
508
509