]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/Makefile.asm
MFV r316902: 7745 print error if lzc_* is called before libzfs_core_init
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / Makefile.asm
1 # $FreeBSD$
2 # Use this to help generate the asm *.S files after an import.  It is not
3 # perfect by any means, but does what is needed.
4 # Do a 'make -f Makefile.asm all' and it will generate *.S.  Move them
5 # to the arch subdir, and correct any exposed paths and $ FreeBSD $ tags.
6
7 .include "Makefile.inc"
8
9 .if defined(ASM_aarch64)
10
11 .PATH:  ${LCRYPTO_SRC}/crypto \
12         ${LCRYPTO_SRC}/crypto/aes/asm \
13         ${LCRYPTO_SRC}/crypto/modes/asm \
14         ${LCRYPTO_SRC}/crypto/sha/asm
15
16 PERLPATH=       -I${LCRYPTO_SRC}/crypto/perlasm
17
18 # aes
19 SRCS=   aesv8-armx.pl
20
21 # modes
22 SRCS+=  ghashv8-armx.pl
23
24 # sha
25 SRCS+=  sha1-armv8.pl sha512-armv8.pl
26
27 ASM=    ${SRCS:R:S/$/.S/} sha256-armv8.S
28
29 all:    ${ASM}
30
31 CLEANFILES=     ${ASM} ${SRCS:R:S/$/.s/} sha256-armv8.s
32 .SUFFIXES:      .pl
33
34 sha256-armv8.S: sha512-armv8.pl
35         env CC=cc perl ${.ALLSRC} 64 ${.TARGET:R:S/$/.s/}
36         ( echo '/* $$'FreeBSD'$$ */' ;\
37         echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T:R:S/$/.pl/}. */' ;\
38         cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
39
40 .pl.S:
41         env CC=cc perl ${.IMPSRC} 64 ${.TARGET:R:S/$/.s/}
42         ( echo '/* $$'FreeBSD'$$ */' ;\
43         echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T:R:S/$/.pl/}. */' ;\
44         cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
45
46 .elif defined(ASM_amd64)
47
48 .PATH:  ${LCRYPTO_SRC}/crypto \
49         ${LCRYPTO_SRC}/crypto/aes/asm \
50         ${LCRYPTO_SRC}/crypto/bn/asm \
51         ${LCRYPTO_SRC}/crypto/camellia/asm \
52         ${LCRYPTO_SRC}/crypto/ec/asm \
53         ${LCRYPTO_SRC}/crypto/md5/asm \
54         ${LCRYPTO_SRC}/crypto/modes/asm \
55         ${LCRYPTO_SRC}/crypto/rc4/asm \
56         ${LCRYPTO_SRC}/crypto/sha/asm \
57         ${LCRYPTO_SRC}/crypto/whrlpool/asm
58
59 # aes
60 SRCS=   aes-x86_64.pl aesni-mb-x86_64.pl aesni-sha1-x86_64.pl \
61         aesni-sha256-x86_64.pl aesni-x86_64.pl bsaes-x86_64.pl \
62         vpaes-x86_64.pl
63
64 # bn
65 SRCS+=  rsaz-avx2.pl rsaz-x86_64.pl x86_64-gf2m.pl x86_64-mont.pl \
66         x86_64-mont5.pl
67
68 # camellia
69 SRCS+=  cmll-x86_64.pl
70
71 # ec
72 SRCS+=  ecp_nistz256-x86_64.pl
73
74 # md5
75 SRCS+=  md5-x86_64.pl
76
77 # modes
78 SRCS+=  aesni-gcm-x86_64.pl ghash-x86_64.pl
79
80 # rc4
81 SRCS+=  rc4-md5-x86_64.pl rc4-x86_64.pl
82
83 # sha
84 SRCS+=  sha1-mb-x86_64.pl sha1-x86_64.pl sha256-mb-x86_64.pl
85
86 # whrlpool
87 SRCS+=  wp-x86_64.pl
88
89 # cpuid
90 SRCS+=  x86_64cpuid.pl
91
92 SHA_ASM=        sha256-x86_64 sha512-x86_64
93 SHA_SRC=        sha512-x86_64.pl
94 SHA_TMP=        ${SHA_ASM:S/$/.s/}
95
96 ASM=    ${SRCS:R:S/$/.S/} ${SHA_ASM:S/$/.S/}
97
98 all:    ${ASM}
99
100 CLEANFILES=     ${ASM} ${SHA_ASM:S/$/.s/}
101 .SUFFIXES:      .pl
102
103 .pl.S:
104         ( echo '/* $$'FreeBSD'$$ */' ;\
105         echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T}. */' ;\
106         env CC=cc perl ${.IMPSRC} elf ) > ${.TARGET}
107
108 ${SHA_TMP}: ${SHA_SRC}
109         env CC=cc perl ${.ALLSRC} elf ${.TARGET}
110
111 .for s in ${SHA_ASM}
112 ${s}.S: ${s}.s
113         ( echo '/* $$'FreeBSD'$$ */' ;\
114         echo '/* Do not modify. This file is auto-generated from ${SHA_SRC}. */' ;\
115         cat ${s}.s ) > ${.TARGET}
116 .endfor
117
118 .elif defined(ASM_arm)
119
120 .PATH:  ${LCRYPTO_SRC}/crypto \
121         ${LCRYPTO_SRC}/crypto/aes/asm \
122         ${LCRYPTO_SRC}/crypto/bn/asm \
123         ${LCRYPTO_SRC}/crypto/modes/asm \
124         ${LCRYPTO_SRC}/crypto/sha/asm
125
126 PERLPATH=       -I${LCRYPTO_SRC}/crypto/perlasm
127
128 # aes
129 SRCS=   aesv8-armx.pl bsaes-armv7.pl
130
131 # bn
132 SRCS+=  armv4-mont.pl armv4-gf2m.pl
133
134 # modes
135 SRCS+=  ghash-armv4.pl ghashv8-armx.pl
136
137 # sha
138 SRCS+=  sha1-armv4-large.pl sha256-armv4.pl sha512-armv4.pl
139
140 ASM=    aes-armv4.S ${SRCS:R:S/$/.S/}
141
142 all:    ${ASM}
143
144 CLEANFILES=     ${ASM} ${SRCS:R:S/$/.s/}
145 .SUFFIXES:      .pl
146
147 aes-armv4.S:    aes-armv4.pl
148         ( echo '/* $$'FreeBSD'$$ */' ;\
149         echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
150         env CC=cc perl ${.ALLSRC} elf ) > ${.TARGET}
151
152 .pl.S:
153         env CC=cc perl ${.IMPSRC} elf ${.TARGET:R:S/$/.s/}
154         ( echo '/* $$'FreeBSD'$$ */' ;\
155         echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T:R:S/$/.pl/}. */' ;\
156         cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
157
158 .elif defined(ASM_i386)
159
160 .PATH:  ${LCRYPTO_SRC}/crypto \
161         ${LCRYPTO_SRC}/crypto/aes/asm \
162         ${LCRYPTO_SRC}/crypto/bf/asm \
163         ${LCRYPTO_SRC}/crypto/bn/asm \
164         ${LCRYPTO_SRC}/crypto/camellia/asm \
165         ${LCRYPTO_SRC}/crypto/des/asm \
166         ${LCRYPTO_SRC}/crypto/md5/asm \
167         ${LCRYPTO_SRC}/crypto/modes/asm \
168         ${LCRYPTO_SRC}/crypto/rc4/asm \
169         ${LCRYPTO_SRC}/crypto/rc5/asm \
170         ${LCRYPTO_SRC}/crypto/ripemd/asm \
171         ${LCRYPTO_SRC}/crypto/sha/asm \
172         ${LCRYPTO_SRC}/crypto/whrlpool/asm
173
174 PERLPATH=       -I${LCRYPTO_SRC}/crypto/des/asm -I${LCRYPTO_SRC}/crypto/perlasm
175
176 # aes
177 SRCS=   aes-586.pl aesni-x86.pl vpaes-x86.pl
178
179 # blowfish
180 SRCS+=  bf-586.pl bf-686.pl
181
182 # bn
183 SRCS+=  bn-586.pl co-586.pl x86-gf2m.pl x86-mont.pl
184
185 # camellia
186 SRCS+=  cmll-x86.pl
187
188 # des
189 SRCS+=  crypt586.pl des-586.pl
190
191 # md5
192 SRCS+=  md5-586.pl
193
194 # modes
195 SRCS+=  ghash-x86.pl
196
197 # rc4
198 SRCS+=  rc4-586.pl
199
200 # rc5
201 SRCS+=  rc5-586.pl
202
203 # ripemd
204 SRCS+=  rmd-586.pl
205
206 # sha
207 SRCS+=  sha1-586.pl sha256-586.pl sha512-586.pl
208
209 # whrlpool
210 SRCS+=  wp-mmx.pl
211
212 # cpuid
213 SRCS+=  x86cpuid.pl
214
215 ASM=    ${SRCS:R:S/$/.S/}
216
217 all:    ${ASM}
218
219 CLEANFILES=     ${ASM}
220 .SUFFIXES:      .pl
221
222 .pl.S:
223         ( echo '/* $$'FreeBSD'$$ */' ;\
224         echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T}. */' ;\
225         echo '#ifdef PIC' ;\
226         env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} -fpic -DPIC ;\
227         echo '#else' ;\
228         env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} ;\
229         echo '#endif') |\
230         sed -E 's|(\.file[[:blank:]]+)".*"|\1"${.TARGET}"|' > ${.TARGET}
231 .endif
232
233 .include <bsd.prog.mk>