Définir des drapeaux par fichier avec automake
Question
Existe-t-il un moyen de définir des indicateurs pour chaque fichier avec automake?
En particulier, si j’ai un projet c ++ et que je veux compiler avec -WAll tous les fichiers sauf un pour lequel je souhaite désactiver un avertissement particulier, que puis-je faire?
j'ai essayé quelque chose comme:
CXXFLAGS = -WAll ...
bin_PROGRAMS = test
test_SOURCES = main.cpp utility.cpp
utility_o_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value
mais cela n'a pas fonctionné.
MODIFIÉ: suppression de la référence au manuel automake, ce qui était trompeur (grâce à Douglas Leeder).
La solution
Automake ne prend en charge que les indicateurs par cible, alors que vous voulez des indicateurs par objet. Une solution consiste à créer une petite bibliothèque contenant votre objet:
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
Autres conseils
Vous ne pouvez pas faire cela avec automake
... mais pouvez le faire avec make
=) Ajoutez la ligne suivante à votre Makefile.am
:
utility.$(OBJEXT) : CXXFLAGS += -Wno-unused-value
Voir GNU Créer une documentation: Valeurs variables spécifiques à la cible pour plus de détails.
Vous êtes confus - cette section fait référence à des options pour se fabriquer elle-même.
C’est un moyen de définir les options de ligne de commande automake:
-W CATÉGORIE --warnings = catégorie Alertes de sortie entrant dans la catégorie. la catégorie peut être l'une des suivantes:
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
Une catégorie peut être désactivée en préfixant son nom avec & # 8216; no - & # 8217 ;. Par exemple, -Wno-syntax masquera le avertissements concernant les variables inutilisées.
Les catégories générées par défaut sont & # 8216; syntaxe & # 8217; et & # 8216; non pris en charge & # 8217 ;. De plus, & # 8216; gnu & # 8217; et & # 8216; la portabilité & # 8217; sont activés dans --gnu et --gnits rigueur.
La variable d’environnement WARNINGS peut contenir une liste de catégories à activer. Il sera pris en compte avant la ligne de commande commutateurs, cette façon -Wnone sera également ignorer toute catégorie d'avertissement activée par AVERTISSEMENTS. Cette variable est aussi utilisée par d'autres outils comme autoconf; inconnu les catégories sont ignorées pour cette raison.
Le fichier par fichier répertorié à la section 17 fait référence à un fichier source et non à un fichier de compilation.
Je ne connais aucun paramètre d'indicateur de fichier par source, mais vous pouvez définir l'option pour chaque résultat binaire avec:
binaryname_CXXFLAGS