1# $FreeBSD$ 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. 6 7.include "Makefile.inc" 8 9.if ${MACHINE_CPUARCH} == "amd64" 10 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 21 22# aes 23SRCS= aes-x86_64.pl aesni-sha1-x86_64.pl aesni-x86_64.pl bsaes-x86_64.pl \ 24 vpaes-x86_64.pl 25 26# bn 27SRCS+= modexp512-x86_64.pl x86_64-gf2m.pl x86_64-mont.pl x86_64-mont5.pl 28 29# camellia 30SRCS+= cmll-x86_64.pl 31 32# md5 33SRCS+= md5-x86_64.pl 34 35# modes 36SRCS+= ghash-x86_64.pl 37 38# rc4 39SRCS+= rc4-md5-x86_64.pl rc4-x86_64.pl 40 41# sha 42SRCS+= sha1-x86_64.pl sha512-x86_64.pl 43 44# whrlpool 45SRCS+= wp-x86_64.pl 46 47ASM= ${SRCS:S/.pl/.S/} 48ASM+= sha256-x86_64.S x86_64cpuid.S 49 50all: ${ASM} 51 52CLEANFILES+= ${SRCS:M*.pl:S/.pl$/.cmt/} ${SRCS:M*.pl:S/.pl$/.S/} 53CLEANFILES+= sha256-x86_64.cmt sha256-x86_64.S x86_64cpuid.cmt x86_64cpuid.S 54.SUFFIXES: .pl .cmt 55 56.pl.cmt: 57 ( cd `dirname ${.IMPSRC}`/.. ; perl ${.IMPSRC} ${.OBJDIR}/${.TARGET} ) 58 59.cmt.S: 60 ( echo ' # $$'FreeBSD'$$'; cat ${.IMPSRC} ) > ${.TARGET} 61 62sha256-x86_64.cmt: sha512-x86_64.pl 63 ( cd `dirname ${.ALLSRC}`/.. ; perl ${.ALLSRC} ${.OBJDIR}/${.TARGET} ) 64 65x86_64cpuid.cmt: x86_64cpuid.pl 66 ( cd `dirname ${.ALLSRC}` ; perl ${.ALLSRC} ${.OBJDIR}/${.TARGET} ) 67 68.elif ${MACHINE_CPUARCH} == "i386" 69 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 84 85PERLPATH= -I${LCRYPTO_SRC}/crypto/des/asm -I${LCRYPTO_SRC}/crypto/perlasm 86 87# aes 88SRCS= aes-586.pl aesni-x86.pl vpaes-x86.pl 89 90# blowfish 91SRCS+= bf-586.pl bf-686.pl 92 93# bn 94SRCS+= bn-586.pl co-586.pl x86-gf2m.pl x86-mont.pl 95 96# camellia 97SRCS+= cmll-x86.pl 98 99# cast 100SRCS+= cast-586.pl 101 102# des 103SRCS+= crypt586.pl des-586.pl 104 105# md5 106SRCS+= md5-586.pl 107 108# modes 109SRCS+= ghash-x86.pl 110 111# rc4 112SRCS+= rc4-586.pl 113 114# rc5 115SRCS+= rc5-586.pl 116 117# ripemd 118SRCS+= rmd-586.pl 119 120# sha 121SRCS+= sha1-586.pl sha256-586.pl sha512-586.pl 122 123# whrlpool 124SRCS+= wp-mmx.pl 125 126# cpuid 127SRCS+= x86cpuid.pl 128 129ASM= ${SRCS:S/.pl/.s/} 130 131all: ${ASM} 132 133CLEANFILES+= ${SRCS:M*.pl:S/.pl$/.s/} 134.SUFFIXES: .pl 135 136.pl.s: 137 ( echo ' # $$'FreeBSD'$$' ;\ 138 perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} ) > ${.TARGET} 139.endif 140 141.include <bsd.prog.mk> 142