FAQ
In implementing Nicholas' wish, I hit a point where I reach success for
'metaconfig -m' which creates exactly what I want, but I'd like to silence
metalint too, which complaints like:

--8<---
:
Your private U/modified/yacc.U overrides the public one.
Extracting dependency lists from 814 units...
"/pro/3gl/CPAN/perl-current/U/all/Finish.U", line 41 (?S:): variable '$runmakedepend' is not listed on ?MAKE: line.
Sanity checks...
"End.U": stale ?MAKE: dependency '$W'.
"Finish.U": undeclared symbol '$runmakedepend' is set.
Looking for dependency cycles...
Done.
-->8---

The patch I have currently open:

--8<---
==== //depot/metaconfig/U/modified/Finish.U#5 - /pro/3gl/CPAN/metaconfig/U/modified/Finish.U ====
@@ -38,7 +38,12 @@
?MAKE:Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
test package make
?MAKE: -pick add $@ %<
+?S:runmakedepend:
+?S: This variable defines if Configure runs 'make depend'
+?S:.
?F:!config.sh
+?INIT:runmakedepend=''
+?LINT:extern runmakedepend
?T:pwd
: Finish up by extracting the .SH files
case "$alldone" in
@@ -84,7 +89,10 @@
cd "$pwd"

if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
- dflt=y
+ case "$runmakedepend" in
+ $undef|false|[nN]*) dflt='n' ;;
+ *) dflt='y' ;;
+ esac
case "$silent" in
true) ;;
*)
-->8---

Any thoughts?

Forwarded by "H.Merijn Brand" <h.m.brand@hccnet.nl>
----------------------- Original Message -----------------------
From: Nicholas Clark <nick@ccl4.org>
To: "H . Merijn Brand" <h.m.brand@hccnet.nl>
Date: Tue, 16 Mar 2004 21:59:33 +0000
Subject: runmakedepend patch
----

Configure patch to allow -D and -Urunmakedepend

(default is unchanged as 'y')

Nick

--- Configure.orig Thu Feb 26 09:05:21 2004
+++ Configure Tue Mar 16 19:03:37 2004
@@ -1053,6 +1053,7 @@ drand01=''
randbits=''
randfunc=''
randseedtype=''
+runmakedepend=''
seedfunc=''
installscript=''
scriptdir=''
@@ -21219,6 +21220,7 @@ randbits='$randbits'
randfunc='$randfunc'
random_r_proto='$random_r_proto'
randseedtype='$randseedtype'
+runmakedepend='$runmakedepend'
ranlib='$ranlib'
rd_nodata='$rd_nodata'
readdir64_r_proto='$readdir64_r_proto'
@@ -21483,7 +21485,10 @@ pwd=`pwd`
cd "$pwd"

if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
- dflt=y
+ case "$runmakedepend" in
+ $undef|false|[nN]*) dflt='n';;
+ *) dflt='y';;
+ esac
case "$silent" in
true) ;;
*)

--------------------- Original Message Ends --------------------

--
H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using perl-5.6.1, 5.8.0, & 5.9.x, and 806 on HP-UX 10.20 & 11.00, 11i,
AIX 4.3, SuSE 8.2, and Win2k. http://www.cmve.net/~merijn/
http://archives.develooper.com/daily-build@perl.org/ perl-qa@perl.org
send smoke reports to: smokers-reports@perl.org, QA: http://qa.perl.org

