| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
Adding a first argument as a reference to the filename "perlmain.c" makes
ExtUtils::Miniperl::writemain() open and close the file for us. This is
safer than having the Makefile create the file using output redirection as
that can create an empty file if compilation aborts. This change means that
the file is only moved into place with the correct name if it has been
written completely without error. If an error happens the file is not
created, the make aborts, and any subsequent make will re-attempt to create
the file, instead of continuing with an incorrect file, hiding the real
cause of the problems.
|
|
|
|
|
|
|
|
|
| |
It does increase the lines of code slightly but it replaces a bunch of
platform specific special case code in the Makefiles for *nix, Win32 and VMS
with one unified implementation. And in Perl, rather than 3+ different
languages.
This feels like the right maintainability trade-off.
|
|
|
|
|
|
|
|
| |
Add rules to the Win32 Makefiles to call utils/Makefile.PL to generate
utils/Makefile, and rules to both them and the *nix Makefile to delete
the generated file as part of the cleanup targets.
VMS continues to do its own thing, rather than using utils/Makefile.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This shares all the existing deficiencies of utils/Makefile.SH, and
generates a byte-for-byte identical utils/Makefile, including boilerplate
that claims it was generated by utils/Makefile.SH
utils/Makefile remains as a file checked into the repository, and is not (yet)
deleted, because as-was only *nix platforms could run utils/Makefile.SH to
generate utils/Makefile. This messy state of affairs means that if you build
with static linking, the checked-out utils/Makefile is modified
('../miniperl' is replaced with '../perl')
The next commit will resolve just these bugs.
In turn, it seems that the pre-generated utils/Makefile is only used by
Win32, as VMS contains rules in descrip_mms.template to build the
utilities. Probably the next thing to unpick is the build on VMS, but it
seems better to reduce the size of the "problem" in both utils/Makefile.PL
and vms/descrip_mms.template by attempting to move the work from them to
the extension directories and ExtUtils::MakeMaker.
|
|
|
|
|
| |
autodoc.pl already needs Text::Wrap, and soon other early-stage build scripts
will too.
|
|
|
|
|
|
|
|
|
|
| |
Exporter has been considered dual life, upstream blead, since commit
6295adb525682844 (Sep 2006), but it was not moved to dist/ in 2009 with
the other dual-life modules because it was not possible to disentangle it
from the early stages of the build bootstrapping.
The build bootstrapping is now sufficiently simplified that it's possible
to move it to dist/
|
|
|
|
|
|
| |
These duplicate the suffix rules used for general .c -> .o compilation.
makedepend automatically generates a dependency for miniperlmain.o on
patchlevel.h
|
|
|
|
|
|
|
|
|
|
|
| |
I don't feel that it's worthwhile having specific named targets for
building named binaries for use with gprof and gcov given that one has to
(re)Configure with the appropriate C compiler flags, hence all the object
files and the F<perl> that the build tree would build are just as enabled
(or contaminated) with profiling code as the specially named binary.
Update the documentation on using gprof and gcov to reflect that the binary
named F<perl> is now the binary that is profiled.
|
|
|
|
|
|
|
|
|
|
| |
It's not clear whether IBM still sell quantify or purecov. They still seem
to sell purify, but I'm not sure if anyone is using it these days to detect
bugs in perl.
This doesn't prevent anyone from using these tools if they have them, as
it's still possible to run the commands by "hand". But by removing probably
unused code and documentation, the signal to noise ratio improves.
|
|
|
|
|
|
| |
Whatever the executable is named at the top level, it's always symlinked
as ./perl in t, so there's no need to set an environment variable to
override the expected name.
|
|
|
|
|
| |
C<make test.valgrind> will run quite happily on a perl built with
optimisation and without debugging symbols. So don't enforce -g.
|
|
|
|
|
| |
This is strictly a refactoring, so do not change the rules themselves, despite
them being ugly and fragile.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the targets:
perl.pixie perl.pixie.atom perl.pixie.config perl.pixie.irix perl.third
perl.third.config
It's still possible to run the actions these targets "by hand", if desired.
This commit removes the convenience targets from the Makefile, reducing its
complexity. It also removes the related support scripts testall.atom and
thirdclean from Porting/
pixie is a performance analysis tool for Irix and Tru64
Third Degree is a memory checker tool for Tru64
Given that Tru64 went out of support at the end of 2012, and Irix goes out
of support at the end of 2013, it's very unlikely that anyone is still
actively profiling or debugging perl on either platform, and hence using
these targets. It's been several years since we've even had a regular bug
report from either platform.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove these targets and their documentation:
check.third check.utf16 check.utf8 coretest minitest.utf16 test.deparse
test.taintwarn test.third test.torture test.utf16 test.utf8
test_notty.deparse test_notty.third test_prep.third torturetest ucheck
ucheck.third ucheck.utf16 ucheck.valgrind utest utest.third utest.utf16
utest.valgrind
It's still possible to run the actions these targets "by hand", if desired.
This commit simply removes the convenience targets from the Makefile,
reducing its complexity.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the Makefile rule for miniperl would attempt to automatically run
minitest if the simple Exporter test failed. It did this by recursively
calling make in the same directory, which is not a totally safe thing to do
even at the best of times.
However commit cb251201d6951395, necessary to simplify other parts of the
toolchain bootstrapping, has made it easy to trigger an infinite loop of
Makefile recursion if miniperl is unable to run the simple Exporter test.
So, for now, defuse the trap by avoiding the recursive make call. A better
long term solution will be to set up and run minitest by something other than
a Makefile target, such as a shell script. As it's not immediately obvious how
to best integrate this with ./runtests, commit this simpler fix for now.
|
|
|
|
|
|
|
|
|
|
| |
Given that we have the list of places to create ppport.h files easily
accessible, it's easy to delete only the files that we created, and avoid a
find recursing into all of ext/, dist/ and cpan/. This also means that if
anyone drops a module from CPAN into ext/ to build it as part of the core,
any ppport.h it has won't be wiped out by the core. This is one of the few
things that goes wrong, as the rest of the distclean target is very careful
to only delete files that it knows that the build process built.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
write_buildcustomize.pl now opens lib/buildcustomize.pl itself, instead of
writing to STDOUT and relying on the Makefile to set up redirection. This
means that an empty lib/buildcustomize.pl is not created if
write_buildcustomize.pl fails to compile (for whatever reason), and permits
write_buildcustomize.pl to delete (or attempt to delete) the output file if
it detects an error.
Hard code the output file name (lib/buildcustomize.pl), as it's the same on
all platforms, and @ARGV is already used to optionally pass a directory for
write_buildcustomize.pl to change to before running.
Experimentation suggests that various make utilities don't delete a file
created by redirection even if an error occurs. Hence this should be more
robust.
Add -f to the miniperl commandline when running write_buildcustomize.pl to
avoid reading in any existing lib/buildcustomize.pl. write_buildcustomize.pl
doesn't need the setup provided by lib/buildcustomize.pl, and running it
might cause errors which prevents writing out a correct version, making an
incomplete build harder to recover from.
|
|
|
|
|
|
|
|
|
|
|
| |
Now that lib/buildcustomize.pl is built at the same time as building
miniperl, it will always have added paths to Cwd into @INC. Hence there's no
longer a need for Makefile macros to do this.
On Win32 we can't eliminate $(ICWD) completely as it's also being used for some
invocations of the (real) perl binary. Only miniperl loads buildcustomize.pl
to set up @INC to include paths for the initial locations of modules such
as Cwd.
|
|
|
|
|
|
|
|
|
| |
Doing them together ensures that we always have lib/buildcustomize.pl
available. This simplifies things. The seemingly cranky ordering of having
miniperl notionally depend on lib/buildcustomize.pl, and the rule for
lib/buildcustomize.pl actually also building miniperl permits the rest of
the Makefile to depend on (the obvious) miniperl, not the obscure
lib/buildcustomize.pl
|
|
|
|
|
| |
This reduces duplication of code that generates '-*- buffer-read-only: t -*-',
'ex: set ro:' etc.
|
|
|
|
|
|
| |
These rules to clean up properly on VM/ESA were added in Oct 1998 by
perforce changes 1961, 1962 and 1963 in the confperl branch. VM/ESA support
was removed by commit 043fec90e88a2e23 in Aug 2012.
|
|
|
|
|
| |
This makes the top level Makefile responsible for deleting x2p/Makefile.
With this, we can eliminate the 'sh' and 'shextract' from x2p's Makefile.
|
| |
|
|
|
|
|
|
| |
Previously dependencies for Makefile, config.h and makedepend were
explicitly coded into verbatim sections of Makefile.SH, with most of the
others being generated by makedepend.SH
|
|
|
|
| |
The generated Makefile is functionally identical.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
shextract lists the files generated by shell scripts named *.SH which need
deleting. Instead of maintaining it by hand, generate it in Makefile.SH from
the list of *.SH files.
This indirectly eliminates the last reference to F<makedir>. makedir.SH
was eliminated by commit ebca06e95b02d1a8 and the reference to makedir.SH in
Makefile.SH eliminated by commit 847471027aa42997 (both Sept 2009), but
that commit missed that the reference to makedir a few lines later was
related.
|
|
|
|
|
|
|
| |
We can run makedepend in x2p/ as part of the regular build process, which
means that it can run as part of a parallel make. This gets a slight
speedup (0.2s on this system), and increases flexibility on how x2p/Makefile
is generated.
|
|
|
|
|
|
| |
This will give us more flexibility in when and how we generate it.
[x2p/makefile is x2p/GNUmakefile on OS X]
|
|
|
|
|
|
|
|
| |
4 of the *.SH files have code which links the extracted file into the parent
directory if the current directory ends SH. This code dates from Perl 1.
It seems that the intent was that the *.SH files could live in a SH/
directory, but that feature was neither used or mentioned in the
documentation in Perl 1, and hasn't been used since.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Avoid use of $(...) as backticks in SH code as it is not supported
by all /bin/sh. RT#115708.
|
| |
|
| |
|
|
|
|
|
| |
This includes various tweaks related to building SipHash and other
cleanup.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Provide -y and -j switches to produce yml or json
files, respectively, for use in regen rules and tests
The default behaviour is to produce both files.
Update release managers' guide to say to regen the
META files before generating release tarballs.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Rhapsody was an Apple OS that later evolved into Darwin and Mac OS X. It was
initially only released to developers, but later became Mac OS X Server, with
releases in 1999 and 2000. It was obsoleted by Mac OS X 10.0, released in
March 2001.
|
|
|
|
|
|
|
|
|
|
| |
This is necessary on some platforms (Haiku-OS, Cygwin and possibly
others) since EU::MM adds libperl.so/libperl.a (with their appropriate
extensions) as a dependency to the link step.
Added as a dependency on all platforms because it causes no practical
harm (fewer choices for parallel making) on the platforms where it isn't
needed.
|
| |
|
|
|
|
|
|
|
|
|
| |
BeOS was an operating system for personal computers developed by Be Inc,
initially for their BeBox hardware. The OS Haiku was written as an open source
replacement/continuation for BeOS, and its perl port is current and actively
maintained.
The BeOS port has not been updated since 2004.
|
|
|
|
|
|
| |
directory t/opbasic.
For RT #115838
|