|
@@ -54,15 +54,20 @@ make-cmd = $(call escsq,$(subst \#,\\\#,$(subst $$,$$$$,$(cmd_$(1)))))
|
|
# PHONY targets skipped in both cases.
|
|
# PHONY targets skipped in both cases.
|
|
any-prereq = $(filter-out $(PHONY),$?) $(filter-out $(PHONY) $(wildcard $^),$^)
|
|
any-prereq = $(filter-out $(PHONY),$?) $(filter-out $(PHONY) $(wildcard $^),$^)
|
|
|
|
|
|
|
|
+###
|
|
|
|
+# Copy dependency data into .cmd file
|
|
|
|
+# - gcc -M dependency info
|
|
|
|
+# - command line to create object 'cmd_object :='
|
|
|
|
+dep-cmd = cat $(depfile) > $(dot-target).cmd; \
|
|
|
|
+ printf '%s\n' 'cmd_$@ := $(make-cmd)' >> $(dot-target).cmd
|
|
|
|
+
|
|
###
|
|
###
|
|
# if_changed_dep - execute command if any prerequisite is newer than
|
|
# if_changed_dep - execute command if any prerequisite is newer than
|
|
# target, or command line has changed and update
|
|
# target, or command line has changed and update
|
|
# dependencies in the cmd file
|
|
# dependencies in the cmd file
|
|
if_changed_dep = $(if $(strip $(any-prereq) $(arg-check)), \
|
|
if_changed_dep = $(if $(strip $(any-prereq) $(arg-check)), \
|
|
@set -e; \
|
|
@set -e; \
|
|
- $(echo-cmd) $(cmd_$(1)); \
|
|
|
|
- cat $(depfile) > $(dot-target).cmd; \
|
|
|
|
- printf '%s\n' 'cmd_$@ := $(make-cmd)' >> $(dot-target).cmd)
|
|
|
|
|
|
+ $(echo-cmd) $(cmd_$(1)) && $(dep-cmd))
|
|
|
|
|
|
# if_changed - execute command if any prerequisite is newer than
|
|
# if_changed - execute command if any prerequisite is newer than
|
|
# target, or command line has changed
|
|
# target, or command line has changed
|