Makefile: Abhängigkeiten

Moin,

ich habe ein Problem wie ich am sinnvollsten meine Makefile organisiere.

Ich habe mehrere gleichberechtigte Dateien, die zum Projekt gehören. Jede dieser Dateien hat eine Reihe unterschiedlicher Include-Dateien.
Diese Abhängigkeit würde ich gerne automatisch bestimmen, wenn ich nur die Namen der Hauptdateien angebe.

Nun kann man natürlich in einer Makefile diese Abhängigkeit explizit definieren oder auch für jede DAtei einzeln die Abhängkeit extrahieren. Aber dann braucht man für jede dieser Hauptdateien eine eigene Regel:

Mir schwebt eine Abhängigkeit a la "cat mainfile | grep ‚#include‘ | cut -f2 -d\ " welches mir eine Liste der includes liefert. Aber das funktioniert eben nicht, wenn ich eine Liste an Mainfiles habe, sondern müßte da auch für jede Hauptdatei eine solche Variable definieren.

Beispiel:
Hauptdateien = Datei1 Datei2 Datei3

dep1 = $(shell cat Datei1 | grep ‚#include‘ | cut -f2 -d\ )
dep2 = $(shell cat Datei2 | grep ‚#include‘ | cut -f2 -d\ )
dep3 = $(shell cat Datei3 | grep ‚#include‘ | cut -f2 -d\ )

Datei1: dep1
$(CC) $(CC_FLAGS) $

Hallo Ingo,

Schon mal nach „makedeps“ und „makemake“ gegoorgelt?

Ich pflege meine Makefiles mit MakeDeps. In meinen Makefiles trage ich nur die Module ein, welche zum Pojeckt gehören von Hand ein, das kann der Computer ja nicht wissen.

MfG Peter(TOO)

Moin,

Bis eben hatte ich noch nicht danach gegurgelt in Ermangelung des Wissens um eben jene :smile: Hört sich nach genau sowas an, was mir weiterhelfen wird.

Danke & Gruß,
Ingo