summaryrefslogtreecommitdiff
path: root/Makefile.SH
Commit message (Collapse)AuthorAgeFilesLines
* Change the *nix and VMS Makefiles to to pass a filename to writemain().Nicholas Clark2013-07-091-1/+1
| | | | | | | | | | | | 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.
* Move generation of ExtUtils::Miniperl to ext/ExtUtils-Miniperl from minimod.plNicholas Clark2013-07-071-5/+2
| | | | | | | | | 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.
* Generate utils/Makefile from utils/Makefile.PL, and remove it at clean time.Nicholas Clark2013-07-071-1/+1
| | | | | | | | 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.
* Replace utils/Makefile.SH with utils/Makefile.PLNicholas Clark2013-07-071-1/+4
| | | | | | | | | | | | | | | | | | | | | 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.
* Add cpan/Text-Tabs/lib to buildcustomize.pl and hence miniperl's @INC.Nicholas Clark2013-07-071-3/+2
| | | | | autodoc.pl already needs Text::Wrap, and soon other early-stage build scripts will too.
* Move Exporter from lib/ to dist/Exporter/Nicholas Clark2013-07-031-4/+4
| | | | | | | | | | 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/
* Trim the explicit Makefile rules to generate {mini,}perlmain.oNicholas Clark2013-07-021-6/+0
| | | | | | These duplicate the suffix rules used for general .c -> .o compilation. makedepend automatically generates a dependency for miniperlmain.o on patchlevel.h
* Eliminate the perl.gprof and perl.gcov Makefile targets.Nicholas Clark2013-07-011-34/+1
| | | | | | | | | | | 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.
* Remove the explicit purify/quantify/purecov targets and documentation.Nicholas Clark2013-07-011-11/+0
| | | | | | | | | | 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.
* We don't actually need to set $ENV{PERL} for the tests to work.Nicholas Clark2013-07-011-1/+1
| | | | | | 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.
* valgrind doesn't require that perl was built with -g, so remove the check.Nicholas Clark2013-07-011-7/+0
| | | | | C<make test.valgrind> will run quite happily on a perl built with optimisation and without debugging symbols. So don't enforce -g.
* Inline the Makefile target minitest.prep into its only user.Nicholas Clark2013-07-011-5/+3
| | | | | This is strictly a refactoring, so do not change the rules themselves, despite them being ugly and fragile.
* Remove Makefile targets and tools related to Irix and Tru64 debugging tools.Nicholas Clark2013-07-011-36/+1
| | | | | | | | | | | | | | | | | | | | | 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 various rarely used test targets from the generated Makefile.Nicholas Clark2013-07-011-58/+1
| | | | | | | | | | | | | | 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.
* new perldeltaDavid Golden2013-06-201-4/+4
|
* If miniperl fails the simple Exporter test, print a message and bail out.Nicholas Clark2013-06-191-4/+4
| | | | | | | | | | | | | | | | 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.
* For *nix, only delete the ppport.h files that we created.Nicholas Clark2013-06-191-1/+1
| | | | | | | | | | 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 no longer writes to STDOUTNicholas Clark2013-06-131-7/+7
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Remove the Icwd Makefile macros as lib/buildcustomize.pl now sets this up.Nicholas Clark2013-06-131-5/+3
| | | | | | | | | | | 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.
* Generate lib/buildcustomize.pl at the same time as the miniperl executable.Nicholas Clark2013-06-131-8/+18
| | | | | | | | | 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
* Refactor autodoc.pl to use regen_lib.pl to generate file headers & footers.Nicholas Clark2013-05-231-1/+2
| | | | | This reduces duplication of code that generates '-*- buffer-read-only: t -*-', 'ex: set ro:' etc.
* Remove rules to delete *.loadmap and *.prelmap files, generated on VM/ESANicholas Clark2013-05-201-1/+0
| | | | | | 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.
* Add x2p/Makefile.SH to the *.SH files processed by the top level Makefile.Nicholas Clark2013-05-201-1/+1
| | | | | This makes the top level Makefile responsible for deleting x2p/Makefile. With this, we can eliminate the 'sh' and 'shextract' from x2p's Makefile.
* Remove the now unused 'shlist' Makefile targets.Nicholas Clark2013-05-201-4/+1
|
* Programmatically generate dependencies for all *.SH files.Nicholas Clark2013-05-201-11/+16
| | | | | | 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
* Add runtests.SH to the code that generates the targets sh and shextract.Nicholas Clark2013-05-201-5/+2
| | | | The generated Makefile is functionally identical.
* Pass in to makedepend the name(s) of files that all objects depend on.Nicholas Clark2013-05-201-1/+1
|
* In the Makefile, generate the value of shextract programmatically.Nicholas Clark2013-05-201-4/+12
| | | | | | | | | | | | 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.
* Defer running makedepend in x2p/ until it's needed.Nicholas Clark2013-05-201-1/+3
| | | | | | | 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.
* Add x2p/makefile to the dependencies for targets within x2p/Nicholas Clark2013-05-201-3/+3
| | | | | | This will give us more flexibility in when and how we generate it. [x2p/makefile is x2p/GNUmakefile on OS X]
* Remove vestigial *.SH code which can link the extracted file into ../Nicholas Clark2013-05-201-6/+0
| | | | | | | | 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.
* add new perldeltaRicardo Signes2013-05-201-4/+4
|
* Remove cpan/CPANPLUS and associated utilitiesChris 'BinGOs' Williams2013-05-181-2/+1
|
* Remove cpan/CPANPLUS-Dist-BuildChris 'BinGOs' Williams2013-05-181-1/+1
|
* bump the perldelta versionRicardo Signes2013-05-181-4/+4
|
* remove the 5.17 deltas, update for 5.18Ricardo Signes2013-05-071-4/+4
|
* Avoid use of $(...) as backticks in SH codeEric Brine2013-04-231-5/+6
| | | | | Avoid use of $(...) as backticks in SH code as it is not supported by all /bin/sh. RT#115708.
* New perldeltaMax Maischein2013-03-221-4/+4
|
* Assume that the host and target have the same executable suffixPaul Green2013-03-191-1/+1
|
* Split out hash functions into new file and turn into inline static functionsYves Orton2013-03-191-1/+1
| | | | | This includes various tweaks related to building SipHash and other cleanup.
* New perldelta template for v5.17.10Chris 'BinGOs' Williams2013-02-201-4/+4
|
* Make makemeta more cognisant and easier to useChris 'BinGOs' Williams2013-02-051-2/+2
| | | | | | | | | | 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.
* The targets for makemeta in Makefile.SH were spelt wrongChris 'BinGOs' Williams2013-02-021-2/+2
|
* Teach makemeta to use CPAN::Meta to generate both META.json and META.ymlChris 'BinGOs' Williams2013-02-021-2/+5
|
* Make a new perldelta for 5.17.9-to-beAaron Crane2013-01-201-4/+4
|
* Remove the Rhapsody port.Nicholas Clark2013-01-161-1/+1
| | | | | | | 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.
* add a dependency for dynamic extensions on $(LIBPERL)Tony Cook2013-01-081-1/+1
| | | | | | | | | | 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.
* Make a new perldelta for 5.17.8-to-beDave Rolsky2012-12-181-4/+4
|
* Remove the BeOS port.Nicholas Clark2012-12-141-1/+1
| | | | | | | | | 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.
* Adjust MANIFEST, Makefiles, test harnesses, documentation, etc., aware of newJames E Keenan2012-12-071-2/+2
| | | | | | directory t/opbasic. For RT #115838