summaryrefslogtreecommitdiff
path: root/make_ext.pl
Commit message (Collapse)AuthorAgeFilesLines
* make_ext.pl: Phase out the use of Cross.pmBrian Fraser2014-01-221-37/+28
| | | | | | | | | | | | | | | | | 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}.
* Stop using $run for anything other than testing compiled tests in Configure.Jess Robinson2014-01-221-8/+5
| | | | When cross-compiling we want to run miniperl etc on the compile host, not the test target
* Merge branch 'dirnames' into bleadSteve Hay2013-12-021-0/+5
|\
| * Move Cwd and List-Util to folders named as per their CPAN distributionsSteve Hay2013-10-241-0/+5
| |
* | Remove some unnecessary Makefile.PLs from cpan/ and ext/Steve Hay2013-10-251-0/+1
|/ | | | | | | | 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.)
* WinCE Makefile and make_ext.pl general and XS fixesDaniel Dragan2013-10-211-3/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* restore XS module building for WinCEDaniel Dragan2013-08-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* typo fixes for root level scriptsDavid Steinbrunner2013-05-221-1/+1
| | | | | Add David Steinbrunner to AUTHORS. Update pod issues database.
* [perl #113940] Make make_ext delete Makefiles when version changesFather Chrysostomos2012-07-291-0/+22
| | | | | | | | | 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.
* In make_ext.pl, inline _macroify_passthrough() into its only caller.Nicholas Clark2012-06-051-10/+5
|
* In make_ext.pl, only fudge the Makefile.PL timestamp when generating it.Nicholas Clark2012-06-051-4/+10
| | | | | | | 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.
* make_ext.pl need not manipulate @INC, as buildcustomize.pl already does it.Nicholas Clark2012-06-051-7/+0
| | | | | | 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.
* In make_ext.pl, move loading FindExt and Cwd into the Win32-only code.Nicholas Clark2012-06-051-4/+4
| | | | | As Cwd is now required instead of used and hence doesn't export, qualify the calls to getcwd() with the package name.
* Ensure Pod::Simple is built before Pod::Functions.Nicholas Clark2012-02-181-1/+2
| | | | | This will allow Pod::Functions to use Pod::Simple as part of its build process.
* Push the atime and mtime of generated Makefile.PLs back 4 seconds in make_ext.plChris 'BinGOs' Williams2011-06-271-1/+5
| | | | | | | 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.
* Don't quote target name in make_ext.pl.Craig A. Berry2011-06-251-2/+0
| | | | | | 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.
* Use a buildcustomize.pl to set @INC in miniperl when building extensions.Nicholas Clark2011-02-151-35/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* In make_ext.pl, on Win32 avoid calling getcwd() twice in quick succession.Nicholas Clark2011-02-141-2/+3
|
* Fix typos (spelling errors) in misc. files.Peter J. Acklam) (via RT2011-01-071-3/+3
| | | | | | | | | # 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>
* Move ExtUtils-Command from cpan/ to dist/Florian Ragwitz2010-11-091-1/+1
| | | | Randy Kobes passed away recently, so let's have p5p maintain it for now.
* Move ExtUtils-Manifest from cpan/ to dist/Florian Ragwitz2010-11-091-1/+1
| | | | Randy Kobes passed away recently, so let's have p5p maintain it for now.
* No distinction between .PL and .pl if case is not preserved.Craig A. Berry2010-10-061-1/+1
| | | | | | | | 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.
* Generate the core-only Makefile.PL for podlators using make_ext.Nicholas Clark2010-10-051-19/+29
| | | | | 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.
* make_ext.pl now writes Makefile.PL that cope with pod*.PL self-extractors.Nicholas Clark2010-10-051-6/+41
| | | | | | | 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
* Move PathTools from cpan/ to dist/Florian Ragwitz2010-07-241-3/+3
|
* We don't actually need constant to bootstrap the nonxs extensions.Nicholas Clark2009-10-021-1/+0
|
* Change 204606f4 ommited to update make_ext.pl's path to Text::ParseWordsNicholas Clark2009-10-021-1/+1
|
* removed PERL5LIB diagnostic output from make_ext.plDavid Golden2009-10-011-1/+1
|
* Move ExtUtils::Manifest from ext/ to cpan/Nicholas Clark2009-10-011-1/+1
|
* Move ExtUtils::Command from ext/ to cpan/Nicholas Clark2009-10-011-1/+1
|
* Move ExtUtils::MakeMaker from ext/ to cpan/Nicholas Clark2009-10-011-1/+2
|
* Tidy make_ext.pl, particularly the OS-specific code.Nicholas Clark2009-09-301-15/+23
|
* Refactor the code for determining where an extension is on disk.Nicholas Clark2009-09-301-16/+15
|
* On Win32, load File::Spec::Functions before chdir()ing somewhere where theSteve Hay2009-09-291-6/+7
| | | | relative paths in @INC don't work.
* Only require File::Spec::Functions on Win32, as only it needs rel2abs().Nicholas Clark2009-09-291-2/+6
| | | | | 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.
* Fix distclean on Win32Steve Hay2009-09-291-31/+37
| | | | | | | | | | | | 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.
* Move ExtUtils::Install from ext/ to dist/Nicholas Clark2009-09-291-1/+1
|
* Move Cwd from ext/ to cpan/Nicholas Clark2009-09-291-2/+3
|
* fix up ABSTRACT_FROMRobin Barker2009-09-271-1/+4
|
* Support building extensions in dist/ as well as cpan/ and ext/Nicholas Clark2009-09-261-1/+1
|
* Move File::Path from ext/ to cpan/Nicholas Clark2009-09-261-1/+1
|
* Move AutoLoader from ext/ to cpan/Nicholas Clark2009-09-261-1/+1
|
* Stop empty top-level directories in ext/ being treated as old-style extensions.Nicholas Clark2009-09-251-1/+4
| | | | | This is a work-around to cope with smokers that are not deleting directories that have been moved.
* Process the extension directories in alphabetical order.Nicholas Clark2009-09-251-2/+2
|
* Support building nonxs extensions from cpan/ on Unix.Nicholas Clark2009-09-251-1/+2
|
* Make make_ext changedir work with multiple scanned directories on Win32Max Maischein2009-09-241-3/+7
|
* Fix a22f28a4268aa03c - array, not array reference. (gnat would be proud)Nicholas Clark2009-09-241-1/+1
| | | | | 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.
* Allow make_ext.pl to take multiple --dir options, and honour them all.Nicholas Clark2009-09-241-30/+32
|
* Support building extensions in cpan/ as well as ext/Nicholas Clark2009-09-241-1/+12
|
* Correct d6897368 - Win32 requires the correct path for -I for lib/Nicholas Clark2009-09-231-1/+1
|