summaryrefslogtreecommitdiff
path: root/Makefile.SH
Commit message (Collapse)AuthorAgeFilesLines
* New perldelta for 5.37.12Steve Hay2023-04-201-4/+4
|
* New perldelta for 5.37.11Yves Orton2023-03-211-4/+4
|
* Generate new perldelta for 5.37.10Karen Etheridge2023-02-201-4/+4
|
* Initial attack at basic 'class' featurePaul "LeoNerd" Evans2023-02-101-2/+2
| | | | | | | | | | | | | Adds a new experimental warning, feature, keywords and enough parsing to implement basic classes with an empty `new` constructor method. Inject a $self lexical into method bodies; populate it with the object instance, suitably shifted Creates a new OP_METHSTART opcode to perform method setup Define an aux flag to remark which stashes are classes Basic implementation of fields. Basic anonymous methods.
* New perldelta for 5.37.9reneeb2023-01-201-4/+4
|
* Makefile.SH - fix 'reonly' Makefile target to test ext/re/t/*.t properlyYves Orton2023-01-091-1/+1
| | | | | | | | | | The .. in front of the ext/ required as the list is constructed relative to the t/ directory of the repo. This also enables "full steam ahead" mode when parallel jobs are enabled. This target only tests a subset of our functionality, running in normal mode and separating core tests from ext/ tests just slows things down for no value.
* New perldelta for 5.37.8Richard Leach2022-12-201-4/+4
|
* regcomp.c - decompose into smaller filesYves Orton2022-12-091-10/+19
| | | | | | | | | | | | | | | | | This splits a bunch of the subcomponents of the regex engine into smaller files. regcomp_debug.c regcomp_internal.h regcomp_invlist.c regcomp_study.c regcomp_trie.c The only real change besides to the build machine to achieve the split is to also adds some new defines which can be used in embed.fnc to control exports without having to enumerate /every/ regex engine file. For instance all of regcomp*.c defines PERL_IN_REGCOMP_ANY, and this is used in embed.fnc to manage exports.
* New perldelta for 5.37.7Max Maischein2022-11-201-4/+4
|
* New perldelta for 5.37.6Todd Rinaldo2022-10-201-4/+4
|
* New perldelta for 5.37.5Karen Etheridge2022-09-201-4/+4
|
* new perldelta for 5.37.4Neil Bowers2022-08-201-4/+4
|
* Makefile.SH: remove prerequisites on suffix rulesDavid Mitchell2022-07-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since GNU make 3.4, the build process has been emitting about 24 of these warnings: Makefile:254: warning: ignoring prerequisites on suffix rule definition Makefile:258: warning: ignoring prerequisites on suffix rule definition This is because Makefile has a couple of entries like these: .c.i: perl.h config.h ... .c.s: perl.h config.h ... These are suffix rules, which generically tell 'make' how to make a foo.i or foo.s file from a foo.c file. The warnings are telling us that prerequisites (perl.h config.h in this case) are not appropriate for suffix rules and are being ignored (they've always been ignored, just silently prior to 3.4). Those suffix rules were added by me with commit v5.19.7-38-gba0f550339, but the prerequisites were later added by Jarkko with v5.21.3-467-g29b9baacc9: The .i target should depend at least on perl.h and config.h. While at it, do the same for the .s target. I can't see any discussion of this commit, so I'm not sure what issue it was trying to fix. But since the prerequisites were being silently ignored (on GNU make anyway), it seems safe to remove them, which is what this commit does. With the prerequisites gone, doing $ touch config.sh $ make peep.i causes 'make' to process a whole big chain of dependencies, so it would appear that the correct dependency chain is being detected regardless. For reference, here's the entry from the GNU 'make' manual: warning: ignoring prerequisites on suffix rule definition According to POSIX, a suffix rule cannot contain prerequisites. If a rule that could be a suffix rule has prerequisites it is interpreted as a simple explicit rule, with an odd target name. This requirement is obeyed when POSIX-conforming mode is enabled (the .POSIX target is defined). In versions of GNU make prior to 4.3, no warning was emitted and a suffix rule was created, however all prerequisites were ignored and were not part of the suffix rule. Starting with GNU make 4.3 the behavior is the same, and in addition this warning is generated. In a future version the POSIX-conforming behavior will be the only behavior: no rule with a prerequisite can be suffix rule and this warning will be removed.
* New perldelta setup for 5.37.3Nicolas R2022-07-211-4/+4
|
* New perldelta for 5.37.2Matthew Horsfall2022-06-201-4/+4
|
* Split optree optimizer and finalizer from op.c into new peep.cPaul "LeoNerd" Evans2022-06-201-2/+2
| | | | | | | | | | | * Create a new `peep.c` file * Move the functions related to optree optimisation and finalisation out of `op.c` into this new file * Several previously-static functions now have to be non-static and declared as internal API in order to be shared between these two files.
* Use auto-image-base on cygwinLeon Timmermans2022-06-141-1/+1
|
* minitest_prep conflict on building $(MINIPERL_EXE)Tony Cook2022-06-091-3/+3
| | | | | | | | | | | | | | | | | minitest depends on $(MINIPERL_EXE) and minitest_prep, but minitest_prep calls back into make to build lib/Config.pm which indirectly depends on $(MINIPERL_EXE). This can result in a race between the parallel work of the parent make and the work of the child make, as they both try to build $(MINIPERL_EXE) and its dependencies, causing some of the errors described in the ticket. Note that trying to `make -j6 minitest all` could lead to similar conflicts, but I think that's an unlikely and not worth supporting anyway. Fixes #19829 (I think)
* Add official Unicode normalization testsKarl Williamson2022-06-061-1/+1
|
* perldelta: new v5.37.1 perldeltaRicardo Signes2022-05-271-4/+4
|
* perldelta: create perldelta for 5.37.0Ricardo Signes2022-05-271-4/+4
|
* perldelta: remove the v5.35.z deltasRicardo Signes2022-05-201-4/+4
|
* New perldelta for 5.35.12Steve Hay2022-04-201-4/+4
|
* Makefile.SH - reduce technical debt, use `runtests` for `make test_porting`Yves Orton2022-04-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | Currently `make test_porting` rolls its own `runtests` logic, which is just technical debt waiting to cause trouble. It also means that the porting tests do not actually get run *exactly* as they would through `make test_harness` which seems like a bad thing generally. (Even if so far nobody has noticed a problem.) Some of our tests require special setup which is performed in `runtests`. We should not unroll `runtests` just for the test_porting target, even if /right now/ it happens to work most of the time. I say most of the time because `make test_porting` won't do the same thing as `make test_harness` would via `runtests` if the test is not executed under a tty. It also doesn't fixup PWD on platforms that need it. (Not sure if that is a problem, but it might be.) In the future we might add additional guards or setup to runtests and then the `test_porting` target would have to change. Lastly, there is no reason to unroll `runtests` like this. It is quite easy to do it right, so lets just do it right and not set a precedent that is ok to bypass `runtests` in our Makefile infrastructure.
* Makefile.SH - use globs in the test_reonly targetYves Orton2022-04-131-1/+1
| | | | | | Switch to globs for the test_reonly target as wildcards are easier to read and understand and familiar to a wider audience and don't have escape issues associated with the -re option.
* Makefile.SH - touch miniperl to ensure its dependencies are builtBram2022-04-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In short there is an insiduous relationship between buildcustomize.pl and miniperl in our makefiles. This relationship means miniperl depends on buildcustomize.pl even though buildcustomize.pl requires miniperl to be built. There is a comment explaining this is intentional and simplifies things (although it does not say what it simplifies). What this means is that the lib/buildcustomize.pl target: - creates miniperl - uses miniperl to create 'lib/buildcustomize.pl' Combined with the miniperl target not having any actions, just a dependency declaration on lib/buildcustomize.pl seems to cause GNU make (at least) to not restat the rebuilt miniperl. This then means that various other targets which depend on miniperl do not see the rebuilt miniperl and are not rebuilt themselves. Examples include pod/perlintern.pod and autodoc.pl. Thus to completely build everything you need to run make *twice*. Normally the recipe is "make" and then "make test", which means make gets run twice. But when developing or bisecting make is not normally run twice, this can result in files not being rebuilt and which can lead to errors being overlooked. The solution appears to be to touch the miniperl executable as part of the miniperl target, which then causes make to notice that the mtime of the file has changed and rebuild the things that depend on it. See https://www.nntp.perl.org/group/perl.perl5.porters/2022/04/msg263517.html for much more details. Note this commit message was written by the committer (Yves) and not the author of the patch and the post above (Bram). Any mistakes it contains are not Bram's fault.
* New perldelta for 5.35.11Sawyer X2022-03-201-4/+4
|
* add new perldelta for 5.35.10reneeb2022-02-201-4/+4
|
* New perldelta for 5.35.9Nicolas R2022-01-201-4/+4
|
* Fix problem in makefile for z/OS 64-bit buildsMike Fulton2022-01-011-4/+4
| | | | | | This change fixes a bug where the value of _use64bitall_ was expected to be nothing or something, but in fact, the proper test is for ``define|true|[yY]*``.
* new perldelta for 5.35.8Neil Bowers2021-12-211-4/+4
|
* Update compile and bind options for z/OS (os390)Mike Fulton2021-12-081-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This update enables us to build EBCDIC static/dynamic and 31-bit/64-bit addressing mode Perl. The number of tests that pass is consistent with the baseline before these updates, namely: For blead.31.dynamic.ebcdic Configured using -Dusedl Failed 98 tests out of 1939, 94.95% okay. Elapsed: 1038 sec u=18.13 s=6.04 cu=535.69 cs=178.56 scripts=1939 tests=1035071 For blead.64.dynamic.ebcdic Configured using -Dusedl -Duse64bitall Failed 102 tests out of 1941, 94.74% okay. Elapsed: 1057 sec u=19.49 s=6.49 cu=543.00 cs=181.00 scripts=1941 tests=1053149 These changes also provide the base support to be able to provide ASCII static/dynamic and 31-bit/64-bit addressing mode Perl. Description of changes: Makefile.SH Changes were made to the os390*) case specific part of the code. Support was added for the 64-bit DLL path because the original only had support for 31-bit. hints/os390.sh This is the largest set of changes: - Compilation and Link options were added for ASCII and 64-bit - A z/OS specific check was added to determine if the Perl code being built is ASCII or EBCDIC. The check works by looking at the first character of the shell script to see if it is an ASCII or non-ASCII character. If ASCII, then the build is deemed to be ASCII. If not ASCII, it is assumed to be EBCDIC. - Cleanup was performed to remove code for z/OS systems that are no longer supported, simplifying the file (e.g. "`uname -v`x`uname -r`" in 02x0[89].*|02x1[0-9].*|[0-9][3-9]x*) which would only be true on unsupported, very old pre-z/OS systems - The compiler has been changed from xlc to c99. Both are available as priced features of the operating system, and the c99 compiler is a better 'fit' for options processing, being more consistent with c99 on other platforms. - Suppressing warning messages for CCN3159 were added because the 1-bit bitfields flagged due to a smaller-than-int data type are harmless. - Several feature test macros were added to bring the compilation up to a modern level to enable Perl to take advantage of capabilities available on all supported z/OS 2.4 and up systems. - Removed the -Wl,EDIT=NO because debug information is no longer stored in an area that will be loaded into memory, but is now stored in a NOLOAD section. So - while this does mean that the binary on disk is a little 'fat', what is loaded into memory is not, and it means that people can have better problem determination tools available even on production Perl distributions.
* Add a builtin:: namespace, with true/false/isboolPaul "LeoNerd" Evans2021-11-291-2/+2
| | | | | | | | This finishes the perl-visible API required for RFC 0008 https://github.com/Perl/RFCs/blob/master/rfcs/rfc0008.md It also begins the "builtin::" namespace of RFC 0009 https://github.com/Perl/RFCs/blob/master/rfcs/rfc0009.md
* new perldelta for 5.35.7Richard Leach2021-11-211-4/+4
|
* Update bignum, Math::BigInt, Math::BigInt::FastCalc, and Math::BigRatRichard Leach2021-11-191-11/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bignum ====== 0.63 2021-10-08 * This version instroduces no changes to the Perl modules, only the tests. * Remove tests that don't work on old Perls and that were actually testing Math::Big(Int|Float|Rat) more than big(int|num|rat). * Skip tests that don't work on older versions of Perl. * Remove Perl v5.10.0 as dependency. This distribution is compatible with Perls back to at least v5.6.1, although some functionality (e.g., nesting the pragmas) requires more recent versions of Perl. 0.62 2021-10-03 * Add support for multiple options in import(), so that one can use, e.g., use bignum accuracy => 20, lib => "GMP"; * Make sure the bigrat pragma always returns Math::BigRat objects. * Make the "trace" option work as indended, or at least according to what I believe is the intention. * Improve documentation. Fix typos, improve wording, add more examples etc. 0.61 2021-10-01 * Improve documentation related to floating point literals. * Skip tests that fail due to Perl's broken handling of floating point literals before v5.32.0. 0.60 2021-09-28 * Separate the bigint, bignum, and bigrat pragmas. - The bigint pragma now converts every numeric constant that represents an integer to a Math::BigInt object. Non-integers are converted to Math::BigInt NaNs. With the previous behaviour, only some numeric constant integers were converted to a Math::BigInt. - The bignum pragma now converts every numeric constant to a Math::BigFloat object. - The bigrat pragma now converts every numeric constant to a Math::BigRat pragma. The pragmas no longer activate upgrading and downgrading. The upgrading and downgrading must now be activated explicitly. The rationale behind deactivating it by default is that can cause infinite looping where objects bounce back and forth between different classes. Explicitly requesting a specific class doesn't always work either, because the object might be automatically upgraded or downgraded to a different class. Only one pragma can be used at a time in a given scope. Enabling one pragma disables the others in the same scope. * Implementat working version of "no bigint", "no bignum", and "no bigrat". Previously, the upgrading and downgrading activated by, e.g., "use bigint" was not deactivated by "no bigint". * Sync behaviour with the Math-BigInt distribution. Math::BigInt ============ 1.999827 2021-10-03 * Improve error message for missing library argument. * Skip tests that don't work on older Perls. Also skip tests that compare floating point numbers. 1.999826 2021-10-01 * Improve documentation related to floating point literals. * Skip tests that fail due to Perl's broken handling of floating point literals before v5.32.0. 1.999825 2021-09-28 * Make Math::BigInt accept integers regardless of whether they are written as decimal, binary, octal, or hexadecimal integers or decimal, binary, octal, or hexadecimal floating point number. * When numeric constants are overloaded (with the ":constant" option) in Math::BigInt, every numeric constant that represent an integer is converted to an object regardless of how it is written. All finite non-integers are converted to a NaN. * When numeric constants are overloaded (with the ":constant" option) in Math::BigFloat, every numeric constant is converted to an object regardless of how it is written. * Add method from_dec() (cf. from_bin(), from_oct(), and from_hex()). It is like new() except that it does not accept anything but a string representing a finite decimal number. 1.999824 2021-09-20 * Don't allow mixing math libraries. Use the first backend math library that is successfully loaded, and ignore any further attempts at loading a different backend library. This is a solution to the re-occurring problem of using objects using different math libraries. * Add missing documentation. * Miscellaneous minor improvements. Math::BigInt::FastCalc ====================== 0.5012 2021-09-28 * Sync test files with Math-BigInt. 0.5011 2021-09-20 * Sync test files with Math-BigInt. * Add missing documentation. * Make the test files only print to the standard error when there is an actual error. * Miscellaneous changes and updates to author and release test files. Math::BigRat ============ 0.2620 2021-10-03 * Skip tests that don't work on older Perls. Also skip tests that compare floating point numbers. 0.2619 2021-10-01 * Correct the handling of Inf and NaN in numify(). * Improve constant overloading. When numeric constants are overloaded (with the ":constant" option) in Math::BigRat, every numeric constant is converted to an object regardless of how it is written. 0.2618 2021-09-28 * Add new method binv() for the inverse. * Add new method dparts(), which returns the integer part and fraction part of a number. For example, 9/4 is split into 2 and 1/4. This method is equivalent to the Math::BigInt and Math::BigFloat methods with the same name. * Improve blog(). Handle cases $x->blog($b) where the numerator of $x and/or $b is 1 as special. * Sync tests with Math-BigInt.
* new perldelta for 5.35.6Leon Timmermans2021-10-211-4/+4
|
* Two minor Makefile.SH cleanupsNicholas Clark2021-10-041-2/+1
| | | | | | | | | | | | | | | | | | Use "$osname" instead of (bare) $osname in all case statements. This was the only one that was different. Delete PATH_SEP, which was never used. This was added in Nov 1995 as part of commit 4633a7c4bad06b47: 5.002 beta 1 with various other macros, and the comment "These variables will be used in a future version to make the make file more portable to non-unix systems." The other macros have been used, but not PATH_SEP. Curiously it also gets a different value if one (re)generates Makefile by running ./Makefile.SH, compared with a Makefile generated by Configure, because the variable that it is set from - $p_ - is not in config.sh
* Simplify Makefile generation for cygwinNicholas Clark2021-10-041-13/+3
| | | | | | | | | | | | | | | | The rule to generate cygwin.c with a symbolic link from cygwin/cygwin.c can actually be written to the generated Makefile on all platforms, as it causes no problems if not used. It only "triggers" when a cygwin.o is part of the Makefile macro ARCHOBJS, at which point suffix rules permit make to infer that cygwin.o can be generated from cygwin.c, and cygwin.c from cygwin/cygwin.c The rule to generate LIBPERL_NONSHR is not used. It seems that it was never used. It was added in July 2008 as part of commit 5f9145a3c5d730d3: Cygwin build harmonization, remove cygwin/Makefile.SHs but the rule added to the top level Makefile.SH doesn't seem to correspond to any rule in the removed file cygwin/Makefile.SHs
* For AIX, modify the perl.exp path in ccdlflags earlier in Makefile.SHNicholas Clark2021-10-041-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | The config.sh value for ccdlflags includes the path to the *installed* copy of the file perl.exp While building, that file doesn't exist (or worse, is incompatible) so in the Makefile we need CCDLFLAGS to point to the local copy. Previously the Makefile had CCDLFLAGS first set to the value with the installed path, and then set it again to the local path "for building Perl itself". However, the Makefile is *only* used for building Perl itself (not installed extensions), hence we never need the first value. Hence move the sed logic for the change earlier, write out the first declaration of CCDLFLAGS with the "local" value, and eliminate the second declaration. The sed logic was added in July 1999 by commit 5f9d9a1727238445: AIX magic: ccdlflags needs to be different for Perl itself and for extra-core extensions (as used by ExtUtilss::embed::ldopts). Based on the problems described in To: perl5-porters@perl.org Subject: [ID 19990722.002] Perl 5.00503 and AIX 4.1.5; perl.exp; build errors. Also Imagemagick... Reply-To: m.w.ellwood@rl.ac.uk Message-Id: <Pine.A41.3.96.990722141209.72660V-100000@unixfe.rl.ac.uk> It probably should have always been done the way this commit now does it.
* The special AIX target MINIPERL_NONSHR is not needed, so remove itNicholas Clark2021-10-041-20/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AIX needs to generate a linker definition file prior to linking the perl binary. From the dawn of Perl 5, the miniperl binary was built nearly identically to the perl binary, so for a build using a shared perl library, miniperl was linked against the shared perl library. Originally this linker definition file was generated by a shell script, but this was problematic in various ways, so the AIX build was migrated to share the Win32 approach - generating the linker definitions using makedef.pl. Because this needs to be run during the build, and because the build can't assume that an installed perl binary exists, it needs to be run by a perl binary in the build tree. (As was) even miniperl needed this file to exist already, hence when this change was made the Makefile generated for AIX was changed to add steps to build an extra 'miniperl_nonshr' binary, not using a shared library, to generate the linker definition file. This was all done in July 1999 with commit 549a6b102c2ac8c4: Fixed AIX dynamic loading and AIX shared Perl library. Tested in: AIX 4.1.5 cc+useshrplib+usethreads, 4.1.5 cc, 4.1.5 gcc+useshrplib+usethreads, 4.3.1 cc+useshrplib. Hijacked win32/makedef.pl for more general purpose export list building, now it is used (as toplevel makedef.pl) for win32 and AIX (perl_exp.SH made unnecessary). Because the export lists are now correct in AIX, no more linker warnings about "Exported symbol not defined" should appear. However the need for the 'miniperl_nonshr' binary was actually eliminated in Feb 2000 by commit 18c4b137c9980e71: fix AIX and multiplicity problems by the seemingly innocent looking change: case "${osname}${osvers}" in - next4*) + next4*|aix*) $spitshell >>Makefile <<'!NO!SUBS!' miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT) $(CC) -o miniperl `echo $(obj) | sed 's/ op$(OBJ_EXT) / /'` \ What this does is cause AIX to "join" the NeXTSTEP special case code, that links miniperl with the object files. Meaning that from this point on AIX miniperl was never using a shared perl library. So the special case build of the 'miniperl_nonshr' binary could have been eliminated too. Independent of this story, miniperl for every other platform *also* stopped being linked against a shared perl library as of March 2006 with commit 908fcb8bef8cbab8: Move DynaLoader.o into libperl.so. This avoids the need to statically link DynaLoader into the stub perl executable and make libperl.so provide all the code needed to get a functional embedded perl interpreter up running. As a side effect this also moves DynaLoader into libperl.a for non-useshrplib builds. Fixes [perl #32539] meaning that AIX no longer needs a special case for shared perl library builds to keep miniperl unshared, because all platforms have it now. Finally, in investigating a v5.26.0 build failure, I identified the cause and then yesterday committed a fix to blead as part of commit 8f1941325681: The Makefile must run makedef.pl with -Ilib on the command line not realising that this had already been identified and fixed by Merijn in Oct 2017 by commit 72bbce3da5eeffde: miniperl also needs -Ilib for perl.exp on AIX etc My commit mistakenly used miniperl_nonshr again. Revert back to his correct approach, using the regular miniperl. And hence we can safely delete miniperl_nonshr and all the logic related to it, as it has been unused since Oct 2017.
* The AIX specific Makefile rules to build miniperl are no longer neededNicholas Clark2021-10-041-8/+0
| | | | | | | The AIX specific Makefile rules to build miniperl are effectively identical to the default rules for *nix platforms (and have been for some time). Hence remove the special case logic - the defaults work just fine.
* Remove vestigial next4*) sections from Makefile.SHNicholas Clark2021-10-041-14/+0
| | | | | | | | | | | | | | NeXT support was removed in June 2014 by commit f05550c064c27360: Removed NeXT support but that commit missed these hunks. The crazy whitespace errors in the next4*) section were added by mistake by me in June 2013 by commit b78ac7159b42a0e0: write_buildcustomize.pl no longer writes to STDOUT I'm not sure how I goofed that, but it had the side effect of breaking NeXT builds, and no-one noticed.
* Only expose Internals::getcwd() in miniperlNicholas Clark2021-10-041-2/+2
| | | | | | | | | | | | | It's only used during bootstrapping for miniperl when the XS version of Cwd is not yet available, and only needed on platforms that don't already provide their own builtin for getcwd(). It was added in v5.30.0 with the clear warning that [it] may be removed or changed without notice and is not used by any code on CPAN. (Cwd references it, but won't use it once installed as it will have already found an XS implementation (platform specific or generic).
* A single list of "special files for miniperl" in Makefile.SHNicholas Clark2021-10-041-10/+30
| | | | Generate the rest of the special case build logic from this list.
* The Makefile must run makedef.pl with -Ilib on the command lineNicholas Clark2021-09-291-2/+2
| | | | | | | | | | | | | | | | | It can't rely on adding 'lib' to @INC in a BEGIN block because during the build not all modules *are* in lib yet. For miniperl the two are not equivalent - adding -Ilib means that lib/buildcustomize.pl is run, and this sets up @INC properly to include all the toolchain modules in dist and cpan. In particular, constant is dual life and hence not available as lib/constant.pm until it has been copied from dist/constant/lib as part of the build process. Hence with a parallel build on AIX, before this commit there was a race condition between the job that builds dist/constant and the job that builds perl.exp. Sometimes the race was lost, resulting in a mysterious failed build. All other users of makedef.pl already invoke it with the appropriate -Ilib or -I..\lib, so this change won't affect them.
* `make distclean` should delete `makedepend_file`Nicholas Clark2021-09-211-1/+1
|
* new perldelta for v5.35.5Matthew Horsfall2021-09-201-4/+4
|
* make way for 5.35.4Karen Etheridge2021-08-201-4/+4
|
* Make new makedepend logic compatible with bsd makeLeon Timmermans2021-08-131-2/+2
| | | | | | | It used pattern rules, which are a gnu make feature that isn't supported by bsd makes (and probably other makes) For: https://github.com/Perl/perl5/pull/19047
* WIP: Run `makedepend` in parallel by using `make`Max Maischein2021-08-111-1/+5
| | | | | | | | | | | | This moves the per-file loop body of `makedepend` into a separate file named `makedepend_file` and then uses `make` to launch the `makedepend_file` processes for each target potentially in parallel. This reduces the time for time sh ./makedepend MAKE=make cflags from 5 seconds to 2 seconds with MAKEFLAGS=-j8