Merge tag 'for-linus-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml
[firefly-linux-kernel-4.4.55.git] / tools / build / Makefile.build
index 692e1b1542000fe3542e8bcd8e49effa563575a3..10df57237a66d26913a4baabd5949f3459f0a534 100644 (file)
@@ -13,8 +13,10 @@ __build:
 
 ifeq ($(V),1)
   quiet =
+  Q =
 else
   quiet=quiet_
+  Q=@
 endif
 
 build-dir := $(srctree)/tools/build
@@ -37,6 +39,9 @@ subdir-obj-y :=
 build-file := $(dir)/Build
 include $(build-file)
 
+quiet_cmd_flex  = FLEX     $@
+quiet_cmd_bison = BISON    $@
+
 # Create directory unless it exists
 quiet_cmd_mkdir = MKDIR    $(dir $@)
       cmd_mkdir = mkdir -p $(dir $@)
@@ -46,6 +51,12 @@ quiet_cmd_mkdir = MKDIR    $(dir $@)
 quiet_cmd_cc_o_c = CC       $@
       cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
 
+quiet_cmd_cc_i_c = CPP      $@
+      cmd_cc_i_c = $(CC) $(c_flags) -E -o $@ $<
+
+quiet_cmd_cc_s_c = AS       $@
+      cmd_cc_s_c = $(CC) $(c_flags) -S -o $@ $<
+
 # Link agregate command
 # If there's nothing to link, create empty $@ object.
 quiet_cmd_ld_multi = LD       $@
@@ -61,6 +72,18 @@ $(OUTPUT)%.o: %.S FORCE
        $(call rule_mkdir)
        $(call if_changed_dep,cc_o_c)
 
+$(OUTPUT)%.i: %.c FORCE
+       $(call rule_mkdir)
+       $(call if_changed_dep,cc_i_c)
+
+$(OUTPUT)%.i: %.S FORCE
+       $(call rule_mkdir)
+       $(call if_changed_dep,cc_i_c)
+
+$(OUTPUT)%.s: %.c FORCE
+       $(call rule_mkdir)
+       $(call if_changed_dep,cc_s_c)
+
 # Gather build data:
 #   obj-y        - list of build objects
 #   subdir-y     - list of directories to nest
@@ -81,7 +104,7 @@ in-target := $(prefix)$(obj)-in.o
 PHONY += $(subdir-y)
 
 $(subdir-y):
-       @$(MAKE) -f $(build-dir)/Makefile.build dir=$(dir)/$@ obj=$(obj)
+       $(Q)$(MAKE) -f $(build-dir)/Makefile.build dir=$(dir)/$@ obj=$(obj)
 
 $(sort $(subdir-obj-y)): $(subdir-y) ;
 
@@ -97,7 +120,7 @@ FORCE:
 
 # Include all cmd files to get all the dependency rules
 # for all objects included
-targets   := $(wildcard $(sort $(obj-y) $(in-target)))
+targets   := $(wildcard $(sort $(obj-y) $(in-target) $(MAKECMDGOALS)))
 cmd_files := $(wildcard $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd))
 
 ifneq ($(cmd_files),)