diff options
author | Simon Cozens <simon@netthink.co.uk> | 2000-07-14 07:12:15 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2000-08-02 01:43:33 +0000 |
commit | 517e7c645afd88cb6b76e340708d0fff8202d858 (patch) | |
tree | 878057c1242990ad48a7bdfd220a51784f5cac13 | |
parent | 298e5f695df9e9b8ba9d8ecad678734c47cd6d78 (diff) | |
download | perl-517e7c645afd88cb6b76e340708d0fff8202d858.tar.gz |
"This little thing tests for a file .patch, and if it contains
a number, pops into patchlevel.h" (making it easier to track
which development version people are reporting bugs against)
Subject: Patchlevel autogeneration for repository perls
Message-ID: <slrn8mtfaf.1qo.simon@justanother.perlhacker.org>
p4raw-id: //depot/perl@6485
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | Makefile.SH | 10 | ||||
-rw-r--r-- | fix_pl | 21 |
3 files changed, 31 insertions, 1 deletions
@@ -414,6 +414,7 @@ ext/re/re.xs re extension external subroutines ext/util/make_ext Used by Makefile to execute extension Makefiles ext/util/mkbootstrap Turns ext/*/*_BS into bootstrap info fakethr.h Fake threads header +fix_pl Fix up patchlevel.h for repository perls form.h Public declarations for the above global.sym Symbols that need hiding when embedded globals.c File to declare global symbols (for shared library) diff --git a/Makefile.SH b/Makefile.SH index c6916143c3..22f8071f0d 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -307,7 +307,7 @@ opmini$(OBJ_EXT): op.c $(CCCMD) $(PLDLFLAGS) -DPERL_EXTERNAL_GLOB opmini.c $(RMS) opmini.c -miniperlmain$(OBJ_EXT): miniperlmain.c +miniperlmain$(OBJ_EXT): miniperlmain.c patchlevel.h $(CCCMD) $(PLDLFLAGS) $*.c perlmain.c: miniperlmain.c config.sh $(FIRSTMAKEFILE) @@ -325,6 +325,14 @@ ext.libs: $(static_ext) !NO!SUBS! +if test -f .patch ; then $spitshell >>Makefile <<'!NO!SUBS!' +patchlevel.h: .patch + perl fix_pl || (make -f Makefile.micro && ./microperl fix_pl) + +!NO!SUBS! + +fi + # How to build libperl. This is still rather convoluted. # Load up custom Makefile.SH fragment for shared loading and executables: case "$osname" in diff --git a/fix_pl b/fix_pl new file mode 100644 index 0000000000..44c3f52170 --- /dev/null +++ b/fix_pl @@ -0,0 +1,21 @@ +#!perl +# Not fixing perl, but fixing the patchlevel if this perl comes +# from the repository rather than an official release +exit unless -e ".patch"; +open PATCH, ".patch" or die "Couldn't open .patch: $!"; +open PLIN, "patchlevel.h" or die "Couldn't open patchlevel.h : $!"; +open PLOUT, ">patchlevel.new" or die "Couldn't write on patchlevel.new : $!"; +my $pl = <PATCH>; +chomp ($pl); +$pl =~ s/\D//g; +my $seen=0; +while (<PLIN>) { + if (/\t,NULL/ and $seen) { + print PLOUT "\t,\"devel-$pl\"\n"; + } + $seen++ if /local_patches\[\]/; + print PLOUT; +} +close PLOUT; close PLIN; +rename "patchlevel.new", "patchlevel.h" or die "Couldn't rename: $!"; +unlink ".patch"; |