blob: 12520d1a790ca28b4a894e9b621cd167d851452d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# $NetBSD: bsd.buildlink.mk,v 1.6 2001/06/15 08:35:34 jlam Exp $
#
# This Makefile fragment is included by package buildlink.mk files. This
# file does the following things:
#
# (1) Defines a macro target, _BUILDLINK_USE, that symlinks package files
# into a new hierarchy under ${BUILDLINK_DIR};
# (2) Defines BUILDLINK_CPPFLAGS and BUILDLINK_LDFLAGS to be the flags
# needed to find the buildlink include files and buildlink libraries,
# respectively.
# (3) Prepends ${BUILDLINK_CPPFLAGS} to CPPFLAGS, CFLAGS, and CXXFLAGS;
# (4) Prepends ${BUILDLINK_LDFLAGS} to LDFLAGS.
#
# 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 variables that may optionally be defined are:
#
# BUILDLINK_TRANSFORM.<pkgname> sed arguments used to transform the name of
# the source filename into a destination
# filename
#
# 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.*
#
# # We need the libraries to be called "libbar.*".
# BUILDLINK_TRANSFORM.foo= -e "s|libfoo|libbar|g"
#
# 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} ${CFLAGS}
CXXFLAGS:= ${BUILDLINK_CPPFLAGS} ${CXXFLAGS}
CPPFLAGS:= ${BUILDLINK_CPPFLAGS} ${CPPFLAGS}
LDFLAGS:= ${BUILDLINK_LDFLAGS} ${LDFLAGS}
CONFIGURE_ENV+= BUILDLINK_CPPFLAGS="${BUILDLINK_CPPFLAGS}"
CONFIGURE_ENV+= BUILDLINK_LDFLAGS="${BUILDLINK_LDFLAGS}"
MAKE_ENV+= BUILDLINK_CPPFLAGS="${BUILDLINK_CPPFLAGS}"
MAKE_ENV+= BUILDLINK_LDFLAGS="${BUILDLINK_LDFLAGS}"
.endif
_BUILDLINK_USE: .USE
${_PKG_SILENT}${_PKG_DEBUG} \
cookie=${BUILDLINK_DIR}/.${.TARGET:S/-buildlink//}_buildlink_done; \
if [ ! -f $${cookie} ]; then \
${ECHO_MSG} "Linking ${.TARGET:S/-buildlink//} files into ${BUILDLINK_DIR}."; \
for file in ${BUILDLINK_FILES.${.TARGET:S/-buildlink//}:S/^/${BUILDLINK_PREFIX.${.TARGET:S/-buildlink//}}\//g}; do \
if [ -z "${BUILDLINK_TRANSFORM.${.TARGET:S/-buildlink//}:Q}" ]; then \
dest=${BUILDLINK_DIR}/$${file##${BUILDLINK_PREFIX.${.TARGET:S/-buildlink//}}/}; \
else \
dest=`${ECHO} ${BUILDLINK_DIR}/$${file##${BUILDLINK_PREFIX.${.TARGET:S/-buildlink//}}/} | ${SED} ${BUILDLINK_TRANSFORM.${.TARGET:S/-buildlink//}}`; \
fi; \
${MKDIR} $${dest%/*}; \
if [ -f $${file} ]; then \
${RM} -f $${dest}; \
${LN} -sf $${file} $${dest}; \
fi; \
done; \
${TOUCH} ${TOUCH_FLAGS} $${cookie}; \
fi
.endif # _BSD_BUILDLINK_MK
|