This Makefile fragment is included by package buildlink.mk files. This
file does 3 things: (1) Defines a macro target, _BUILDLINK_USE, that symlinks package files into a new hierarchy under ${BUILDLINK_DIR}; (2) Adds -I${BUILDLINK_DIR}/include to CPPFLAGS, CFLAGS, and CXXFLAGS; (3) Adds -L${BUILDLINK_DIR}/lib to LDFLAGS. This file might be absorbed into bsd.pkg.mk at a future date.
This commit is contained in:
parent
f837b66312
commit
9841958296
1 changed files with 83 additions and 0 deletions
83
mk/bsd.buildlink.mk
Normal file
83
mk/bsd.buildlink.mk
Normal file
|
@ -0,0 +1,83 @@
|
|||
# $NetBSD: bsd.buildlink.mk,v 1.1 2001/06/11 01:57:09 jlam Exp $
|
||||
#
|
||||
# This Makefile fragment is included by package buildlink.mk files. This
|
||||
# file does 3 things:
|
||||
#
|
||||
# (1) Defines a macro target, _BUILDLINK_USE, that symlinks package files
|
||||
# into a new hierarchy under ${BUILDLINK_DIR};
|
||||
# (2) Adds -I${BUILDLINK_DIR}/include to CPPFLAGS, CFLAGS, and CXXFLAGS;
|
||||
# (3) Adds -L${BUILDLINK_DIR}/lib to LDFLAGS.
|
||||
#
|
||||
# By including buildlink.mk files before package-specific CFLAGS or LDFLAGS
|
||||
# are defined, you can ensure that the buildlink directories are ahead of
|
||||
# any package-specific directories in the compiler search paths.
|
||||
#
|
||||
# The variables required to be defined prior to including this file are
|
||||
# listed below. <pkgname> refers to the name of the package and should be
|
||||
# used consistently throughout the buildlink.mk file.
|
||||
#
|
||||
# BUILDLINK_PREFIX.<pkgname> installation prefix of the package
|
||||
#
|
||||
# BUILDLINK_FILES.<pkgname> files relative to ${BUILDLINK_PREFIX.<pkgname>}
|
||||
# to be symlinked into ${BUILDLINK_DIR}
|
||||
#
|
||||
# BUILDLINK_TARGETS targets to be invoked during pre-configure;
|
||||
# the targets should be appended to this variable
|
||||
# using +=
|
||||
#
|
||||
# The targets required to be defined prior to including this file are
|
||||
# listed below.
|
||||
#
|
||||
# pre-configure this target should have as dependencies any
|
||||
# targets to be invoked; this is just usually # <pkgname>-buildlink
|
||||
#
|
||||
# <pkgname>-buildlink this target should just invoke the
|
||||
# _BUILDLINK_USE macro target defined in this
|
||||
# file
|
||||
#
|
||||
# Example package buildlink.mk file:
|
||||
#
|
||||
# BUILDLINK_PREFIX.foo= ${LOCALBASE}
|
||||
# BUILDLINK_FILES.foo= include/foo.h
|
||||
# BUILDLINK_FILES.foo+= include/bar.h
|
||||
# BUILDLINK_FILES.foo+= lib/libfoo.*
|
||||
#
|
||||
# BUILDLINK_TARGETS+= foo-buildlink
|
||||
#
|
||||
# pre-configure: foo-buildlink
|
||||
# foo-buildlink: _BUILDLINK_USE
|
||||
#
|
||||
# .include "../../mk/bsd.buildlink.mk"
|
||||
|
||||
.if !defined(_BSD_BUILDLINK_MK)
|
||||
_BSD_BUILDLINK_MK= # defined
|
||||
|
||||
BUILDLINK_DIR?= ${WRKDIR}/.buildlink
|
||||
|
||||
.if !defined(BUILDLINK_CPPFLAGS) || !defined(BUILDLINK_LDFLAGS)
|
||||
BUILDLINK_CPPFLAGS= -I${BUILDLINK_DIR}/include
|
||||
BUILDLINK_LDFLAGS= -L${BUILDLINK_DIR}/lib
|
||||
|
||||
CFLAGS+= ${BUILDLINK_CPPFLAGS}
|
||||
CXXFLAGS+= ${BUILDLINK_CPPFLAGS}
|
||||
CPPFLAGS+= ${BUILDLINK_CPPFLAGS}
|
||||
LDFLAGS+= ${BUILDLINK_LDFLAGS}
|
||||
.endif
|
||||
|
||||
_BUILDLINK_USE: .USE
|
||||
${_PKG_SILENT}${_PKG_DEBUG} \
|
||||
cookie=${BUILDLINK_DIR}/.${.TARGET:S/-buildlink//}_buildlink_done; \
|
||||
if [ ! -f $${cookie} ]; then \
|
||||
${ECHO} "Linking ${.TARGET:S/-buildlink//} files into ${BUILDLINK_DIR}."; \
|
||||
for file in ${BUILDLINK_FILES.${.TARGET:S/-buildlink//}:S/^/${BUILDLINK_PREFIX.${.TARGET:S/-buildlink//}}\//g}; do \
|
||||
dest=${BUILDLINK_DIR}/$${file##${BUILDLINK_PREFIX.${.TARGET:S/-buildlink//}}/}; \
|
||||
${MKDIR} $${dest%/*}; \
|
||||
if [ -f $${file} ]; then \
|
||||
${RM} -f $${dest}; \
|
||||
${LN} -sf $${file} $${dest}; \
|
||||
fi; \
|
||||
done; \
|
||||
${TOUCH} ${TOUCH_FLAGS} $${cookie}; \
|
||||
fi
|
||||
|
||||
.endif # _BSD_BUILDLINK_MK
|
Loading…
Reference in a new issue