Configuración de marcas por archivo con automake
Pregunta
¿Hay alguna forma de establecer indicadores en función de cada archivo con automake?
En particular, si tengo un proyecto de c ++ y quiero compilar con -WILL todos los archivos, excepto uno para el que quiero desactivar una advertencia en particular, ¿qué podría hacer?
Probé algo 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, que en realidad fue engañoso (gracias a Douglas Leeder).
Solución
Automake solo admite indicadores por objetivo, mientras que usted desea indicadores por objeto. Una forma de evitarlo es crear una pequeña biblioteca que contenga su 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
Otros consejos
No puede hacer esto con automake
... pero puede hacer con make
=) Agregue la siguiente línea a su Makefile.am
:
utility.$(OBJEXT) : CXXFLAGS += -Wno-unused-value
Consulte GNU Make document: Targetble Valve Values ?? para más detalles.
Te has confundido, esa sección se refiere a las opciones para hacer el automake.
Es una forma de configurar las opciones de línea de comandos de automake:
-W CATEGORIA --warnings = categoría Advertencias de salida que caen en la categoría. La categoría puede ser una 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 prefijando su nombre con "no-". Por ejemplo, -Wno-sintaxis ocultará la advertencias sobre variables no utilizadas.
Las categorías de salida por defecto son "sintaxis" y "no admitidas". Además, ‘gnu’ y ‘portabilidad’ están habilitados en --gnu y --gnits rigidez.
La variable de entorno WARNINGS puede contener una lista separada por comas de Categorías para habilitar. Será tomado en cuenta antes de la linea de comando Conmutadores, de esta manera -Wnone también lo hará. ignorar cualquier categoría de advertencia habilitada por ADVERTENCIAS. Esta variable también se usa. por otras herramientas como autoconf; desconocido las categorías son ignoradas para esto razón.
El archivo por archivo que se enumera en la sección 17 se refiere a archivo Make-File no fuente.
No tengo conocimiento de ninguna configuración de marca de archivo por origen, pero puede establecer la opción para cada binario de resultado con:
binaryname_CXXFLAGS