dependency_libs definitions in *.lai files. This should remove another
instance that can cause "buildlink2 leakage" into installed files under
${LOCALBASE}.
package. shlibtool will not build static libraries. Add handling in
bsd.pkg.mk for a variable named "SHLIBTOOL_OVERRIDE" that is analogous to
LIBTOOL_OVERRIDE and causes any listed libtool scripts to be replaced with
a symlink to shlibtool, and teach buildlink2 about shlibtool. Bump
PKGREVISION of devel/libtool* packages to 11.
if ! test ...; then ...; fi
becomes:
if test ! ...; then ...; fi
and
if ! command; then ...; fi
becomes:
if command; then :; else ...; fi
This fixes PR 19690 by Frank Cusack <fcusack@fcusack.com>.
archive that matches "-lfoo". This prevents breakage when someone does:
-L../src -L../src/.libs -lfoo
because libtool puts a .la file into both ../src and ../src/.libs. This
fixes PR 19583 by Julio Merino <jmmv@netbsd.org>.
libtool documentation. Specifically, many authors now link against an
uninstalled libtool archive with:
-L../package/source/dir -lfoo
instead of the correct (according to the libtool documentation):
../package/source/dir/libfoo.la
The workarounds convert the former into the latter. Changes originally
suggested by Rene Hexel <rh@netbsd.org> in private e-mail.
path/subpath/libfoo.so => -Lpath/subpath -lfoo
and
path/libfoo.so => -Lpath -lfoo
This fixes converting /usr/lib/libintl.so into "-L/usr/lib -lintl", which
wasn't happening before.
(*) Since buildlink2 is a layer of abstraction atop the toolchain,
it's a logical place to deal with the vagaries of unusual
toolchains. For example, on Darwin we could reliably pass
the "-no-cpp-precomp" switch to every compiler invocation
by emitting it from the compiler wrapper. Likewise, the
use of _USE_RPATH in bsd.pkg.mk might be better handled in
the linker wrapper.
Always check for ${OPSYS} == "IRIX" (and not once for != and once for ==)
Always use "-Wl,-rpath,/path" rather than sometimes "-Wl,-rpath -Wl,/path"
and sometimes "-Wl,-rpath,/path".
correct manipulation of variables containing values with escaped
metacharacters by the shell. The new code only does partial caching, which
doesn't cache "special" arguments that contain escaped metacharacters or
other oddly quoted values. On certain platforms listed in _BLNK_CACHE_ALL
in bsd.buildlink2.mk, we do full caching, which has enormous speed benefits
since it avoids an extra sed invocation per "special" argument.
Known working platforms:
MacOS X 10.1.5 (schmonz)
MacOS X 10.2 (grant)
NetBSD 1.6 [full caching] (jlam)
OpenBSD (cjep)
Solaris 8 (grant)
Solaris 9 (salo)
separated list of files relative to ${WRKSRC} on which we do PKGLOCALEDIR
replacement. This is in addition to the files on which we already do the
PKGLOCALEDIR replacement (Makefile.in* and Makefile*).
The logic is:
- if package defines USE_PKGLOCALEDIR and PKGLOCALEDIR is not 'share' as GNU
autotools expects then
- fix variables 'localedir', 'gnulocaledir' and define coorect 'LOCALEDIR' in
the Makefile.in.* files
From Packages.txt:
10.29 Packages providing locale catalogues
==========================================
If the package provides its own locale catalogues, the variable
USE_PKGLOCALEDIR should be defined. It will ensure that the package's
Makefile template files are fixed and point to the correct locale directories
(which may vary, depending on OS), if necessary. See also section 5.1 for
details about ${PKGLOCALEDIR}. This functionality is buildlink2-only.
USE_BUILDLINK2 is defined. AUTOMAKE_OVERRIDE == "yes" is the default, and
means that pkgsrc will try to avoid executing the GNU autotools during the
build process. Setting AUTOMAKE_OVERRIDE to "no" will avoid these extra
steps by pkgsrc, so that the GNU autotools will be automatically invoked
if they are found (though they may not necessarily invoke the correct ones
and the effects may be surprising...do this only if you know what you are
doing).