xref: /freebsd/secure/lib/libcrypto/Makefile.inc (revision 8c784bb8cf36911b828652f0bf7e88f443abec50)
1# $FreeBSD$
2
3.include <bsd.own.mk>
4
5# OpenSSL version used for manual page generation
6OPENSSL_VER=	1.1.1t
7OPENSSL_DATE=	2023-02-07
8
9LCRYPTO_SRC=	${SRCTOP}/crypto/openssl
10LCRYPTO_DOC=	${LCRYPTO_SRC}/doc
11
12CFLAGS+=	-I${LCRYPTO_SRC}
13CFLAGS+=	-I${LCRYPTO_SRC}/include
14
15.include <bsd.endian.mk>
16
17.if ${TARGET_ENDIANNESS} == 1234
18CFLAGS+=	-DL_ENDIAN
19.elif ${TARGET_ENDIANNESS} == 4321
20CFLAGS+=	-DB_ENDIAN
21.endif
22
23.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
24    ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386"
25ASM_${MACHINE_CPUARCH}=
26.elif ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" || \
27    ${MACHINE_ARCH} == "powerpc64le"
28ASM_${MACHINE_ARCH}=
29.endif
30
31.if defined(ASM_${MACHINE_CPUARCH}) || defined(ASM_${MACHINE_ARCH})
32CFLAGS+=	-DOPENSSL_CPUID_OBJ
33.if defined(ASM_aarch64)
34CFLAGS+=	-DOPENSSL_BN_ASM_MONT
35CFLAGS+=	-DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
36CFLAGS+=	-DKECCAK1600_ASM
37CFLAGS+=	-DVPAES_ASM
38CFLAGS+=	-DECP_NISTZ256_ASM
39CFLAGS+=	-DPOLY1305_ASM
40.elif defined(ASM_amd64)
41CFLAGS+=	-DOPENSSL_IA32_SSE2
42CFLAGS+=	-DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5
43CFLAGS+=	-DOPENSSL_BN_ASM_GF2m
44CFLAGS+=	-DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
45CFLAGS+=	-DKECCAK1600_ASM
46CFLAGS+=	-DRC4_ASM
47CFLAGS+=	-DMD5_ASM
48CFLAGS+=	-DVPAES_ASM
49CFLAGS+=	-DGHASH_ASM
50CFLAGS+=	-DECP_NISTZ256_ASM -DX25519_ASM
51CFLAGS+=	-DPADLOCK_ASM
52CFLAGS+=	-DPOLY1305_ASM
53.elif defined(ASM_arm)
54CFLAGS+=	-DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m
55CFLAGS+=	-DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
56CFLAGS+=	-DKECCAK1600_ASM
57CFLAGS+=	-DBSAES_ASM
58CFLAGS+=	-DGHASH_ASM
59CFLAGS+=	-DECP_NISTZ256_ASM
60CFLAGS+=	-DPOLY1305_ASM
61.elif defined(ASM_i386)
62CFLAGS+=	-DOPENSSL_IA32_SSE2
63CFLAGS+=	-DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_BN_ASM_MONT
64CFLAGS+=	-DOPENSSL_BN_ASM_GF2m
65CFLAGS+=	-DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
66CFLAGS+=	-DRC4_ASM
67CFLAGS+=	-DMD5_ASM
68CFLAGS+=	-DRMD160_ASM
69CFLAGS+=	-DVPAES_ASM
70CFLAGS+=	-DWHIRLPOOL_ASM
71CFLAGS+=	-DGHASH_ASM
72CFLAGS+=	-DECP_NISTZ256_ASM
73CFLAGS+=	-DPADLOCK_ASM
74CFLAGS+=	-DPOLY1305_ASM
75.elif defined(ASM_powerpc)
76CFLAGS+=	-DOPENSSL_BN_ASM_MONT
77CFLAGS+=	-DAES_ASM
78CFLAGS+=	-DVPAES_ASM
79CFLAGS+=	-DSHA1_ASM
80CFLAGS+=	-DSHA256_ASM
81CFLAGS+=	-DSHA512_ASM
82CFLAGS+=	-DPOLY1305_ASM
83.elif defined(ASM_powerpc64)
84CFLAGS+=	-DOPENSSL_BN_ASM_MONT
85CFLAGS+=	-DAES_ASM
86CFLAGS+=	-DVPAES_ASM
87CFLAGS+=	-DSHA1_ASM
88CFLAGS+=	-DSHA256_ASM
89CFLAGS+=	-DSHA512_ASM
90CFLAGS+=	-DPOLY1305_ASM
91CFLAGS+=	-DECP_NISTZ256_ASM
92CFLAGS+=	-DX25519_ASM
93CFLAGS+=	-DKECCAK1600_ASM
94.elif defined(ASM_powerpc64le)
95CFLAGS+=	-DOPENSSL_BN_ASM_MONT
96CFLAGS+=	-DAES_ASM
97CFLAGS+=	-DVPAES_ASM
98CFLAGS+=	-DSHA1_ASM
99CFLAGS+=	-DSHA256_ASM
100CFLAGS+=	-DSHA512_ASM
101CFLAGS+=	-DPOLY1305_ASM
102CFLAGS+=	-DECP_NISTZ256_ASM
103CFLAGS+=	-DX25519_ASM
104CFLAGS+=	-DKECCAK1600_ASM
105.endif
106.endif
107
108.if defined(LIB)
109CFLAGS+=	-DOPENSSLDIR="\"/etc/ssl\""
110CFLAGS+=	-DENGINESDIR="\"${LIBDIR}/engines\""
111.endif
112
113CFLAGS+=	-DNDEBUG
114
115MANDIR=		${SHAREDIR}/openssl/man/man
116
117.for pcfile in ${PCFILES}
118${pcfile}:	${pcfile}.in
119	sed -e 's,@openssl_ver@,${OPENSSL_VER},g' ${.ALLSRC} > ${.TARGET}
120.endfor
121CLEANFILES+=	${PCFILES}
122