This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix Copyright
[metaconfig.git] / U / README
CommitLineData
959f3c4c
JH
1
2 Perl5 Metaconfig Units
3
4 Copyright (c) 1996-1998, Andy Dougherty
86b74a81 5 Copyright (c) 1999-2011, H.Merijn Brand
959f3c4c
JH
6 All rights reserved.
7
15b97373 8These units are the ones used to build Configure and config_h.SH
959f3c4c
JH
9in the Perl5 distribution.
10
15b97373
MB
11metaconfig will first look in its standard locations (specified when you
12installed dist). It will then recurse through the 'U' subdirectory
13and find any additional "private" units. Private units override
14standard ones supplied with metaconfig.
959f3c4c 15
15b97373 16Files in this directory:
959f3c4c 17
15b97373
MB
18README
19 This file.
959f3c4c 20
15b97373
MB
21Glossary.patch
22 The standard dist units contain some strings that make pod2man
23 complain. This patch silences those warnings. As new units are
24 added and Configure is regenerated, this patch may need more and more
25 'fuzz' to be applied. It should be freshly regenerated every once
83110c7a
MB
26 in a while. See also mkgloss.pl
27
28ln-all.pl
29 Re-generate the all/ folder
959f3c4c 30
15b97373
MB
31mkglossary
32 A script to regenerate Porting/Glossary. You have to manually
33 edit the top of the script to point the location of your metaconfig
83110c7a
MB
34 units. It is called automatically by 'mksample'. See also mkgloss.pl
35
36mkgloss.pl
37 A perl script that calls U/mkglossary from the perl source tree, sorts
38 the list of symbols, and applies the patch mentioned in Glossary.patch.
39 When called on its own, redirect the output to a temporary file, and
40 compare that file to Porting/Glossary before applying.
959f3c4c 41
15b97373
MB
42mksample
43 A script to regenerate Porting/config.sh and Porting/config.H.
44 It also calls mkglossary, if necessary.
959f3c4c 45
15b97373 46Subdirectories:
959f3c4c
JH
47
48The units and other related files have been broken up into the following
15b97373
MB
49directories.
50
51a_dvisory/
52 These are units that have to go first in the generated config_h.SH.
53 A word of explanation: Configure and config_h.SH are generated from 'Units'
54 (the *.U files). Files indicate dependencies (using make(1)), and
55 Configure is built to follow those dependencies. However, config_h.SH
56 is simply built by putting all the units in alphabetical order and
57 extracting the relevant lines. (This could be fixed, I suppose, but
58 it wasn't trivial the one time I looked.)
59 The a_dvisory/ directory, then, is a place to put units that need
60 to be early in config_h.SH. (Most units are self-contained
61 and ought to be able to go anywhere. However, some things, like
62 byteorder, need to have the #defines from multiarch available.)
959f3c4c
JH
63
64acl/
65 This is an old patch to begin to detect and use ACL (access
66 control list) file protection schemes.
67
83110c7a
MB
68all/
69 A folder that conveniently holds symbolic links to all the modules
70 that are used to build the current Configure and config_h.SH.
71
959f3c4c
JH
72compline/
73 These are similar to the standard units, but I have modified them
15b97373
MB
74 to have a more uniform compile command line, usually using the
75 new Compile.U unit. (The ccflags.U unit is perl-specific since it
76 mentions -DDEBUGGING and -DPOSIX_SOURCE, but that's the only place
77 it is perl-specific.)
959f3c4c
JH
78
79dist_patches/
80 These are patches to dist that must be applied before it is built
81 and installed. I have submitted these for inclusion in the
15b97373
MB
82 regular dist distribution. They have already been applied
83 to the ../dist-3.0at70b directory.
84
85ebcdic/
86 These are units that had to be specially modified to work under
87 either EBCDIC or ASCII.
959f3c4c 88
edd6115f
JH
89installdirs/
90 These are units to handle perl's installation directories and
91 related issues.
92
959f3c4c
JH
93modified/
94 These are modified versions of the standard units. Also included in
95 this directory are new units that are clearly derived from existing
96 units. I have submitted these for inclusion in the regular dist
97 distribution.
98
edd6115f
JH
99nullified/
100 These are null units that replace units in the standard
101 distribution. Typically they are there because some part of the
7ba792b2 102 perl source accidentally uses a symbol that metaconfig thinks means we
edd6115f
JH
103 want the corresponding unit.
104
959f3c4c
JH
105perl/
106 These are specific to perl. Some are heavily derived from
107 original dist units, and are marked as such. Others are original.
108
109perl_patches/
110 These are patches to the perl source. This directory
111 should ordinarily be empty, but there may have been drift between
112 the standard version of perl and the one associated with these
113 units.
114
115protos/
116 These are units modified to use the new Hasproto.U or Protochk.U
15b97373 117 units to check for prototypes.
959f3c4c 118
15b97373
MB
119threads/
120 These are specific to threading perl.
959f3c4c
JH
121
122typedefs/
123 These are standard units modified to use the modified Typedef.U
124 unit to check for typedefs. (The modified Typdef.U includes a
125 function to avoid unnecessary prompts if the typdef being searched
15b97373
MB
126 for exists.)
127
959f3c4c 128
15b97373
MB
129Where appropriate, I submitted these units for inclusion into the
130regular dist distribution. However, since dist is no longer actively
131maintained, and the alternative is for *me* to actively maintain it,
132the units just sit here.
959f3c4c
JH
133
134Copyright Information:
135
136Unless otherwise indicated, the files contained in this
137distribution are:
138
139 Copyright (c) 1996-1998, Andy Dougherty
140
141The following licensing terms apply to all files contained in
142this distribution:
143
144You may distribute the files contained in this distribution
145under the terms of either
146
147 a) the "Artistic License" which comes with Perl, or
148
149 b) the "Artistic License" which comes with dist, or
150
151 c) the GNU General Public License as published by the Free
152 Software Foundation; either version 1, or (at your option) any
153 later version (see the file "Copying" that comes with the
154 Perl distribution).
155
156Which one to use is your choice.
157
158The units in the "modified" directory have been derived from units
159associated with the metaconfig program of Raphael Manfredi's "dist"
160distribution. These units list Raphael Manfredi as the Copyright holder.
161dist is distributed under a modified version of the Perl Artistic License.
162Clause 7 of this modified license as contained in dist-3.0-pl60 provides:
163
164 7. You may reuse parts of this Package in your own programs, provided
165 that you explicitly state where you got them from, in the source code
166 (and, left to your courtesy, in the documentation), duplicating
167 all the associated copyright notices and disclaimers. Besides
168 your changes, if any, must be clearly marked as such. Parts reused
169 that way will no longer fall under this license if, and only if,
170 the name of your program(s) have no immediate connection with the
171 name of the Package itself or its associated programs. You may then
172 apply whatever restrictions you wish on the reused parts or choose
173 to place them in the Public Domain--this will apply only within the
174 context of your package.
175
176In accordance with this clause, the versions of these units
177contained here are made available under the same terms as the
178rest of the units.
179
180If you have any questions about the use of these units or about
181the differences between these units and the standard versions, please
182feel free to ask.
183
184 Andy Dougherty doughera@lafayette.edu
185 Dept. of Physics
186 Lafayette College
187 Easton, PA 18042-1782