Tue 31 Jan 2006 02:48:42 AM UTC, original submission:
Hi,
A debian user reported this bug. Please CC -unavailable- in your replies, so that the Debian BTS may have a record of your reply.
manoj
Using make <= 3.80-8.dirk, my package (libjudydevian1) builds
correctly. Using make 3.81.b4-0 & 3.81.b4-1 make can not find an
implicit rule when trying to build. However, simply runing make again
solves the issue.
I do not belive this has anything to do with the "second expansion"
featrue.
Symptoms:
When I run make it fails with:
make[3]: *** No rule to make target `JudyLCount.lo', needed by
`libJudyL.la'. Stop.
make[3]: Leaving directory `/tmp/x/src/JudyL'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/x/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/x'
make: *** [all] Error 2
If I immediately run make a second time, it magically figures out how to
build JudyLCount.lo and continues on until it can't build Judy1Set.lo:
make[3]: *** No rule to make target `Judy1Set.lo', needed by
`libJudy1.la'. Stop.
make[3]: Leaving directory `/tmp/x/src/Judy1'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/x/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/x'
make: *** [all] Error 2
Again, if I just type 'make' again, it magically figures out how to
build Judy1Set.lo and continues to completion.
Looking at the debug output from Make it shows that it can not find
the implicit rule the first time, but it can the second time.
make <= 3.80-8.dirk
Successfully remade target file `JudyLTables.lo'.
Considering target file `JudyLCount.lo'.
File `JudyLCount.lo' does not exist.
Looking for an implicit rule for `JudyLCount.lo'.
Trying pattern rule with stem `JudyLCount'.
Trying implicit prerequisite `JudyLCount.c'.
Found an implicit rule for `JudyLCount.lo'.
...
make 3.81.b4-0 & 3.81.b4-1 (first run)
Successfully remade target file `JudyLTables.lo'.
Considering target file `JudyLCount.lo'.
File `JudyLCount.lo' does not exist.
Looking for an implicit rule for `JudyLCount.lo'.
Trying pattern rule with stem `JudyLCount'.
Trying implicit prerequisite `JudyLCount.c'.
Trying pattern rule with stem `JudyLCount.lo'.
Trying implicit prerequisite `JudyLCount.lo,v'.
Trying pattern rule with stem `JudyLCount.lo'.
Trying implicit prerequisite `RCS/JudyLCount.lo,v'.
Trying pattern rule with stem `JudyLCount.lo'.
Trying implicit prerequisite `RCS/JudyLCount.lo'.
Trying pattern rule with stem `JudyLCount.lo'.
Trying implicit prerequisite `s.JudyLCount.lo'.
Trying pattern rule with stem `JudyLCount.lo'.
Trying implicit prerequisite `SCCS/s.JudyLCount.lo'.
Trying pattern rule with stem `JudyLCount'.
Trying implicit prerequisite `JudyLCount.c'.
Looking for a rule with intermediate file `JudyLCount.c'.
Avoiding implicit rule recursion.
Trying pattern rule with stem `JudyLCount'.
Trying implicit prerequisite `JudyLCount.w'.
Trying pattern rule with stem `JudyLCount.c'.
Trying implicit prerequisite `JudyLCount.c,v'.
Trying pattern rule with stem `JudyLCount.c'.
Trying implicit prerequisite `RCS/JudyLCount.c,v'.
Trying pattern rule with stem `JudyLCount.c'.
Trying implicit prerequisite `RCS/JudyLCount.c'.
Trying pattern rule with stem `JudyLCount.c'.
Trying implicit prerequisite `s.JudyLCount.c'.
Trying pattern rule with stem `JudyLCount.c'.
Trying implicit prerequisite `SCCS/s.JudyLCount.c'.
Trying pattern rule with stem `JudyLCount'.
Trying implicit prerequisite `JudyLCount.w'.
Looking for a rule with intermediate file `JudyLCount.w'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem `JudyLCount.w'.
Trying implicit prerequisite `JudyLCount.w,v'.
Trying pattern rule with stem `JudyLCount.w'.
Trying implicit prerequisite `RCS/JudyLCount.w,v'.
Trying pattern rule with stem `JudyLCount.w'.
Trying implicit prerequisite `RCS/JudyLCount.w'.
Trying pattern rule with stem `JudyLCount.w'.
Trying implicit prerequisite `s.JudyLCount.w'.
Trying pattern rule with stem `JudyLCount.w'.
Trying implicit prerequisite `SCCS/s.JudyLCount.w'.
No implicit rule found for `JudyLCount.lo'.
Finished prerequisites of target file `JudyLCount.lo'.
Must remake target `JudyLCount.lo'.
---> Error
make 3.81.b4-0 & 3.81.b4-1 (simply runing make again)
Successfully remade target file `JudyLTables.lo'.
Considering target file `JudyLCount.lo'.
File `JudyLCount.lo' does not exist.
Looking for an implicit rule for `JudyLCount.lo'.
Trying pattern rule with stem `JudyLCount'.
Trying implicit prerequisite `JudyLCount.c'.
Found an implicit rule for `JudyLCount.lo'.
...
I have attached a simplified testcase broken_make_example.tgz. To
duplicate the problem:
1. tar zxvf broken_make_exmaple.tgz
2. cd broken_make_example
3. ./configure
4. make
will get error --> make[3]: *** No rule to make target `JudyLCount.lo'
5. make (get's past JudyLCount.lo)
will get error --> make[3]: *** No rule to make target `Judy1Set.lo'
6. make
--> everyting completes
|