1#	$NetBSD: Makefile.openssl,v 1.19 2023/05/25 19:12:51 riastradh Exp $
2
3.ifndef _MAKEFILE_OPENSSL_INCLUDED
4_MAKEFILE_OPENSSL_INCLUDED=1
5
6.include <bsd.own.mk>
7WARNS=3
8
9# would require changing a lot of code
10CWARNFLAGS+= -Wno-error=cast-qual
11CWARNFLAGS+= -Wno-error=char-subscripts # XXX likely real ctype(3) missing cast bugs
12CWARNFLAGS+= -Wno-error=missing-field-initializers
13CWARNFLAGS+= -Wno-error=shadow
14
15CWARNFLAGS.gcc+= -Wno-error=discarded-qualifiers
16CWARNFLAGS.clang+= -Wno-error=ignored-qualifiers
17
18# OpenSSL extensively uses string literals as char *, which clang
19# (reasonably if not exactly rightly) objects to.
20CWARNFLAGS.clang+= -Wno-error=incompatible-pointer-types-discards-qualifiers
21
22# XXX: re-examine the below
23CWARNFLAGS.clang+= -Wno-empty-body -Wno-unused-value -Wno-parentheses
24CWARNFLAGS.clang+= -Wno-implicit-int-float-conversion
25# XXX: This warning seems to trigger incorrectly
26CWARNFLAGS.clang+=	-Wno-atomic-alignment
27
28LINTFLAGS+=	-X 161	# constant in conditional context
29LINTFLAGS+=	-X 129	# expression has null effect
30LINTFLAGS+=	-X 117	# bitwise '>>' on signed value possibly nonportable
31LINTFLAGS+=	-X 231	# argument '%s' unused in function '%s'
32LINTFLAGS+=	-X 220	# fallthrough on case statement
33LINTFLAGS+=	-X 118	# semantics of '%s' change in ANSI C; use explicit cast
34
35
36.if ${HAVE_OPENSSL} <= 11
37OSSL_ENGINESDIR=/usr/lib/openssl
38.else
39.	if defined(MLIBDIR)
40OSSL_LIBDIR=/usr/lib/${MLIBDIR}/openssl
41.	else
42OSSL_LIBDIR=/usr/lib/openssl
43.	endif
44OSSL_ENGINESDIR=${OSSL_LIBDIR}/engines
45OSSL_MODULESDIR=${OSSL_LIBDIR}/modules
46.endif
47
48OPENSSLSRC=	${CRYPTODIST}/external/bsd/${EXTERNAL_OPENSSL_SUBDIR}/dist
49CPPFLAGS+=	-DOPENSSLDIR=\"/etc/openssl\"
50CPPFLAGS+=	-DENGINESDIR=\"${OSSL_ENGINESDIR}\"
51CPPFLAGS+=	-DMODULESDIR=\"${OSSL_MODULESDIR}\"
52
53.endif
54