pkgsrc/security/openpam/builtin.mk
riastradh f1e9327670 security/openpam: define NO_STATIC_MODULES on NetBSD
This is a hack to work around a mistake in the NetBSD openpam build
which leaked into the public header files.  We will fix this in the
NetBSD build but it's been in the public header files for nearly a
decade now, with each individual pam module sometimes having this
workaround, so let's apply the workaround uniformly for now.

PR security/39313
PR security/55216
2020-04-28 23:01:26 +00:00

65 lines
1.9 KiB
Makefile

# $NetBSD: builtin.mk,v 1.12 2020/04/28 23:01:26 riastradh Exp $
BUILTIN_PKG:= openpam
BUILTIN_FIND_HEADERS_VAR:= H_OPENPAM
BUILTIN_FIND_HEADERS.H_OPENPAM= security/openpam_version.h
.include "../../mk/buildlink3/bsd.builtin.mk"
###
### Determine if there is a built-in implementation of the package and
### set IS_BUILTIN.<pkg> appropriately ("yes" or "no").
###
.if !defined(IS_BUILTIN.openpam)
IS_BUILTIN.openpam= no
. if empty(H_OPENPAM:M__nonexistent__) && empty(H_OPENPAM:M${LOCALBASE}/*)
IS_BUILTIN.openpam= yes
. endif
.endif
MAKEVARS+= IS_BUILTIN.openpam
###
### If there is a built-in implementation, then set BUILTIN_PKG.<pkg> to
### a package name to represent the built-in package.
###
.if !defined(BUILTIN_PKG.openpam) && \
!empty(IS_BUILTIN.openpam:M[yY][eE][sS]) && \
empty(H_OPENPAM:M__nonexistent__)
BUILTIN_VERSION.openpam!= \
${AWK} '/\#define[ ]*_?OPENPAM_VERSION[ ]/ {print $$3; }' \
${H_OPENPAM}
BUILTIN_PKG.openpam= openpam-${BUILTIN_VERSION.openpam}
.endif
MAKEVARS+= BUILTIN_PKG.openpam
###
### Determine whether we should use the built-in implementation if it
### exists, and set USE_BUILTIN.<pkg> appropriate ("yes" or "no").
###
.if !defined(USE_BUILTIN.openpam)
. if ${PREFER.openpam} == "pkgsrc"
USE_BUILTIN.openpam= no
. else
USE_BUILTIN.openpam= ${IS_BUILTIN.openpam}
. if defined(BUILTIN_PKG.openpam) && \
!empty(IS_BUILTIN.openpam:M[yY][eE][sS])
USE_BUILTIN.openpam= yes
. for dep in ${BUILDLINK_API_DEPENDS.openpam}
. if !empty(USE_BUILTIN.openpam:M[yY][eE][sS])
USE_BUILTIN.openpam!= \
if ${PKG_ADMIN} pmatch ${dep:Q} ${BUILTIN_PKG.openpam:Q}; then \
${ECHO} yes; \
else \
${ECHO} no; \
fi
. endif
. endfor
. endif
. endif # PREFER.openpam
.endif
MAKEVARS+= USE_BUILTIN.openpam
.if !empty(USE_BUILTIN.openpam:M[yY][eE][sS])
CPPFLAGS.NetBSD+= -DNO_STATIC_MODULES
.endif