Sagen wir, ich habe ein Verzeichnis mit c-Dateien (.
) und ich möchte, dass die Objektdateien in zwei verschiedenen Verzeichnissen landen: debuggen und release. Jetzt möchte ich die Regel dafür machen. Dies wird am Ende so etwas wie folgt sein:Einzelne make-Regel für mehrere Ausgabedateien in verschiedenen Verzeichnissen
$(DEBUGDIR)%.o : %.c
$(CC) $(CFLAGS) -c $< -o [email protected]
$(RELEASEDIR)%.o : %.c
$(CC) $(CFLAGS) -c $< -o [email protected]
Dies sind zwei Regeln, die genau gleich sind. Da alle möglichen Unterschiede zwischen diesen Regeln in CFLAGS
enthalten sind, gibt es keinen Grund, sogar zwei Regeln zu haben: Ich möchte nur eine beibehalten. Ich versuchte dies:
$(DEBUGDIR)%.o $(RELEASEDIR)%.o : %.c
$(CC) $(CFLAGS) -c $< -o [email protected]
Aber jetzt wird es nicht die o-Dateien für RELEASE
kompilieren, wenn es bereits für DEBUG
zusammengestellt. Wie kann ich diese beiden Regeln zusammenfassen?