freebsd-dev/share/mk/bsd.cov.mk
Enji Cooper 48c54cbc90 Create GCNOS directories at install time if needed
Add GCNOS{GRP,MODE,OWN} for parity with FILES{GRP,MODE,OWN}. The defaults are
based on BIN{GRP,MODE,OWN}.

GCNOSDIRMODE is added, strictly for configurability, if need be.
2017-10-22 21:00:59 +00:00

39 lines
915 B
Makefile

# $FreeBSD$
#
# Snippet for dealing with runtime coverage logic.
#
# .gcno files are generated from files that are compiled from source, e.g.,
# foo.gcno is foo.c or foo.cpp's file. In order for the libraries and programs
# to be properly instrumented, the .gcno files must be installed to a prefix
# common to the object files.
#
# See gcov(1) for more details.
.include <bsd.own.mk>
FILESGROUPS?= FILES
.if !empty(GCNOS)
GCNOSOWN?= ${BINOWN}
GCNOSGRP?= ${BINGRP}
GCNOSMODE?= 0644
GCNOSDIRMODE?= 0755
GCNOS:= ${GCNOS:O:u}
FILESGROUPS+= GCNOS
CLEANFILES+= ${GCNOS}
.for _gcno in ${GCNOS}
_gcno_dir= ${COVERAGEDIR}${_gcno:H:tA}
GCNOSDIR_${_gcno:T}= ${_gcno_dir}
# Create _gcno_dir if it doesn't already exist.
.if !target(${DESTDIR}${_gcno_dir})
${DESTDIR}${_gcno_dir}:
${INSTALL} -d -o ${GCNOSOWN} -g ${GCNOSGRP} -m ${GCNOSDIRMODE} \
${.TARGET}/
.endif
${_gcno}: ${DESTDIR}${_gcno_dir}
.endfor
.endif