summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2016-01-30 03:25:40 +0100
committerRichard Levitte <levitte@openssl.org>2016-02-10 14:36:04 +0100
commit567a9e6fe0ff3badfa22cf018d87c94ed5a8aeb3 (patch)
tree6e21b8f62376aedf1ea3fc8f24dffd9978348c9f /crypto
parentdeb02194d246d865ff3837deb500a901e2269109 (diff)
unified build scheme: add a "unified" template for Unix Makefile
This also adds all the raw sections needed for some files. Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/aes/build.info59
-rw-r--r--crypto/bf/build.info7
-rw-r--r--crypto/bn/build.info90
-rw-r--r--crypto/build.info36
-rw-r--r--crypto/camellia/build.info9
-rw-r--r--crypto/cast/build.info7
-rw-r--r--crypto/chacha/build.info12
-rw-r--r--crypto/des/build.info14
-rw-r--r--crypto/ec/build.info17
-rw-r--r--crypto/md5/build.info15
-rw-r--r--crypto/modes/build.info27
-rw-r--r--crypto/poly1305/build.info12
-rw-r--r--crypto/rc4/build.info27
-rw-r--r--crypto/rc5/build.info7
-rw-r--r--crypto/ripemd/build.info7
-rw-r--r--crypto/sha/build.info77
-rw-r--r--crypto/whrlpool/build.info8
17 files changed, 431 insertions, 0 deletions
diff --git a/crypto/aes/build.info b/crypto/aes/build.info
index c8a8c5dfc5..6484da6c53 100644
--- a/crypto/aes/build.info
+++ b/crypto/aes/build.info
@@ -2,3 +2,62 @@ LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
aes_misc.c aes_ecb.c aes_cfb.c aes_ofb.c \
aes_ige.c aes_wrap.c {- $target{aes_asm_src} -}
+
+BEGINRAW[Makefile]
+##### AES assembler implementations
+
+{- $builddir -}/aes-ia64.s: {- $sourcedir -}/asm/aes-ia64.S
+ $(CC) $(CFLAGS) -E asm/aes-ia64.S > $@
+
+{- $builddir -}/aes-586.s: {- $sourcedir -}/asm/aes-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/aes-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/vpaes-x86.s: {- $sourcedir -}/asm/vpaes-x86.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/vpaes-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/aesni-x86.s: {- $sourcedir -}/asm/aesni-x86.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/aesni-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/aes-x86_64.s: {- $sourcedir -}/asm/aes-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/aes-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/vpaes-x86_64.s: {- $sourcedir -}/asm/vpaes-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/vpaes-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/bsaes-x86_64.s: {- $sourcedir -}/asm/bsaes-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/bsaes-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/aesni-x86_64.s: {- $sourcedir -}/asm/aesni-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/aesni-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/aesni-sha1-x86_64.s: {- $sourcedir -}/asm/aesni-sha1-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/aesni-sha1-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/aesni-sha256-x86_64.s: {- $sourcedir -}/asm/aesni-sha256-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/aesni-sha256-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/aesni-mb-x86_64.s: {- $sourcedir -}/asm/aesni-mb-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/aesni-mb-x86_64.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/aes-sparcv9.s: {- $sourcedir -}/asm/aes-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/aes-sparcv9.pl $(CFLAGS) > $@
+{- $builddir -}/aest4-sparcv9.s: {- $sourcedir -}/asm/aest4-sparcv9.pl {- $sourcetop -}/crypto/perlasm/sparcv9_modes.pl
+ $(PERL) {- $sourcedir -}/asm/aest4-sparcv9.pl $(CFLAGS) > $@
+
+{- $builddir -}/aes-ppc.s: {- $sourcedir -}/asm/aes-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/aes-ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/vpaes-ppc.s: {- $sourcedir -}/asm/vpaes-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/vpaes-ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/aesp8-ppc.s: {- $sourcedir -}/asm/aesp8-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/aesp8-ppc.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/aes-parisc.s: {- $sourcedir -}/asm/aes-parisc.pl
+ $(PERL) {- $sourcedir -}/asm/aes-parisc.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/aes-mips.S: {- $sourcedir -}/asm/aes-mips.pl
+ $(PERL) {- $sourcedir -}/asm/aes-mips.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/aesv8-armx.S: {- $sourcedir -}/asm/aesv8-armx.pl
+ $(PERL) {- $sourcedir -}/asm/aesv8-armx.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/vpaes-armv8.S: {- $sourcedir -}/asm/vpaes-armv8.pl
+ $(PERL) {- $sourcedir -}/asm/vpaes-armv8.pl $(PERLASM_SCHEME) $@
+
+# GNU make "catch all"
+{- $builddir -}/aes-%.S: {- $sourcedir -}/asm/aes-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+{- $builddir -}/bsaes-%.S: {- $sourcedir -}/asm/bsaes-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+
+ENDRAW[Makefile]
diff --git a/crypto/bf/build.info b/crypto/bf/build.info
index d471b3178f..b4aa7f9d74 100644
--- a/crypto/bf/build.info
+++ b/crypto/bf/build.info
@@ -1,2 +1,9 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
+
+BEGINRAW[Makefile]
+##### BF assembler implementations
+
+{- $builddir -}/bf-586.s: {- $sourcedir -}/asm/bf-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl {- $sourcetop -}/crypto/perlasm/cbc.pl
+ $(PERL) {- $sourcedir -}/asm/bf-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+ENDRAW[Makefile]
diff --git a/crypto/bn/build.info b/crypto/bn/build.info
index 7525b86fd9..66f62dcac9 100644
--- a/crypto/bn/build.info
+++ b/crypto/bn/build.info
@@ -6,3 +6,93 @@ SOURCE[../../libcrypto]=\
{- $target{bn_asm_src} -} \
bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c \
bn_depr.c bn_const.c bn_x931p.c bn_intern.c bn_dh.c bn_srp.c
+
+BEGINRAW[Makefile]
+##### BN assembler implementations
+
+{- $builddir -}/bn-586.s: {- $sourcedir -}/asm/bn-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/bn-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/co-586.s: {- $sourcedir -}/asm/co-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/co-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/x86-mont.s: {- $sourcedir -}/asm/x86-mont.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/x86-mont.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/x86-gf2m.s: {- $sourcedir -}/asm/x86-gf2m.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/x86-gf2m.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/sparcv8.o: {- $sourcedir -}/asm/sparcv8.S
+ $(CC) $(CFLAGS) -c {- $sourcedir -}/asm/sparcv8.S
+{- $builddir -}/bn-sparcv9.o: {- $sourcedir -}/asm/sparcv8plus.S
+ $(CC) $(CFLAGS) -c -o $@ {- $sourcedir -}/asm/sparcv8plus.S
+{- $builddir -}/sparcv9a-mont.s: {- $sourcedir -}/asm/sparcv9a-mont.pl
+ $(PERL) {- $sourcedir -}/asm/sparcv9a-mont.pl $(CFLAGS) > $@
+{- $builddir -}/sparcv9-mont.s: {- $sourcedir -}/asm/sparcv9-mont.pl
+ $(PERL) {- $sourcedir -}/asm/sparcv9-mont.pl $(CFLAGS) > $@
+{- $builddir -}/vis3-mont.s: {- $sourcedir -}/asm/vis3-mont.pl
+ $(PERL) {- $sourcedir -}/asm/vis3-mont.pl $(CFLAGS) > $@
+{- $builddir -}/sparct4-mont.S: {- $sourcedir -}/asm/sparct4-mont.pl
+ $(PERL) {- $sourcedir -}/asm/sparct4-mont.pl $(CFLAGS) > $@
+{- $builddir -}/sparcv9-gf2m.S: {- $sourcedir -}/asm/sparcv9-gf2m.pl
+ $(PERL) {- $sourcedir -}/asm/sparcv9-gf2m.pl $(CFLAGS) > $@
+
+{- $builddir -}/bn-mips3.o: {- $sourcedir -}/asm/mips3.s
+ @if [ "$(CC)" = "gcc" ]; then \
+ ABI=`expr "$(CFLAGS)" : ".*-mabi=\([n3264]*\)"` && \
+ as -$$ABI -O -o $@ {- $sourcedir -}/asm/mips3.s; \
+ else $(CC) -c $(CFLAGS) -o $@ {- $sourcedir -}/asm/mips3.s; fi
+
+{- $builddir -}/bn-mips.s: {- $sourcedir -}/asm/mips.pl
+ $(PERL) {- $sourcedir -}/asm/mips.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/mips-mont.s: {- $sourcedir -}/asm/mips-mont.pl
+ $(PERL) {- $sourcedir -}/asm/mips-mont.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/bn-s390x.o: {- $sourcedir -}/asm/s390x.S
+ $(CC) $(CFLAGS) -c -o $@ {- $sourcedir -}/asm/s390x.S
+{- $builddir -}/s390x-gf2m.s: {- $sourcedir -}/asm/s390x-gf2m.pl
+ $(PERL) {- $sourcedir -}/asm/s390x-gf2m.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/x86_64-mont.s: {- $sourcedir -}/asm/x86_64-mont.pl
+ $(PERL) {- $sourcedir -}/asm/x86_64-mont.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/x86_64-mont5.s: {- $sourcedir -}/asm/x86_64-mont5.pl
+ $(PERL) {- $sourcedir -}/asm/x86_64-mont5.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/x86_64-gf2m.s: {- $sourcedir -}/asm/x86_64-gf2m.pl
+ $(PERL) {- $sourcedir -}/asm/x86_64-gf2m.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/rsaz-x86_64.s: {- $sourcedir -}/asm/rsaz-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/rsaz-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/rsaz-avx2.s: {- $sourcedir -}/asm/rsaz-avx2.pl
+ $(PERL) {- $sourcedir -}/asm/rsaz-avx2.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/bn-ia64.s: {- $sourcedir -}/asm/ia64.S
+ $(CC) $(CFLAGS) -E {- $sourcedir -}/asm/ia64.S > $@
+{- $builddir -}/ia64-mont.s: {- $sourcedir -}/asm/ia64-mont.pl
+ $(PERL) {- $sourcedir -}/asm/ia64-mont.pl $@ $(CFLAGS)
+
+# GNU assembler fails to compile PA-RISC2 modules, insist on calling
+# vendor assembler...
+{- $builddir -}/pa-risc2W.o: {- $sourcedir -}/asm/pa-risc2W.s
+ $(PERL) $(TOP)/util/fipsas.pl $(TOP) $< /usr/ccs/bin/as -o pa-risc2W.o {- $sourcedir -}/asm/pa-risc2W.s
+{- $builddir -}/pa-risc2.o: {- $sourcedir -}/asm/pa-risc2.s
+ $(PERL) $(TOP)/util/fipsas.pl $(TOP) $< /usr/ccs/bin/as -o pa-risc2.o {- $sourcedir -}/asm/pa-risc2.s
+
+{- $builddir -}/parisc-mont.s: {- $sourcedir -}/asm/parisc-mont.pl
+ $(PERL) {- $sourcedir -}/asm/parisc-mont.pl $(PERLASM_SCHEME) $@
+
+# ppc - AIX, Linux, MacOS X...
+{- $builddir -}/bn-ppc.s: {- $sourcedir -}/asm/ppc.pl; $(PERL) {- $sourcedir -}/asm/ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/ppc-mont.s: {- $sourcedir -}/asm/ppc-mont.pl;$(PERL) {- $sourcedir -}/asm/ppc-mont.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/ppc64-mont.s: {- $sourcedir -}/asm/ppc64-mont.pl;$(PERL) {- $sourcedir -}/asm/ppc64-mont.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/alpha-mont.s: {- $sourcedir -}/asm/alpha-mont.pl
+ (preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
+ $(PERL) {- $sourcedir -}/asm/alpha-mont.pl > $$preproc && \
+ $(CC) -E -P $$preproc > $@ && rm $$preproc)
+
+# GNU make "catch all"
+{- $builddir -}/%-mont.S: {- $sourcedir -}/asm/%-mont.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+{- $builddir -}/%-gf2m.S: {- $sourcedir -}/asm/%-gf2m.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+
+{- $builddir -}/armv4-mont.o: {- $builddir -}/armv4-mont.S
+{- $builddir -}/armv4-gf2m.o: {- $builddir -}/armv4-gf2m.S
+{- $builddir -}/armv8-mont.o: {- $builddir -}/armv8-mont.S
+ENDRAW[Makefile]
diff --git a/crypto/build.info b/crypto/build.info
index 90f301a327..5259432baf 100644
--- a/crypto/build.info
+++ b/crypto/build.info
@@ -8,3 +8,39 @@ EXTRA= ../ms/uplink-x86.pl ../ms/uplink.c ../ms/applink.c \
ppccpuid.pl pariscid.pl alphacpuid.pl arm64cpuid.pl armv4cpuid.pl
DEPEND[cversion.o]=buildinf.h
+
+BEGINRAW[Makefile]
+crypto/buildinf.h : Makefile
+ $(PERL) $(SRCDIR)/util/mkbuildinf.pl "$(CC) $(CFLAGS)" "$(PLATFORM)" > crypto/buildinf.h
+
+##### APPLINK, UPLINK and CPUID assembler implementations
+
+{- $builddir -}/applink.o: $(SRCDIR)/ms/applink.c
+ $(CC) $(CFLAGS) -c -o $@ $(TOP)/ms/applink.c
+
+{- $builddir -}/uplink.o: $(SRCDIR)/ms/uplink.c {- $builddir -}/applink.o
+ $(CC) $(CFLAGS) -c -o $@ $(TOP)/ms/uplink.c
+
+{- $builddir -}/uplink-x86.s: $(SRCDIR)/ms/uplink-x86.pl
+ $(PERL) $(TOP)/ms/uplink-x86.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/x86cpuid.s: {- $sourcedir -}/x86cpuid.pl {- $sourcedir -}/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/x86cpuid.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/x86_64cpuid.s: {- $sourcedir -}/x86_64cpuid.pl
+ $(PERL) {- $sourcedir -}/x86_64cpuid.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/ia64cpuid.s: {- $sourcedir -}/ia64cpuid.S
+ $(CC) $(CFLAGS) -E {- $sourcedir -}/ia64cpuid.S > $@
+{- $builddir -}/ppccpuid.s: {- $sourcedir -}/ppccpuid.pl
+ $(PERL) {- $sourcedir -}/ppccpuid.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/pariscid.s: {- $sourcedir -}/pariscid.pl
+ $(PERL) {- $sourcedir -}/pariscid.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/alphacpuid.s: {- $sourcedir -}/alphacpuid.pl
+ (preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
+ $(PERL) {- $sourcedir -}/alphacpuid.pl > $$preproc && \
+ $(CC) -E -P $$preproc > $@ && rm $$preproc)
+{- $builddir -}/arm64cpuid.S: {- $sourcedir -}/arm64cpuid.pl
+ $(PERL) {- $sourcedir -}/arm64cpuid.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/armv4cpuid.S: {- $sourcedir -}/armv4cpuid.pl
+ $(PERL) {- $sourcedir -}/armv4cpuid.pl $(PERLASM_SCHEME) > $@
+ENDRAW[Makefile]
diff --git a/crypto/camellia/build.info b/crypto/camellia/build.info
index aeffc10b37..abd86b792a 100644
--- a/crypto/camellia/build.info
+++ b/crypto/camellia/build.info
@@ -2,3 +2,12 @@ LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
cmll_ecb.c cmll_ofb.c cmll_cfb.c cmll_ctr.c \
{- $target{cmll_asm_src} -}
+
+BEGINRAW[Makefile]
+{- $builddir -}/cmll-x86.s: {- $sourcedir -}/asm/cmll-x86.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/cmll-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/cmll-x86_64.s: {- $sourcedir -}/asm/cmll-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/cmll-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/cmllt4-sparcv9.s: {- $sourcedir -}/asm/cmllt4-sparcv9.pl {- $sourcetop -}/crypto/perlasm/sparcv9_modes.pl
+ $(PERL) {- $sourcedir -}/asm/cmllt4-sparcv9.pl $(CFLAGS) > $@
+ENDRAW[Makefile]
diff --git a/crypto/cast/build.info b/crypto/cast/build.info
index 27271c813b..6c32fb122e 100644
--- a/crypto/cast/build.info
+++ b/crypto/cast/build.info
@@ -1,3 +1,10 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
c_skey.c c_ecb.c {- $target{cast_asm_src} -} c_cfb64.c c_ofb64.c
+
+BEGINRAW[Makefile]
+##### CAST assembler implementations
+
+{- $builddir -}/cast-586.s: {- $sourcedir -}/asm/cast-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl {- $sourcetop -}/crypto/perlasm/cbc.pl
+ $(PERL) {- $sourcedir -}/asm/cast-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+ENDRAW[Makefile]
diff --git a/crypto/chacha/build.info b/crypto/chacha/build.info
index 47e0536c93..c56c6243e6 100644
--- a/crypto/chacha/build.info
+++ b/crypto/chacha/build.info
@@ -1,2 +1,14 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]={- $target{chacha_asm_src} -}
+
+BEGINRAW[Makefile(unix)]
+##### CHACHA assembler implementations
+
+{- $builddir -}/chacha-x86.s: {- $sourcedir -}/asm/chacha-x86.pl
+ $(PERL) {- $sourcedir -}/asm/chacha-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/chacha-x86_64.s: {- $sourcedir -}/asm/chacha-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/chacha-x86_64.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/chacha-%.S: {- $sourcedir -}/asm/chacha-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+ENDRAW[Makefile(unix)]
diff --git a/crypto/des/build.info b/crypto/des/build.info
index 5113867deb..5fabddf182 100644
--- a/crypto/des/build.info
+++ b/crypto/des/build.info
@@ -7,3 +7,17 @@ SOURCE[../../libcrypto]=\
{- $target{des_asm_src} -} \
fcrypt.c xcbc_enc.c rpc_enc.c cbc_cksm.c \
read2pwd.c
+
+BEGINRAW[Makefile]
+##### DES assembler implementations
+
+{- $builddir -}/des_enc-sparc.S: {- $sourcedir -}/asm/des_enc.m4
+ m4 -B 8192 {- $sourcedir -}/asm/des_enc.m4 > $@
+{- $builddir -}/dest4-sparcv9.s: {- $sourcedir -}/asm/dest4-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/dest4-sparcv9.pl $(CFLAGS) > $@
+
+{- $builddir -}/des-586.s: {- $sourcedir -}/asm/des-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl {- $sourcetop -}/crypto/perlasm/cbc.pl
+ $(PERL) {- $sourcedir -}/asm/des-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+{- $builddir -}/crypt586.s: {- $sourcedir -}/asm/crypt586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl {- $sourcetop -}/crypto/perlasm/cbc.pl
+ $(PERL) {- $sourcedir -}/asm/crypt586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+ENDRAW[Makefile]
diff --git a/crypto/ec/build.info b/crypto/ec/build.info
index 1e68559701..8ba6db0cb0 100644
--- a/crypto/ec/build.info
+++ b/crypto/ec/build.info
@@ -6,3 +6,20 @@ SOURCE[../../libcrypto]=\
ecp_nistp224.c ecp_nistp256.c ecp_nistp521.c ecp_nistputil.c \
ecp_oct.c ec2_oct.c ec_oct.c ec_kmeth.c ecdh_ossl.c ecdh_kdf.c \
ecdsa_ossl.c ecdsa_sign.c ecdsa_vrf.c {- $target{ec_asm_src} -}
+
+BEGINRAW[Makefile]
+{- $builddir -}/ecp_nistz256-x86.s: {- $sourcedir -}/asm/ecp_nistz256-x86.pl
+ $(PERL) {- $sourcedir -}/asm/ecp_nistz256-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/ecp_nistz256-x86_64.s: {- $sourcedir -}/asm/ecp_nistz256-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/ecp_nistz256-x86_64.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/ecp_nistz256-avx2.s: {- $sourcedir -}/asm/ecp_nistz256-avx2.pl
+ $(PERL) {- $sourcedir -}/asm/ecp_nistz256-avx2.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/ecp_nistz256-sparcv9.S: {- $sourcedir -}/asm/ecp_nistz256-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/ecp_nistz256-sparcv9.pl $(CFLAGS) > $@
+
+{- $builddir -}/ecp_nistz256-%.S: {- $sourcedir -}/asm/ecp_nistz256-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+ENDRAW[Makefile]
diff --git a/crypto/md5/build.info b/crypto/md5/build.info
index 3a038534e7..eff8c6f404 100644
--- a/crypto/md5/build.info
+++ b/crypto/md5/build.info
@@ -1,3 +1,18 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
md5_dgst.c md5_one.c {- $target{md5_asm_src} -}
+
+BEGINRAW[Makefile]
+{- $builddir -}/md5-586.s: {- $sourcedir -}/asm/md5-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/md5-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+
+{- $builddir -}/md5-x86_64.s: {- $sourcedir -}/asm/md5-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/md5-x86_64.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/md5-ia64.s: {- $sourcedir -}/asm/md5-ia64.S
+ $(CC) $(CFLAGS) -E {- $sourcedir -}/asm/md5-ia64.S | \
+ $(PERL) -ne 's/;\s+/;\n/g; print;' > $@
+
+{- $builddir -}/md5-sparcv9.S: {- $sourcedir -}/asm/md5-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/md5-sparcv9.pl $@ $(CFLAGS)
+ENDRAW[Makefile]
diff --git a/crypto/modes/build.info b/crypto/modes/build.info
index 98ca3458ae..d10a97de82 100644
--- a/crypto/modes/build.info
+++ b/crypto/modes/build.info
@@ -3,3 +3,30 @@ SOURCE[../../libcrypto]=\
cbc128.c ctr128.c cts128.c cfb128.c ofb128.c gcm128.c \
ccm128.c xts128.c wrap128.c ocb128.c \
{- $target{modes_asm_src} -}
+
+BEGINRAW[Makefile]
+{- $builddir -}/ghash-ia64.s: {- $sourcedir -}/asm/ghash-ia64.pl
+ $(PERL) {- $sourcedir -}/asm/ghash-ia64.pl $@ $(CFLAGS)
+{- $builddir -}/ghash-x86.s: {- $sourcedir -}/asm/ghash-x86.pl
+ $(PERL) {- $sourcedir -}/asm/ghash-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/ghash-x86_64.s: {- $sourcedir -}/asm/ghash-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/ghash-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/aesni-gcm-x86_64.s: {- $sourcedir -}/asm/aesni-gcm-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/aesni-gcm-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/ghash-sparcv9.s: {- $sourcedir -}/asm/ghash-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/ghash-sparcv9.pl $@ $(CFLAGS)
+{- $builddir -}/ghash-alpha.s: {- $sourcedir -}/asm/ghash-alpha.pl
+ (preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
+ $(PERL) {- $sourcedir -}/asm/ghash-alpha.pl > $$preproc && \
+ $(CC) -E -P $$preproc > $@ && rm $$preproc)
+{- $builddir -}/ghash-parisc.s: {- $sourcedir -}/asm/ghash-parisc.pl
+ $(PERL) {- $sourcedir -}/asm/ghash-parisc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/ghashv8-armx.S: {- $sourcedir -}/asm/ghashv8-armx.pl
+ $(PERL) {- $sourcedir -}/asm/ghashv8-armx.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/ghashp8-ppc.s: {- $sourcedir -}/asm/ghashp8-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/ghashp8-ppc.pl $(PERLASM_SCHEME) $@
+
+# GNU make "catch all"
+{- $builddir -}/ghash-%.S: {- $sourcedir -}/asm/ghash-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+ENDRAW[Makefile]
diff --git a/crypto/poly1305/build.info b/crypto/poly1305/build.info
index 35d4fa8fa0..0b59b9fe67 100644
--- a/crypto/poly1305/build.info
+++ b/crypto/poly1305/build.info
@@ -1,3 +1,15 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
poly1305.c {- $target{poly1305_asm_src} -}
+
+BEGINRAW[Makefile(unix)]
+{- $builddir -}/poly1305-sparcv9.S: {- $sourcedir -}/asm/poly1305-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/poly1305-sparcv9.pl > $@
+{- $builddir -}/poly1305-x86.s: {- $sourcedir -}/asm/poly1305-x86.pl
+ $(PERL) {- $sourcedir -}/asm/poly1305-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/poly1305-x86_64.s: {- $sourcedir -}/asm/poly1305-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/poly1305-x86_64.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/poly1305-%.S: {- $sourcedir -}/asm/poly1305-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+ENDRAW[Makefile(unix)]
diff --git a/crypto/rc4/build.info b/crypto/rc4/build.info
index 9e77a81478..f2c4e2a68b 100644
--- a/crypto/rc4/build.info
+++ b/crypto/rc4/build.info
@@ -1,3 +1,30 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
{- $target{rc4_asm_src} -}
+
+BEGINRAW[Makefile]
+{- $builddir -}/rc4-586.s: {- $sourcedir -}/asm/rc4-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/rc4-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/rc4-x86_64.s: {- $sourcedir -}/asm/rc4-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/rc4-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/rc4-md5-x86_64.s: {- $sourcedir -}/asm/rc4-md5-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/rc4-md5-x86_64.pl $(PERLASM_SCHEME) > $@
+
+{- $builddir -}/rc4-ia64.S: {- $sourcedir -}/asm/rc4-ia64.pl
+ $(PERL) {- $sourcedir -}/asm/rc4-ia64.pl $(CFLAGS) > $@
+
+{- $builddir -}/rc4-parisc.s: {- $sourcedir -}/asm/rc4-parisc.pl
+ $(PERL) {- $sourcedir -}/asm/rc4-parisc.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/rc4-ia64.s: rc4-ia64.S
+ @case `awk '/^#define RC4_INT/{print$$NF}' $(TOP)/include/openssl/opensslconf.h` in \
+ int) set -x; $(CC) $(CFLAGS) -DSZ=4 -E rc4-ia64.S > $@ ;; \
+ char) set -x; $(CC) $(CFLAGS) -DSZ=1 -E rc4-ia64.S > $@ ;; \
+ *) exit 1 ;; \
+ esac
+
+# GNU make "catch all"
+{- $builddir -}/rc4-%.s: {- $sourcedir -}/asm/rc4-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+ENDRAW[Makefile]
diff --git a/crypto/rc5/build.info b/crypto/rc5/build.info
index 956d21f9dc..af38f9285e 100644
--- a/crypto/rc5/build.info
+++ b/crypto/rc5/build.info
@@ -1,3 +1,10 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
rc5_skey.c rc5_ecb.c {- $target{rc5_asm_src} -} rc5cfb64.c rc5ofb64.c
+
+BEGINRAW[Makefile]
+##### RC5 assembler implementations
+
+{- $builddir -}/rc5-586.s: {- $sourcedir -}/asm/rc5-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl {- $sourcetop -}/crypto/perlasm/cbc.pl
+ $(PERL) {- $sourcedir -}/asm/rc5-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+ENDRAW[Makefile]
diff --git a/crypto/ripemd/build.info b/crypto/ripemd/build.info
index c5dd4c4b8e..5f63598555 100644
--- a/crypto/ripemd/build.info
+++ b/crypto/ripemd/build.info
@@ -1,3 +1,10 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
rmd_dgst.c rmd_one.c {- $target{rmd160_asm_src} -}
+
+BEGINRAW[Makefile]
+##### RMD160 assembler implementations
+
+{- $builddir -}/rmd-586.s: {- $sourcedir -}/asm/rmd-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/rmd-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+ENDRAW[Makefile]
diff --git a/crypto/sha/build.info b/crypto/sha/build.info
index eef0e46183..1af0497a17 100644
--- a/crypto/sha/build.info
+++ b/crypto/sha/build.info
@@ -1,3 +1,80 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
sha1dgst.c sha1_one.c sha256.c sha512.c {- $target{sha1_asm_src} -}
+
+BEGINRAW[Makefile]
+##### SHA assembler implementations
+
+{- $builddir -}/sha1-586.s: {- $sourcedir -}/asm/sha1-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/sha256-586.s: {- $sourcedir -}/asm/sha256-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/sha256-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+{- $builddir -}/sha512-586.s: {- $sourcedir -}/asm/sha512-586.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/sha1-ia64.s: {- $sourcedir -}/asm/sha1-ia64.pl
+ (cd asm; $(PERL) sha1-ia64.pl ../$@ $(CFLAGS))
+{- $builddir -}/sha256-ia64.s: {- $sourcedir -}/asm/sha512-ia64.pl
+ (cd asm; $(PERL) sha512-ia64.pl ../$@ $(CFLAGS))
+{- $builddir -}/sha512-ia64.s: {- $sourcedir -}/asm/sha512-ia64.pl
+ (cd asm; $(PERL) sha512-ia64.pl ../$@ $(CFLAGS))
+
+{- $builddir -}/sha256-armv4.S: {- $sourcedir -}/asm/sha256-armv4.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+
+{- $builddir -}/sha1-alpha.s: {- $sourcedir -}/asm/sha1-alpha.pl
+ (preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
+ $(PERL) {- $sourcedir -}/asm/sha1-alpha.pl > $$preproc && \
+ $(CC) -E -P $$preproc > $@ && rm $$preproc)
+
+# Solaris make has to be explicitly told
+{- $builddir -}/sha1-x86_64.s: {- $sourcedir -}/asm/sha1-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/sha1-mb-x86_64.s: {- $sourcedir -}/asm/sha1-mb-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-mb-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/sha256-x86_64.s:{- $sourcedir -}/asm/sha512-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha256-mb-x86_64.s: {- $sourcedir -}/asm/sha256-mb-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/sha256-mb-x86_64.pl $(PERLASM_SCHEME) > $@
+{- $builddir -}/sha512-x86_64.s:{- $sourcedir -}/asm/sha512-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha1-sparcv9.S: {- $sourcedir -}/asm/sha1-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-sparcv9.pl $@ $(CFLAGS)
+{- $builddir -}/sha256-sparcv9.S:{- $sourcedir -}/asm/sha512-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-sparcv9.pl $@ $(CFLAGS)
+{- $builddir -}/sha512-sparcv9.S:{- $sourcedir -}/asm/sha512-sparcv9.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-sparcv9.pl $@ $(CFLAGS)
+
+{- $builddir -}/sha1-ppc.s: {- $sourcedir -}/asm/sha1-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha256-ppc.s: {- $sourcedir -}/asm/sha512-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha512-ppc.s: {- $sourcedir -}/asm/sha512-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha256p8-ppc.s: {- $sourcedir -}/asm/sha512p8-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/sha512p8-ppc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha512p8-ppc.s: {- $sourcedir -}/asm/sha512p8-ppc.pl
+ $(PERL) {- $sourcedir -}/asm/sha512p8-ppc.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/sha1-parisc.s: {- $sourcedir -}/asm/sha1-parisc.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-parisc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha256-parisc.s:{- $sourcedir -}/asm/sha512-parisc.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-parisc.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha512-parisc.s:{- $sourcedir -}/asm/sha512-parisc.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-parisc.pl $(PERLASM_SCHEME) $@
+
+{- $builddir -}/sha1-mips.S: {- $sourcedir -}/asm/sha1-mips.pl
+ $(PERL) {- $sourcedir -}/asm/sha1-mips.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha256-mips.S: {- $sourcedir -}/asm/sha512-mips.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-mips.pl $(PERLASM_SCHEME) $@
+{- $builddir -}/sha512-mips.S: {- $sourcedir -}/asm/sha512-mips.pl
+ $(PERL) {- $sourcedir -}/asm/sha512-mips.pl $(PERLASM_SCHEME) $@
+
+# GNU make "catch all"
+{- $builddir -}/sha1-%.S: {- $sourcedir -}/asm/sha1-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+{- $builddir -}/sha256-%.S: {- $sourcedir -}/asm/sha512-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+{- $builddir -}/sha512-%.S: {- $sourcedir -}/asm/sha512-%.pl
+ $(PERL) $< $(PERLASM_SCHEME) $@
+ENDRAW[Makefile]
diff --git a/crypto/whrlpool/build.info b/crypto/whrlpool/build.info
index 64f1407f32..6b996a8c81 100644
--- a/crypto/whrlpool/build.info
+++ b/crypto/whrlpool/build.info
@@ -1,2 +1,10 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=wp_dgst.c {- $target{wp_asm_src} -}
+
+BEGINRAW[Makefile]
+{- $builddir -}/wp-mmx.s: {- $sourcedir -}/asm/wp-mmx.pl {- $sourcetop -}/crypto/perlasm/x86asm.pl
+ $(PERL) {- $sourcedir -}/asm/wp-mmx.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+{- $builddir -}/wp-x86_64.s: {- $sourcedir -}/asm/wp-x86_64.pl
+ $(PERL) {- $sourcedir -}/asm/wp-x86_64.pl $(PERLASM_SCHEME) > $@
+ENDRAW[Makefile]