Makefile.asm revision 305152
195967Speter# $FreeBSD: stable/11/secure/lib/libcrypto/Makefile.asm 305152 2016-08-31 20:30:49Z jkim $
2299389Sjkim# Use this to help generate the asm *.S files after an import.  It is not
395967Speter# perfect by any means, but does what is needed.
4299389Sjkim# Do a 'make -f Makefile.asm all' and it will generate *.S.  Move them
5299389Sjkim# to the arch subdir, and correct any exposed paths and $ FreeBSD $ tags.
695967Speter
795967Speter.include "Makefile.inc"
895967Speter
9305150Sjkim.if defined(ASM_amd64)
10106538Sobrien
11238405Sjkim.PATH:	${LCRYPTO_SRC}/crypto \
12238405Sjkim	${LCRYPTO_SRC}/crypto/aes/asm \
13238405Sjkim	${LCRYPTO_SRC}/crypto/bn/asm \
14238405Sjkim	${LCRYPTO_SRC}/crypto/camellia/asm \
15290207Sjkim	${LCRYPTO_SRC}/crypto/ec/asm \
16238405Sjkim	${LCRYPTO_SRC}/crypto/md5/asm \
17238405Sjkim	${LCRYPTO_SRC}/crypto/modes/asm \
18238405Sjkim	${LCRYPTO_SRC}/crypto/rc4/asm \
19238405Sjkim	${LCRYPTO_SRC}/crypto/sha/asm \
20238405Sjkim	${LCRYPTO_SRC}/crypto/whrlpool/asm
21238405Sjkim
22238405Sjkim# aes
23290207SjkimSRCS=	aes-x86_64.pl aesni-mb-x86_64.pl aesni-sha1-x86_64.pl \
24290207Sjkim	aesni-sha256-x86_64.pl aesni-x86_64.pl bsaes-x86_64.pl \
25238405Sjkim	vpaes-x86_64.pl
26238405Sjkim
27238405Sjkim# bn
28290207SjkimSRCS+=	rsaz-avx2.pl rsaz-x86_64.pl x86_64-gf2m.pl x86_64-mont.pl \
29290207Sjkim	x86_64-mont5.pl
30238405Sjkim
31238405Sjkim# camellia
32238405SjkimSRCS+=	cmll-x86_64.pl
33238405Sjkim
34290207Sjkim# ec
35290207SjkimSRCS+=	ecp_nistz256-x86_64.pl
36290207Sjkim
37238405Sjkim# md5
38238405SjkimSRCS+=	md5-x86_64.pl
39238405Sjkim
40238405Sjkim# modes
41290207SjkimSRCS+=	aesni-gcm-x86_64.pl ghash-x86_64.pl
42238405Sjkim
43238405Sjkim# rc4
44238405SjkimSRCS+=	rc4-md5-x86_64.pl rc4-x86_64.pl
45238405Sjkim
46238405Sjkim# sha
47299479SjkimSRCS+=	sha1-mb-x86_64.pl sha1-x86_64.pl sha256-mb-x86_64.pl
48238405Sjkim
49238405Sjkim# whrlpool
50238405SjkimSRCS+=	wp-x86_64.pl
51238405Sjkim
52299479Sjkim# cpuid
53299479SjkimSRCS+=	x86_64cpuid.pl
54238405Sjkim
55299479SjkimSHA_ASM=	sha256-x86_64 sha512-x86_64
56299479SjkimSHA_SRC=	sha512-x86_64.pl
57299479SjkimSHA_TMP=	${SHA_ASM:S/$/.s/}
58299479Sjkim
59299479SjkimASM=	${SRCS:R:S/$/.S/} ${SHA_ASM:S/$/.S/}
60299479Sjkim
61238405Sjkimall:	${ASM}
62238405Sjkim
63299479SjkimCLEANFILES=	${ASM} ${SHA_ASM:S/$/.s/}
64299479Sjkim.SUFFIXES:	.pl
65238405Sjkim
66299479Sjkim.pl.S:
67299479Sjkim	( echo '# $$'FreeBSD'$$' ;\
68299479Sjkim	echo '# Do not modify. This file is auto-generated from ${.IMPSRC:T}.' ;\
69299480Sjkim	env CC=cc perl ${.IMPSRC} elf ) > ${.TARGET}
70238405Sjkim
71299479Sjkim${SHA_TMP}: ${SHA_SRC}
72299480Sjkim	env CC=cc perl ${.ALLSRC} elf ${.TARGET}
73299479Sjkim
74299479Sjkim.for s in ${SHA_ASM}
75299479Sjkim${s}.S: ${s}.s
76299464Semaste	( echo '	# $$'FreeBSD'$$' ;\
77299479Sjkim	echo '	# Do not modify. This file is auto-generated from ${SHA_SRC}.' ;\
78299479Sjkim	cat ${s}.s ) > ${.TARGET}
79299479Sjkim.endfor
80238405Sjkim
81305152Sjkim.elif defined(ASM_arm)
82305152Sjkim
83305152Sjkim.PATH:	${LCRYPTO_SRC}/crypto \
84305152Sjkim	${LCRYPTO_SRC}/crypto/aes/asm \
85305152Sjkim	${LCRYPTO_SRC}/crypto/bn/asm \
86305152Sjkim	${LCRYPTO_SRC}/crypto/modes/asm \
87305152Sjkim	${LCRYPTO_SRC}/crypto/sha/asm
88305152Sjkim
89305152SjkimPERLPATH=	-I${LCRYPTO_SRC}/crypto/perlasm
90305152Sjkim
91305152Sjkim# aes
92305152SjkimSRCS=	aesv8-armx.pl bsaes-armv7.pl
93305152Sjkim
94305152Sjkim# bn
95305152SjkimSRCS+=	armv4-mont.pl armv4-gf2m.pl
96305152Sjkim
97305152Sjkim# modes
98305152SjkimSRCS+=	ghash-armv4.pl ghashv8-armx.pl
99305152Sjkim
100305152Sjkim# sha
101305152SjkimSRCS+=	sha1-armv4-large.pl sha256-armv4.pl sha512-armv4.pl
102305152Sjkim
103305152SjkimASM=	aes-armv4.S ${SRCS:R:S/$/.S/}
104305152Sjkim
105305152Sjkimall:	${ASM}
106305152Sjkim
107305152SjkimCLEANFILES=	${ASM} ${SRCS:R:S/$/.s/}
108305152Sjkim.SUFFIXES:	.pl
109305152Sjkim
110305152Sjkimaes-armv4.S:	aes-armv4.pl
111305152Sjkim	( echo '# $$'FreeBSD'$$' ;\
112305152Sjkim	echo '# Do not modify. This file is auto-generated from ${.ALLSRC:T}.' ;\
113305152Sjkim	env CC=cc perl ${.ALLSRC} elf ) > ${.TARGET}
114305152Sjkim
115305152Sjkim.pl.S:
116305152Sjkim	env CC=cc perl ${.IMPSRC} elf ${.TARGET:R:S/$/.s/}
117305152Sjkim	( echo '	# $$'FreeBSD'$$' ;\
118305152Sjkim	echo '	# Do not modify. This file is auto-generated from ${.IMPSRC:T:R:S/$/.pl/}.' ;\
119305152Sjkim	cat ${.TARGET:R:S/$/.s/}) > ${.TARGET}
120305152Sjkim
121305150Sjkim.elif defined(ASM_i386)
122238405Sjkim
123238405Sjkim.PATH:	${LCRYPTO_SRC}/crypto \
124238405Sjkim	${LCRYPTO_SRC}/crypto/aes/asm \
125238405Sjkim	${LCRYPTO_SRC}/crypto/bf/asm \
126238405Sjkim	${LCRYPTO_SRC}/crypto/bn/asm \
127238405Sjkim	${LCRYPTO_SRC}/crypto/camellia/asm \
128238405Sjkim	${LCRYPTO_SRC}/crypto/des/asm \
129238405Sjkim	${LCRYPTO_SRC}/crypto/md5/asm \
130238405Sjkim	${LCRYPTO_SRC}/crypto/modes/asm \
131238405Sjkim	${LCRYPTO_SRC}/crypto/rc4/asm \
132238405Sjkim	${LCRYPTO_SRC}/crypto/rc5/asm \
133238405Sjkim	${LCRYPTO_SRC}/crypto/ripemd/asm \
134238405Sjkim	${LCRYPTO_SRC}/crypto/sha/asm \
135238405Sjkim	${LCRYPTO_SRC}/crypto/whrlpool/asm
136238405Sjkim
137142429SnectarPERLPATH=	-I${LCRYPTO_SRC}/crypto/des/asm -I${LCRYPTO_SRC}/crypto/perlasm
13895967Speter
139238405Sjkim# aes
140238405SjkimSRCS=	aes-586.pl aesni-x86.pl vpaes-x86.pl
141238405Sjkim
14295967Speter# blowfish
143238405SjkimSRCS+=	bf-586.pl bf-686.pl
14495967Speter
14595967Speter# bn
146238405SjkimSRCS+=	bn-586.pl co-586.pl x86-gf2m.pl x86-mont.pl
14795967Speter
148238405Sjkim# camellia
149238405SjkimSRCS+=	cmll-x86.pl
150238405Sjkim
15195967Speter# des
152238405SjkimSRCS+=	crypt586.pl des-586.pl
15395967Speter
15495967Speter# md5
15595967SpeterSRCS+=	md5-586.pl
15695967Speter
157238405Sjkim# modes
158238405SjkimSRCS+=	ghash-x86.pl
159238405Sjkim
16095967Speter# rc4
16195967SpeterSRCS+=	rc4-586.pl
16295967Speter
16395967Speter# rc5
16495967SpeterSRCS+=	rc5-586.pl
16595967Speter
16695967Speter# ripemd
16795967SpeterSRCS+=	rmd-586.pl
16895967Speter
16995967Speter# sha
170238405SjkimSRCS+=	sha1-586.pl sha256-586.pl sha512-586.pl
17195967Speter
172238405Sjkim# whrlpool
173238405SjkimSRCS+=	wp-mmx.pl
174238405Sjkim
175238405Sjkim# cpuid
176238405SjkimSRCS+=	x86cpuid.pl
177238405Sjkim
178299479SjkimASM=	${SRCS:R:S/$/.S/}
17995967Speter
18095967Speterall:	${ASM}
18195967Speter
182299479SjkimCLEANFILES=	${ASM}
183238405Sjkim.SUFFIXES:	.pl
18495967Speter
185299389Sjkim.pl.S:
186299479Sjkim	( echo '# $$'FreeBSD'$$' ;\
187299479Sjkim	echo '# Do not modify. This file is auto-generated from ${.IMPSRC:T}.' ;\
188299389Sjkim	echo '#ifdef PIC' ;\
189299480Sjkim	env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} -fpic -DPIC ;\
190299389Sjkim	echo '#else' ;\
191299480Sjkim	env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} ;\
192299389Sjkim	echo '#endif') |\
193299389Sjkim	sed -E 's|(\.file[[:blank:]]+)".*"|\1"${.TARGET}"|' > ${.TARGET}
194238405Sjkim.endif
19595967Speter
19695967Speter.include <bsd.prog.mk>
197