summaryrefslogtreecommitdiff
path: root/Makefile.SH
Commit message (Collapse)AuthorAgeFilesLines
* Create a perldelta for 5.15.9Abigail2012-03-201-3/+3
|
* Add perl5158delta.podMax Maischein2012-02-211-3/+3
|
* Add a dependency for ext/Pod-Functions/Functions_pm.PL on pod/perlfunc.podNicholas Clark2012-02-181-1/+1
| | | | | This ensures that it gets re-run, and lib/Pod/Functions.pm rebuilt, if perlfunc.pod is changed.
* Ensure Pod::Simple is built before Pod::Functions.Nicholas Clark2012-02-181-1/+3
| | | | | This will allow Pod::Functions to use Pod::Simple as part of its build process.
* Add regen/mk_invlists.pl, charclass_invlists.hKarl Williamson2012-02-091-1/+2
| | | | | | | This will be used to generate compile-time inversion lists in a C hdr file that can be included in programs for initialization speed Three simple inversion lists are included in this initial commit
* Clean up Pod::Html's cache as part of distclean on *nix.Nicholas Clark2012-02-081-0/+1
| | | | | | This has been done on win32 since commit b4a415570dc258dd in 2006. However, the new Pod::Html caching code only uses one file, pod2htmd.tmp, so remove now redundant cleanup code for pod2htmi.tmp.
* Create a perldelta for 5.15.8Chris 'BinGOs' Williams2012-01-201-3/+3
|
* Ignore and clean the byproducts of make install.htmlNicholas Clark2012-01-191-0/+1
| | | | | | | The install.html target generates vms/README_vms.pod and files in two directories, pod/perlfunc/ and pod/perlipc/ Add all three to .gitignore files, and add rules to delete the directories when cleaning.
* Purge references to --netscape and --libpods, no longer in Pod::HtmlNicholas Clark2012-01-171-1/+0
| | | | | | | | | | The long deprecated --netscape flag was removed in commit 27b29ec338b08496. This was originally added to control use of Netscape specific HTML extensions, , but became a no-op when that functionality was removed. --libpods was removed in commit 3b49d8d9ac841d8e. However neither commit removed use of these flags by callers to Pod::Html, notably in installhtml and the Makefiles that invoke it. Hence this commit.
* Add feature.h, with constants for feature bundlesFather Chrysostomos2011-12-241-2/+2
|
* Create regen/feature.plFather Chrysostomos2011-12-241-1/+3
| | | | | This script generates lib/feature.pm. Soon it will be made to gener- ate other files, too.
* Create a perldelta for 5.15.7Dave Rolsky2011-12-201-3/+3
|
* On AIX, avoid a shell pipepline by making makedef.pl sort case insenitively.Nicholas Clark2011-12-041-1/+1
| | | | | | | | Previously the Makefile piped the output of makedef.pl to sort. This had the side effect of ignoring the exit code from makedef.pl, as make could only see the exit code of the last command in the pipeline. This concealed the causes of the parallel make failure when makedef.pl was missing a dependency on Config.pm
* pod/buildtoc now generates pod/roffitallNicholas Clark2011-11-281-1/+1
| | | | | | roffitall remains a shell script, identical apart from a dynamically generated list of man pages (and removal of the comment from 2000 that this should be done).
* makedef.pl uses Config.pm, so needs a Makefile dependency on it.Nicholas Clark2011-11-231-2/+2
| | | | | | | | Commit 9d6c7f2eccef26a6 changed makedef.pl to use Config.pm Commit 208d7614b345d1fb refactored makedef.pl to read values from %Config::Config, instead of reading directly from config.sh Hence we can replace the dependency on config.sh with one on lib/Config.pm
* Create new perldelta ready for 5.15.6Steve Hay2011-11-211-3/+3
|
* Create Porting/pod_rules.pl, with all non perltoc.pod code from buildtoc.Nicholas Clark2011-11-181-1/+1
| | | | | | | | | | | | | | | | pod/buildtoc now only generates pod/perltoc.pod, and only takes a --quiet option. All the other file (re)generation code is now in Porting/pod_rules.pl. This splits functionality which generates a new file at build time from functionality for maintainers, which edits files in place. This permits the unwinding of some of commit 02cc404a20a8a345, which achieved net simplification in pod/buildtoc by merging code paths dealing with new files (only pod/perltoc.pod) and existing files being edited. pod_rules.pl has a --tap option, instead of buildtoc's non-standard --test option, and defaults to --build-all if no arguments are passed. As buildtoc now does one job, it no longer takes a --build-toc option, hence all the Makefiles which call it need updating.
* Add new mktables generated files to makefilesKarl Williamson2011-11-121-0/+1
| | | | | This step was omitted from commit 0765b2b82b120f4e57571368932aa4863aba62f6
* Create a perldelta for 5.15.5Florian Ragwitz2011-10-201-3/+3
|
* Add more x-y aliases for x_y targets in MakefileH.Merijn Brand2011-10-011-22/+16
| | | | | Consistently make test_prep identical to test-prep for all x-y and x_y targets.
* Add darwin to the list of valgrind platformsTony Cook2011-09-291-4/+4
|
* Makefile.SH: emit make valgrind* targets only on linuxJim Cromie2011-09-291-0/+20
| | | | | | | | This inserts several case $osname in linux) spitshell ... esac statements to emit valgrind targets only where valgrind is available. Platform dependence is better than checking for valgrind executable because it serves as a subtle hint that it can be installed. Other platforms can be added by those who have them.
* Makefile.SH: fix ?= gmake-ismsJim Cromie2011-09-291-0/+10
| | | | | | | commit c7b956bbbaff changed Makefile.SH to emit gmake-only syntax, fix that by doing so only on linux, by inserting a spitshell dependent on osname. This isnt the most direct fix, but it starts to isolate linux-only/mostly stuff, like test.valgrind.
* update TOC for perl5153deltaStevan Little2011-09-201-3/+3
|
* adjust TEST's valgrind invocation to also work with linux's perf statJim Cromie2011-09-091-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move --log-fd=3 option from unconditional invocation into VG_OPTS default value. A future version of perf will understand --log-fd=3, but other tools probably will not, with this we can accommodate them, and the current version of perf. Makefile.SH: Set VALGRIND var conditionally, to allow cmdline override (this is probably non-portable, will need review at least). perl.valgrind.config target's test of $(VALGRIND) is simplified to use $(VG_TEST), which defaults to its legacy value: ./perl -e 1 2>/dev/null. Setting it to '--help' is needed for perf, and would also work to verify that valgrind is runnable, but current test is slightly more comprehensive for valgrind, so Ive left that for user to change in the environment. t/TEST: 1. --log-fd=3 is in default, but can be overridden by setting VG_OPTS 2. several variable renames to clarify purpose 3. $toolnm to rename output file with flexible suffix, ie: valgrind, cachegrind, perf-stat 4. add perf to cachegrind as a special case, avoid culling of valgrind output files by their content With above, and following env, make test.valgrind works: # --log-fd isnt mainline yet. VALGRIND=/home/jimc/projects/lx/linux-2.6/tools/perf/perf VG_TEST=--help VG_OPTS='stat --log-fd=3 -- ' $> make test.valgrind; PERL_VALGRIND=1 VALGRIND='/home/jimc/projects/lx/linux-2.6/tools/perf/perf' ./runtests choose t/base/cond....................................................ok t/base/if......................................................ok t/base/lex.....................................................ok ... [jimc@groucho perl]$ cat t/base/*.perf-stat Performance counter stats for './perl base/cond.t': 5.882071 task-clock # 0.850 CPUs utilized 1 context-switches # 0.000 M/sec 1 CPU-migrations # 0.000 M/sec 483 page-faults # 0.082 M/sec 4,688,843 cycles # 0.797 GHz <not supported> stalled-cycles-frontend <not supported> stalled-cycles-backend 3,368,118 instructions # 0.72 insns per cycle 718,821 branches # 122.205 M/sec 48,053 branch-misses # 6.68% of all branches 0.006920536 seconds time elapsed This patch will allow you to use released version of perf, just drop the --log-fd from VG_OPTS. The tests will fail, because perf will write to STDOUT, and foul the harness. The following runs cachegrind, creates t/*/*.cachegrind files. It is much slower than using perf-stat. $> export VG_OPTS='--tool=cachegrind --log-fd=3 -- ' $> make test.valgrind ==25822== Cachegrind, a cache and branch-prediction profiler ==25822== Copyright (C) 2002-2009, and GNU GPL'd, by Nicholas Nethercote et al. ==25822== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info ==25822== Command: ./perl base/cond.t ==25822== ==25822== ==25822== I refs: 1,680,072 ==25822== I1 misses: 8,129 ==25822== L2i misses: 3,675 ==25822== I1 miss rate: 0.48% ==25822== L2i miss rate: 0.21% ==25822== ==25822== D refs: 604,393 (400,033 rd + 204,360 wr) ==25822== D1 misses: 12,599 ( 8,838 rd + 3,761 wr) ==25822== L2d misses: 6,261 ( 2,966 rd + 3,295 wr) ==25822== D1 miss rate: 2.0% ( 2.2% + 1.8% ) ==25822== L2d miss rate: 1.0% ( 0.7% + 1.6% ) ==25822== ==25822== L2 refs: 20,728 ( 16,967 rd + 3,761 wr) ==25822== L2 misses: 9,936 ( 6,641 rd + 3,295 wr) ==25822== L2 miss rate: 0.4% ( 0.3% + 1.6% ) NB: The following almost works; t runs the 1st test 5 times, and produces 1 statistics file, but it fails, because TEST sees multiple leaders, (FAILED--seen duplicate leader) and exits immediately, because it happens in t/base. A work-around is easy enough, but adds yet another knob. TBD. $> VALGRIND=perf VG_OPTS='stat -r5 --log-fd=3 --' make test.valgrind Performance counter stats for './perl base/cond.t' (5 runs): 5.568965 task-clock # 0.833 CPUs utilized ( +- 1.82% ) 0 context-switches # 0.000 M/sec ( +- 61.24% ) 0 CPU-migrations # 0.000 M/sec ( +-100.00% ) 478 page-faults # 0.086 M/sec ( +- 0.37% ) 4,441,737 cycles # 0.798 GHz ( +- 1.84% ) <not supported> stalled-cycles-frontend <not supported> stalled-cycles-backend 3,183,574 instructions # 0.72 insns per cycle ( +- 2.30% ) 669,241 branches # 120.173 M/sec ( +- 2.87% ) 41,826 branch-misses # 6.25% of all branches ( +- 3.78% ) 0.006688160 seconds time elapsed ( +- 1.49% ) This patch is really a proof-of-concept; perf tool has far more capabilities than t/TEST can exploit well, but this is a start, and makes perf foo experimentation easier.
* Pass -Idist/Carp/lib to miniperlVincent Pit2011-09-051-1/+1
| | | | | | The build was broken by the move of Carp from lib to dist, because miniperl calls perlmodlib.PL, perlmodlib.PL loads FindBin, and FindBin wants Carp.
* move Carp to ext/Carp, preparing for dual-lifingZefram2011-09-041-1/+1
|
* Eliminate global.sym, as makedef.pl can generate it internally.Nicholas Clark2011-08-251-7/+4
| | | | | | | | global.sym was a file listing the exported symbols, generated by regen/embed.pl from embed.fnc and regen/opcodes, which was only used by makedef.pl Move the code that generates global.sym from regen/embed.pl to makedef.pl, and thereby eliminate the need to ship a 907 line generated file.
* Run regen/uconfig_h.pl as part of the regen and regen_headers targets.Nicholas Clark2011-08-231-0/+2
| | | | | | | regen/uconfig_h.pl can't be run (by default) by regen.pl, as regen.pl needs to be cross-platform, whilst regen/uconfig_h.pl relies on having a Bourne Shell. However, if one has managed to extract Makefile from Makefile.SH, that's clear proof that one has a working Bourne Shell available :-)
* Group 3 headers as $(generated_headers) in the *nix, VMS and Win32 makefiles.Nicholas Clark2011-08-231-3/+4
| | | | | | uudmap.h bitcount.h mg_data.h are all generated by generate_uudmap, and all need to be deleted as part of the clean targets, so it makes sense to reference all 3 together using a single makefile macro.
* update TOC for perl5153deltaRicardo Signes2011-08-201-3/+3
|
* work around a bug in dtrace - it strips const from function parametersTony Cook2011-08-091-1/+4
| | | | | | | | | | | | | | | | | With usedtrace this caused: - build failures under g++ (OS X) - const qualification warnings with gcc (OS X) The workaround simply adds const to char * parameters if not already present. The bug in dtrace was apparently reported to Sun in 2006: http://opensolaris.org/jive/thread.jspa?threadID=53810 Mozilla ran into the same problem: https://bugzilla.mozilla.org/show_bug.cgi?id=593483
* every use of $(mini_obj) needs the mini specific objects, so include themTony Cook2011-07-281-16/+12
| | | | | Also fixes link issues with usedtrace on Solaris, since perlmini.o wasn't being processed by dtrace.
* new perldelta for 5.15.2Zefram2011-07-201-3/+3
|
* create perldelta for 5.15.1Father Chrysostomos2011-06-211-3/+3
|
* Create a lookup table for magic vtables from magic type, PL_magic_data.Nicholas Clark2011-06-111-4/+6
| | | | | | | | | | | Use it to eliminate the large switch statement in Perl_sv_magic(). As the table needs to be keyed on magic type, which is expressed as C character constants, the order depends on the compiler's character set. Frustratingly, EBCDIC variants don't agree on the code points for '~' and ']', which we use here. Instead of having (at least) 4 tables, get the local runtime to sort the table for us. Hence the regen script writes out the (unsorted) mg_raw.h, which generate_uudmap sorts to generate mg_data.h
* Add find2perl as a dependency for the target 'test_prep'.Nicholas Clark2011-05-231-1/+6
| | | | | | | If t/porting/podcheck.t can't find x2p/find2perl, then it is unable to find an external target for a pod link in perlutil.pod, which it flags up as an error. find2perl was already a dependency of the 'all' target, hence without this rule podcheck.t would pass for 'make all test', but not 'make test'.
* if List-Util is built statically, depend on $(PERL_EXE) instead of the ↵Tony Cook2011-05-201-1/+3
| | | | | | | shared library of course, it could be that these dependencies are as redundant as the rest.
* remove unused dependency rule generation for Text/ParseWordsTony Cook2011-05-201-2/+0
| | | | | | | | | 1) Text/ParseWords isn't XS, so never appears in dynamic_ext 2) there's no lib/auto/Scalar/Util.$dlext target, the file would be lib/auto/Scalar/Util/Util.$dlext , but it's built as part of List-Util, so there's no dependency lib/auto/Scalar/Util/Util.$dlext anyway.
* handle a static Cwd when generating the deps for x2p/utilsTony Cook2011-05-201-2/+14
|
* remove unneeded dependencies against CwdTony Cook2011-05-201-4/+0
| | | | | | these were added because the build process for Encode and SDBM_File changes directory, invalidating the original "../lib:../../lib" PERL5LIB. With buildcustomize.pl they can change directory safely.
* Avoid make distclean failing if t/tmp* matches a directory.Nicholas Clark2011-05-191-1/+2
| | | | | | | | | | | | | Some of the tests in t/ make directories with names generated by the test.pl tempfile(), and if they exit abnormally without deleting them, this would cause distclean to fail. So change `rm -f t/tmp*` to `rm -rf t/tmp*` Remove other cruft from the same line in the Makefile. t/misctmp* hasn't been generated since 7a7e49369367a634. t/forktmp* hasn't been generated since 1c25d394345c1b97. t/io/fs.t has deleted t/c itself since 44a8e56aa037ed0f. (Whilst it might abort and fail to delete it, there's no special treatment in the Makefile for the other file that it creates, "t/TEST$$")
* update TOC for perl5150deltaDavid Mitchell2011-05-181-3/+3
|
* Create a perldelta for 5.14.0Florian Ragwitz2011-03-201-3/+3
|
* In t/TEST, automatically detect if running under miniperlNicholas Clark2011-02-211-2/+2
| | | | | | Set $ENV{PERL_CORE_MINITEST} based on defined &DynaLoader::boot_DynaLoader, instead of relying on a -minitest parameter. &DynaLoader::boot_DynaLoader is undefined in miniperl, defined in perl, for both -Dusedl and -Uusedl
* Update TOC for perl51310deltaÆvar Arnfjörð Bjarmason2011-02-201-3/+3
| | | | | | | | | | | | | | | | Quoth Porting/perldelta_template.pod: "Run C<perl pod/buildtoc --build-all> to update the F<perldelta> version in the following files: MANIFEST Makefile.SH pod.lst pod/perl.pod vms/descrip_mms.template win32/Makefile win32/makefile.mk win32/pod.mak"
* Run lib/diagnostics.t during make test_portingLarwan Berke2011-02-161-1/+1
| | | | Signed-off-by: David Golden <dagolden@cpan.org>
* Add ext/re/re.pm to the @INC set for miniperl by lib/buildcustomize.plNicholas Clark2011-02-151-7/+3
| | | | | | | This avoids a build-time race condition where lib/re.pm might be read midway through the *second* copy of it (when ext/re/Makefile is being run). It also simplifies many [Mm]akefile* rules, which previously had a special case to copy it early.
* Use a buildcustomize.pl to set @INC in miniperl when building extensions.Nicholas Clark2011-02-151-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Merge perl_keyword.pl into regen/keywords.pl, to generate keywords.[ch]Nicholas Clark2011-01-241-2/+1
| | | | | | | | | | Prepend + or - in front of all the keyword names in __DATA__ to mark weak and strong keywords, needed for keyword.c As keywords.c needs Devel::Tokenizer::C 0.05, not a core module (and not a common module either) we can no longer run it as part of regen.pl. So store the sha256 of the source in the generated files, and use this in to check that they are not stale (in t/porting/regen.t)