Autotools invocación automática de lcov después de 'make check'
Pregunta
Me han establecido con éxito un proyecto en el que autotools las pruebas compila con instrumentación para que pueda obtener un informe cobertura de la prueba.
Me puede obtener el informe mediante la ejecución de lcov en el directorio de fuentes después de una exitosa 'make check'.
Ahora se enfrentan al problema de que yo quiero para automatizar este paso. Me gustaría añadir esto a 'make check' o para que sea una meta separada 'make check-cobertura'. Idealmente me gustaría analizar el resultado y fallar si la cobertura cae por debajo de un determinado porcentaje. El problema es que no puedo encontrar la manera de añadir un objetivo de encargo en absoluto.
Lo más cerca que llegué fue encontrar en este ejemplo autotools de configuración, pero no puedo ver donde en ese proyecto se añade el objetivo 'make lcov'. Sólo puedo ver algunas banderas de configure en m4 / auxdevel.m4.
¿Algún consejo?
Solución
Puede parecer sólo tiene que añadir pasos adicionales a los objetivos en su Makefile.am, esto es lo que terminó con (inspirado en #http: //www.enlightenment.org/svn/e/trunk/ewl/Makefile.am ):
#http://www.enlightenment.org/svn/e/trunk/ewl/Makefile.am
if ENABLE_COV
cov-reset:
@rm -fr coverage
@find . -name "*.gcda" -exec rm {} \;
@lcov --directory . --zerocounters
cov-report:
@mkdir -p coverage
@lcov --compat-libtool --directory . --capture --output-file coverage/app.info
@genhtml -o coverage/ coverage/app.info
cov:
@make cov-report
clean-local:
@make cov-reset
check:
@make cov
endif
El '@make cov' bajo control va a añadir el destino 'cov' en el valor predeterminado 'make check' objetivo.