292 |
|
are all automatically generated by perl scripts. In general, don't |
293 |
|
patch these directly; patch the data files instead. |
294 |
|
|
295 |
– |
F<Configure> and F<config_h.SH> are also automatically generated by |
296 |
– |
B<metaconfig>. In general, you should patch the metaconfig units |
297 |
– |
instead of patching these files directly. However, very minor changes |
298 |
– |
to F<Configure> may be made in between major sync-ups with the |
299 |
– |
metaconfig units, which tends to be complicated operations. But be |
300 |
– |
careful, this can quickly spiral out of control. Running metaconfig |
301 |
– |
is not really hard. |
302 |
– |
|
295 |
|
Also F<Makefile> is automatically produced from F<Makefile.SH>. |
296 |
|
In general, look out for all F<*.SH> files. |
297 |
|
|
298 |
< |
Finally, the sample files in the F<Porting/> subdirectory are |
299 |
< |
generated automatically by the script F<U/mksample> included |
308 |
< |
with the metaconfig units. See L<"run metaconfig"> below for |
309 |
< |
information on obtaining the metaconfig units. |
298 |
> |
Finally, the sample files F<config.sh> and F<config_H> in the |
299 |
> |
F<Porting/> subdirectory are generated by the script F<Porting/mksample>. |
300 |
|
|
301 |
< |
=head1 How to Make a Distribution |
301 |
> |
=head3 Files generated by metaconfig |
302 |
|
|
303 |
< |
This section has now been expanded and moved into its own file, |
304 |
< |
F<Porting/release_managers_guide.pod>. |
303 |
> |
F<Configure>, F<config_h.SH> and F<Porting/Glossary> are generated by |
304 |
> |
B<metaconfig> (see below for more information on how to use this system) |
305 |
> |
and direct changes to these files should in general not be pushed to blead. |
306 |
|
|
307 |
< |
I've kept some of the subsections here for now, as they don't directly |
317 |
< |
relate to building a release any more, but still contain what might be |
318 |
< |
useful information - DAPM 7/2009. |
307 |
> |
The exceptions are: |
308 |
|
|
309 |
< |
=head2 run metaconfig |
309 |
> |
=over 4 |
310 |
|
|
311 |
< |
If you need to make changes to Configure or config_h.SH, it may be best to |
323 |
< |
change the appropriate metaconfig units instead, and regenerate Configure. |
311 |
> |
=item * |
312 |
|
|
313 |
< |
metaconfig -m |
313 |
> |
security fixes |
314 |
|
|
315 |
< |
will regenerate F<Configure> and F<config_h.SH>. Much more information |
328 |
< |
on obtaining and running metaconfig is in the F<U/README> file |
329 |
< |
that comes with Perl's metaconfig units. |
315 |
> |
=item * |
316 |
|
|
317 |
+ |
changes pre-approved by the metaconfig maintainers |
318 |
+ |
|
319 |
+ |
=back |
320 |
+ |
|
321 |
+ |
Such changes should also be notified to the metaconfig maintainers. |
322 |
+ |
|
323 |
+ |
Alternatively, do consider if the F<*ish.h> files or the hint files might |
324 |
+ |
be a better place for your changes. |
325 |
+ |
|
326 |
+ |
=head1 Working with metaconfig |
327 |
+ |
|
328 |
+ |
Information about how to use metaconfig can be found in the F<README> |
329 |
+ |
and F<README_U> files in the metaconfig repository containing Perl's |
330 |
+ |
metaconfig units: |
331 |
+ |
|
332 |
+ |
# anonymous clone |
333 |
+ |
git clone https://github.com/perl5-metaconfig/metaconfig.git |
334 |
+ |
# or using a registered github.com identity with ssh |
335 |
+ |
git clone github.com:perl5-metaconfig/metaconfig metaconfig |
336 |
+ |
|
337 |
|
Since metaconfig is hard to change, running correction scripts after |
338 |
|
this generation is sometimes needed. Configure gained complexity over |
339 |
|
time, and the order in which config_h.SH is generated can cause havoc |
341 |
|
after that generation. All that and more is described in the README |
342 |
|
files that come with the metaunits. |
343 |
|
|
344 |
< |
Perl's metaconfig units should be available on CPAN. A set of units |
339 |
< |
that will work with perl5.9.x is in a file with a name similar to |
340 |
< |
F<mc_units-20070423.tgz> under L<http://www.cpan.org/authors/id/H/HM/HMBRAND/>. |
341 |
< |
The mc_units tar file should be unpacked in your main perl source directory. |
342 |
< |
Note: those units were for use with 5.9.x. There may have been changes since |
343 |
< |
then. Check for later versions or contact perl5-porters@perl.org to obtain a |
344 |
< |
pointer to the current version. |
344 |
> |
=head1 How to Make a Distribution |
345 |
|
|
346 |
< |
Alternatively, do consider if the F<*ish.h> files or the hint files might be |
347 |
< |
a better place for your changes. |
346 |
> |
This section has now been expanded and moved into its own file, |
347 |
> |
F<Porting/release_managers_guide.pod>. |
348 |
|
|
349 |
+ |
I've kept some of the subsections here for now, as they don't directly |
350 |
+ |
relate to building a release any more, but still contain what might be |
351 |
+ |
useful information - DAPM 7/2009. |
352 |
+ |
|
353 |
|
=head2 MANIFEST |
354 |
|
|
355 |
|
If you are using metaconfig to regenerate Configure, then you should note |
475 |
|
|
476 |
|
=head2 PPPort |
477 |
|
|
478 |
< |
F<cpan/Devel-PPPort/PPPort.pm> needs to be synchronized to include all |
478 |
> |
F<dist/Devel-PPPort/PPPort.pm> needs to be synchronized to include all |
479 |
|
new macros added to .h files (normally F<perl.h> and F<XSUB.h>, but others |
480 |
|
as well). Since chances are that when a new macro is added the |
481 |
|
committer will forget to update F<PPPort.pm>, it's the best to diff for |
1389 |
|
=head1 AUTHORS |
1390 |
|
|
1391 |
|
Original author: Andy Dougherty doughera@lafayette.edu . |
1392 |
< |
Additions by Chip Salzenberg chip@perl.com and |
1393 |
< |
Tim Bunce Tim.Bunce@ig.co.uk . |
1392 |
> |
Additions by Chip Salzenberg chip@perl.com, Tim Bunce and the perl5 |
1393 |
> |
development team. |
1394 |
|
|
1395 |
|
All opinions expressed herein are those of the authorZ<>(s). |
1396 |
|
|
1397 |
|
=head1 LAST MODIFIED |
1398 |
|
|
1399 |
< |
2009-07-08-01 Jesse Vincent |
1399 |
> |
2017-10-13 Dominic Hargreaves |