1#
2#    Copyright 2018 Google LLC. All Rights Reserved.
3#    Copyright 2015-2016 Nest Labs Inc. All Rights Reserved.
4#
5#    Licensed under the Apache License, Version 2.0 (the "License");
6#    you may not use this file except in compliance with the License.
7#    You may obtain a copy of the License at
8#
9#    http://www.apache.org/licenses/LICENSE-2.0
10#
11#    Unless required by applicable law or agreed to in writing, software
12#    distributed under the License is distributed on an "AS IS" BASIS,
13#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14#    See the License for the specific language governing permissions and
15#    limitations under the License.
16#
17
18#
19#    Description:
20#      This file is the automake footer for all code-coverage related
21#      targets and rules.
22#
23#      This represents the minimum integration with GNU autotools
24#      (automake in particular) such that 'make coverage' may be invoked
25#      at the top of the tree and all the prerequisites occur such
26#      that it executes successfully with no intervening make target
27#      invocations. The 'check-am' and '$(BUILT_SOURCES)' are the key
28#      automake-specific dependencies to ensure that happens.
29#
30#      This defines the following make targets:
31#
32#        coverage:
33#          Execute local and recursive coverage targets across the
34#          project sub-tree at the current invocation point.
35#
36#          This target is intended to be user-visibile and -invoked.
37#
38#        coverage-local:
39#          Execute local coverage targets at the current invocation point.
40#
41#          This target is intended to be user-visibile and -invoked.
42#
43#        coverage-recursive:
44#          Recursively execute the 'coverage' target across the
45#          project sub-tree at the current invocation point.
46#
47#          This target is NOT intended to be user-visibile and -invoked.
48#
49#        check-local:
50#          Alias for the 'check-am' target. Execute local check
51#          targets at the current invocation point. Local coverage targets
52#          may depend on this to ensure local tests are made before
53#          coverage targets are made.
54#
55#          This target is intended to be user-visibile and -invoked.
56#
57
58.PHONY: coverage coverage-recursive coverage-local check-local
59
60check-local: check-am
61
62coverage: coverage-local
63
64coverage: coverage-recursive
65
66coverage: check-am
67
68coverage: $(BUILT_SOURCES)
69
70coverage-recursive:
71	$(nl-make-subdirs)
72