| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the old cross-compilation model, lib/ for the target would
end up in xlib/; What Cross.pm did back then was change @INC
around a bit to have miniperl point to xlib; Additionally, it
was used to identify cross-compilation builds, and in make_ext.pl
to detect whenever a Makefile was from the host's build.
There is no longer any need for the first, and the second is now
a simple check for $Config{usecrosscompile}, it's still
possible for the hosts' Makefiles to be there, particularly
if the host was not compiled elsewhere using -Dmksymlinks,
like in Windows when targetting WinCE.
This commit changes make_ext.pl for cross-compiling builds
to only delete Makefiles when their CC != $Config{cc}.
|
|
|
|
| |
When cross-compiling we want to run miniperl etc on the compile host, not the test target
|
|\ |
|
| | |
|
|/
|
|
|
|
|
|
| |
These modules all work with the default Makefile.PL written by make_ext.pl.
(There are more Makefile.PLs in dist/ that could be removed too, but the
general policy with dist/ is to leave such files in place to make it easier
to roll CPAN releases from the blead source, which is canonical.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On a WinCE build. On the 2nd nmake run, using Makefile.ce, eventually calls
the Extensions target which calls make_ext.pl. What happens is nmake for CE
for each module is called on the Desktop per module makefile from the
earlier Desktop build. Since the Desktop Perl already was built
sucessfully, all rules/deps are met in the Desktop per module makefile, and
nothing happens during the module building phase for a CE build. Previously
I used external file management tools to delete the per module Makefiles
before running Makefile.ce.
*make_ext.pl
- implement deleting and rebuilding the per module makefile on a Cross
build
- use constants for constant folding, there are opportunities for other
variables to be converted to constants in the future
- fix a bug from commit baff067e71 where unlink() on a file with an open
handle ($mfh) didn't delete the file from disk and a new per module
makefile would be not be built by make_ext.pl later since the per module
makefile was still on disk. This was observed on Win32. Also harden the
unlink code with a new _unlink sub that is fatal if the file is still on
disk after unlink supposedly deleted it.
- var $header and the quotemeta is because of an issue in Perl #119793
*Makefile.ce
- bring the debugging symbol generation flags and optimization flags
to be closer to a Dekstop VC Perl build
- ICWD is obsolete as of commit f6b3c354c9 , remove it
- MINIMOD is obsolete as of commit 7b4d95f74b , remove it
- make a poisoned config.h so if there is a XS building mixup between
a desktop and CE perl, the poisoned config.h for CE will stop the build
gracefully
- $(MINIPERL) has never been defined in Makefile.ce from day 1 (10 years)
replace with $(HPERL) everywhere, this was causing things to not run
silently since $(MINIPERL) was empty string. Use HPERL instead of
MINIPERL to allow flexibility to use the full perl binary if necessery
one day
- better cleaning on root makefile clean target
*win32/win32.h
*win32/win32iop.h
- silence alot of redefinition warnings which gave pages of warnings on
each WinCE compliand
*mg.c
- win32_get_errno is only on WIN32 build not WINCE
a "nmake -f Makefile.ce all" will now build the CE interp and all modules
in 1 shot with no user intervention
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
configpm
- when debugging configpm, Config.pm is already loaded, so the alternate
Config.pm for CE isn't loaded, warn about the problem and delete the
native Config.pm to allow the cross Config.pm to be loaded
win32/Makefile.cd
- better build product cleanup, copy from the win32 makefile
- disable a bunch of module that dont/dont yet build on CE
- debugging configpm required a shortcut to make it easier to run in
isolation
- fix the defines that wind up in the cross Config.pm
- add -GS- to disable the MS Security Cookie feature on MSVC for ARM >=14
compilers, this stops a .lib linking error, security cookie overhead
isnt needed for a very space limited device
sdsdkenv.bat is the file I use to set env vars to compile for WM since
starting in SmartDevices SDK, there is no equivelent of vcvarsall.bat
for makefile building, there was a vcvarsall.bat equivelent in EVC4 tho
MSVC for non Intel CPUs sometimes isn't named cl.exe, fix config_sh.PL to
deal with it
how to compile CE Perl, some steps involving celib and MS SDKs not included
and 2 patches to CPAN modules, Socket and MakeMaker, are not in this commit
but they are required to build CE Perl
-in a Win32 x86/x64 command prompt do a "nmake all" to make a Desktop Perl
-then in a WinCE build env command prompt do a "nmake -f makefile.ce all"
-/xlib will have all your XS DLLs and PM files, /win32/$(MACHINE) will
have perl519.dll and perl.exe
Tony Cook: update MANIFEST
|
|
|
|
|
| |
Add David Steinbrunner to AUTHORS.
Update pod issues database.
|
|
|
|
|
|
|
|
|
| |
This eliminates this annoyance:
$ ./perl -Ilib -MStorable -e0
Storable object version 2.37 does not match bootstrap parameter 2.38 at lib/XSLoader.pm line 95.
Compilation failed in require.
BEGIN failed--compilation aborted.
|
| |
|
|
|
|
|
|
|
| |
The expedient fudge added by commit 23525070d6c0e51f was actually after the
closing } for the if block that auto-generated a Makefile.PL. Hence it was
*always* changing the timestamp on every Makefile.PL just before running it,
even the ones checked out from the repository. That seems a bit wrong.
|
|
|
|
|
|
| |
Remove from make_ext.pl code that predates the introduction of
buildcustomize.pl, as that now sets up @INC correctly before make_ext.pl even
runs. During the build process make_ext.pl is only run by miniperl.
|
|
|
|
|
| |
As Cwd is now required instead of used and hence doesn't export, qualify
the calls to getcwd() with the package name.
|
|
|
|
|
| |
This will allow Pod::Functions to use Pod::Simple as part of its build
process.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|