1#
2#    Copyright 2018 Nest Labs Inc. All Rights Reserved.
3#
4#    Licensed under the Apache License, Version 2.0 (the "License");
5#    you may not use this file except in compliance with the License.
6#    You may obtain a copy of the License at
7#
8#    http://www.apache.org/licenses/LICENSE-2.0
9#
10#    Unless required by applicable law or agreed to in writing, software
11#    distributed under the License is distributed on an "AS IS" BASIS,
12#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13#    See the License for the specific language governing permissions and
14#    limitations under the License.
15#
16
17#
18#    Description:
19#      This file is the make footer for nlbuild-autotools bootstrap
20#      convenience targets.
21#
22
23# The following targets provide some convenience targets for bootstrapping
24# the GNU autotools-based build system used by this package.
25
26all check coverage dist distcheck doc docdist install install-headers pretty pretty-check: Makefile
27	$(NL_V_PROGRESS_MAKE)
28	$(MAKE) -f $(<) --no-print-directory $(@)
29
30Makefile: $(top_srcdir)/Makefile.in $(top_srcdir)/configure
31	$(NL_V_PROGRESS_CONFIGURE)
32	$(top_srcdir)/configure
33
34$(top_srcdir)/configure: $(top_srcdir)/configure.ac
35	$(NL_V_PROGRESS_BOOTSTRAP_CONFIG)
36	$(BOOTSTRAP) -w config
37
38Makefile.in: Makefile.am
39	$(NL_V_PROGRESS_BOOTSTRAP_MAKE)
40	$(BOOTSTRAP) -w make
41
42.PHONY: bootstrap
43bootstrap:
44	$(NL_V_PROGRESS_BOOTSTRAP_ALL)
45	$(BOOTSTRAP) -w all
46
47.PHONY: bootstrap-config
48bootstrap-config:
49	$(NL_V_PROGRESS_BOOTSTRAP_CONFIG)
50	$(BOOTSTRAP) -w config
51
52.PHONY: bootstrap-make
53bootstrap-make:
54	$(NL_V_PROGRESS_BOOTSTRAP_MAKE)
55	$(BOOTSTRAP) -w make
56
57define PrintBootstrapHelp
58$(NL_V_AT)echo "  all"
59$(NL_V_AT)echo "    Generate all configured build artifacts for this project."
60$(NL_V_AT)echo
61$(NL_V_AT)echo "  bootstrap"
62$(NL_V_AT)echo "    (Re-)generate all build infrastructure for the project, "
63$(NL_V_AT)echo "    including both build configuration scripts and makefiles."
64$(NL_V_AT)echo
65$(NL_V_AT)echo "  bootstrap-all"
66$(NL_V_AT)echo "    (Re-)generate all build infrastructure for the project, "
67$(NL_V_AT)echo "    including both build configuration scripts and makefiles."
68$(NL_V_AT)echo
69$(NL_V_AT)echo "  bootstrap-config"
70$(NL_V_AT)echo "    (Re-)generate build configuration scripts for the project."
71$(NL_V_AT)echo
72$(NL_V_AT)echo "  bootstrap-make"
73$(NL_V_AT)echo "    (Re-)generate build makefiles for the project."
74$(NL_V_AT)echo
75$(NL_V_AT)echo "  check"
76$(NL_V_AT)echo "    Generate all configured build artifacts and run all unit "
77$(NL_V_AT)echo "    and functional tests for this project."
78$(NL_V_AT)echo
79$(NL_V_AT)echo "  coverage"
80$(NL_V_AT)echo "    Generate all configured build artifacts, run all unit "
81$(NL_V_AT)echo "    and functional tests, and generate code coverage results "
82$(NL_V_AT)echo "    for this project."
83$(NL_V_AT)echo
84$(NL_V_AT)echo "  dist"
85$(NL_V_AT)echo "    Generate an archive distribution snapshot for this project."
86$(NL_V_AT)echo
87$(NL_V_AT)echo "  distcheck"
88$(NL_V_AT)echo "    Generate an archive distribution snapshot for this project "
89$(NL_V_AT)echo "    and sanity check the resulting distribution by running "
90$(NL_V_AT)echo "    'make check' on it for this project."
91$(NL_V_AT)echo
92$(NL_V_AT)echo "  doc"
93$(NL_V_AT)echo "    Generate documentation for the project."
94$(NL_V_AT)echo
95$(NL_V_AT)echo "  docdist"
96$(NL_V_AT)echo "    Generate an archive distribution of the documentation for "
97$(NL_V_AT)echo "    the project."
98$(NL_V_AT)echo
99$(NL_V_AT)echo "  install"
100$(NL_V_AT)echo "    Generate all configured build artifacts for this project "
101$(NL_V_AT)echo "    and install them in DESTDIR on the build host system."
102$(NL_V_AT)echo
103$(NL_V_AT)echo "  install-headers"
104$(NL_V_AT)echo "    Generate all configured public header artifacts for this "
105$(NL_V_AT)echo "    project and install them in DESTDIR on the build host "
106$(NL_V_AT)echo "    system."
107$(NL_V_AT)echo
108$(NL_V_AT)echo "  pretty"
109$(NL_V_AT)echo "    (Re-)format a collection of project source files."
110$(NL_V_AT)echo
111$(NL_V_AT)echo "  pretty-check"
112$(NL_V_AT)echo "    Check but do not (re-)format a collection of project "
113$(NL_V_AT)echo "    source files."
114$(NL_V_AT)echo
115$(NL_V_AT)echo "  Makefile"
116$(NL_V_AT)echo "    Run 'configure' for this project and generate the"
117$(NL_V_AT)echo "    host-specific makefile."
118$(NL_V_AT)echo
119endef # PrintBootstrapHelp
120
121.PHONY: help-bootstrap-local
122help-bootstrap-local:
123	$(call PrintBootstrapHelp)
124
125.PHONY: help-bootstrap-hook
126help-bootstrap-hook: help-bootstrap-local
127
128.PHONY: help-bootstrap
129help-bootstrap: help-bootstrap-local help-bootstrap-hook
130
131.PHONY: help
132help: help-bootstrap
133
134