pkgsrc/mk/features/features.mk

79 lines
2.3 KiB
Makefile

# $NetBSD: features.mk,v 1.6 2008/01/14 23:06:26 tnn 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_FAIL_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 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: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
.PHONY: features-${_file_:S/./-/}
features-${_file_:S/./-/}:
${RUN}set -e; \
nbcompat_header=${LIBNBCOMPAT_SRCDIR:Q}/nbcompat/${_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