2 # Use this to help generate the asm *.[Ss] 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 i386 subdir, and correct any exposed paths and $ FreeBSD $ tags.
7 .include "Makefile.inc"
9 .if ${MACHINE_CPUARCH} == "amd64"
11 .PATH: ${LCRYPTO_SRC}/crypto \
12 ${LCRYPTO_SRC}/crypto/aes/asm \
13 ${LCRYPTO_SRC}/crypto/bn/asm \
14 ${LCRYPTO_SRC}/crypto/camellia/asm \
15 ${LCRYPTO_SRC}/crypto/md5/asm \
16 ${LCRYPTO_SRC}/crypto/modes/asm \
17 ${LCRYPTO_SRC}/crypto/rc4/asm \
18 ${LCRYPTO_SRC}/crypto/rc5/asm \
19 ${LCRYPTO_SRC}/crypto/sha/asm \
20 ${LCRYPTO_SRC}/crypto/whrlpool/asm
23 SRCS= aes-x86_64.pl aesni-sha1-x86_64.pl aesni-x86_64.pl bsaes-x86_64.pl \
27 SRCS+= modexp512-x86_64.pl x86_64-gf2m.pl x86_64-mont.pl x86_64-mont5.pl
36 SRCS+= ghash-x86_64.pl
39 SRCS+= rc4-md5-x86_64.pl rc4-x86_64.pl
42 SRCS+= sha1-x86_64.pl sha512-x86_64.pl
47 ASM= ${SRCS:S/.pl/.S/}
48 ASM+= sha256-x86_64.S x86_64cpuid.S
52 CLEANFILES+= ${SRCS:M*.pl:S/.pl$/.cmt/} ${SRCS:M*.pl:S/.pl$/.S/}
53 CLEANFILES+= sha256-x86_64.cmt sha256-x86_64.S x86_64cpuid.cmt x86_64cpuid.S
57 ( cd `dirname ${.IMPSRC}`/.. ; perl ${.IMPSRC} ${.OBJDIR}/${.TARGET} )
60 ( echo ' # $$'FreeBSD'$$'; cat ${.IMPSRC} ) > ${.TARGET}
62 sha256-x86_64.cmt: sha512-x86_64.pl
63 ( cd `dirname ${.ALLSRC}`/.. ; perl ${.ALLSRC} ${.OBJDIR}/${.TARGET} )
65 x86_64cpuid.cmt: x86_64cpuid.pl
66 ( cd `dirname ${.ALLSRC}` ; perl ${.ALLSRC} ${.OBJDIR}/${.TARGET} )
68 .elif ${MACHINE_CPUARCH} == "i386"
70 .PATH: ${LCRYPTO_SRC}/crypto \
71 ${LCRYPTO_SRC}/crypto/aes/asm \
72 ${LCRYPTO_SRC}/crypto/bf/asm \
73 ${LCRYPTO_SRC}/crypto/bn/asm \
74 ${LCRYPTO_SRC}/crypto/camellia/asm \
75 ${LCRYPTO_SRC}/crypto/cast/asm \
76 ${LCRYPTO_SRC}/crypto/des/asm \
77 ${LCRYPTO_SRC}/crypto/md5/asm \
78 ${LCRYPTO_SRC}/crypto/modes/asm \
79 ${LCRYPTO_SRC}/crypto/rc4/asm \
80 ${LCRYPTO_SRC}/crypto/rc5/asm \
81 ${LCRYPTO_SRC}/crypto/ripemd/asm \
82 ${LCRYPTO_SRC}/crypto/sha/asm \
83 ${LCRYPTO_SRC}/crypto/whrlpool/asm
85 PERLPATH= -I${LCRYPTO_SRC}/crypto/des/asm -I${LCRYPTO_SRC}/crypto/perlasm
88 SRCS= aes-586.pl aesni-x86.pl vpaes-x86.pl
91 SRCS+= bf-586.pl bf-686.pl
94 SRCS+= bn-586.pl co-586.pl x86-gf2m.pl x86-mont.pl
103 SRCS+= crypt586.pl des-586.pl
121 SRCS+= sha1-586.pl sha256-586.pl sha512-586.pl
129 ASM= ${SRCS:S/.pl/.s/}
133 CLEANFILES+= ${SRCS:M*.pl:S/.pl$/.s/}
137 ( echo ' # $$'FreeBSD'$$' ;\
138 perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} ) > ${.TARGET}
141 .include <bsd.prog.mk>