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.
time, the !empty(BUILDLINK_DEPTH:M+) lines confused me, so I changed
them to be ${BUILDLINK_DEPTH} == "+", which has the same effect. Changed
the version number to 3.12.
"extract" script for extraction. Many cases where a custom EXTRACT_CMD
simply copied the distfile into the work directory are no longer
needed. The extract script also hides differences between pax and
tar behind a common command-line interface, so we no longer need code
that's conditional on whether EXTRACT_USING is tar or pax.
comment them out by default, and add a comment above them indicating that
only *directly* needed dependencies should be in the (edited, final) bl3
file.
This will hopefully encourage folks to reduce the amount of unnecessary bl3
recursion that is rampant in pkgsrc, making many packages "depend" directly
on APIs they never see nor use.
create PLIST awk substitution patterns for directories created by the
current package. This is particularly useful for base packages that
create a directory structure that is then used by subsequent (dependent)
packages.
Make buildlink3.mk file output the default, and ignore any "-3" flags
on the command line for people who can't change their habits quickly.
Increase version to 3.5.
include creating buildlink3.mk files that include other buildlink3.mk
files outside of the region that is protected against multiple inclusion.
This is required to fix a bug in properly ordering the packages listed
in BUILDLINK_PACKAGES.
- Do not include pkgconfig's nor intltool's dependancies in new generated bl2
files. These are *build* dependancies, and the package providing the bl2
should not assume we will be using them.