Makefile Tricks mit VPATH und umfassen

Ich bin Herumspielen mit make-Dateien und die VPATH-variable. Im Grunde bin ich packte source-Dateien von ein paar verschiedenen Orten (angegeben durch den VPATH), und kompilieren Sie Sie in das aktuelle Verzeichnis, indem Sie einfach eine Liste .o-Dateien, die ich will.

So weit So gut, jetzt bin ich generating dependency-Informationen in eine Datei namens '.hängen' und darunter, die. Gnumake wird versuchen, mit den Regeln so weit zu erstellen, die die Datei enthalten, wenn Sie nicht existiert, also ist das ok. Im Grunde, meine makefile sieht so aus.

VPATH=A/source:B/source:C/source

objects=first.o second.o third.o

executable: $(objects)

.depend: $(objects:.o=.c)
    $(CC) -MM $^ > [email protected]

include .depend

Jetzt für die eigentliche Frage, kann ich die unterdrücken die generation der .hängen Sie die Datei in irgendeiner Weise? Derzeit arbeite ich in einer clearcase Umgebung -> sloooow, so würde ich es vorziehen, es zu haben ein bisschen mehr unter Kontrolle, wenn Sie zum aktualisieren der Informationen zu Abhängigkeiten.

Es ist mehr oder weniger eine Akademische übung, da konnte ich einfach wickeln Sie die Sache in ein script, das berühren der .hängen Sie die Datei vor dem ausführen machen (so dass es neuer als alle Quell-Datei), aber es wäre interessant zu wissen, ob ich irgendwie unterdrücken es mit "pure" stellen.

Ich die Abhängigkeit nicht entfernen, um die Quelldateien (d.h. mit einfach .depend:), da bin ich je nach $^ Variablen zu tun, die VPATH Auflösung für mich.

Wenn, es würde keine Möglichkeit zu nur aktualisieren, Abhängigkeiten als Ergebnis der aktualisierten #include Richtlinien, das wäre noch besser natürlich.. Aber ich werde nicht meinen Atem für einen.. 🙂

  • Warum nicht einwickeln .depend: ... Ziel in if Richtlinie arbeiten?
  • interessant, ich hätte nie gedacht, dass.
InformationsquelleAutor falstro | 2010-03-16
Schreibe einen Kommentar