This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make adding notes to patchlevel.h easier
[perl5.git] / patchlevel.h
CommitLineData
d6376244
JH
1/* patchlevel.h
2 *
3 * Copyright (c) 1997-2002, Larry Wall
4 *
5 * You may distribute under the terms of either the GNU General Public
6 * License or the Artistic License, as specified in the README file.
7 *
8 */
9
f7d144c8 10#ifndef __PATCHLEVEL_H_INCLUDED__
4d8076ea 11
a9fb271f
GS
12/* do not adjust the whitespace! Configure expects the numbers to be
13 * exactly on the third column */
14
15#define PERL_REVISION 5 /* age */
78a7c709 16#define PERL_VERSION 9 /* epoch */
4282de36 17#define PERL_SUBVERSION 0 /* generation */
4d8076ea 18
273cf8d1
GS
19/* The following numbers describe the earliest compatible version of
20 Perl ("compatibility" here being defined as sufficient binary/API
21 compatibility to run XS code built with the older version).
75347591 22 Normally this should not change across maintenance releases.
75347591 23
ea3df0f8
GS
24 Note that this only refers to an out-of-the-box build. Many non-default
25 options such as usemultiplicity tend to break binary compatibility
26 more often.
27
ff935051
JH
28 This is used by Configure et al to figure out
29 PERL_INC_VERSION_LIST, which lists version libraries
30 to include in @INC. See INSTALL for how this works.
75347591 31*/
273cf8d1 32#define PERL_API_REVISION 5 /* Adjust manually as needed. */
4282de36
JH
33#define PERL_API_VERSION 8 /* Adjust manually as needed. */
34#define PERL_API_SUBVERSION 0 /* Adjust manually as needed. */
ff935051
JH
35/*
36 XXX Note: The selection of non-default Configure options, such
37 as -Duselonglong may invalidate these settings. Currently, Configure
38 does not adequately test for this. A.D. Jan 13, 2000
39*/
75347591 40
e3321bb0
GS
41#define __PATCHLEVEL_H_INCLUDED__
42#endif
43
7f0a50ff
PP
44/*
45 local_patches -- list of locally applied less-than-subversion patches.
46 If you're distributing such a patch, please give it a name and a
47 one-line description, placed just before the last NULL in the array
48 below. If your patch fixes a bug in the perlbug database, please
49 mention the bugid. If your patch *IS* dependent on a prior patch,
50 please place your applied patch line after its dependencies. This
51 will help tracking of patch dependencies.
52
53 Please edit the hunk of diff which adds your patch to this list,
54 to remove context lines which would give patch problems. For instance,
55 if the original context diff is
56 *** patchlevel.h.orig <date here>
57 --- patchlevel.h <date here>
58 *** 38,43 ***
59 --- 38,44 ---
60 ,"FOO1235 - some patch"
61 ,"BAR3141 - another patch"
62 ,"BAZ2718 - and another patch"
63 + ,"MINE001 - my new patch"
64 ,NULL
65 };
66
67 please change it to
68 *** patchlevel.h.orig <date here>
69 --- patchlevel.h <date here>
70 *** 41,43 ***
71 --- 41,44 ---
72 + ,"MINE001 - my new patch"
73 };
74
75 (Note changes to line numbers as well as removal of context lines.)
76 This will prevent patch from choking if someone has previously
77 applied different patches than you.
f7047380
A
78
79 History has shown that nobody distributes patches that also
80 modify patchlevel.h. Do it yourself. The following perl
81 program can be used to add a comment to patchlevel.h:
82
83#!perl
84die "Usage: perl -x patchlevel.h comment ..." unless @ARGV;
85open PLIN, "patchlevel.h" or die "Couldn't open patchlevel.h : $!";
86open PLOUT, ">patchlevel.new" or die "Couldn't write on patchlevel.new : $!";
87my $seen=0;
88while (<PLIN>) {
89 if (/\t,NULL/ and $seen) {
90 while (my $c = shift @ARGV){
91 print PLOUT qq{\t,"$c"\n};
92 }
93 }
94 $seen++ if /local_patches\[\]/;
95 print PLOUT;
96}
97close PLOUT or warn "Couldn't close filehandle writing to patchlevel.new : $!";
98close PLIN or warn "Couldn't close filehandle reading from patchlevel.h : $!";
99unlink "patchlevel.bak" or warn "Couldn't unlink patchlevel.bak : $!"
100 if -e "patchlevel.bak";
101rename "patchlevel.h", "patchlevel.bak" or
102 die "Couldn't rename patchlevel.h to patchlevel.bak : $!";
103rename "patchlevel.new", "patchlevel.h" or
104 die "Couldn't rename patchlevel.new to patchlevel.h : $!";
105__END__
106
107Please keep empty lines below so patching of this file doesn't
108interfere with the following lines.
109
7f0a50ff 110 */
f7047380
A
111
112
113
114
115
116
117
e3321bb0 118#if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT)
65f19062 119static char *local_patches[] = {
3255d14b 120 NULL
48e1ca0e 121 ,"DEVEL18374"
3255d14b 122 ,NULL
7f0a50ff
PP
123};
124
b33f1439
PP
125/* Initial space prevents this variable from being inserted in config.sh */
126# define LOCAL_PATCH_COUNT \
7f0a50ff 127 (sizeof(local_patches)/sizeof(local_patches[0])-2)
f7d144c8 128
cceca5ed 129/* the old terms of reference, add them only when explicitly included */
cceca5ed
GS
130#define PATCHLEVEL PERL_VERSION
131#undef SUBVERSION /* OS/390 has a SUBVERSION in a system header */
132#define SUBVERSION PERL_SUBVERSION
133#endif