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