195967Speter# $FreeBSD: stable/10/secure/lib/libcrypto/Makefile.asm 312851 2017-01-26 23:29:30Z jkim $
2299966Sjkim# 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.
4299966Sjkim# Do a 'make -f Makefile.asm all' and it will generate *.S.  Move them
5299966Sjkim# to the arch subdir, and correct any exposed paths and $ FreeBSD $ tags.
695967Speter
795967Speter.include "Makefile.inc"
895967Speter
9312851Sjkim.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 \
15238405Sjkim	${LCRYPTO_SRC}/crypto/md5/asm \
16238405Sjkim	${LCRYPTO_SRC}/crypto/modes/asm \
17238405Sjkim	${LCRYPTO_SRC}/crypto/rc4/asm \
18238405Sjkim	${LCRYPTO_SRC}/crypto/rc5/asm \
19238405Sjkim	${LCRYPTO_SRC}/crypto/sha/asm \
20238405Sjkim	${LCRYPTO_SRC}/crypto/whrlpool/asm
21238405Sjkim
22238405Sjkim# aes
23238405SjkimSRCS=	aes-x86_64.pl aesni-sha1-x86_64.pl aesni-x86_64.pl bsaes-x86_64.pl \
24238405Sjkim	vpaes-x86_64.pl
25238405Sjkim
26238405Sjkim# bn
27238405SjkimSRCS+=	modexp512-x86_64.pl x86_64-gf2m.pl x86_64-mont.pl x86_64-mont5.pl
28238405Sjkim
29238405Sjkim# camellia
30238405SjkimSRCS+=	cmll-x86_64.pl
31238405Sjkim
32238405Sjkim# md5
33238405SjkimSRCS+=	md5-x86_64.pl
34238405Sjkim
35238405Sjkim# modes
36238405SjkimSRCS+=	ghash-x86_64.pl
37238405Sjkim
38238405Sjkim# rc4
39238405SjkimSRCS+=	rc4-md5-x86_64.pl rc4-x86_64.pl
40238405Sjkim
41238405Sjkim# sha
42299966SjkimSRCS+=	sha1-x86_64.pl
43238405Sjkim
44238405Sjkim# whrlpool
45238405SjkimSRCS+=	wp-x86_64.pl
46238405Sjkim
47299966Sjkim# cpuid
48299966SjkimSRCS+=	x86_64cpuid.pl
49238405Sjkim
50299966SjkimSHA_ASM=	sha256-x86_64 sha512-x86_64
51299966SjkimSHA_SRC=	sha512-x86_64.pl
52299966SjkimSHA_TMP=	${SHA_ASM:S/$/.s/}
53299966Sjkim
54299966SjkimASM=	${SRCS:R:S/$/.S/} ${SHA_ASM:S/$/.S/}
55299966Sjkim
56238405Sjkimall:	${ASM}
57238405Sjkim
58299966SjkimCLEANFILES=	${ASM} ${SHA_ASM:S/$/.s/}
59299966Sjkim.SUFFIXES:	.pl
60238405Sjkim
61299966Sjkim.pl.S:
62299966Sjkim	( echo '# $$'FreeBSD'$$' ;\
63299966Sjkim	echo '# Do not modify. This file is auto-generated from ${.IMPSRC:T}.' ;\
64299966Sjkim	env CC=cc perl ${.IMPSRC} elf ) > ${.TARGET}
65238405Sjkim
66299966Sjkim${SHA_TMP}: ${SHA_SRC}
67299966Sjkim	env CC=cc perl ${.ALLSRC} elf ${.TARGET}
68238405Sjkim
69299966Sjkim.for s in ${SHA_ASM}
70299966Sjkim${s}.S: ${s}.s
71299966Sjkim	( echo '	# $$'FreeBSD'$$' ;\
72299966Sjkim	echo '	# Do not modify. This file is auto-generated from ${SHA_SRC}.' ;\
73299966Sjkim	cat ${s}.s ) > ${.TARGET}
74299966Sjkim.endfor
75238405Sjkim
76312851Sjkim.elif defined(ASM_i386)
77238405Sjkim
78238405Sjkim.PATH:	${LCRYPTO_SRC}/crypto \
79238405Sjkim	${LCRYPTO_SRC}/crypto/aes/asm \
80238405Sjkim	${LCRYPTO_SRC}/crypto/bf/asm \
81238405Sjkim	${LCRYPTO_SRC}/crypto/bn/asm \
82238405Sjkim	${LCRYPTO_SRC}/crypto/camellia/asm \
83238405Sjkim	${LCRYPTO_SRC}/crypto/cast/asm \
84238405Sjkim	${LCRYPTO_SRC}/crypto/des/asm \
85238405Sjkim	${LCRYPTO_SRC}/crypto/md5/asm \
86238405Sjkim	${LCRYPTO_SRC}/crypto/modes/asm \
87238405Sjkim	${LCRYPTO_SRC}/crypto/rc4/asm \
88238405Sjkim	${LCRYPTO_SRC}/crypto/rc5/asm \
89238405Sjkim	${LCRYPTO_SRC}/crypto/ripemd/asm \
90238405Sjkim	${LCRYPTO_SRC}/crypto/sha/asm \
91238405Sjkim	${LCRYPTO_SRC}/crypto/whrlpool/asm
92238405Sjkim
93142429SnectarPERLPATH=	-I${LCRYPTO_SRC}/crypto/des/asm -I${LCRYPTO_SRC}/crypto/perlasm
9495967Speter
95238405Sjkim# aes
96238405SjkimSRCS=	aes-586.pl aesni-x86.pl vpaes-x86.pl
97238405Sjkim
9895967Speter# blowfish
99238405SjkimSRCS+=	bf-586.pl bf-686.pl
10095967Speter
10195967Speter# bn
102238405SjkimSRCS+=	bn-586.pl co-586.pl x86-gf2m.pl x86-mont.pl
10395967Speter
104238405Sjkim# camellia
105238405SjkimSRCS+=	cmll-x86.pl
106238405Sjkim
10795967Speter# cast
10895967SpeterSRCS+=	cast-586.pl
10995967Speter
11095967Speter# des
111238405SjkimSRCS+=	crypt586.pl des-586.pl
11295967Speter
11395967Speter# md5
11495967SpeterSRCS+=	md5-586.pl
11595967Speter
116238405Sjkim# modes
117238405SjkimSRCS+=	ghash-x86.pl
118238405Sjkim
11995967Speter# rc4
12095967SpeterSRCS+=	rc4-586.pl
12195967Speter
12295967Speter# rc5
12395967SpeterSRCS+=	rc5-586.pl
12495967Speter
12595967Speter# ripemd
12695967SpeterSRCS+=	rmd-586.pl
12795967Speter
12895967Speter# sha
129238405SjkimSRCS+=	sha1-586.pl sha256-586.pl sha512-586.pl
13095967Speter
131238405Sjkim# whrlpool
132238405SjkimSRCS+=	wp-mmx.pl
133238405Sjkim
134238405Sjkim# cpuid
135238405SjkimSRCS+=	x86cpuid.pl
136238405Sjkim
137299966SjkimASM=	${SRCS:R:S/$/.S/}
13895967Speter
13995967Speterall:	${ASM}
14095967Speter
141299966SjkimCLEANFILES=	${ASM}
142238405Sjkim.SUFFIXES:	.pl
14395967Speter
144299966Sjkim.pl.S:
145299966Sjkim	( echo '# $$'FreeBSD'$$' ;\
146299966Sjkim	echo '# Do not modify. This file is auto-generated from ${.IMPSRC:T}.' ;\
147299966Sjkim	echo '#ifdef PIC' ;\
148299966Sjkim	env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} -fpic -DPIC ;\
149299966Sjkim	echo '#else' ;\
150299966Sjkim	env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} ;\
151299966Sjkim	echo '#endif') |\
152299966Sjkim	sed -E 's|(\.file[[:blank:]]+)".*"|\1"${.TARGET}"|' > ${.TARGET}
153238405Sjkim.endif
15495967Speter
15595967Speter.include <bsd.prog.mk>
156