1/*    patchlevel.h
2 *
3 *    Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
4 *    2003, 2004, 2005, 2006, 2007, 2008, 2009, by Larry Wall and others
5 *
6 *    You may distribute under the terms of either the GNU General Public
7 *    License or the Artistic License, as specified in the README file.
8 *
9 */
10
11/*
12=for apidoc AmDnU|U8|PERL_REVISION
13The major number component of the perl interpreter currently being compiled or
14executing.  This has been C<5> from 1993 into 2020.
15
16Instead use one of the version comparison macros.  See C<L</PERL_VERSION_EQ>>.
17
18=for apidoc AmDnU|U8|PERL_VERSION
19The minor number component of the perl interpreter currently being compiled or
20executing.  Between 1993 into 2020, this has ranged from 0 to 33.
21
22Instead use one of the version comparison macros.  See C<L</PERL_VERSION_EQ>>.
23
24=for apidoc AmDnU|U8|PERL_SUBVERSION
25The micro number component of the perl interpreter currently being compiled or
26executing.  In stable releases this gives the dot release number for
27maintenance updates.  In development releases this gives a tag for a snapshot
28of the status at various points in the development cycle.
29
30Instead use one of the version comparison macros.  See C<L</PERL_VERSION_EQ>>.
31
32=cut
33*/
34
35#ifndef __PATCHLEVEL_H_INCLUDED__
36
37/* do not adjust the whitespace! Configure expects the numbers to be
38 * exactly on the third column */
39
40#define PERL_REVISION	5		/* age */
41#define PERL_VERSION	38		/* epoch */
42#define PERL_SUBVERSION	2		/* generation */
43
44/* The following numbers describe the earliest compatible version of
45   Perl ("compatibility" here being defined as sufficient binary/API
46   compatibility to run XS code built with the older version).
47   Normally this should not change across maintenance releases.
48
49   Note that this only refers to an out-of-the-box build.  Many non-default
50   options such as usemultiplicity tend to break binary compatibility
51   more often.
52
53   This is used by Configure et al to figure out
54   PERL_INC_VERSION_LIST, which lists version libraries
55   to include in @INC.  See INSTALL for how this works.
56
57   Porting/bump-perl-version will automatically set these to the version of perl
58   to be released for blead releases, and to 5.X.0 for maint releases. Manually
59   changing them should not be necessary.
60*/
61#define PERL_API_REVISION	5
62#define PERL_API_VERSION	38
63#define PERL_API_SUBVERSION	0
64/*
65   XXX Note:  The selection of non-default Configure options, such
66   as -Duselonglong may invalidate these settings.  Currently, Configure
67   does not adequately test for this.   A.D.  Jan 13, 2000
68*/
69
70#define __PATCHLEVEL_H_INCLUDED__
71#endif
72
73/*
74        local_patches -- list of locally applied less-than-subversion patches.
75        If you're distributing such a patch, please give it a name and a
76        one-line description, placed just before the last NULL in the array
77        below.  If your patch fixes a bug in the perlbug database, please
78        mention the bugid.  If your patch *IS* dependent on a prior patch,
79        please place your applied patch line after its dependencies. This
80        will help tracking of patch dependencies.
81
82        Please either use 'diff --unified=0' if your diff supports
83        that or edit the hunk of the diff output which adds your patch
84        to this list, to remove context lines which would give patch
85        problems. For instance, if the original context diff is
86
87           *** patchlevel.h.orig	<date here>
88           --- patchlevel.h	<date here>
89           *** 38,43 ***
90           --- 38,44 ---
91                ,"FOO1235 - some patch"
92                ,"BAR3141 - another patch"
93                ,"BAZ2718 - and another patch"
94           + 	,"MINE001 - my new patch"
95                ,NULL
96             };
97
98        please change it to
99           *** patchlevel.h.orig	<date here>
100           --- patchlevel.h	<date here>
101           *** 41,43 ***
102           --- 41,44 ---
103           + 	,"MINE001 - my new patch"
104                ,NULL
105             };
106
107        (Note changes to line numbers as well as removal of context lines.)
108        This will prevent patch from choking if someone has previously
109        applied different patches than you.
110
111        History has shown that nobody distributes patches that also
112        modify patchlevel.h. Do it yourself. The following perl
113        program can be used to add a comment to patchlevel.h:
114
115#!perl
116die "Usage: perl -x patchlevel.h comment ..." unless @ARGV;
117open PLIN, "<", "patchlevel.h" or die "Couldn't open patchlevel.h : $!";
118open PLOUT, ">", "patchlevel.new" or die "Couldn't write on patchlevel.new : $!";
119my $seen=0;
120while (<PLIN>) {
121    if (/^(\s+),NULL/ and $seen) {
122       my $pre = $1;
123       while (my $c = shift @ARGV){
124            $c =~ s|\\|\\\\|g;
125            $c =~ s|"|\\"|g;
126            print PLOUT qq{$pre,"$c"\n};
127       }
128    }
129    $seen++ if /local_patches\[\]/;
130    print PLOUT;
131}
132close PLOUT or die "Couldn't close filehandle writing to patchlevel.new : $!";
133close PLIN or die "Couldn't close filehandle reading from patchlevel.h : $!";
134close DATA; # needed to allow unlink to work win32.
135unlink "patchlevel.bak" or warn "Couldn't unlink patchlevel.bak : $!"
136  if -e "patchlevel.bak";
137rename "patchlevel.h", "patchlevel.bak" or
138  die "Couldn't rename patchlevel.h to patchlevel.bak : $!";
139rename "patchlevel.new", "patchlevel.h" or
140  die "Couldn't rename patchlevel.new to patchlevel.h : $!";
141__END__
142
143Please keep empty lines below so that context diffs of this file do
144not ever collect the lines belonging to local_patches() into the same
145hunk.
146
147 */
148
149#if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT)
150#  if defined(PERL_IS_MINIPERL)
151#    define PERL_PATCHNUM "UNKNOWN-miniperl"
152#    define PERL_GIT_UNPUSHED_COMMITS /*leave-this-comment*/
153#  elif defined(PERL_MICRO)
154#    define PERL_PATCHNUM "UNKNOWN-microperl"
155#    define PERL_GIT_UNPUSHED_COMMITS /*leave-this-comment*/
156#  else
157#    include "git_version.h"
158#  endif
159static const char * const local_patches[] = {
160        NULL
161#ifdef PERL_GIT_UNCOMMITTED_CHANGES
162        ,"uncommitted-changes"
163#endif
164        PERL_GIT_UNPUSHED_COMMITS    	/* do not remove this line */
165        ,NULL
166};
167
168
169
170/* Initial space prevents this variable from being inserted in config.sh  */
171#  define LOCAL_PATCH_COUNT     \
172        ((int)(C_ARRAY_LENGTH(local_patches)-2))
173
174/* the old terms of reference, add them only when explicitly included */
175#define PATCHLEVEL		PERL_VERSION
176#undef  SUBVERSION		/* OS/390 has a SUBVERSION in a system header */
177#define SUBVERSION		PERL_SUBVERSION
178#endif
179