This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Generate a valid config.h even if stdarg.h and varargs.h are both missing.
[metaconfig.git] / U / README.dist
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
8These units are the ones I used to build Configure and config_h.SH
9in the Perl5 distribution.
10
11The Configure script and config_h.SH file in the Perl distribution are
12generated by a program called metaconfig. To run metaconfig, you will
13need the full dist 3.0 distribution, maintained by Raphael Manfredi.
14As of this writing, the current version is dist3.0, patchlevel 70.
15Dist version dist-3.0@70.tar.gz is available on CPAN (the Comprehensive
16Perl Archive Network) as
17<http://www.perl.com/perl/CPAN/authors/id/RAM/dist-3.0@70.tar.gz>.
18
19Instructions:
20
211. Unpack the full perl5 sources. Execute the following command
22
23 chmod +w Configure config_h.SH Porting/Glossary Porting/config*
24
252. 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
313. Apply any patches to perl in the perl_patches/ directory.
32 (This may well be empty.)
33
344. Obtain and install dist-3.0pl70.
35
364. Apply any patches to dist under the dist_patches subdirectory.
37
385. 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
436. From your main perl5 source directory, run
44
86b74a81 45 metalint (or mlint)
83110c7a
MB
46
47 and repair every failure it reports.
48
497. From your main perl5 source directory, run
50
86b74a81 51 metaconfig -m (or mconfig -m)
959f3c4c 52
83110c7a
MB
538. Edit U/mkglossary and/or U/mkgloss.pl to point to your dist-3.0pl70
54 location. (See comments at the top.)
959f3c4c 55
83110c7a
MB
569. Run the U/mksample script to update the contents of the Porting/
57 subdirectory, or run all parts by hand. (see README)
959f3c4c 58
83110c7a 5910. Let me know about any changes, corrections, or enhancements.
959f3c4c
JH
60
61Things to watch out for:
62
631. The Configure in 5.005 is a hand-patched version of that supplied
64 with perl5.004_74 or so. Most of the patches had to do with
65 supporting MPE/iX and EBCDIC systems. I have re-integrated most
66 of the changes back into metaconfig, but I don't really undertand
67 why MPE/iX needed some of the patches, so I may have missed
68 something important. I did try to flag questionable changes in
69 the individual units.
83110c7a
MB
70 The Configure as generated in the 5.9.x branch leading towards
71 5.10, is also used exactly as is without changes in the 5.8.x
72 and 5.6.x branches, so do not remove support for features that
73 are availabvle in those branches, but are removed from devel (e.g.
74 perl5005threads).
959f3c4c
JH
75
762. Future support of better random number generators should probably
77 start with the randfunc.U unit included here. It's currently
78 broken, but well commented and probably a good place to start.
79
80Descriptions:
81
82The units and other related files have been broken up into the following
83directories:
84
85acl/
86 This is an old patch to begin to detect and use ACL (access
87 control list) file protection schemes.
88
89compline/
90 These are similar to the standard units, but I have modified them
91 to have a more uniform compile command line, usually using the new
92 Compile.U unit. I have submitted these for inclusion into the
93 regular dist distribution. (The ccflags.U unit is actually
94 perl-specific since it mentions -DDEBUGGING and -DPOSIX_SOURCE,
95 but that's the only place it is perl-specific.)
96
97dist_patches/
98 These are patches to dist that must be applied before it is built
99 and installed. I have submitted these for inclusion in the
100 regular dist distribution.
101
102modified/
103 These are modified versions of the standard units. Also included in
104 this directory are new units that are clearly derived from existing
105 units. I have submitted these for inclusion in the regular dist
106 distribution.
107
108perl/
109 These are specific to perl. Some are heavily derived from
110 original dist units, and are marked as such. Others are original.
111
112perl_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
118protos/
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
123target/
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
128typedefs/
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
135threads/
136 These are specific to threading perl.
137
138Copyright Information:
139
140Unless otherwise indicated, the files contained in this
141distribution are:
142
143 Copyright (c) 1996-1998, Andy Dougherty
144
145The following licensing terms apply to all files contained in
146this distribution:
147
148You may distribute the files contained in this distribution
149under 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
160Which one to use is your choice.
161
162The units in the "modified" directory have been derived from units
163associated with the metaconfig program of Raphael Manfredi's "dist"
164distribution. These units list Raphael Manfredi as the Copyright holder.
165dist is distributed under a modified version of the Perl Artistic License.
166Clause 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
180In accordance with this clause, the versions of these units
181contained here are made available under the same terms as the
182rest of the units.
183
184If you have any questions about the use of these units or about
185the differences between these units and the standard versions, please
186feel free to ask.
187
188 Andy Dougherty doughera@lafayette.edu
189 Dept. of Physics
190 Lafayette College
191 Easton, PA 18042-1782