Frage

Wie kann ich Automake zwingen, Abhängigkeitsverfolgung für nicht standardmäßige C ++ - Suffix -Dateien zu generieren? Insbesondere meine ich, dass .Deps -Verzeichnisdateiinhalte. Ich benutze auch Libtool.

Vielen Dank

War es hilfreich?

Lösung

Sich ansehen In diesem Abschnitt im Automake Manual Regarading Standard -Standard _SOURCES. Es sieht so aus, als würde man sagen:

bin_PROGRAMS = target
AM_DEFAULT_SOURCE_EXT = .foo

Werde dich den ersten Schritt überschreiten. Jetzt weiß Automake also, wo nach der ersten Abhängigkeit gesucht werden soll (target.foo), und es wird GCC bitten, die Abhängigkeiten von zu berechnen target.foo Basierend auf den Header -Dateinamen, die in dieser Datei enthalten sind. GCC spuckt die abgeleiteten Objektnamen aus und transformiert die enthaltenen stem.h -> stem.o. Und hier habe ich eine Wand getroffen. Damit Ihr Automobil -Skript vollständig tragbar ist, können Sie das nicht verwenden % Muster. Sie müssen das Suffix -Stapel verwenden, wie Wallyk in seiner Antwort demonstrierte.

Abhängig von Ihren Portabilitätsanforderungen können Sie dies nur ignorieren und die implizite Regel in makefile.in als so etwas wie folgt definieren:

%.o : %.foo
    $(CXX) -o $@ -c $(CPPFLAGS) $(CXXFLAGS) $<

Wenn die Portabilität eine strenge Voraussetzung ist, befürchte ich, dass Sie ohne viel Hacking kein Glück mehr haben.

Andere Tipps

Fügen Sie eine implizite Regel hinzu. Zum Beispiel zum Kompilieren *.foo Dateien mit einem FOO -Compiler foocc:

.foo.o:
      foocc -c -o $@ $<
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top