diff options
| author | Jan Beulich <jbeulich@novell.com> | 2006-01-30 04:04:27 -0500 |
|---|---|---|
| committer | Sam Ravnborg <sam@mars.ravnborg.org> | 2006-02-19 03:51:21 -0500 |
| commit | 6176aa9ae4b83e1957d3031774f8a8e59ff97420 (patch) | |
| tree | 7b44789ab8d87f721c5d9fcd10a9a5cb0e5d65d1 /scripts | |
| parent | 20a468b51325b3636785a8ca0047ae514b39cbd5 (diff) | |
kbuild: consolidate command line escaping
While the recent change to also escape # symbols when storing C-file
compilation command lines was helpful, it should be in effect for all
command lines, as much as the dollar escaping should be in effect for
C-source compilation commands. Additionally, for better readability and
maintenance, consolidating all the escaping (single quotes, dollars,
and now sharps) was also desirable.
Signed-Off-By: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/Kbuild.include | 15 | ||||
| -rw-r--r-- | scripts/Makefile.build | 8 | ||||
| -rw-r--r-- | scripts/basic/fixdep.c | 14 |
3 files changed, 12 insertions, 25 deletions
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index 92ce94b58b..3e7e0b278b 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include | |||
| @@ -88,8 +88,7 @@ cc-ifversion = $(shell if [ $(call cc-version, $(CC)) $(1) $(2) ]; then \ | |||
| 88 | build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj | 88 | build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj |
| 89 | 89 | ||
| 90 | # If quiet is set, only print short version of command | 90 | # If quiet is set, only print short version of command |
| 91 | cmd = @$(if $($(quiet)cmd_$(1)),\ | 91 | cmd = @$(echo-cmd) $(cmd_$(1)) |
| 92 | echo ' $(call escsq,$($(quiet)cmd_$(1)))' &&) $(cmd_$(1)) | ||
| 93 | 92 | ||
| 94 | # Add $(obj)/ for paths that is not absolute | 93 | # Add $(obj)/ for paths that is not absolute |
| 95 | objectify = $(foreach o,$(1),$(if $(filter /%,$(o)),$(o),$(obj)/$(o))) | 94 | objectify = $(foreach o,$(1),$(if $(filter /%,$(o)),$(o),$(obj)/$(o))) |
| @@ -112,24 +111,24 @@ endif | |||
| 112 | echo-cmd = $(if $($(quiet)cmd_$(1)), \ | 111 | echo-cmd = $(if $($(quiet)cmd_$(1)), \ |
| 113 | echo ' $(call escsq,$($(quiet)cmd_$(1)))';) | 112 | echo ' $(call escsq,$($(quiet)cmd_$(1)))';) |
| 114 | 113 | ||
| 114 | make-cmd = $(subst \#,\\\#,$(subst $$,$$$$,$(call escsq,$(cmd_$(1))))) | ||
| 115 | |||
| 115 | # function to only execute the passed command if necessary | 116 | # function to only execute the passed command if necessary |
| 116 | # >'< substitution is for echo to work, >$< substitution to preserve $ when reloading .cmd file | 117 | # >'< substitution is for echo to work, >$< substitution to preserve $ when reloading .cmd file |
| 117 | # note: when using inline perl scripts [perl -e '...$$t=1;...'] in $(cmd_xxx) double $$ your perl vars | 118 | # note: when using inline perl scripts [perl -e '...$$t=1;...'] in $(cmd_xxx) double $$ your perl vars |
| 118 | # | 119 | # |
| 119 | if_changed = $(if $(strip $? $(call arg-check, $(cmd_$(1)), $(cmd_$@)) ), \ | 120 | if_changed = $(if $(strip $? $(call arg-check, $(cmd_$(1)), $(cmd_$@)) ), \ |
| 120 | @set -e; \ | 121 | @set -e; \ |
| 121 | $(echo-cmd) \ | 122 | $(echo-cmd) $(cmd_$(1)); \ |
| 122 | $(cmd_$(1)); \ | 123 | echo 'cmd_$@ := $(make-cmd)' > $(@D)/.$(@F).cmd) |
| 123 | echo 'cmd_$@ := $(subst $$,$$$$,$(call escsq,$(cmd_$(1))))' > $(@D)/.$(@F).cmd) | ||
| 124 | 124 | ||
| 125 | # execute the command and also postprocess generated .d dependencies | 125 | # execute the command and also postprocess generated .d dependencies |
| 126 | # file | 126 | # file |
| 127 | if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\ | 127 | if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\ |
| 128 | $(call arg-check, $(cmd_$(1)), $(cmd_$@)) ), \ | 128 | $(call arg-check, $(cmd_$(1)), $(cmd_$@)) ), \ |
| 129 | @set -e; \ | 129 | @set -e; \ |
| 130 | $(echo-cmd) \ | 130 | $(echo-cmd) $(cmd_$(1)); \ |
| 131 | $(cmd_$(1)); \ | 131 | scripts/basic/fixdep $(depfile) $@ '$(make-cmd)' > $(@D)/.$(@F).tmp; \ |
| 132 | scripts/basic/fixdep $(depfile) $@ '$(subst $$,$$$$,$(call escsq,$(cmd_$(1))))' > $(@D)/.$(@F).tmp; \ | ||
| 133 | rm -f $(depfile); \ | 132 | rm -f $(depfile); \ |
| 134 | mv -f $(@D)/.$(@F).tmp $(@D)/.$(@F).cmd) | 133 | mv -f $(@D)/.$(@F).tmp $(@D)/.$(@F).cmd) |
| 135 | 134 | ||
diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 2737765f2f..6ac96ea92b 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build | |||
| @@ -178,12 +178,10 @@ cmd_modversions = \ | |||
| 178 | endif | 178 | endif |
| 179 | 179 | ||
| 180 | define rule_cc_o_c | 180 | define rule_cc_o_c |
| 181 | $(if $($(quiet)cmd_checksrc),echo ' $($(quiet)cmd_checksrc)';) \ | 181 | $(call echo-cmd,checksrc) $(cmd_checksrc) \ |
| 182 | $(cmd_checksrc) \ | 182 | $(call echo-cmd,cc_o_c) $(cmd_cc_o_c); \ |
| 183 | $(if $($(quiet)cmd_cc_o_c),echo ' $(call escsq,$($(quiet)cmd_cc_o_c))';) \ | ||
| 184 | $(cmd_cc_o_c); \ | ||
| 185 | $(cmd_modversions) \ | 183 | $(cmd_modversions) \ |
| 186 | scripts/basic/fixdep $(depfile) $@ '$(call escsq,$(cmd_cc_o_c))' > $(@D)/.$(@F).tmp; \ | 184 | scripts/basic/fixdep $(depfile) $@ '$(call make-cmd,cc_o_c)' > $(@D)/.$(@F).tmp; \ |
| 187 | rm -f $(depfile); \ | 185 | rm -f $(depfile); \ |
| 188 | mv -f $(@D)/.$(@F).tmp $(@D)/.$(@F).cmd | 186 | mv -f $(@D)/.$(@F).tmp $(@D)/.$(@F).cmd |
| 189 | endef | 187 | endef |
diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c index 679124b11e..668a11a8b3 100644 --- a/scripts/basic/fixdep.c +++ b/scripts/basic/fixdep.c | |||
| @@ -132,20 +132,10 @@ void usage(void) | |||
| 132 | 132 | ||
| 133 | /* | 133 | /* |
| 134 | * Print out the commandline prefixed with cmd_<target filename> := | 134 | * Print out the commandline prefixed with cmd_<target filename> := |
| 135 | * If commandline contains '#' escape with '\' so make to not see | 135 | */ |
| 136 | * the '#' as a start-of-comment symbol | ||
| 137 | **/ | ||
| 138 | void print_cmdline(void) | 136 | void print_cmdline(void) |
| 139 | { | 137 | { |
| 140 | char *p = cmdline; | 138 | printf("cmd_%s := %s\n\n", target, cmdline); |
| 141 | |||
| 142 | printf("cmd_%s := ", target); | ||
| 143 | for (; *p; p++) { | ||
| 144 | if (*p == '#') | ||
| 145 | printf("\\"); | ||
| 146 | printf("%c", *p); | ||
| 147 | } | ||
| 148 | printf("\n\n"); | ||
| 149 | } | 139 | } |
| 150 | 140 | ||
| 151 | char * str_config = NULL; | 141 | char * str_config = NULL; |