Search Discussions

  • Andrew Dougherty at Mar 19, 2004 at 5:51 pm

    On Wed, 17 Mar 2004, H.Merijn Brand wrote:

    In implementing Nicholas' wish, I hit a point where I reach success for
    'metaconfig -m' which creates exactly what I want, but I'd like to silence
    metalint too, which complaints like:

    --8<---
    :
    Your private U/modified/yacc.U overrides the public one.
    Extracting dependency lists from 814 units...
    "/pro/3gl/CPAN/perl-current/U/all/Finish.U", line 41 (?S:): variable '$runmakedepend' is not listed on ?MAKE: line.
    I don't have a set of units set up to check, but I think this error
    message is really the key issue. Try changing the MAKE line to
    ?MAKE:runmakedepend Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
    test package make

    That informs metaconfig (and metalint) that this unit is responsible for
    creating and manipulating the runmakedepend variable. If you do that,
    then you should be able to get rid of the two extra lines
    +?INIT:runmakedepend=''
    +?LINT:extern runmakedepend
    (It should also automagically arrange for the runmakedepend=$runmakedepend
    line at the end of Configure too.)

    I think that will work.

    On a related note, unless I'm missing the point, you can already do
    this with existing Configure switches:

    Configure -dE
    Configure -S

    The first will stop just after producing config.sh. The second will
    do all the other .SH file extractions, but won't run make depend.

    Hope this helps.


    Sanity checks...
    "End.U": stale ?MAKE: dependency '$W'.
    "Finish.U": undeclared symbol '$runmakedepend' is set.
    Looking for dependency cycles...
    Done.
    -->8---

    The patch I have currently open:

    --8<---
    ==== //depot/metaconfig/U/modified/Finish.U#5 - /pro/3gl/CPAN/metaconfig/U/modified/Finish.U ====
    @@ -38,7 +38,12 @@
    ?MAKE:Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
    test package make
    ?MAKE: -pick add $@ %<
    +?S:runmakedepend:
    +?S: This variable defines if Configure runs 'make depend'
    +?S:.
    ?F:!config.sh
    ?T:pwd
    : Finish up by extracting the .SH files
    case "$alldone" in
    @@ -84,7 +89,10 @@
    cd "$pwd"

    if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
    - dflt=y
    + case "$runmakedepend" in
    + $undef|false|[nN]*) dflt='n' ;;
    + *) dflt='y' ;;
    + esac
    case "$silent" in
    true) ;;
    *)
    -->8---

    Any thoughts?

    Forwarded by "H.Merijn Brand" <h.m.brand@hccnet.nl>
    ----------------------- Original Message -----------------------
    To: "H . Merijn Brand" <h.m.brand@hccnet.nl>
    Date: Tue, 16 Mar 2004 21:59:33 +0000
    Subject: runmakedepend patch
    ----

    Configure patch to allow -D and -Urunmakedepend

    (default is unchanged as 'y')

    Nick

    --- Configure.orig Thu Feb 26 09:05:21 2004
    +++ Configure Tue Mar 16 19:03:37 2004
    @@ -1053,6 +1053,7 @@ drand01=''
    randbits=''
    randfunc=''
    randseedtype=''
    +runmakedepend=''
    seedfunc=''
    installscript=''
    scriptdir=''
    @@ -21219,6 +21220,7 @@ randbits='$randbits'
    randfunc='$randfunc'
    random_r_proto='$random_r_proto'
    randseedtype='$randseedtype'
    +runmakedepend='$runmakedepend'
    ranlib='$ranlib'
    rd_nodata='$rd_nodata'
    readdir64_r_proto='$readdir64_r_proto'
    @@ -21483,7 +21485,10 @@ pwd=`pwd`
    cd "$pwd"

    if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
    - dflt=y
    + case "$runmakedepend" in
    + $undef|false|[nN]*) dflt='n';;
    + *) dflt='y';;
    + esac
    case "$silent" in
    true) ;;
    *)

    --------------------- Original Message Ends --------------------
    --
    Andy Dougherty doughera@lafayette.edu
    Dept. of Physics
    Lafayette College, Easton PA 18042
  • H.Merijn Brand at Mar 19, 2004 at 7:28 pm

    On Fri 19 Mar 2004 18:51, Andrew Dougherty wrote:
    On Wed, 17 Mar 2004, H.Merijn Brand wrote:

    In implementing Nicholas' wish, I hit a point where I reach success for
    'metaconfig -m' which creates exactly what I want, but I'd like to silence
    metalint too, which complaints like:

    --8<---
    :
    Your private U/modified/yacc.U overrides the public one.
    Extracting dependency lists from 814 units...
    "/pro/3gl/CPAN/perl-current/U/all/Finish.U", line 41 (?S:): variable '$runmakedepend' is not listed on ?MAKE: line.
    I don't have a set of units set up to check, but I think this error
    message is really the key issue. Try changing the MAKE line to
    ?MAKE:runmakedepend Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
    test package make
    Tried that. This will cause a cyclic dependency error.
    That informs metaconfig (and metalint) that this unit is responsible for
    creating and manipulating the runmakedepend variable. If you do that,
    then you should be able to get rid of the two extra lines
    +?INIT:runmakedepend=''
    +?LINT:extern runmakedepend
    (It should also automagically arrange for the runmakedepend=$runmakedepend
    line at the end of Configure too.)

    I think that will work.
    The proposed patch /generated/ exactly what I wanted. Only metaling won't stop
    complaining. I'll dig further.
    On a related note, unless I'm missing the point, you can already do
    this with existing Configure switches:

    Configure -dE
    Configure -S
    It's about enabling it in ONE call.
    The first will stop just after producing config.sh. The second will
    do all the other .SH file extractions, but won't run make depend.

    Hope this helps.
    --
    H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/)
    using perl-5.6.1, 5.8.0, & 5.9.x, and 806 on HP-UX 10.20 & 11.00, 11i,
    AIX 4.3, SuSE 8.2, and Win2k. http://www.cmve.net/~merijn/
    http://archives.develooper.com/daily-build@perl.org/ perl-qa@perl.org
    send smoke reports to: smokers-reports@perl.org, QA: http://qa.perl.org
  • Andrew Dougherty at Mar 19, 2004 at 8:05 pm

    On Fri, 19 Mar 2004, H.Merijn Brand wrote:
    On Fri 19 Mar 2004 18:51, Andrew Dougherty wrote:
    On Wed, 17 Mar 2004, H.Merijn Brand wrote:

    In implementing Nicholas' wish, I hit a point where I reach success for
    'metaconfig -m' which creates exactly what I want, but I'd like to silence
    metalint too, which complaints like:

    --8<---
    :
    Your private U/modified/yacc.U overrides the public one.
    Extracting dependency lists from 814 units...
    "/pro/3gl/CPAN/perl-current/U/all/Finish.U", line 41 (?S:): variable '$runmakedepend' is not listed on ?MAKE: line.
    I don't have a set of units set up to check, but I think this error
    message is really the key issue. Try changing the MAKE line to
    ?MAKE:runmakedepend Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
    test package make
    Tried that. This will cause a cyclic dependency error.
    It will? How? What, exactly, will be the cyclic dependency?
    Sorry, but (without testing, I'll admit) this looks like the right
    solution.

    --
    Andy Dougherty doughera@lafayette.edu
  • Nicholas Clark at Mar 19, 2004 at 10:43 pm

    On Fri, Mar 19, 2004 at 03:05:11PM -0500, Andrew Dougherty wrote:
    It will? How? What, exactly, will be the cyclic dependency?
    Sorry, but (without testing, I'll admit) this looks like the right
    solution.
    ooops. I've deleted too many messages. I think that actually -E was the
    right solution all along. It seems that I don't actually need any changes
    to Configure to achieve what I really want.

    Nicholas Clark
  • H.Merijn Brand at Mar 20, 2004 at 11:12 am

    On Fri 19 Mar 2004 23:43, Nicholas Clark wrote:
    On Fri, Mar 19, 2004 at 03:05:11PM -0500, Andrew Dougherty wrote:
    It will? How? What, exactly, will be the cyclic dependency?
    Sorry, but (without testing, I'll admit) this looks like the right
    solution.
    ooops. I've deleted too many messages. I think that actually -E was the
    right solution all along. It seems that I don't actually need any changes
    to Configure to achieve what I really want.
    OK, then I will commit the other changes to Configure, but revert this one.

    HOWEVER. Knowing myself, and facing this temptation to get it working, and the
    possibility it might show up in the future again, I'll probably still be
    reading and finding what the .... is going on
    Nicholas Clark
    --
    H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/)
    using perl-5.6.1, 5.8.0, & 5.9.x, and 806 on HP-UX 10.20 & 11.00, 11i,
    AIX 4.3, SuSE 8.2, and Win2k. http://www.cmve.net/~merijn/
    http://archives.develooper.com/daily-build@perl.org/ perl-qa@perl.org
    send smoke reports to: smokers-reports@perl.org, QA: http://qa.perl.org
  • H.Merijn Brand at Mar 20, 2004 at 11:23 am

    On Fri 19 Mar 2004 21:05, Andrew Dougherty wrote:
    On Fri, 19 Mar 2004, H.Merijn Brand wrote:
    On Fri 19 Mar 2004 18:51, Andrew Dougherty wrote:
    On Wed, 17 Mar 2004, H.Merijn Brand wrote:

    In implementing Nicholas' wish, I hit a point where I reach success for
    'metaconfig -m' which creates exactly what I want, but I'd like to silence
    metalint too, which complaints like:

    --8<---
    :
    Your private U/modified/yacc.U overrides the public one.
    Extracting dependency lists from 814 units...
    "/pro/3gl/CPAN/perl-current/U/all/Finish.U", line 41 (?S:): variable '$runmakedepend' is not listed on ?MAKE: line.
    I don't have a set of units set up to check, but I think this error
    message is really the key issue. Try changing the MAKE line to
    ?MAKE:runmakedepend Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
    test package make
    Tried that. This will cause a cyclic dependency error.
    It will? How? What, exactly, will be the cyclic dependency?
    Sorry, but (without testing, I'll admit) this looks like the right
    solution.
    --8<--- This patch
    p4 -dpu diff
    ==== //depot/metaconfig/U/modified/Finish.U#5 - /pro/3gl/CPAN/metaconfig/U/modified/Finish.U ====
    38c38
    < ?MAKE:Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
    ---
    ?MAKE:runmakedepend Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \ 40a41,43
    ?S:runmakedepend:
    ?S: This variable defines if Configure runs 'make depend'
    ?S:. 41a45
    ?INIT:runmakedepend=''
    87c91,94
    < dflt=y
    ---
    case "$runmakedepend" in
    $undef|false|[nN]*) dflt='n' ;;
    *) dflt='y' ;;
    esac
    -->8---

    yields:
    :
    Extracting dependency lists from 814 units...
    Sanity checks...
    "End.U": stale ?MAKE: dependency '$W'.
    Looking for dependency cycles...
    Cycle found for:
    (#1) Oldsym
    (#1) runmakedepend
    (#1) Config_h
    (#1) Magic_h
    Cycle involves:
    (?) End: runmakedepend
    (?) Config_h: End Config_sh
    (?) Config_sh: End
    (?) Oldsym: Config_sh
    (Finish) runmakedepend: Oldsym Magic_h
    (?) Magic_h: Config_h
    Done.


    And worse if I remove the ?INIT:

    Extracting dependency lists from 814 units...
    "/pro/3gl/CPAN/perl-current/U/all/Finish.U": variable '$runmakedepend' should have been set.
    Sanity checks...
    "End.U": stale ?MAKE: dependency '$W'.
    Looking for dependency cycles...
    Cycle found for:
    (#1) Oldsym
    (#1) runmakedepend
    (#1) Config_h
    (#1) Magic_h
    Cycle involves:
    (?) End: runmakedepend
    (?) Config_h: End Config_sh
    (?) Config_sh: End
    (?) Oldsym: Config_sh
    (Finish) runmakedepend: Oldsym Magic_h
    (?) Magic_h: Config_h
    Done.

    --
    H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/)
    using perl-5.6.1, 5.8.0, & 5.9.x, and 806 on HP-UX 10.20 & 11.00, 11i,
    AIX 4.3, SuSE 8.2, and Win2k. http://www.cmve.net/~merijn/
    http://archives.develooper.com/daily-build@perl.org/ perl-qa@perl.org
    send smoke reports to: smokers-reports@perl.org, QA: http://qa.perl.org
  • Andrew Dougherty at Mar 29, 2004 at 6:19 pm

    On Sat, 20 Mar 2004, H.Merijn Brand wrote:

    --8<--- This patch
    p4 -dpu diff
    ==== //depot/metaconfig/U/modified/Finish.U#5 - /pro/3gl/CPAN/metaconfig/U/modified/Finish.U ====
    38c38
    < ?MAKE:Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
    ---
    ?MAKE:runmakedepend Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \ 40a41,43
    ?S:runmakedepend:
    ?S: This variable defines if Configure runs 'make depend'
    ?S:.
    yields:
    :
    Looking for dependency cycles...
    Cycle found for:
    (#1) Oldsym
    (#1) runmakedepend
    (#1) Config_h
    (#1) Magic_h
    Cycle involves:
    (?) End: runmakedepend
    (?) Config_h: End Config_sh
    (?) Config_sh: End
    (?) Oldsym: Config_sh
    (Finish) runmakedepend: Oldsym Magic_h
    (?) Magic_h: Config_h
    Done.
    Ah, yes, I see. As the very last unit, Finish.U is special. In
    particular, what's happening is that 'runmakedepend' is now one of the
    symbols made by Configure, and hence it is in the $W list of "Wanted"
    symbols. The End.U unit depends on $W (and hence on Finish.U), but the
    End.U unit is supposed to come just before the Finish.U unit. Hence you
    get the circular dependency.

    One solution (the direction you were headed previously, I think) might be
    to try to put in enough metalint directives to allow you to declare (and
    describe) the new runmakedepend variable without actually declaring it
    'made' anywhere. You end up fighting metalint a lot, and I'm unsure if
    you can ever win :-).

    Another solution is to make up a new unit, runmakedepend.U, and declare
    the new variable in that unit in the usual way. (There's a catch, of
    course, in that you can't tell if the generated Makefile will have a
    'depend:' target until after it's extracted, and that won't have happened
    yet when the runmakedepend unit is called.)

    Here's a sample runmakedepend.U unit:

    ?RCS: $Id: runmakedepend.U,v $
    ?RCS:
    ?RCS: Copyright (c) 2004 The Perl Foundation
    ?RCS:
    ?RCS: You may distribute under the terms of either the GNU General Public
    ?RCS: License or the Artistic License, as specified in the README file.
    ?RCS:
    ?RCS: $Log: runmakedepend.U,v $
    ?RCS:
    ?MAKE:runmakedepend:
    ?MAKE: -pick add $@ %<
    ?S:runmakedepend:
    ?S: This variable designates whether Configure is to run
    ?S: 'make depend'. This unit exists only to define the variable.
    ?S: (Presumably it is set by a Configure command-line option.) The actual
    ?S: code to ask the question and to run 'make depend' is in the Finish.U
    ?S: unit, since the question only gets asked if the extracted Makefile has
    ?S: a depend: rule, and the extraced Makefile doesn't yet exist. We can't
    ?S: put the definition of runmakedepend into the Finish.U unit, however,
    ?S: since it's the very last unit and it can't define any new variables.
    ?S: (Such variables would be listed as "Wanted" and End.U would end up
    ?S: depending on them, leading to a circular dependency.)
    ?S:.
    ?X: Actually, we don't set it or do anything here -- that all happens
    ?X: in Finish.U.
    ?LINT:set runmakedepend

    Using it will require patching Finish.U on top of what you have done so
    far to tell it that 'runmakedepend' is an external dependency now, and to
    tell metalint that we're going to change it (assuming you want to record
    the actual value in config.sh, which I would assume you do).


    --- U/modified/Finish.U.mb 2004-03-29 08:55:06.000000000 -0500
    +++ U/modified/Finish.U 2004-03-29 11:33:28.000000000 -0500
    @@ -35,14 +35,12 @@
    ?X: SH files, which among other things produce config.h and (usually) Makefile.
    ?X: It offers to do a make depend if the Makefile contains that target.
    ?X:
    -?MAKE:runmakedepend Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
    - test package make
    +?MAKE:Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
    + test package make runmakedepend
    ?MAKE: -pick add $@ %<
    -?S:runmakedepend:
    -?S: This variable defines if Configure runs 'make depend'
    -?S:.
    ?F:!config.sh
    ?T:pwd
    +?LINT:change runmakedepend

    : Finish up by extracting the .SH files
    case "$alldone" in
    @@ -108,9 +106,11 @@
    . UU/myread
    case "$ans" in
    y*)
    + runmakedepend='y'
    $make depend && echo "Now you must run '$make'."
    ;;
    *)
    + runmakedepend='n'
    echo "You must run '$make depend' then '$make'."
    ;;
    esac



    --
    Andy Dougherty doughera@lafayette.edu
  • H.Merijn Brand at Mar 29, 2004 at 10:14 pm

    On Mon 29 Mar 2004 19:02, Andrew Dougherty wrote:
    On Sat, 20 Mar 2004, H.Merijn Brand wrote:
    Thanks for the long answer. Learned some more again. But since the right
    options already made Nick Happy, we dropped this idea altogether.

    With some other open ends to be tied and 5.8.4 comming 'round the corner, I'd
    like to commit my time to keeping Configure backward compatible to at least
    5.6.x, which still is the case, and I even hope to go further and get 5.5.x
    into focus.

    Next step is to regenerate config_h,SH, which is hopelessly outdated, and
    looking at what the metaconfig would build has been patched manually for a
    looooong time now. I want to see if a fresh generated version still works
    --8<--- This patch
    p4 -dpu diff
    ==== //depot/metaconfig/U/modified/Finish.U#5 - /pro/3gl/CPAN/metaconfig/U/modified/Finish.U ====
    38c38
    < ?MAKE:Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
    ---
    ?MAKE:runmakedepend Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \ 40a41,43
    ?S:runmakedepend:
    ?S: This variable defines if Configure runs 'make depend'
    ?S:.
    yields:
    :
    Looking for dependency cycles...
    Cycle found for:
    (#1) Oldsym
    (#1) runmakedepend
    (#1) Config_h
    (#1) Magic_h
    Cycle involves:
    (?) End: runmakedepend
    (?) Config_h: End Config_sh
    (?) Config_sh: End
    (?) Oldsym: Config_sh
    (Finish) runmakedepend: Oldsym Magic_h
    (?) Magic_h: Config_h
    Done.
    Ah, yes, I see. As the very last unit, Finish.U is special. In
    particular, what's happening is that 'runmakedepend' is now one of the
    symbols made by Configure, and hence it is in the $W list of "Wanted"
    symbols. The End.U unit depends on $W (and hence on Finish.U), but the
    End.U unit is supposed to come just before the Finish.U unit. Hence you
    get the circular dependency.

    One solution (the direction you were headed previously, I think) might be
    to try to put in enough metalint directives to allow you to declare (and
    describe) the new runmakedepend variable without actually declaring it
    'made' anywhere. You end up fighting metalint a lot, and I'm unsure if
    you can ever win :-).

    Another solution is to make up a new unit, runmakedepend.U, and declare
    the new variable in that unit in the usual way. (There's a catch, of
    course, in that you can't tell if the generated Makefile will have a
    'depend:' target until after it's extracted, and that won't have happened
    yet when the runmakedepend unit is called.)

    Here's a sample runmakedepend.U unit:

    ?RCS: $Id: runmakedepend.U,v $
    ?RCS:
    ?RCS: Copyright (c) 2004 The Perl Foundation
    ?RCS:
    ?RCS: You may distribute under the terms of either the GNU General Public
    ?RCS: License or the Artistic License, as specified in the README file.
    ?RCS:
    ?RCS: $Log: runmakedepend.U,v $
    ?RCS:
    ?MAKE:runmakedepend:
    ?MAKE: -pick add $@ %<
    ?S:runmakedepend:
    ?S: This variable designates whether Configure is to run
    ?S: 'make depend'. This unit exists only to define the variable.
    ?S: (Presumably it is set by a Configure command-line option.) The actual
    ?S: code to ask the question and to run 'make depend' is in the Finish.U
    ?S: unit, since the question only gets asked if the extracted Makefile has
    ?S: a depend: rule, and the extraced Makefile doesn't yet exist. We can't
    ?S: put the definition of runmakedepend into the Finish.U unit, however,
    ?S: since it's the very last unit and it can't define any new variables.
    ?S: (Such variables would be listed as "Wanted" and End.U would end up
    ?S: depending on them, leading to a circular dependency.)
    ?S:.
    ?X: Actually, we don't set it or do anything here -- that all happens
    ?X: in Finish.U.
    ?LINT:set runmakedepend

    Using it will require patching Finish.U on top of what you have done so
    far to tell it that 'runmakedepend' is an external dependency now, and to
    tell metalint that we're going to change it (assuming you want to record
    the actual value in config.sh, which I would assume you do).


    --- U/modified/Finish.U.mb 2004-03-29 08:55:06.000000000 -0500
    +++ U/modified/Finish.U 2004-03-29 11:33:28.000000000 -0500
    @@ -35,14 +35,12 @@
    ?X: SH files, which among other things produce config.h and (usually) Makefile.
    ?X: It offers to do a make depend if the Makefile contains that target.
    ?X:
    -?MAKE:runmakedepend Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
    - test package make
    +?MAKE:Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
    + test package make runmakedepend
    ?MAKE: -pick add $@ %<
    -?S:runmakedepend:
    -?S: This variable defines if Configure runs 'make depend'
    -?S:.
    ?F:!config.sh
    ?T:pwd
    +?LINT:change runmakedepend

    : Finish up by extracting the .SH files
    case "$alldone" in
    @@ -108,9 +106,11 @@
    . UU/myread
    case "$ans" in
    y*)
    + runmakedepend='y'
    $make depend && echo "Now you must run '$make'."
    ;;
    *)
    + runmakedepend='n'
    echo "You must run '$make depend' then '$make'."
    ;;
    esac



    --
    Andy Dougherty doughera@lafayette.edu
    --
    H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/)
    using perl-5.6.1, 5.8.3, & 5.9.x, and 806 on HP-UX 10.20 & 11.00, 11i,
    AIX 4.3, SuSE 9.0, and Win2k. http://www.cmve.net/~merijn/
    http://archives.develooper.com/daily-build@perl.org/ perl-qa@perl.org
    send smoke reports to: smokers-reports@perl.org, QA: http://qa.perl.org

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupperl5-build @
categoriesperl
postedMar 17, '04 at 8:21p
activeMar 29, '04 at 10:14p
posts9
users3
websiteperl.org

People

Translate

site design / logo © 2019 Grokbase