1LIBS=../../libcrypto
2SOURCE[../../libcrypto]=\
3        sha1dgst.c sha1_one.c sha256.c sha512.c {- $target{sha1_asm_src} -} \
4        {- $target{keccak1600_asm_src} -}
5
6GENERATE[sha1-586.s]=asm/sha1-586.pl \
7        $(PERLASM_SCHEME) $(LIB_CFLAGS) $(LIB_CPPFLAGS) $(PROCESSOR)
8DEPEND[sha1-586.s]=../perlasm/x86asm.pl
9GENERATE[sha256-586.s]=asm/sha256-586.pl \
10        $(PERLASM_SCHEME) $(LIB_CFLAGS) $(LIB_CPPFLAGS) $(PROCESSOR)
11DEPEND[sha256-586.s]=../perlasm/x86asm.pl
12GENERATE[sha512-586.s]=asm/sha512-586.pl \
13        $(PERLASM_SCHEME) $(LIB_CFLAGS) $(LIB_CPPFLAGS) $(PROCESSOR)
14DEPEND[sha512-586.s]=../perlasm/x86asm.pl
15
16GENERATE[sha1-ia64.s]=asm/sha1-ia64.pl $(LIB_CFLAGS) $(LIB_CPPFLAGS)
17GENERATE[sha256-ia64.s]=asm/sha512-ia64.pl $(LIB_CFLAGS) $(LIB_CPPFLAGS)
18GENERATE[sha512-ia64.s]=asm/sha512-ia64.pl $(LIB_CFLAGS) $(LIB_CPPFLAGS)
19
20GENERATE[sha1-alpha.S]=asm/sha1-alpha.pl $(PERLASM_SCHEME)
21
22GENERATE[sha1-x86_64.s]=asm/sha1-x86_64.pl $(PERLASM_SCHEME)
23GENERATE[sha1-mb-x86_64.s]=asm/sha1-mb-x86_64.pl $(PERLASM_SCHEME)
24GENERATE[sha256-x86_64.s]=asm/sha512-x86_64.pl $(PERLASM_SCHEME)
25GENERATE[sha256-mb-x86_64.s]=asm/sha256-mb-x86_64.pl $(PERLASM_SCHEME)
26GENERATE[sha512-x86_64.s]=asm/sha512-x86_64.pl $(PERLASM_SCHEME)
27GENERATE[keccak1600-x86_64.s]=asm/keccak1600-x86_64.pl $(PERLASM_SCHEME)
28
29GENERATE[sha1-sparcv9.S]=asm/sha1-sparcv9.pl $(PERLASM_SCHEME)
30INCLUDE[sha1-sparcv9.o]=..
31GENERATE[sha256-sparcv9.S]=asm/sha512-sparcv9.pl $(PERLASM_SCHEME)
32INCLUDE[sha256-sparcv9.o]=..
33GENERATE[sha512-sparcv9.S]=asm/sha512-sparcv9.pl $(PERLASM_SCHEME)
34INCLUDE[sha512-sparcv9.o]=..
35
36GENERATE[sha1-ppc.s]=asm/sha1-ppc.pl $(PERLASM_SCHEME)
37GENERATE[sha256-ppc.s]=asm/sha512-ppc.pl $(PERLASM_SCHEME)
38GENERATE[sha512-ppc.s]=asm/sha512-ppc.pl $(PERLASM_SCHEME)
39GENERATE[sha256p8-ppc.s]=asm/sha512p8-ppc.pl $(PERLASM_SCHEME)
40GENERATE[sha512p8-ppc.s]=asm/sha512p8-ppc.pl $(PERLASM_SCHEME)
41GENERATE[keccak1600-ppc64.s]=asm/keccak1600-ppc64.pl $(PERLASM_SCHEME)
42
43GENERATE[sha1-parisc.s]=asm/sha1-parisc.pl $(PERLASM_SCHEME)
44GENERATE[sha256-parisc.s]=asm/sha512-parisc.pl $(PERLASM_SCHEME)
45GENERATE[sha512-parisc.s]=asm/sha512-parisc.pl $(PERLASM_SCHEME)
46
47GENERATE[sha1-mips.S]=asm/sha1-mips.pl $(PERLASM_SCHEME)
48INCLUDE[sha1-mips.o]=..
49GENERATE[sha256-mips.S]=asm/sha512-mips.pl $(PERLASM_SCHEME)
50INCLUDE[sha256-mips.o]=..
51GENERATE[sha512-mips.S]=asm/sha512-mips.pl $(PERLASM_SCHEME)
52INCLUDE[sha512-mips.o]=..
53
54GENERATE[sha1-armv4-large.S]=asm/sha1-armv4-large.pl $(PERLASM_SCHEME)
55INCLUDE[sha1-armv4-large.o]=..
56GENERATE[sha256-armv4.S]=asm/sha256-armv4.pl $(PERLASM_SCHEME)
57INCLUDE[sha256-armv4.o]=..
58GENERATE[sha512-armv4.S]=asm/sha512-armv4.pl $(PERLASM_SCHEME)
59INCLUDE[sha512-armv4.o]=..
60GENERATE[keccak1600-armv4.S]=asm/keccak1600-armv4.pl $(PERLASM_SCHEME)
61INCLUDE[keccak1600-armv4.o]=..
62
63GENERATE[sha1-armv8.S]=asm/sha1-armv8.pl $(PERLASM_SCHEME)
64INCLUDE[sha1-armv8.o]=..
65GENERATE[sha256-armv8.S]=asm/sha512-armv8.pl $(PERLASM_SCHEME)
66INCLUDE[sha256-armv8.o]=..
67GENERATE[sha512-armv8.S]=asm/sha512-armv8.pl $(PERLASM_SCHEME)
68INCLUDE[sha512-armv8.o]=..
69GENERATE[keccak1600-armv8.S]=asm/keccak1600-armv8.pl $(PERLASM_SCHEME)
70
71GENERATE[sha1-s390x.S]=asm/sha1-s390x.pl $(PERLASM_SCHEME)
72INCLUDE[sha1-s390x.o]=..
73GENERATE[sha256-s390x.S]=asm/sha512-s390x.pl $(PERLASM_SCHEME)
74INCLUDE[sha256-s390x.o]=..
75GENERATE[sha512-s390x.S]=asm/sha512-s390x.pl $(PERLASM_SCHEME)
76INCLUDE[sha512-s390x.o]=..
77GENERATE[keccak1600-s390x.S]=asm/keccak1600-s390x.pl $(PERLASM_SCHEME)
78
79BEGINRAW[Makefile(unix)]
80##### SHA assembler implementations
81
82# GNU make "catch all"
83{- $builddir -}/sha1-%.S:	{- $sourcedir -}/asm/sha1-%.pl
84	CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@
85{- $builddir -}/sha256-%.S:	{- $sourcedir -}/asm/sha512-%.pl
86	CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@
87{- $builddir -}/sha512-%.S:	{- $sourcedir -}/asm/sha512-%.pl
88	CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@
89ENDRAW[Makefile(unix)]
90