summaryrefslogtreecommitdiff
path: root/make_ext.pl
Commit message (Collapse)AuthorAgeFilesLines
* win32: remove makefile.mk (#18511)xenu2021-01-281-4/+0
| | | | | | | | | Makefile.mk is redundant with GNUmakefile. See https://www.nntp.perl.org/group/perl.perl5.porters/2021/01/msg258848.html for more details. We planned to remove it shortly after the introduction of GNUmakefile but that slipped through the cracks for some reason: https://github.com/Perl/perl5/issues/14341
* Add .gitignore to the list of files that are safe to ignore in make_ext.plSteve Hay2021-01-071-0/+1
| | | | | | | | Without this the build on Windows was failing, presumably since cfb249103f: FATAL - ..\make_ext.pl has Carp in the list of simple extensions, but it now contains file '.gitignore' which we can't handle at ..\make_ext.pl line 498.
* Force path to ExtUtils::PL2Bat in make_ext.plLeon Timmermans2020-07-301-1/+1
|
* make_ext.pl should use current Perl to run Makefile.PLNicolas R2020-03-111-0/+1
|
* Make sure 'if' compiled before Pod::SimpleKarl Williamson2019-05-271-4/+7
| | | | 3.36 of Pod::Simple requires 'if', and this makes sure it works.
* make_ext.pl: Add some general commentsKarl Williamson2019-05-271-0/+8
| | | | | I found myself recently not knowing how to deal with the build system. Having these would have helped.
* Better document build dependency orderingKarl Williamson2019-05-271-1/+7
|
* make_ext.pl: Use version.pm for version cmpFather Chrysostomos2017-10-301-1/+1
| | | | | | | | | | | We do a version comparison to determine whether Makefile.PL needs to be run (in case a module version changed). The simple string compar- ison we have done up till now fails if the two version numbers differ simply by a trailing zero (as currently happens with DB_File, which is at version 1.840, with XS_VERSION set to 1.84. Since version.pm’s routines are compiled into miniperl, there is no reason not to do this ‘properly’, and it stops multiple ‘make’ invocations from rebuilding DB_File again, and again....
* Ensure that lib is built before IO-CompressChris 'BinGOs' Williams2017-03-101-1/+2
|
* Switch most open() calls to three-argument form.John Lightsey2016-12-231-1/+1
| | | | | | | | | | Switch from two-argument form. Filehandle cloning is still done with the two argument form for backward compatibility. Committer: Get all porting tests to pass. Increment some $VERSIONs. Run: ./perl -Ilib regen/mk_invlists.pl; ./perl -Ilib regen/regcharclass.pl For: RT #130122
* [perl #126710] only touch pm_to_blib if files are copiedTony Cook2016-06-131-14/+31
| | | | | Add checks similar to what the Makefile would do: only copy the files if the source file is newer than pm_to_blib
* make_ext.pl: emit fewer blank lines during buildAaron Crane2016-05-171-1/+1
| | | | I find this makes it easier rather than harder to see what's going on.
* Integrate podlators 4.05.Craig A. Berry2016-01-301-27/+18
|
* make_ext.pl: fix operator precedence error from b4c079ca5Tony Cook2015-11-231-1/+1
|
* make non-zero exit from Makefile.PL fatal in make_ext.plDaniel Dragan2015-10-211-1/+5
| | | | | | | | | | A non-zero exit is fatal according to http://www.nntp.perl.org/group/perl.qa/2008/08/msg11236.html so do not continue building even if a Makefile was generated (an END block or code after WriteMakefile() could have died for example). This patch is from trying to fix problems in this thread http://www.nntp.perl.org/group/perl.perl5.porters/2015/10/msg231903.html
* make -s: silent means silentReini Urban2015-10-141-1/+3
| | | | check MAKEFLAGS for -s|--silent|--quiet and honor it
* Revert "amigaos4: flock unimplemented"Jarkko Hietaniemi2015-09-161-3/+1
| | | | | | | This reverts commit 24631c4f6929bc824e657b74b2edfada4c8d05b0. The new flock emulation for amigaos now tested with parallel builds and found to fare well.
* amigaos4: flock unimplementedAndy Broad2015-09-051-1/+3
| | | | | | The semantics of locking are very different: first you lock, then you open. (And for semaphore-like uses of files, you use ... semaphores.)
* factor out an %ENV assignment from make_ext.plDaniel Dragan2015-07-201-1/+1
| | | | | | | | nytprof using full (not mini) Win32 perl reported 44 calls on line "$ENV{PERL_CORE} = 1;" at 623 us spent on line for make_ext.pl --dynamic Move the env var setting out from build_extension() to before the foreach loop starts.
* special-case Pod::Checker ABSTRACTDavid Mitchell2014-12-031-0/+11
| | | | | | | | | | | Currently the auto-generated Makefile.PL for Pod::Checker raises a warning with MakeMaker, since the abstract in the pod isn't parseable. Also, the package's own Makefile.PL doesn't work with blead (I didn't exactly understand what the issue was, but porting/dual_lift.t complained about missing utilities). So the most expedient hack is to special-case the ABSTRACT in make_ext.pl.
* reinstate cpan/IO-Compress/Makefile.PLDavid Mitchell2014-12-031-1/+0
| | | | | | | | | | | | This was removed a year ago, but it causes problems with ABSTACT and ABSTACT_FROM; since there isn't an IO/Compress.pm file. make_ext.pl special-cases Makefile.PL to get the abstract from IO/Compress/Base.pm; but MakeMaker looks for, and fails to find, 'IO::Compress - ...' in the pod for that file,and prints an error. Rather than more special-casing, it's easier to just restore the distribution's Makefile.PL, which already contains the correct 'ABSTRACT => ...' entry.
* dont run extension building make twice on a fresh src treeDaniel Dragan2014-11-111-6/+3
| | | | | | | | | | | On a fresh source tree, "[*]make config" then "[*]make all" are executed. The "make config" is redundant in this case, and launching make process twice, plus make's I/O calls is inefficient. On a dirty source tree, this would break since the makefile will regenerate. If "make all" fails the first time (presumably because because the makefile was regened, other failures just run/print twice), run the "make all" more time. Dirty trees still run make twice, clean trees drop from running make twice to just once.
* fix Win32 nmake cant rebuild DynaLoader.obj on Makefile regen bugDaniel Dragan2014-11-041-4/+1
| | | | See [perl #123123] for details.
* const fold OS versions in make_ext.plDaniel Dragan2014-11-051-18/+21
| | | | | goto-LABEL is extremely slow in P5, so use a scalar to cache the result of file not existing.
* Set PERL_MM_USE_DEFAULT in make_ext.plFather Chrysostomos2014-10-101-1/+4
| | | | | | | | | | | | | | | In the perl core, we shouldn’t be getting messages like this when trying to build perl: Should I do external tests? These tests will fail if there is no internet connection or if a firewall blocks or modifies some traffic. [y/N] [n] libnet’s Makefile.PL now does that. To make it easier to maintain such Makefiles.PL to work both on CPAN and in the core, set PERL_MM_USE_DEFAULT temporarily in make_ext.pl when running the Makefile.PL.
* Fix distclean for "pm_to_blib directly" extensions.Craig A. Berry2014-09-211-1/+1
| | | | | | | | | The values of the %pm hash already have ../../ prepended, so we were trying to remove, for example, ../../../../lib/Exporter.pm instead of ../../lib/Exporter.pm. This fixes [perl #122820] wherein it was reported that a distclean make left some build products under lib/.
* make_ext.pl: Typo in error messageFather Chrysostomos2014-09-061-1/+1
|
* stat Makefile.PL to get values for utime.Anthony Heading2014-09-031-2/+2
| | | | | | | | | | On certain machines, the file system timestamps are in local time, so assigning a timestamp based on a time() call is prone to jump timezones to UTC. Anthony Heading is now a Perl 5 author. For: RT #122609
* pass through -s if supplied, instead of defaulting to itTony Cook2014-07-021-1/+1
|
* Support faster make -sReini Urban2014-07-021-9/+11
| | | | | Skip chdir messages by passing make -s through Also silence make_ext.pl to speed up the build process. use -v or --verbose
* Suppress the pm_to_blib spammage during makeChris 'BinGOs' Williams2014-06-131-0/+2
|
* On VMS, lib is lib.DIR, etc. make_ext.pl needs to account for this.Nicholas Clark2014-03-021-5/+11
| | | | | | Likewise regular files without periods in the names get one appended. Also, the file generated is pm_to_blib.ts, not pm_to_blib.
* Generate fallback shell cleanup code for the extensions make_ext.pl handles.Nicholas Clark2014-03-021-3/+11
| | | | | These try to ensure that `make clean` followed by `make distclean` is the same as running just `make distclean`.
* make_ext.pl can handle 4 extensions in dist/ which need a Makefile.PL for CPAN.Nicholas Clark2014-03-021-0/+44
|
* make_ext.pl can also handle extensions with a module tree at the top level.Nicholas Clark2014-03-021-6/+16
| | | | This gets us Digest and Memoize.
* make_ext.pl can also handle extensions with a module file at the top level.Nicholas Clark2014-03-021-32/+48
| | | | Processing this old-style layout gains us another 6 extensions.
* For simple extensions make_ext.pl can emulate the entire MakeMaker/make dance.Nicholas Clark2014-03-021-3/+109
| | | | | | | | | | | | | | | | | | | | | | | | For simple extensions consisting only of Perl modules and Pod, EU::MM generates a Makefile where the only target that does any work as part of 'all' is 'pm_to_blib', and *that* is just running perl to call ExtUtils::Installed::pm_to_blib() with those files as arguments, and then touching pm_to_blib. Because the top level Makefile's dependency rule for "is an extension built" is looking for that file pm_to_blib, and all builds (and cleans) of extension directories are performed by running make_ext.pl, not a direct recursive make, it means that make_ext.pl can actually directly emulate the entire work done by EU::MM and make in this particular case. This means that we save (at least) three subprocesses: * miniperl to run Makefile.PL * make * miniperl to run ExtUtils::Installed::pm_to_blib() This change obviously adds some logic duplication, but it roughly halves the time taken for `make test_prep` to figure out that nothing needs doing. And obviously also saves at least that much time on the actual build, which may well be 60 seconds / number of cores.
* Extract fallback_cleanup() to hold the code that writes cleanup shell scripts.Nicholas Clark2014-03-021-8/+12
|
* make_ext.pl should validate exactly which clean targets it can be used for.Nicholas Clark2014-03-021-1/+1
| | | | | Previously it would accept anything matching /clean$/. Now we check for the 4 names that we know the top level Makefile defines.
* 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.