summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Cozens <simon@netthink.co.uk>2000-07-14 07:12:15 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2000-08-02 01:43:33 +0000
commit517e7c645afd88cb6b76e340708d0fff8202d858 (patch)
tree878057c1242990ad48a7bdfd220a51784f5cac13
parent298e5f695df9e9b8ba9d8ecad678734c47cd6d78 (diff)
downloadperl-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--MANIFEST1
-rw-r--r--Makefile.SH10
-rw-r--r--fix_pl21
3 files changed, 31 insertions, 1 deletions
diff --git a/MANIFEST b/MANIFEST
index 68afd78584..96eec9c3ec 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -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";