summaryrefslogtreecommitdiff
path: root/ct-ng.in
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2018-03-17 22:16:56 (GMT)
committerAlexey Neyman <stilor@att.net>2018-04-07 19:03:17 (GMT)
commit0dc8565c4fa521e71667030ec0f994aa4f3918ec (patch)
tree097d6fb0bd95a05e212d543088e7aa3c9c2b3a01 /ct-ng.in
parent35b830b55233bd932f0bcb32aff04abb1d9b3c75 (diff)
Merge steps.mk into ct-ng
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'ct-ng.in')
-rw-r--r--ct-ng.in57
1 files changed, 57 insertions, 0 deletions
diff --git a/ct-ng.in b/ct-ng.in
index 761b885..0b1e47d 100644
--- a/ct-ng.in
+++ b/ct-ng.in
@@ -136,6 +136,7 @@ help-samples::
help-build::
@echo
@echo 'Build actions (#: force number of // jobs):'
+ @echo ' list-steps - List all build steps'
help-clean::
@echo
@@ -152,6 +153,8 @@ help-env::
else \
echo 'Environment variables (see http://crosstool-ng.github.io/docs/build/)'; \
fi
+ @echo ' STOP=step - Stop the build just after this step (list with list-steps)'
+ @echo ' RESTART=step - Restart the build just before this step (list with list-steps)'
help-tail::
@echo
@@ -213,6 +216,60 @@ build: .config
build.%:
$(SILENT)$(MAKE) -rf $(CT_NG) build CT_JOBS=$*
+# The _for_build steps are noop for native and cross,
+# but are actual steps for canadian and cross-native.
+# Please keep the last line with a '\' and keep the following empty line:
+# it helps when diffing and merging.
+CT_STEPS := \
+ companion_tools_for_build \
+ companion_libs_for_build \
+ binutils_for_build \
+ companion_tools_for_host \
+ companion_libs_for_host \
+ binutils_for_host \
+ cc_core_pass_1 \
+ kernel_headers \
+ libc_start_files \
+ cc_core_pass_2 \
+ libc \
+ cc_for_build \
+ cc_for_host \
+ libc_post_cc \
+ companion_libs_for_target \
+ binutils_for_target \
+ debug \
+ test_suite \
+ finish \
+
+# Keep an empty line above this comment, so the last
+# back-slash terminated line works as expected.
+
+# Make the list available to sub-processes (scripts/crosstool-NG.sh needs it)
+export CT_STEPS
+
+# Print the steps list
+PHONY += list-steps
+list-steps:
+ @echo 'Available build steps, in order:'
+ @for step in $(CT_STEPS); do \
+ echo " - $${step}"; \
+ done
+ @echo 'Use "<step>" as action to execute only that step.'
+ @echo 'Use "+<step>" as action to execute up to that step.'
+ @echo 'Use "<step>+" as action to execute from that step onward.'
+
+# ----------------------------------------------------------
+# This part deals with executing steps
+
+$(CT_STEPS):
+ $(SILENT)$(MAKE) -rf $(CT_NG) V=$(V) RESTART=$@ STOP=$@ build
+
+$(patsubst %,+%,$(CT_STEPS)):
+ $(SILENT)$(MAKE) -rf $(CT_NG) V=$(V) STOP=$(patsubst +%,%,$@) build
+
+$(patsubst %,%+,$(CT_STEPS)):
+ $(SILENT)$(MAKE) -rf $(CT_NG) V=$(V) RESTART=$(patsubst %+,%,$@) build
+
PHONY += version
version:
@echo 'This is crosstool-NG version $(CT_VERSION)'