You have presumably obtained the metaconfig from the repository e.g.
- $ git clone github.com:Perl/metaconfig metaconfig
+ $ git clone git@github.com:Perl/metaconfig metaconfig
When working with metaconfig you will generally have two git checkouts
next to each other: (1) this metaconfig checkout; and (2) a checkout of
-the Perl 5 source code in which you will generate a new Configure
-script. In this README, we will refer to these directories as the
-'metaconfig' directory and the 'perl' directory.
+the Perl source code in which you will generate a new Configure script. In this
+README, we will refer to these directories as the 'metaconfig' directory and
+the 'perl' directory.
Since these two directories are normally next to each other, so ../perl
will get you to perl and ../perl/../metaconfig will get you back here.
Development workflow:
-(a) In order to assemble Configure from its units, you need mlint/metaline and
+(a) In order to assemble Configure from its units, you need mlint/metalint and
mconfig/metaconfig from the "dist" package installed and available in your
$PATH. You can either use the version that comes with your OS (Debian ships
it) or the versions that are included in this checkout: just add the full
(aa) We have not yet arranged for metaconfig to use perl's versions of the
'units' by default so you need some housekeeping in the perl directory...
- Then add metaconfig/bin to your $PATH or create aliases like
+ Add metaconfig/bin to your $PATH or create aliases like
$ export MC5=/your/path/to/metaconfig
$ alias ml="perl $MC5/bin/mlint -O"
ln -s MANIFEST MANIFEST.new
chmod +w Configure config_h.SH Porting/Glossary Porting/config*
-(c) Create a new file for the new unit as U/foo/d_bar.U
- ('foo' is one of the existing folders in U except for 'all'. It most
- likely will be 'perl', but it could also be 'modified', 'compline' or any
- other existing folder). Choose the best appropriate subdir of U. See
- U/README for a description of the various subdirectories.) You should
- choose the closest existing unit file as a starting point, and first copy
- it to the new file. For example, the unit for seeing if strtold_l() exists
- was created as U/threads/d_strtold_l.U, copied from perl/d_strtold.U, then
- adjusted. It goes under 'threads' because it is used only on threaded
- perls.
+(c) Create a new file for the unit as U/foo/d_bar.U
+ ('foo' is one of the existing folders in U except for 'all'. If you are
+ modifying a unit already in dist, simply copy the dist version to
+ 'modified' as a starting point. Otherwise, create a new file in one of the
+ other directories. It most likely will be 'perl', but it could also be
+ 'compline' or any other existing folder). Choose the best appropriate
+ subdir of U. See U/README for a description of the various subdirectories.
+ You should choose the closest existing unit file as a starting point, and
+ first copy it to the new file. For example, the unit for seeing if
+ strtold_l() exists was created as U/threads/d_strtold_l.U, copied from
+ perl/d_strtold.U, then adjusted. It goes under 'threads' because it is
+ used only on threaded perls.
(d) Run "mlint -O" to see nits: as opposed to lint, the gripings of mlint
are usually serious and need fixing