URL: <http://savannah.gnu.org/bugs/?31400>
Summary: Make 3.82 incorrectly handles circular dependency chains (3.81 regression) Project: make Submitted by: None Submitted on: Thu 21 Oct 2010 07:08:10 PM UTC Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Component Version: 3.82 Operating System: POSIX-Based Fixed Release: None Triage Status: None _______________________________________________________ Details: I have a makefile library which contains a large number of circular dependencies of the form %.flac : %.wav ... %.wav : %.flac ... The idea being that if I have a file e.g. 'test.tta', and run 'make test.flac', it will pick the series of rules %.wav : %.tta followed by %.flac : %.wav This used to work in Make 3.81; it stopped working in 3.82. I have put together a simple test case: Makefile: %.testc : %.testb test -f "$<" && touch "$@" %.testb : %.testc test -f "$<" && touch "$@" %.testb : %.testa test -f "$<" && touch "$@" Commands: $ touch file.testa $ make file.testc make: Circular test.testb <- test.testc dependency dropped. test -f "" && touch "test.testb" make: *** [test.testb] Error 1 The corresponding output with make 3.81 is $ make file.testc test -f "test.testa" && touch "test.testb" test -f "test.testb" && touch "test.testc" rm test.testb _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?31400> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make