This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
OSS_TYPE to determine whether or not a native OSS implementation is
present or not. OSS_TYPE just exports the value of IS_BUILIN.oss, but
exports it early enough where it can be used within a package Makefile,
e.g.:
.include "../../mk/oss.buildlink3.mk"
.if ${OSS_TYPE} == "none"
CONFIGURE_ARGS+= --without-oss
.endif
This should fix builds of some packages that include "oss.buildlink3.mk"
on platforms where there is no OSS in the base system, e.g. Mac OS X
and Solaris.
oss.buildlink3.mk
oss.builtin.mk
that work like modern buildlink3.mk and builtin.mk files do. We no
longer support audio/oss (which will be removed shortly). Mark
ossaudio.buildlink3.mk for deprecation after all references to it
have been replaced with "oss.buildlink3.mk" in package Makefiles.