Ich dachte, das ist ganz einfachMakefile: verhindern unendliche Muster Rekursion
%.png: ../figs/%.png
convert $? -resize '40%' [email protected]
Das heißt, ich möchte ein Bild in diesem Verzeichnis aus dem entsprechenden Bild in „../figs/“ erzeugen.
Aber die oben führt zu einer unendlichen Kette von Abhängigkeiten, weil ../figs/foo.png
%.png
paßt und deshalb versucht machen ../figs/../figs/foo.png
zu überprüfen, welche %.png
paßt und deshalb versucht zu machen. . . Schließlich stoppt mit "Dateiname zu lang".
Ich muss etwas fehlen. Was ist eine saubere Lösung?
Danke! Das ist perfekt. Interessanterweise erzeugt GNU Make 3.81, das mit Mac OS X geliefert wird, immer noch eine unendliche Kette mit Ihrem Code, während GNU Make 4.2.1, das ich separat installiert habe, dies nicht tut. Bedeutet das, dass dieses Problem erst kürzlich gelöst wurde? – Ryo
Sieht aus wie Musterregeln auf kürzesten Stamm um umgestellt wurden in [3,82] (http://git.savannah.gnu.org/cgit/make.git/tree/NEWS), können Sie die leeren, indem in 3.81 dieses Problem umgehen herrsche vor dem anderen. – user657267