Einstellen per-Datei-Flags mit auto
Frage
Gibt es eine Möglichkeit gesetzten Flags auf einer Pro-Datei-Basis mit auto?
Insbesondere dann, wenn ich ein c ++ Projekt und kompilieren wollen mit -Wall alle Dateien mit einer Ausnahme, für die möchte ich eine bestimmte Warnung deaktivieren, was könnte ich tun?
Ich habe versucht, so etwas wie:
CXXFLAGS = -WAll ...
bin_PROGRAMS = test
test_SOURCES = main.cpp utility.cpp
utility_o_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value
, aber es hat nicht funktioniert.
EDITED. Entfernt Referenzhandbuch zu auto, die eigentlich irreführend wurde (dank Douglas Leeder)
Lösung
Automake unterstützt nur pro-Zielflaggen, während Sie pro-Objekt-Flags wollen. Ein Weg, um ist eine kleine Bibliothek zu erstellen, die das Objekt enthält:
CXXFLAGS = -Wall ...
bin_PROGRAMS = test
test_SOURCES = main.cpp
test_LDADD = libutility.a
noinst_LIBRARIES = libutility.a
libutility_a_SOURCES = utility.cpp
libutility_a_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value
Andere Tipps
Sie können dies nicht mit automake
... aber tun mit make
=) in Ihrem Makefile.am
folgenden Zeile:
utility.$(OBJEXT) : CXXFLAGS += -Wno-unused-value
Siehe GNU Make Dokumentation: Target-spezifische Variable Werte für Details.
Sie haben verwirrt -., Dass Abschnitt Optionen bezieht sich auf auto
Es ist ein Weg, um die autoBefehlsZeilenOptionen der Einstellung:
-W KATEGORIE --warnings = Kategorie Output Warnungen in der Kategorie fallen. Kategorie kann einer der folgenden sein:
gnu warnings related to the GNU Coding Standards (see Top). obsolete obsolete features or constructions override user redefinitions of Automake rules or variables portability portability issues (e.g., use of make features that are known to be not portable) syntax weird syntax, unused variables, typos unsupported unsupported or incomplete features all all the warnings none turn off all the warnings error treat warnings as errors
Eine Kategorie kann mit ‚no-‘ durch das Vorsetzen seinen Namen ausgeschaltet. Zum Beispiel wird verstecken -Wno-Syntax der Warnungen über nicht verwendete Variablen.
Die Kategorien Ausgabe standardmäßig ist ‚Syntax‘ und ‚nicht unterstützt‘. Darüber hinaus ‚Gnu‘ und ‚Übertragbarkeit‘ sind in --gnu und --gnits aktiviert Strenge.
Die Umgebungsvariable WARNHINWEISE eine durch Kommata getrennte Liste enthalten kann Kategorien zu ermöglichen. Es wird genommen berücksichtigt werden, bevor die Befehlszeile Auf diese Weise schaltet, wird -Wnone auch jede Warnung Kategorie ignorieren aktiviert durch WARNHINWEISE. Diese Variable wird auch verwendet, von anderen Tools wie autoconf; Unbekannt Kategorien werden für diese ignoriert Grund.
Die pro-Datei in Abschnitt 17 bezieht sich auf pro-Makefile nicht Quelldatei.
Ich bin nicht bekannt, dass pro-Source-Einstellungsdatei Flagge, aber Sie können für jedes Ergebnis binär mit der Option:
binaryname_CXXFLAGS