Lines Matching +full:build +full:- +full:rules
1 # SPDX-License-Identifier: GPL-2.0
3 # Main build makefile.
9 # Copyright (C) Linus Torvalds <torvalds@linux-foundation.org>, 2015
15 build-dir := $(srctree)/tools/build
17 # Define $(fixdep) for dep-cmd function
19 fixdep := $(build-dir)/fixdep
25 include $(build-dir)/Build.include
28 -include $(OUTPUT).config-detected
30 # Init all relevant variables used in build files so
33 subdir-y :=
34 obj-y :=
35 subdir-y :=
36 subdir-obj-y :=
38 # Build definitions
39 build-file := $(dir)/Build
40 -include $(build-file)
48 cmd_mkdir = mkdir -p $(dir $@)
49 rule_mkdir = $(if $(wildcard $(dir $@)),,@$(call echo-cmd,mkdir) $(cmd_mkdir))
53 cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
56 cmd_host_cc_o_c = $(HOSTCC) $(host_c_flags) -c -o $@ $<
59 cmd_cxx_o_c = $(CXX) $(cxx_flags) -c -o $@ $<
62 cmd_cpp_i_c = $(CC) $(c_flags) -E -o $@ $<
65 cmd_cc_s_c = $(CC) $(c_flags) -S -o $@ $<
72 cmd_ld_multi = $(if $(strip $(obj-y)),\
73 $(LD) -r -o $@ $(filter $(obj-y),$^),rm -f $@; $(AR) rcs $@)
76 cmd_host_ld_multi = $(if $(strip $(obj-y)),\
77 $(HOSTLD) -r -o $@ $(filter $(obj-y),$^),rm -f $@; $(HOSTAR) rcs $@)
83 # Build rules
110 $(OUTPUT)%-bison.o: $(OUTPUT)%-bison.c FORCE
114 $(OUTPUT)%-flex.o: $(OUTPUT)%-flex.c FORCE
118 # Gather build data:
119 # obj-y - list of build objects
120 # subdir-y - list of directories to nest
121 # subdir-obj-y - list of directories objects 'dir/$(obj)-in.o'
122 obj-y := $($(obj)-y)
123 subdir-y := $(patsubst %/,%,$(filter %/, $(obj-y)))
124 obj-y := $(patsubst %/, %/$(obj)-in.o, $(obj-y))
125 subdir-obj-y := $(filter %/$(obj)-in.o, $(obj-y))
129 obj-y := $(addprefix $(objprefix),$(obj-y))
130 subdir-obj-y := $(addprefix $(objprefix),$(subdir-obj-y))
132 # Final '$(obj)-in.o' object
133 in-target := $(objprefix)$(obj)-in.o
135 PHONY += $(subdir-y)
137 $(subdir-y):
138 $(Q)$(MAKE) -f $(build-dir)/Makefile.build dir=$(dir)/$@ obj=$(obj)
140 $(sort $(subdir-obj-y)): $(subdir-y) ;
142 $(in-target): $(obj-y) FORCE
146 __build: $(in-target)
152 # Include all cmd files to get all the dependency rules
154 targets := $(wildcard $(sort $(obj-y) $(in-target) $(MAKECMDGOALS)))