[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Make 3.82: weird "circular dependency" and missing $< expansion
From: |
Akim Demaille |
Subject: |
Make 3.82: weird "circular dependency" and missing $< expansion |
Date: |
Mon, 2 May 2011 09:17:45 +0200 |
Hi all,
First of all, thanks a lot for the good work on GNU Make!
I have a piece of Makefile that started behaving differently in the migration
from 3.81 to 3.82, and I'm tempted to call it a bug.
Using the attached Makefile (I spent quite a while to strip it down from an
Automake generated file), Make 3.81 reports:
$ make
echo accel.dat >accel.dat
echo "{accel.dat}"
{accel.dat}
test -n "accel.dat"
echo accel.pdf >accel.eps
Which is what I expect. But Make 3.82 reports:
$ LC_ALL=C gmake -rR
gmake: Circular accel.pdf <- accel.pdf dependency dropped.
echo "{}"
{}
test -n ""
gmake: *** [accel.pdf] Error 1
I would have understood that something be reported about accel.eps, but I don't
understand what it means about accel.pdf. It would be really nice to have more
details about those "circular dependencies". And see how $< is expanding to
nothing.
Weirdly enough, if I comment the "document.pdf" dependency, which is not
involved in plain "make all", it works. If I move it, it works too. If I
compare the --print-db without-document.pdf -> with-document.pdf, I can see
that things about accel.pdf differ (and $< is not defined), but it does not
help me understand what's wrong:
accel.pdf:
-# Implicit rule search has not been done.
-# File does not exist.
+# Implicit rule search has been done.
+# Implicit/static pattern stem: `accel'
+# Also makes: accel.eps
+# Modification time never checked.
# File has been updated.
-# Successfully updated.
+# Failed to be updated.
+# automatic
+# @ := accel.pdf
+# automatic
+# % :=
+# automatic
+# * := accel
+# automatic
+# + :=
+# automatic
+# | :=
+# automatic
+# < :=
+# automatic
+# ^ :=
+# automatic
+# ? :=
+# variable set hash-table stats:
+# Load=8/32=25%, Rehash=0, Collisions=1/19=5%
+# recipe to execute (from `Makefile', line 9):
+ echo "{$<}"
+ test -n "$<"
There might be something I did not notice, I don't know. Any help would be
appreciated. Please, keep me in CC as I am not member of this list, nor
reading the newsgroup.
Makefile
Description: Binary data
- Make 3.82: weird "circular dependency" and missing $< expansion,
Akim Demaille <=