bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #15110] Confusing failure message for generate dependencies with 3.


From: Bertrand Mollinier Toublet
Subject: [bug #15110] Confusing failure message for generate dependencies with 3.81beta3
Date: Fri, 31 Mar 2006 03:37:02 +0000
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050922 Firefox/1.0.7 (Debian package 1.0.7-1)

Follow-up Comment #5, bug #15110 (project make):

Paul Smith tells me that the problem I am reporting on the bug-make mailing
list is linked to this one, and I would tend to agree.

Another (simpler?) test case for this issue is as follows:

$ cat Makefile
.SUFFIXES:

-include baz

foo: ; touch $@ 
$ cat baz
foo baz: bar 
$ make-3.80
make: *** No rule to make target `bar', needed by `baz'.  Stop. 
$ make-3.81rc2 # from CVS
<no reported error>
$ echo $?
2
<make silently failed with error code 2>

Additionally:
$ make-3.80 -d
Reading makefiles...
Reading makefile `Makefile'...
Reading makefile `baz' (search path) (don't care) (no ~ expansion)...
Updating makefiles....
 Considering target file `baz'.
  Looking for an implicit rule for `baz'.
  Trying pattern rule with stem `baz'.
  Trying implicit prerequisite `baz,v'.
  Trying pattern rule with stem `baz'.
  Trying implicit prerequisite `RCS/baz,v'.
  Trying pattern rule with stem `baz'.
  Trying implicit prerequisite `RCS/baz'.
  Trying pattern rule with stem `baz'.
  Trying implicit prerequisite `s.baz'.
  Trying pattern rule with stem `baz'.
  Trying implicit prerequisite `SCCS/s.baz'.
  No implicit rule found for `baz'.
   Considering target file `bar'.
    File `bar' does not exist.
    Looking for an implicit rule for `bar'.
    Trying pattern rule with stem `bar'.
    Trying implicit prerequisite `bar,v'.
    Trying pattern rule with stem `bar'.
    Trying implicit prerequisite `RCS/bar,v'.
    Trying pattern rule with stem `bar'.
    Trying implicit prerequisite `RCS/bar'.
    Trying pattern rule with stem `bar'.
    Trying implicit prerequisite `s.bar'.
    Trying pattern rule with stem `bar'.
    Trying implicit prerequisite `SCCS/s.bar'.
    No implicit rule found for `bar'.
    Finished prerequisites of target file `bar'.
   Must remake target `bar'.
make: *** No rule to make target `bar', needed by `baz'.  Stop. 
$ make-3.81rc2 -d
Reading makefiles...
Reading makefile `Makefile'...
Reading makefile `baz' (search path) (don't care) (no ~ expansion)...
Updating makefiles....
 Considering target file `baz'.
  Looking for an implicit rule for `baz'.
  Trying pattern rule with stem `baz'.
  Trying implicit prerequisite `baz,v'.
  Trying pattern rule with stem `baz'.
  Trying implicit prerequisite `RCS/baz,v'.
  Trying pattern rule with stem `baz'.
  Trying implicit prerequisite `RCS/baz'.
  Trying pattern rule with stem `baz'.
  Trying implicit prerequisite `s.baz'.
  Trying pattern rule with stem `baz'.
  Trying implicit prerequisite `SCCS/s.baz'.
  No implicit rule found for `baz'.
   Considering target file `bar'.
    File `bar' does not exist.
    Looking for an implicit rule for `bar'.
    Trying pattern rule with stem `bar'.
    Trying implicit prerequisite `bar,v'.
    Trying pattern rule with stem `bar'.
    Trying implicit prerequisite `RCS/bar,v'.
    Trying pattern rule with stem `bar'.
    Trying implicit prerequisite `RCS/bar'.
    Trying pattern rule with stem `bar'.
    Trying implicit prerequisite `s.bar'.
    Trying pattern rule with stem `bar'.
    Trying implicit prerequisite `SCCS/s.bar'.
    No implicit rule found for `bar'.
    Finished prerequisites of target file `bar'.
   Must remake target `bar'.
   Failed to remake target file `bar'.
  Finished prerequisites of target file `baz'.
 Giving up on target file `baz'.
 Considering target file `Makefile'.
  Looking for an implicit rule for `Makefile'.
  Trying pattern rule with stem `Makefile'.
  Trying implicit prerequisite `Makefile,v'.
  Trying pattern rule with stem `Makefile'.
  Trying implicit prerequisite `RCS/Makefile,v'.
  Trying pattern rule with stem `Makefile'.
  Trying implicit prerequisite `RCS/Makefile'.
  Trying pattern rule with stem `Makefile'.
  Trying implicit prerequisite `s.Makefile'.
  Trying pattern rule with stem `Makefile'.
  Trying implicit prerequisite `SCCS/s.Makefile'.
  No implicit rule found for `Makefile'.
  Finished prerequisites of target file `Makefile'.
 No need to remake target `Makefile'.
Updating goal targets....
Considering target file `foo'.
 File `foo' does not exist.
  Pruning file `bar'.
 Finished prerequisites of target file `foo'.
Giving up on target file `foo'. 

When trying to update the makefiles, make is not able to rebuild baz because
of the missing dependency bar, which it does not know how to make. Because of
the '-include', this failure is correctly silently ignored with 3.81rc2

However, when later make attempts to build the final target foo, it prunes
the missing dependency bar (I guess this is OK: the result of attempting to
make that one is already known), but fails to report that it does not know
how to build the missing dependency.


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?func=detailitem&item_id=15110>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]