pkgsrc/mk/features/features.mk
dholland 2a00e7b840 Use PKG_SKIP_REASON instead of PKG_FAIL_REASON for some cases where
the problem is either situational (e.g. the various RESTRICTED-like
cases) or unfixable in pkgsrc (no pthreads, ipv6, etc. on platform).

Conversely, if the wrong version of mysql is installed, that's a
PKG_FAIL_REASON.
2015-01-01 07:51:47 +00:00

82 lines
2.5 KiB
Makefile

# $NetBSD: features.mk,v 1.8 2015/01/01 07:51:47 dholland Exp $
#
# This file is included by bsd.pkg.mk.
#
# Variables defined by this file:
#
# FEATURE_CPPFLAGS
# FEATURE_LDFLAGS
# FEATURE_LIBS
# Preprocessor and linker flags needed to build and to link against
# the headers and libraries that supply the features missing from
# the system.
#
.if defined(MISSING_FEATURES)
#
# Handle "inet6" feature specially -- "inet6" could be in
# MISSING_FEATURES even though it's not requested in USE_FEATURES
# so check that it appears in both before failing the package
# build.
#
. if !empty(USE_FEATURES:Minet6)
. if !empty(MISSING_FEATURES:Minet6)
PKG_SKIP_REASON+= "${PKGNAME} requires IPv6 support"
. endif
. endif
FEATURE_CPPFLAGS= # empty
FEATURE_LDFLAGS= # empty
FEATURE_LIBS= # empty
CPPFLAGS+= ${FEATURE_CPPFLAGS}
LDFLAGS+= ${FEATURE_LDFLAGS}
LIBS+= ${FEATURE_LIBS}
# libnbcompat provides many of the current features.
#
_FEATURE_USE_NBCOMPAT?= no
. for f in asprintf cdefs err fts_close fts_open fts_read fts_set getopt_long glob nbcompat regcomp setenv snprintf utimes vsnprintf warn
. if !empty(MISSING_FEATURES:M${f})
_FEATURE_USE_NBCOMPAT= yes
. endif
. endfor
. if ${_FEATURE_USE_NBCOMPAT} == "yes"
. include "${PKGSRCDIR}/pkgtools/libnbcompat/inplace.mk"
FEATURE_CPPFLAGS+= ${CPPFLAGS.nbcompat}
FEATURE_LDFLAGS+= ${LDFLAGS.nbcompat}
FEATURE_LIBS+= ${LDADD.nbcompat}
. endif
. if (${_FEATURE_USE_NBCOMPAT} == "yes") && !empty(MISSING_FEATURES:Mcdefs)
BUILDLINK_TARGETS+= features-sys-cdefs-h
. endif
. if (${_FEATURE_USE_NBCOMPAT} == "yes") && \
(!empty(MISSING_FEATURES:Mfts_close) || \
!empty(MISSING_FEATURES:Mfts_open) || \
!empty(MISSING_FEATURES:Mfts_read) || \
!empty(MISSING_FEATURES:Mfts_set))
BUILDLINK_TARGETS+= features-fts-h
. endif
. if (${_FEATURE_USE_NBCOMPAT} == "yes") && !empty(MISSING_FEATURES:Mglob)
BUILDLINK_TARGETS+= features-glob-h
. endif
. if (${_FEATURE_USE_NBCOMPAT} == "yes") && !empty(MISSING_FEATURES:Mregcomp)
BUILDLINK_TARGETS+= features-regex-h
. endif
. for _file_ in fts.h glob.h regex.h sys/cdefs.h
.PHONY: features-${_file_:S/./-/:S/\//-/}
features-${_file_:S/./-/:S/\//-/}:
${RUN}set -e; \
nbcompat_header=${LIBNBCOMPAT_SRCDIR:Q}/nbcompat/`${BASENAME} ${_file_:Q}`; \
header=${BUILDLINK_DIR:Q}/include/${_file_:Q}; \
if ${TEST} ! -f "$$header" -a -f "$$nbcompat_header"; then \
${ECHO_BUILDLINK_MSG} "Creating $$header."; \
${MKDIR} `${DIRNAME} "$$header"`; \
${LN} -s "$$nbcompat_header" "$$header"; \
fi
. endfor
.endif # MISSING_FEATURES