2008-09-29 19 views
7

¿Hay alguna manera de establecer indicadores por archivo con automake?
En particular, si tengo un proyecto de C++ y quiero compilar con -WAll todos los archivos excepto uno para el que quiero desactivar una advertencia en particular, ¿qué podría hacer?Configuración de indicadores por archivo con automake

he intentado algo así como:

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

pero no funcionó.

EDITADO: se eliminó la referencia al manual de automake, lo que en realidad fue engañoso (gracias a Douglas Leeder).

Respuesta

5

Automake sólo es compatible con banderas por-objetivo, mientras que desea per- banderas de objetos. Una forma de evitar es crear una pequeña biblioteca que contiene el objeto:

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 
2

Se ha confundido: esa sección se refiere a las opciones de automakear.

Es una manera de ajustar las opciones de línea de comandos automake:

-W CATEGORÍA --warnings = categoría advertencias de salida que caen en la categoría. categoría puede ser uno de:

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 categoría se puede desactivar al poner su nombre por 'no-'. Por ejemplo, -Wno-sintaxis ocultará las advertencias sobre variables no utilizadas.

Las categorías que salen por defecto son 'sintaxis' y 'no admitidas'. Además, 'gnu' y 'portabilidad' están habilitados en --gnu y --encendidos rigurosidad.

La variable de entorno WARNINGS puede contener una lista separada por comas de las categorías para habilitar. Se tomará en cuenta antes de que los conmutadores de la línea de comando , de esta manera, -Wnone también ignorarán cualquier categoría de advertencia habilitada por ADVERTENCIAS. Esta variable también se usa por otras herramientas como autoconf; se ignoran categorías desconocidas para este motivo .

El archivo por lista en la sección 17 hace referencia al archivo por archivo Makefile no fuente.

No estoy al tanto de cualquier valor del indicador archivo por cada fuente, pero se puede establecer la opción binaria para cada resultado con:

binaryname_CXXFLAGS 
13

No se puede hacer esto con automake ... pero puede hacer con make =) Añadir línea siguiente al que Makefile.am:

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

Ver GNU Make documentation : Target-specific Variable Values para más detalles.

+0

La pregunta ahora es bastante antigua, pero la respuesta es interesante, sin embargo, gracias :) –

Cuestiones relacionadas