195967Speter# $FreeBSD: stable/11/secure/lib/libcrypto/Makefile.asm 325333 2017-11-02 18:16:01Z 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 9325333Sjkim.if defined(ASM_aarch64) 10106538Sobrien 11238405Sjkim.PATH: ${LCRYPTO_SRC}/crypto \ 12238405Sjkim ${LCRYPTO_SRC}/crypto/aes/asm \ 13325333Sjkim ${LCRYPTO_SRC}/crypto/modes/asm \ 14325333Sjkim ${LCRYPTO_SRC}/crypto/sha/asm 15325333Sjkim 16325333SjkimPERLPATH= -I${LCRYPTO_SRC}/crypto/perlasm 17325333Sjkim 18325333Sjkim# aes 19325333SjkimSRCS= aesv8-armx.pl 20325333Sjkim 21325333Sjkim# modes 22325333SjkimSRCS+= ghashv8-armx.pl 23325333Sjkim 24325333Sjkim# sha 25325333SjkimSRCS+= sha1-armv8.pl sha512-armv8.pl 26325333Sjkim 27325333SjkimASM= ${SRCS:R:S/$/.S/} sha256-armv8.S 28325333Sjkim 29325333Sjkimall: ${ASM} 30325333Sjkim 31325333SjkimCLEANFILES= ${ASM} ${SRCS:R:S/$/.s/} sha256-armv8.s 32325333Sjkim.SUFFIXES: .pl 33325333Sjkim 34325333Sjkimsha256-armv8.S: sha512-armv8.pl 35325333Sjkim env CC=cc perl ${.ALLSRC} 64 ${.TARGET:R:S/$/.s/} 36325333Sjkim ( echo '/* $$'FreeBSD'$$ */' ;\ 37325333Sjkim echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T:R:S/$/.pl/}. */' ;\ 38325333Sjkim cat ${.TARGET:R:S/$/.s/}) > ${.TARGET} 39325333Sjkim 40325333Sjkim.pl.S: 41325333Sjkim env CC=cc perl ${.IMPSRC} 64 ${.TARGET:R:S/$/.s/} 42325333Sjkim ( echo '/* $$'FreeBSD'$$ */' ;\ 43325333Sjkim echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T:R:S/$/.pl/}. */' ;\ 44325333Sjkim cat ${.TARGET:R:S/$/.s/}) > ${.TARGET} 45325333Sjkim 46325333Sjkim.elif defined(ASM_amd64) 47325333Sjkim 48325333Sjkim.PATH: ${LCRYPTO_SRC}/crypto \ 49325333Sjkim ${LCRYPTO_SRC}/crypto/aes/asm \ 50238405Sjkim ${LCRYPTO_SRC}/crypto/bn/asm \ 51238405Sjkim ${LCRYPTO_SRC}/crypto/camellia/asm \ 52290207Sjkim ${LCRYPTO_SRC}/crypto/ec/asm \ 53238405Sjkim ${LCRYPTO_SRC}/crypto/md5/asm \ 54238405Sjkim ${LCRYPTO_SRC}/crypto/modes/asm \ 55238405Sjkim ${LCRYPTO_SRC}/crypto/rc4/asm \ 56238405Sjkim ${LCRYPTO_SRC}/crypto/sha/asm \ 57238405Sjkim ${LCRYPTO_SRC}/crypto/whrlpool/asm 58238405Sjkim 59238405Sjkim# aes 60290207SjkimSRCS= aes-x86_64.pl aesni-mb-x86_64.pl aesni-sha1-x86_64.pl \ 61290207Sjkim aesni-sha256-x86_64.pl aesni-x86_64.pl bsaes-x86_64.pl \ 62238405Sjkim vpaes-x86_64.pl 63238405Sjkim 64238405Sjkim# bn 65290207SjkimSRCS+= rsaz-avx2.pl rsaz-x86_64.pl x86_64-gf2m.pl x86_64-mont.pl \ 66290207Sjkim x86_64-mont5.pl 67238405Sjkim 68238405Sjkim# camellia 69238405SjkimSRCS+= cmll-x86_64.pl 70238405Sjkim 71290207Sjkim# ec 72290207SjkimSRCS+= ecp_nistz256-x86_64.pl 73290207Sjkim 74238405Sjkim# md5 75238405SjkimSRCS+= md5-x86_64.pl 76238405Sjkim 77238405Sjkim# modes 78290207SjkimSRCS+= aesni-gcm-x86_64.pl ghash-x86_64.pl 79238405Sjkim 80238405Sjkim# rc4 81238405SjkimSRCS+= rc4-md5-x86_64.pl rc4-x86_64.pl 82238405Sjkim 83238405Sjkim# sha 84299479SjkimSRCS+= sha1-mb-x86_64.pl sha1-x86_64.pl sha256-mb-x86_64.pl 85238405Sjkim 86238405Sjkim# whrlpool 87238405SjkimSRCS+= wp-x86_64.pl 88238405Sjkim 89299479Sjkim# cpuid 90299479SjkimSRCS+= x86_64cpuid.pl 91238405Sjkim 92299479SjkimSHA_ASM= sha256-x86_64 sha512-x86_64 93299479SjkimSHA_SRC= sha512-x86_64.pl 94299479SjkimSHA_TMP= ${SHA_ASM:S/$/.s/} 95299479Sjkim 96299479SjkimASM= ${SRCS:R:S/$/.S/} ${SHA_ASM:S/$/.S/} 97299479Sjkim 98238405Sjkimall: ${ASM} 99238405Sjkim 100299479SjkimCLEANFILES= ${ASM} ${SHA_ASM:S/$/.s/} 101299479Sjkim.SUFFIXES: .pl 102238405Sjkim 103299479Sjkim.pl.S: 104305153Sjkim ( echo '/* $$'FreeBSD'$$ */' ;\ 105305153Sjkim echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T}. */' ;\ 106299480Sjkim env CC=cc perl ${.IMPSRC} elf ) > ${.TARGET} 107238405Sjkim 108299479Sjkim${SHA_TMP}: ${SHA_SRC} 109299480Sjkim env CC=cc perl ${.ALLSRC} elf ${.TARGET} 110299479Sjkim 111299479Sjkim.for s in ${SHA_ASM} 112299479Sjkim${s}.S: ${s}.s 113305153Sjkim ( echo '/* $$'FreeBSD'$$ */' ;\ 114305153Sjkim echo '/* Do not modify. This file is auto-generated from ${SHA_SRC}. */' ;\ 115299479Sjkim cat ${s}.s ) > ${.TARGET} 116299479Sjkim.endfor 117238405Sjkim 118305152Sjkim.elif defined(ASM_arm) 119305152Sjkim 120305152Sjkim.PATH: ${LCRYPTO_SRC}/crypto \ 121305152Sjkim ${LCRYPTO_SRC}/crypto/aes/asm \ 122305152Sjkim ${LCRYPTO_SRC}/crypto/bn/asm \ 123305152Sjkim ${LCRYPTO_SRC}/crypto/modes/asm \ 124305152Sjkim ${LCRYPTO_SRC}/crypto/sha/asm 125305152Sjkim 126305152SjkimPERLPATH= -I${LCRYPTO_SRC}/crypto/perlasm 127305152Sjkim 128305152Sjkim# aes 129305152SjkimSRCS= aesv8-armx.pl bsaes-armv7.pl 130305152Sjkim 131305152Sjkim# bn 132305152SjkimSRCS+= armv4-mont.pl armv4-gf2m.pl 133305152Sjkim 134305152Sjkim# modes 135305152SjkimSRCS+= ghash-armv4.pl ghashv8-armx.pl 136305152Sjkim 137305152Sjkim# sha 138305152SjkimSRCS+= sha1-armv4-large.pl sha256-armv4.pl sha512-armv4.pl 139305152Sjkim 140305152SjkimASM= aes-armv4.S ${SRCS:R:S/$/.S/} 141305152Sjkim 142305152Sjkimall: ${ASM} 143305152Sjkim 144305152SjkimCLEANFILES= ${ASM} ${SRCS:R:S/$/.s/} 145305152Sjkim.SUFFIXES: .pl 146305152Sjkim 147305152Sjkimaes-armv4.S: aes-armv4.pl 148305153Sjkim ( echo '/* $$'FreeBSD'$$ */' ;\ 149305153Sjkim echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\ 150305152Sjkim env CC=cc perl ${.ALLSRC} elf ) > ${.TARGET} 151305152Sjkim 152305152Sjkim.pl.S: 153305152Sjkim env CC=cc perl ${.IMPSRC} elf ${.TARGET:R:S/$/.s/} 154305153Sjkim ( echo '/* $$'FreeBSD'$$ */' ;\ 155305153Sjkim echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T:R:S/$/.pl/}. */' ;\ 156305152Sjkim cat ${.TARGET:R:S/$/.s/}) > ${.TARGET} 157305152Sjkim 158305150Sjkim.elif defined(ASM_i386) 159238405Sjkim 160238405Sjkim.PATH: ${LCRYPTO_SRC}/crypto \ 161238405Sjkim ${LCRYPTO_SRC}/crypto/aes/asm \ 162238405Sjkim ${LCRYPTO_SRC}/crypto/bf/asm \ 163238405Sjkim ${LCRYPTO_SRC}/crypto/bn/asm \ 164238405Sjkim ${LCRYPTO_SRC}/crypto/camellia/asm \ 165238405Sjkim ${LCRYPTO_SRC}/crypto/des/asm \ 166238405Sjkim ${LCRYPTO_SRC}/crypto/md5/asm \ 167238405Sjkim ${LCRYPTO_SRC}/crypto/modes/asm \ 168238405Sjkim ${LCRYPTO_SRC}/crypto/rc4/asm \ 169238405Sjkim ${LCRYPTO_SRC}/crypto/rc5/asm \ 170238405Sjkim ${LCRYPTO_SRC}/crypto/ripemd/asm \ 171238405Sjkim ${LCRYPTO_SRC}/crypto/sha/asm \ 172238405Sjkim ${LCRYPTO_SRC}/crypto/whrlpool/asm 173238405Sjkim 174142429SnectarPERLPATH= -I${LCRYPTO_SRC}/crypto/des/asm -I${LCRYPTO_SRC}/crypto/perlasm 17595967Speter 176238405Sjkim# aes 177238405SjkimSRCS= aes-586.pl aesni-x86.pl vpaes-x86.pl 178238405Sjkim 17995967Speter# blowfish 180238405SjkimSRCS+= bf-586.pl bf-686.pl 18195967Speter 18295967Speter# bn 183238405SjkimSRCS+= bn-586.pl co-586.pl x86-gf2m.pl x86-mont.pl 18495967Speter 185238405Sjkim# camellia 186238405SjkimSRCS+= cmll-x86.pl 187238405Sjkim 18895967Speter# des 189238405SjkimSRCS+= crypt586.pl des-586.pl 19095967Speter 19195967Speter# md5 19295967SpeterSRCS+= md5-586.pl 19395967Speter 194238405Sjkim# modes 195238405SjkimSRCS+= ghash-x86.pl 196238405Sjkim 19795967Speter# rc4 19895967SpeterSRCS+= rc4-586.pl 19995967Speter 20095967Speter# rc5 20195967SpeterSRCS+= rc5-586.pl 20295967Speter 20395967Speter# ripemd 20495967SpeterSRCS+= rmd-586.pl 20595967Speter 20695967Speter# sha 207238405SjkimSRCS+= sha1-586.pl sha256-586.pl sha512-586.pl 20895967Speter 209238405Sjkim# whrlpool 210238405SjkimSRCS+= wp-mmx.pl 211238405Sjkim 212238405Sjkim# cpuid 213238405SjkimSRCS+= x86cpuid.pl 214238405Sjkim 215299479SjkimASM= ${SRCS:R:S/$/.S/} 21695967Speter 21795967Speterall: ${ASM} 21895967Speter 219299479SjkimCLEANFILES= ${ASM} 220238405Sjkim.SUFFIXES: .pl 22195967Speter 222299389Sjkim.pl.S: 223305153Sjkim ( echo '/* $$'FreeBSD'$$ */' ;\ 224305153Sjkim echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T}. */' ;\ 225299389Sjkim echo '#ifdef PIC' ;\ 226299480Sjkim env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} -fpic -DPIC ;\ 227299389Sjkim echo '#else' ;\ 228299480Sjkim env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} ;\ 229299389Sjkim echo '#endif') |\ 230299389Sjkim sed -E 's|(\.file[[:blank:]]+)".*"|\1"${.TARGET}"|' > ${.TARGET} 231238405Sjkim.endif 23295967Speter 23395967Speter.include <bsd.prog.mk> 234