X-Git-Url: https://perl5.git.perl.org/metaconfig.git/blobdiff_plain/6475898c2ddff828cf2824bbecedb1505e39f147..bf106bfefba94421ddc559e68abb74715f95d19b:/README diff --git a/README b/README index 701e0db..3497d96 100644 --- a/README +++ b/README @@ -19,24 +19,16 @@ back here. Contents of this directory: README: This file. - U: Metaconfig units used for buliding Perl's Configure + 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.0at70: - dist-3.0 at patchlevel 70. This is the final version released - by Raphael Manfredi. Don't use it. Instead, use ... - dist-3.0at70b: - dist-3.0 at patchlevel 70 with unofficial patches 'a' and 'b' - applied. This version was never officially released, but - the patches are essential, so this is the version we use for - perl. Actually, I've also applied U/dist_patches/dist-p70c - to this tree. If someone with commit power wants to change - the name of the directory, that'd be fine. Otherwise, it - really doesn't matter. 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 + 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. dist: a symlink to the lib you actually use. For Merijn that is metaconfig/dist -> ../lib/dist @@ -45,17 +37,24 @@ Contents of this directory: in your $PATH. 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 the SVN - repository https://dist.svn.sourceforge.net/svnroot/dist/trunk + repository https://svn.code.sf.net/p/dist/code/trunk/dist. If you'd like + to keep up to date with changes in dist, you can either use svn or git to + create your own clone. For git, that would be something like: + + $ git svn clone \ + svn://svn.code.sf.net/p/dist/code/trunk/dist \ + dist-svn + Unsurprisingly 'dist' uses (its) Configure to generate itself: - cd dist-3.5-20 - chmod -R +w . # We have derived files in git :-( - ./Configure - make - make install + $ cd dist-3.5-20 # or dist-svn + $ chmod -R +w . # We have derived files in git :-( + $ ./Configure + $ make + $ make install After make install, remove lib/U/d_debugging.U in your target lib, as perl - uses it's own way to set/define debugging (see INSTALL) + uses its own way to set/define debugging (see INSTALL) the dist-3.5-20 installation as used by Merijn is available on his CPAN as perl-meta-3.5-20.tgz @@ -68,6 +67,28 @@ Contents of this directory: 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 -- + + 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: + + --8<--- + BEGIN { $ENV{LC_ALL} = "C"; } + chdir "/pro/3gl/CPAN/perl"; + { my @Cc = qw( Configure config_h.SH ); + system "chown merijn @Cc"; + chmod 0775, @Cc; + #-d "merijn" or mkdir "merijn"; + #system "cp -f Configure config_h.SH Porting/Glossary Porting/config.sh merijn/"; + system "ls", "-l", @Cc; + } + -->8--- + + I also added the first two lines of that patch to mlint + (b) You need to be in a/the Perl directory, i.e. either something from //depot/perl/... or one of its branches (e.g. Nick I-S is usually in //depot/perlio/...) @@ -82,16 +103,19 @@ Contents of this directory: the best appropriate subdir of U. See U/README for a description of the various subdirectories.) -(d) Run metalint to see nits: as opposed to lint, the gripings of - metalint are usually serious :-) and need fixing +(d) Run metalint (or mlint) to see nits: as opposed to lint, the gripings + of metalint are usually serious :-) and need fixing Exceptions are lots of - Your private U/modified/voidflags.U overrides the public one. + Your private U/modified/issymlink.U overrides the public one. due to the perl special units an alias to something like $ metalint |& grep -v -e '^ Your private U/' - will make the process silence up on that + will make the process silence up on that (of course you can add an + option to mlint to disable that warning (which is already disabled + by the undocumented and forgotten -s option, but that also suppresses + other warnings) and @@ -103,7 +127,7 @@ Contents of this directory: (e) chmod +w Configure config_h.SH -(f) metaconfig -m to regenerate Configure +(f) metaconfig -m to regenerate Configure (or mconfig -m) (g) metaconfig does not deal with depends in config_h.SH, so some reorganization is needed. @@ -133,7 +157,24 @@ Contents of this directory: you see fit. You can skip this phase, it's not essential, just good housekeeping. -(k) make veryclean; sh Configure -des -Dusedevel; make all test +(k) Run the perl build chain + + make veryclean + sh ./Configure -des -Dusedevel + + The dependency for uconfig.h isn't carved in stone, so you might + need to regenerate it + + perl regen/uconfig_h.pl + + Then make and make test or make test_harness (with TEST_JOBS=5) + + make all test_harness + + Before you start committing, make sure that the other developers + are happy and run + + make test_porting -- the next steps are in the metaconfig folder again