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)
$(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)
!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
--- /dev/null
+#!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";