libgcc.a isn't linked "whole archive" into the perl executable on newer
NetBSD systems (>1.5.x). Newer NetBSD systems have libgcc_pic.a linked
into shared libraries, so this hack isn't needed. This change was tested
by building and testing textproc/xerces-p, a C++ perl5 module that uses
functions in libgcc.a.
we install them into a private directory under the the normal Perl
installation and configure Perl so that site-specific Perl man3 pages
are installed into a private directory within site_perl. This avoids
manpage conflicts between 3rd-party modules, the standard Perl library,
and other packages.
The changes implement some unfinished work that is alluded to in the
MakeMaker.pm module by allowing "installsiteman{1,3}dir" to be set
during the configuration process and are used to provide default values
for INSTALLSITEMAN{1,3}DIR during the Perl module build/install process.
Bump PKGREVISIONs for lang/perl5 and lang/perl58.
Makefiles simply need to use this value often, for better or for
worse.
(2) Create a new variable FIX_RPATH that lists variables that should
be cleansed of -R or -rpath values if ${_USE_RPATH} is "no". By
default, FIX_RPATH contains LIBS, X11_LDFLAGS, and LDFLAGS, and
additional variables may be appended from package Makefiles.
using ExtUtils::MakeMaker style Makefile: usually they provide a
'test' target.
So adding 'TEST_TARGET?=test' here gives us a lot of packages with
the test target enabled.
Now a package using this file can be configured by the regular
do-configure target if PERL5_CONFIGURE is _not_ set to YES (which is
the default), and then have a the standard perl configuration step
done by say the post-configure target.
Example:
PERL5_CONFIGURE= NO
post-configure: perl5-configure
Usually in such a case PERL5_CONFIGURE_DIRS would have to be
adjusted, as well as other directory variables. See following commit
to graphics/p5-PerlMagick package for a complete example.
The previous behavior is preserved if PERL5_CONFIGURE default
value is left untouched, i.e. the do-configure target does the
standard perl configuration.
Please note that this new feature was made up by Johnny Lam. Thanks again!
and install perl5 modules.
The following targets are provided by this file:
do-configure runs the standard perl configuration in
each of the directories specified in
${PERL5_CONFIGURE_DIRS}.
The following variables may be set prior to including this file:
PERL5_CONFIGURE if "YES", then run the standard perl
configuration assuming Makefile.PL exists;
defaults to "YES".
PERL5_CONFIGURE_DIRS list of directories in which to run the
standard perl configuration; defaults to
${CONFIGURE_DIRS}.
PERL5_LDFLAGS extra linker flags to pass on to the build
process.
This file also does the PERL5_PACKLIST handling to generate a PLIST. When
all p5-* packages have been modified to use module.mk, then the
PERL5_PACKLIST code in bsd.pkg.mk can be removed.
buildlink2.mk files back into the main trunk. This provides sufficient
buildlink2 infrastructure to start merging other packages from the
buildlink2 branch that have already been converted to use the buildlink2
framework.
changing the default module/library search path to have site_perl come
before the standard directories. In other words, the previous search path
on an i386 was:
/usr/pkg/lib/perl5/5.6.1/i386-netbsd
/usr/pkg/lib/perl5/5.6.1
/usr/pkg/lib/perl5/site_perl/5.6.1/i386-netbsd
/usr/pkg/lib/perl5/site_perl/5.6.1
/usr/pkg/lib/perl5/site_perl
but it is now:
/usr/pkg/lib/perl5/site_perl/5.6.1/i386-netbsd
/usr/pkg/lib/perl5/site_perl/5.6.1
/usr/pkg/lib/perl5/site_perl
/usr/pkg/lib/perl5/5.6.1/i386-netbsd
/usr/pkg/lib/perl5/5.6.1
The rationale for this is that when we install a module that is newer than
one in the standard library, the new module goes into the site_perl
directory as it's an add-on module. However, we can't use the newer module
without modifying either the scripts of the perl environment to find the
newer module explicitly because of the order of the library search path:
the site_perl directories come after the standard directories. The normal
solution is to directly replace the module in the standard library with
the newer module. However, this isn't really on option when installing
via pkgsrc because the older module files are owned by the perl package.
By placing the the site_perl directories before the standard directories,
newer modules that we install via pkgsrc are simply found before the older
ones in the standard library.
provide a way to avoid building a statically linked perl on platforms
where it doesn't matter. Currently, by empirical evidence in pkg/14871,
this includes mipsel and probably mipseb. Other platforms can add
themselves if/when they discover it doesn't matter for them either.
Closes pkg/14871 by John Hawkinson <jhawk@mit.edu>.
we don't accidentally add options that the linker doesn't understand, such
as "-Wl,-R*". This should fix pkg/14907 by John Klos john@sixgirls.org
where the a.out linker ld doesn't understand extra flags passed in from
LDFLAGS from the pkgsrc environment when building a perl package.
from the distfile version number. G/C the version number stuff from
perl5/Makefile.common, preserving only PERL5_DIST_VERS as it's still used
by libperl.
buildlink.mk file can replace the use of USE_PERL5: it defines all of the
same perl variables as bsd.pkg.mk, adds a dependency on perl>=${PERL5_REQD}
and conditionally includes bsd.perl.mk. It also creates a buildlinkified
Config.pm that makes the local include/library search path include
${BUILDLINK_DIR} instead of hard-coding ${LOCALBASE}. There's more to be
done to make this more useful in strongly buildlinkifying a package, but
it's useful now as-is in weakly buildlinkifying a package.