1# $FreeBSD$
2
3.include <bsd.endian.mk>
4
5.if ${TARGET_ENDIANNESS} == 1234
6CFLAGS+=	-DL_ENDIAN
7.elif ${TARGET_ENDIANNESS} == 4321
8CFLAGS+=	-DB_ENDIAN
9.endif
10
11.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
12    ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386"
13ASM_${MACHINE_CPUARCH}=
14.elif ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" || \
15    ${MACHINE_ARCH} == "powerpc64le"
16ASM_${MACHINE_ARCH}=
17.endif
18
19.if defined(ASM_${MACHINE_CPUARCH}) || defined(ASM_${MACHINE_ARCH})
20CFLAGS+=	-DOPENSSL_CPUID_OBJ
21.if defined(ASM_aarch64)
22CFLAGS+=	-DOPENSSL_BN_ASM_MONT
23CFLAGS+=	-DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
24CFLAGS+=	-DKECCAK1600_ASM
25CFLAGS+=	-DVPAES_ASM
26CFLAGS+=	-DECP_NISTZ256_ASM
27CFLAGS+=	-DPOLY1305_ASM
28.elif defined(ASM_amd64)
29CFLAGS+=	-DOPENSSL_IA32_SSE2
30CFLAGS+=	-DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5
31CFLAGS+=	-DOPENSSL_BN_ASM_GF2m
32CFLAGS+=	-DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
33CFLAGS+=	-DKECCAK1600_ASM
34CFLAGS+=	-DRC4_ASM
35CFLAGS+=	-DMD5_ASM
36CFLAGS+=	-DVPAES_ASM
37CFLAGS+=	-DGHASH_ASM
38CFLAGS+=	-DECP_NISTZ256_ASM -DX25519_ASM
39CFLAGS+=	-DPADLOCK_ASM
40CFLAGS+=	-DPOLY1305_ASM
41.elif defined(ASM_arm)
42CFLAGS+=	-DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m
43CFLAGS+=	-DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
44CFLAGS+=	-DKECCAK1600_ASM
45CFLAGS+=	-DBSAES_ASM
46CFLAGS+=	-DGHASH_ASM
47CFLAGS+=	-DECP_NISTZ256_ASM
48CFLAGS+=	-DPOLY1305_ASM
49.elif defined(ASM_i386)
50CFLAGS+=	-DOPENSSL_IA32_SSE2
51CFLAGS+=	-DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_BN_ASM_MONT
52CFLAGS+=	-DOPENSSL_BN_ASM_GF2m
53CFLAGS+=	-DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
54CFLAGS+=	-DRC4_ASM
55CFLAGS+=	-DMD5_ASM
56CFLAGS+=	-DRMD160_ASM
57CFLAGS+=	-DVPAES_ASM
58CFLAGS+=	-DWHIRLPOOL_ASM
59CFLAGS+=	-DGHASH_ASM
60CFLAGS+=	-DECP_NISTZ256_ASM
61CFLAGS+=	-DPADLOCK_ASM
62CFLAGS+=	-DPOLY1305_ASM
63.elif defined(ASM_powerpc)
64CFLAGS+=	-DOPENSSL_BN_ASM_MONT
65CFLAGS+=	-DAES_ASM
66CFLAGS+=	-DVPAES_ASM
67CFLAGS+=	-DSHA1_ASM
68CFLAGS+=	-DSHA256_ASM
69CFLAGS+=	-DSHA512_ASM
70CFLAGS+=	-DPOLY1305_ASM
71.elif defined(ASM_powerpc64)
72CFLAGS+=	-DOPENSSL_BN_ASM_MONT
73CFLAGS+=	-DAES_ASM
74CFLAGS+=	-DVPAES_ASM
75CFLAGS+=	-DSHA1_ASM
76CFLAGS+=	-DSHA256_ASM
77CFLAGS+=	-DSHA512_ASM
78CFLAGS+=	-DPOLY1305_ASM
79CFLAGS+=	-DECP_NISTZ256_ASM
80CFLAGS+=	-DX25519_ASM
81CFLAGS+=	-DKECCAK1600_ASM
82.elif defined(ASM_powerpc64le)
83CFLAGS+=	-DOPENSSL_BN_ASM_MONT
84CFLAGS+=	-DAES_ASM
85CFLAGS+=	-DVPAES_ASM
86CFLAGS+=	-DSHA1_ASM
87CFLAGS+=	-DSHA256_ASM
88CFLAGS+=	-DSHA512_ASM
89CFLAGS+=	-DPOLY1305_ASM
90CFLAGS+=	-DECP_NISTZ256_ASM
91CFLAGS+=	-DX25519_ASM
92CFLAGS+=	-DKECCAK1600_ASM
93.endif
94.endif
95
96MANDIR=		${SHAREDIR}/openssl/man/man
97
98CFLAGS+=	-DOPENSSLDIR="\"/etc/ssl\""
99CFLAGS+=	-DENGINESDIR="\"${LIBDIR}/engines-3\""
100CFLAGS+=	-DMODULESDIR="\"${LIBDIR}/ossl-modules\""
101
102CFLAGS+=	-DNDEBUG
103
104CFLAGS+=	-I${LCRYPTO_SRC}/crypto
105CFLAGS+=	-I${LCRYPTO_SRC}/crypto/ec/curve448
106CFLAGS+=	-I${LCRYPTO_SRC}/crypto/ec/curve448/arch_32
107CFLAGS+=	-I${LCRYPTO_SRC}/crypto/modes
108CFLAGS+=	-I${.OBJDIR}
109
110.if !empty(SRCS:M*.S)
111ACFLAGS+=	-Wa,--noexecstack
112.endif
113