Domanda

Esiste un modo per impostare i flag in base al file con automake?
In particolare, se ho un progetto c ++ e voglio compilare con -WTutti i file tranne uno per il quale desidero disabilitare un particolare avviso, cosa posso fare?

Ho provato qualcosa del tipo:

CXXFLAGS = -WAll ...
bin_PROGRAMS = test
test_SOURCES = main.cpp utility.cpp
utility_o_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value

ma non ha funzionato.

EDITED: rimosso il riferimento al manuale di automake, che in realtà era fuorviante (grazie a Douglas Leeder).

È stato utile?

Soluzione

Automake supporta solo flag per target, mentre desideri flag per oggetto. Un modo per aggirare è quello di creare una piccola libreria che contiene il tuo oggetto:

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

Altri suggerimenti

Non puoi farlo con automake ... ma puoi fare con make =) Aggiungi la seguente riga al tuo Makefile.am :

utility.$(OBJEXT) : CXXFLAGS += -Wno-unused-value

Vedi GNU Crea documentazione: valori variabili specifici del target per dettagli.

Sei confuso: quella sezione si riferisce alle opzioni per automake stesso.

È un modo per impostare le opzioni della riga di comando di automake:

  

-W CATEGORIA   --warnings = categoria       Avvisi di output che rientrano nella categoria. la categoria può essere una di:

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 
     

Una categoria può essere disattivata aggiungendo il proprio nome con & # 8216; no - & # 8217 ;.   Ad esempio, -Wno-sintassi nasconderà il   avvisi relativi a variabili non utilizzate.

     

Le categorie generate per impostazione predefinita sono & # 8216; sintassi & # 8217; e & # 8216; non supportato & # 8217 ;.   Inoltre, & # 8216; gnu & # 8217; e & # 8216; portabilità & # 8217;   sono abilitati in --gnu e --gnits   severità.

     

La variabile di ambiente AVVERTENZE può contenere un elenco separato da virgole di   categorie da abilitare. Sarà preso   in considerazione prima della riga di comando   interruttori, in questo modo-anche nessuno   ignora qualsiasi categoria di avviso abilitata da   AVVERTENZE. Questa variabile è anche usata   da altri strumenti come autoconf; sconosciuto   le categorie sono ignorate per questo   ragione.

Il per-file elencato nella sezione 17 si riferisce al file di origine non per Makefile.

Non sono a conoscenza di alcuna impostazione flag per file di origine, ma puoi impostare l'opzione per ogni risultato binario con:

binaryname_CXXFLAGS
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top