This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
U/perl/Extensions.U: remove references to unused vars
[metaconfig.git] / U / README.dist
1
2                      Perl5 Metaconfig Units
3
4              Copyright (c) 1996-1998, Andy Dougherty
5              Copyright (c) 1999-2011, H.Merijn Brand
6                         All rights reserved.
7
8 These units are the ones I used to build Configure and config_h.SH
9 in the Perl5 distribution.
10
11 The Configure script and config_h.SH file in the Perl distribution are
12 generated by a program called metaconfig.  To run metaconfig, you will
13 need the full dist 3.0 distribution, maintained by Raphael Manfredi.
14 As of this writing, the current version is dist3.0, patchlevel 70.
15 Dist version dist-3.0@70.tar.gz is available on CPAN (the Comprehensive
16 Perl Archive Network) as
17 <http://www.perl.com/perl/CPAN/authors/id/RAM/dist-3.0@70.tar.gz>.
18
19 Instructions:
20
21 1.  Unpack the full perl5 sources.  Execute the following command
22
23         chmod +w Configure config_h.SH Porting/Glossary Porting/config*
24
25 2.  Unpack the archive containing this file in the perl5 source
26     directory.  This will create a directory 'U' under the perl5
27     sources.  That directory will contain the metaconfig units for perl5.
28     This will also create two files in the perl5 source tree:
29     MANIFEST.new and .package.
30
31 3.  Apply any patches to perl in the perl_patches/ directory.
32     (This may well be empty.)
33
34 4.  Obtain and install dist-3.0pl70.
35
36 4.  Apply any patches to dist under the dist_patches subdirectory.
37
38 5.  From your main perl5 source directory, run packinit to
39     regenerate the .package file.  IMPORTANT:  Change the name and
40     address of the maintainer to your own name and address.  I don't
41     want bug reports intended for you coming to me.
42
43 6.  From your main perl5 source directory, run
44
45         metalint (or mlint)
46
47     and repair every failure it reports.
48
49 7.  From your main perl5 source directory, run
50
51         metaconfig -m (or mconfig -m)
52
53 8.  Edit U/mkglossary and/or U/mkgloss.pl to point to your dist-3.0pl70
54     location.  (See comments at the top.)
55
56 9.  Run the Porting/mksample script to update the contents of the Porting/
57     subdirectory, or run all parts by hand. (see README)
58
59     NB: this script used to be U/mksample replaced by Porting/mksample;
60     see Porting/pumpkin.pod instead for current documentation on its
61     use.
62
63 10. Let me know about any changes, corrections, or enhancements.
64
65 Things to watch out for:
66
67 1.  The Configure in 5.005 is a hand-patched version of that supplied
68     with perl5.004_74 or so.  Most of the patches had to do with
69     supporting MPE/iX and EBCDIC systems.  I have re-integrated most
70     of the changes back into metaconfig, but I don't really undertand
71     why MPE/iX needed some of the patches, so I may have missed
72     something important.  I did try to flag questionable changes in
73     the individual units.
74     The Configure as generated in the 5.9.x branch leading towards
75     5.10, is also used exactly as is without changes in the 5.8.x
76     and 5.6.x branches, so do not remove support for features that
77     are availabvle in those branches, but are removed from devel (e.g.
78     perl5005threads).
79
80 2.  Future support of better random number generators should probably
81     start with the randfunc.U unit included here.  It's currently
82     broken, but well commented and probably a good place to start.
83
84 Descriptions:
85
86 The units and other related files have been broken up into the following
87 directories:
88
89 acl/
90     This is an old patch to begin to detect and use ACL (access
91     control list) file protection schemes.
92
93 compline/
94     These are similar to the standard units, but I have modified them
95     to have a more uniform compile command line, usually using the new
96     Compile.U unit.  I have submitted these for inclusion into the
97     regular dist distribution.  (The ccflags.U unit is actually
98     perl-specific since it mentions -DDEBUGGING and -DPOSIX_SOURCE,
99     but that's the only place it is perl-specific.)
100
101 dist_patches/
102     These are patches to dist that must be applied before it is built
103     and installed.  I have submitted these for inclusion in the
104     regular dist distribution.
105
106 modified/
107     These are modified versions of the standard units.  Also included in
108     this directory are new units that are clearly derived from existing
109     units.  I have submitted these for inclusion in the regular dist
110     distribution.
111
112 perl/
113     These are specific to perl.  Some are heavily derived from
114     original dist units, and are marked as such.  Others are original.
115
116 perl_patches/
117     These are patches to the perl source.  This directory
118     should ordinarily be empty, but there may have been drift between
119     the standard version of perl and the one associated with these
120     units.
121
122 protos/
123     These are units modified to use the new Hasproto.U or Protochk.U
124     units to check for prototypes.  I have submitted these for inclusion
125     into the regular dist distribution.
126
127 target/
128     This is the very, very beginning of cross-compiler support.
129     It doesn't work yet, and many standard units will need
130     modification.
131
132 typedefs/
133     These are standard units modified to use the modified Typedef.U
134     unit to check for typedefs.  (The modified Typdef.U includes a
135     function to avoid unnecessary prompts if the typdef being searched
136     for exists.)  I have submitted these for inclusion into the
137     regular dist distribution.
138
139 threads/
140     These are specific to threading perl.
141
142 Copyright Information:
143
144 Unless otherwise indicated, the files contained in this
145 distribution are:
146
147     Copyright (c) 1996-1998, Andy Dougherty
148
149 The following licensing terms apply to all files contained in
150 this distribution:
151
152 You may distribute the files contained in this distribution
153 under the terms of either
154
155     a) the "Artistic License" which comes with Perl, or
156
157     b) the "Artistic License" which comes with dist, or
158
159     c) the GNU General Public License as published by the Free
160     Software Foundation; either version 1, or (at your option) any
161     later version (see the file "Copying" that comes with the
162     Perl distribution).
163
164 Which one to use is your choice.
165
166 The units in the "modified" directory have been derived from units
167 associated with the metaconfig program of Raphael Manfredi's "dist"
168 distribution.  These units list Raphael Manfredi as the Copyright holder.
169 dist is distributed under a modified version of the Perl Artistic License.
170 Clause 7 of this modified license as contained in dist-3.0-pl60 provides:
171
172     7. You may reuse parts of this Package in your own programs, provided
173     that you explicitly state where you got them from, in the source code
174     (and, left to your courtesy, in the documentation), duplicating
175     all the associated copyright notices and disclaimers. Besides
176     your changes, if any, must be clearly marked as such. Parts reused
177     that way will no longer fall under this license if, and only if,
178     the name of your program(s) have no immediate connection with the
179     name of the Package itself or its associated programs.  You may then
180     apply whatever restrictions you wish on the reused parts or choose
181     to place them in the Public Domain--this will apply only within the
182     context of your package.
183
184 In accordance with this clause, the versions of these units
185 contained here are made available under the same terms as the
186 rest of the units.
187
188 If you have any questions about the use of these units or about
189 the differences between these units and the standard versions, please
190 feel free to ask.
191
192     Andy Dougherty                      doughera@lafayette.edu
193     Dept. of Physics
194     Lafayette College
195     Easton, PA  18042-1782