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