This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix build on Haiku beta
[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
82e3f9e4 569. Run the Porting/mksample script to update the contents of the Porting/
83110c7a 57 subdirectory, or run all parts by hand. (see README)
959f3c4c 58
82e3f9e4
DH
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
83110c7a 6310. Let me know about any changes, corrections, or enhancements.
959f3c4c
JH
64
65Things to watch out for:
66
59bf5d98 671. Future support of better random number generators should probably
959f3c4c
JH
68 start with the randfunc.U unit included here. It's currently
69 broken, but well commented and probably a good place to start.
70
71Descriptions:
72
73The units and other related files have been broken up into the following
74directories:
75
76acl/
77 This is an old patch to begin to detect and use ACL (access
78 control list) file protection schemes.
79
80compline/
81 These are similar to the standard units, but I have modified them
82 to have a more uniform compile command line, usually using the new
83 Compile.U unit. I have submitted these for inclusion into the
84 regular dist distribution. (The ccflags.U unit is actually
85 perl-specific since it mentions -DDEBUGGING and -DPOSIX_SOURCE,
86 but that's the only place it is perl-specific.)
87
88dist_patches/
89 These are patches to dist that must be applied before it is built
90 and installed. I have submitted these for inclusion in the
91 regular dist distribution.
92
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
99perl/
100 These are specific to perl. Some are heavily derived from
101 original dist units, and are marked as such. Others are original.
102
103perl_patches/
104 These are patches to the perl source. This directory
105 should ordinarily be empty, but there may have been drift between
106 the standard version of perl and the one associated with these
107 units.
108
109protos/
110 These are units modified to use the new Hasproto.U or Protochk.U
111 units to check for prototypes. I have submitted these for inclusion
112 into the regular dist distribution.
113
114target/
115 This is the very, very beginning of cross-compiler support.
116 It doesn't work yet, and many standard units will need
117 modification.
118
119typedefs/
120 These are standard units modified to use the modified Typedef.U
121 unit to check for typedefs. (The modified Typdef.U includes a
122 function to avoid unnecessary prompts if the typdef being searched
123 for exists.) I have submitted these for inclusion into the
124 regular dist distribution.
125
126threads/
127 These are specific to threading perl.
128
129Copyright Information:
130
131Unless otherwise indicated, the files contained in this
132distribution are:
133
134 Copyright (c) 1996-1998, Andy Dougherty
135
136The following licensing terms apply to all files contained in
137this distribution:
138
139You may distribute the files contained in this distribution
140under the terms of either
141
142 a) the "Artistic License" which comes with Perl, or
143
144 b) the "Artistic License" which comes with dist, or
145
146 c) the GNU General Public License as published by the Free
147 Software Foundation; either version 1, or (at your option) any
148 later version (see the file "Copying" that comes with the
149 Perl distribution).
150
151Which one to use is your choice.
152
153The units in the "modified" directory have been derived from units
154associated with the metaconfig program of Raphael Manfredi's "dist"
155distribution. These units list Raphael Manfredi as the Copyright holder.
156dist is distributed under a modified version of the Perl Artistic License.
157Clause 7 of this modified license as contained in dist-3.0-pl60 provides:
158
159 7. You may reuse parts of this Package in your own programs, provided
160 that you explicitly state where you got them from, in the source code
161 (and, left to your courtesy, in the documentation), duplicating
162 all the associated copyright notices and disclaimers. Besides
163 your changes, if any, must be clearly marked as such. Parts reused
164 that way will no longer fall under this license if, and only if,
165 the name of your program(s) have no immediate connection with the
166 name of the Package itself or its associated programs. You may then
167 apply whatever restrictions you wish on the reused parts or choose
168 to place them in the Public Domain--this will apply only within the
169 context of your package.
170
171In accordance with this clause, the versions of these units
172contained here are made available under the same terms as the
173rest of the units.
174
175If you have any questions about the use of these units or about
176the differences between these units and the standard versions, please
177feel free to ask.
178
179 Andy Dougherty doughera@lafayette.edu
180 Dept. of Physics
181 Lafayette College
182 Easton, PA 18042-1782