xref: /openbsd/lib/libcrypto/arch/amd64/Makefile.inc (revision 09467b48)
1# $OpenBSD: Makefile.inc,v 1.8 2017/08/20 17:53:13 espie Exp $
2
3# amd64-specific libcrypto build rules
4
5# all amd64 code generators use this
6EXTRA_PL =	${LCRYPTO_SRC}/perlasm/x86_64-xlate.pl
7
8# aes
9CFLAGS+= -DAES_ASM
10SSLASM+= aes aes-x86_64
11CFLAGS+= -DBSAES_ASM
12SSLASM+= aes bsaes-x86_64
13CFLAGS+= -DVPAES_ASM
14SSLASM+= aes vpaes-x86_64
15SSLASM+= aes aesni-x86_64
16SSLASM+= aes aesni-sha1-x86_64
17# bf
18SRCS+= bf_enc.c
19# bn
20CFLAGS+= -DOPENSSL_IA32_SSE2
21CFLAGS+= -DRSA_ASM
22SSLASM+= bn modexp512-x86_64
23CFLAGS+= -DOPENSSL_BN_ASM_MONT
24SSLASM+= bn x86_64-mont
25CFLAGS+= -DOPENSSL_BN_ASM_MONT5
26SSLASM+= bn x86_64-mont5
27CFLAGS+= -DOPENSSL_BN_ASM_GF2m
28SSLASM+= bn x86_64-gf2m
29# camellia
30SRCS+=	cmll_misc.c
31SSLASM+= camellia cmll-x86_64
32# des
33SRCS+= des_enc.c fcrypt_b.c
34# ec
35#CFLAGS+= -DECP_NISTZ256_ASM
36#SRCS+=	ecp_nistz256.c
37#SSLASM+= ec ecp_nistz256-x86_64
38# md5
39CFLAGS+= -DMD5_ASM
40SSLASM+= md5 md5-x86_64
41# modes
42CFLAGS+= -DGHASH_ASM
43SSLASM+= modes ghash-x86_64
44# rc4
45CFLAGS+= -DRC4_MD5_ASM
46SSLASM+= rc4 rc4-x86_64
47SSLASM+= rc4 rc4-md5-x86_64
48# ripemd
49# sha
50CFLAGS+= -DSHA1_ASM
51SSLASM+= sha sha1-x86_64
52CFLAGS+= -DSHA256_ASM
53SRCS+= sha256-x86_64.S
54GENERATED+= sha256-x86_64.S
55sha256-x86_64.S: ${LCRYPTO_SRC}/sha/asm/sha512-x86_64.pl ${EXTRA_PL}
56	cd ${LCRYPTO_SRC}/sha/asm ; \
57		/usr/bin/perl ./sha512-x86_64.pl ${.OBJDIR}/${.TARGET}
58CFLAGS+= -DSHA512_ASM
59SRCS+= sha512-x86_64.S
60GENERATED+= sha512-x86_64.S
61sha512-x86_64.S: ${LCRYPTO_SRC}/sha/asm/sha512-x86_64.pl ${EXTRA_PL}
62	cd ${LCRYPTO_SRC}/sha/asm ; \
63		/usr/bin/perl ./sha512-x86_64.pl ${.OBJDIR}/${.TARGET}
64# whrlpool
65CFLAGS+= -DWHIRLPOOL_ASM
66SSLASM+= whrlpool wp-x86_64
67
68.for dir f in ${SSLASM}
69SRCS+=	${f}.S
70GENERATED+=${f}.S
71${f}.S: ${LCRYPTO_SRC}/${dir}/asm/${f}.pl ${EXTRA_PL}
72	(cd ${LCRYPTO_SRC}/${dir} ; \
73		/usr/bin/perl ./asm/${f}.pl openbsd) > ${.TARGET}
74.endfor
75
76CFLAGS+= -DOPENSSL_CPUID_OBJ
77SRCS+=	x86_64cpuid.S x86_64-gcc.c
78GENERATED+=x86_64cpuid.S
79
80x86_64cpuid.S: ${LCRYPTO_SRC}/x86_64cpuid.pl ${EXTRA_PL}
81	(cd ${LCRYPTO_SRC}/${dir} ; \
82		/usr/bin/perl ./x86_64cpuid.pl) > ${.TARGET}
83