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