The Configure script and config_h.SH file in the Perl distribution are
generated by a program called metaconfig. Metaconfig was originally
written by Larry Wall, and was subsequently enhanced and maintained
-by Raphael Manfredi.
+by Raphael Manfredi. The binary that invokes the generation of the
+Configure file is called mconfig.
+
+As sort order and filenaming are vital in this process, make sure you
+are working on a case-sensitive file system! (Case preserving is not
+sufficient).
You have presumably obtained the metaconfig from the repository e.g.
U: Metaconfig units used for building Perl's Configure
U.check: Sample directory used for testing new metaconfig units.
see U.check/README for more information.
- dist-3.5-20:
- dist-3.5-20 is almost meta-4.0, still maintained by Raphael
- Manfredi, but with a lot of fixes over 3.0, some changes
- from the perl modifications merged and a much better
- metalint. This directory comes from a tar distribution.
- dist-svn:
- a git clone of "dist". Optionally present. See (a) below.
- This is where dist/meta resided before 2016-04-01
dist-git:
a git clone of "dist". Optionally present. See (a) below.
This is where dist/meta resides as of 2016-04-01
metaconfig/dist -> ../lib/dist
(a) You need to have dist installed so that you have metalint and metaconfig
- in your $PATH.
+ in your $PATH. As dist/meta binaries are now included in the git chackout,
+ you do NOT need to install dist/meta itself.
+
+ If you also want to play with or compare to the original meta/dit, you can
+ checkout that too.
+
The dist version used for perl is dist-3.5-20 in this directory, which is
a slightly modified version of the original, which you can get at GITHUB
repository https://github.com/rmanfredi/dist.git. If you'd like to keep
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...
-(aa) -- optional --
+(aa)
- If you plan to make changes to metaconfig or metalint locally (and you
- probably want to, as both are written for perl4), consider installing
- mconfig and mlint from the cmon subdirectory into your $PATH too. These
- are the non-autoloading versions and can easily be changed. Here is what
- I added at the beginning of mconfig:
+ If you plan to make changes to mconfig or mlint locally (and you probably
+ want to, as both are written for perl4), consider installing mconfig and
+ mlint from the cmon subdirectory into your $PATH too. These are the
+ non-autoloading versions and can easily be changed. Here is what I added
+ at the beginning of mconfig:
--8<---
BEGIN { $ENV{LC_ALL} = "C"; }
(e) chmod +w Configure config_h.SH
-(f) metaconfig -m to regenerate Configure (or mconfig -m)
+(f) mconfig -m -O to regenerate Configure and config_h.SH
+
+ Make *sure* your mconfig is the correct one in your $PATH, as the mono-web
+ package will install /usr/bin/mconfig which will do something completely
+ different.
(g) metaconfig does not deal with depends in config_h.SH, so some
reorganization is needed.