| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
In certain circumstances ( on virtual machines ) the generated Makefile.PL can
produce a Makefile that is older than the Makefile.PL
Altering the atime and mtime backwards by 4 seconds seems to resolve the issue.
|
|
|
|
|
|
| |
Even though it's presumably doing case-blind lookups of target
names, MMS currently (V3.9-00) falls down hard when passed a
target name in lower case.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the build tools now shipped in various subdirectories of cpan/ and dist/
we need to add several paths to @INC when invoking MakeMaker (etc) to build
extensions.
The previous approach of using $ENV{PERL5LIB} was fragile, because:
a: It was hitting the length limit for %ENV variables on VMS
b: It was running the risk of race conditions in a parallel build -
ExtUtils::Makemaker "knows" to add -I../..lib, which puts lib at the *front*
of @INC, but if one parallel process happens to copy a module into lib/
whilst another is searching for it, the second may get a partial read
c: Overwriting $ENV{PERL5LIB} breaks any system where any of the installed
build tools are actually implemented in Perl, if they are relying on
$ENV{PERL5LIB} for setup
This approach
a: Doesn't have %ENV length limits
b: Ensures that lib/ is last, so copy targets are always shadowing copy
sources
c: Only affects miniperl, and doesn't touch $ENV{PERL5LIB}
Approaches that turned out to have fatal flaws:
1: Using $ENV{PERL5OPT} with a module fails because ExtUtils::MakeMaker
searches for the build perl without setting lib, and treats the error
caused by a failed -M as "not a valid perl 5 binary"
2: Refactoring ExtUtils::MakeMaker to *not* use -I for lib, and instead rely
on $ENV{PERL5LIB} [which includes "../../lib"] fails because:
some extensions have subdirectories, and on these EU::MM correctly uses
-I../../../lib, where as $ENV{PERL5LIB} only has space for relative paths,
and only with two levels.
This approach actually takes advantage of ExtUtils::MakeMaker setting an -I
option correct for the depth of directory being built.
|
| |
|
|
|
|
|
|
|
|
|
| |
# New Ticket Created by (Peter J. Acklam)
# Please include the string: [perl #81894]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=81894 >
Signed-off-by: Abigail <abigail@abigail.be>
|
|
|
|
| |
Randy Kobes passed away recently, so let's have p5p maintain it for now.
|
|
|
|
| |
Randy Kobes passed away recently, so let's have p5p maintain it for now.
|
|
|
|
|
|
|
|
| |
Follow-up to 13b5e8d8173af2197798ae78b4520ece8cb1151c.
On VMS, the CRTL downcases filenames by default, so pod2foo.PL
comes through as pod2foo.pl. We need to match that so we paste
on the right extension for the generated command procedure.
|
|
|
|
|
| |
Using make_ext to generate it uses less code than committing a special
core-only Makefile.PL to the repository, and is no more complex.
|
|
|
|
|
|
|
| |
The "fun" comes because
1: these extract as pod2foo.com on VMS, pod2foo everywhere else
2: these contain a chdir, which messes up relative paths in @INC
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
relative paths in @INC don't work.
|
|
|
|
|
| |
This seems easier than changing @INC so that it loads, but causing all other
platforms to have to load a module they don't need.
|
|
|
|
|
|
|
|
|
|
|
|
| |
nmake realclean in the Encode sub-dirs didn't work because it needed an
extra ../ on the relative paths in @INC. Make the paths absolute instead.
nmake realclean in DynaLoader didn't work either because it tried to make
DynaLoader.c... three times. Move the loop over @ext out of the loop over
@dirs to fix the repetitions, but don't add DynaLoader.c anyway when just
making a 'clean' target.
Also clean up the XSLoader.pm that gets left behind.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is a work-around to cope with smokers that are not deleting directories
that have been moved.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Just because it's syntactically valid and "works on my machine", er OS, doesn't
mean that it's bug free, even after careful inspection.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It can't really be renamed from ext/Cwd to ext/PathTools, because Configure and
Makefile.SH need to know the name of the shared object produced, and they infer
this from the name of the directory.
This concludes the migration of modules from lib to ext. Exporter and version
remain in lib, but I don't think that there is any benefit in trying to move
either of them.
|
|
|
|
|
| |
This simplifies the check in Makefile.PL, and means that "I'm building in the
core" is passed down to build scripts invoked from the Makefile.
|
|
|
|
|
| |
With help from Steve Hay. This converges the win32 build process with the
./Configure-based approach.
|
| |
|
|
|
|
|
|
|
|
| |
1. Revert 7d8fed6 (rendered redundant by c3ef65f)
2. Change path to Cwd in make_ext.pl on Win32--Win32 runs make_ext.pl from
the win32/ sub-directory, not from the top-level directory.
3. Likewise change path to Cwd in makefile invocations of xsubpp and
splittree.pl.
|
|
|
|
| |
This reduces ordering constraints in the build process.
|
|
|
|
|
| |
Obviously, it's going to take a bit more work to piece the PathTools
distribution back together.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
t/lib/TieOut.pm is now from Test::Simple.
Only the tests needed changing. The exceptions to BEGIN/PERL_CORE/INC
boilerplate removal were two instances of "../.." becoming "../../../..",
and changing an %INC test from "strict.pm" to "less.pm", as TestInit causes
strict to be loaded via a relative path, when it loads File::Spec to convert
all paths from relative to absolute.
|
| |
|
| |
|