Commit | Line | Data |
---|---|---|
7b453719 MY |
1 | # SPDX-License-Identifier: GPL-2.0-only |
2 | ||
5d4aeffb MY |
3 | PHONY := __default |
4 | __default: vmlinux | |
5 | ||
7b453719 MY |
6 | include include/config/auto.conf |
7 | include $(srctree)/scripts/Kbuild.include | |
8 | ||
9 | # for c_flags | |
10 | include $(srctree)/scripts/Makefile.lib | |
11 | ||
5d4aeffb MY |
12 | targets := |
13 | ||
7b453719 MY |
14 | quiet_cmd_cc_o_c = CC $@ |
15 | cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $< | |
16 | ||
17 | %.o: %.c FORCE | |
18 | $(call if_changed_dep,cc_o_c) | |
19 | ||
5d4aeffb MY |
20 | ifdef CONFIG_MODULES |
21 | targets += .vmlinux.export.o | |
22 | vmlinux: .vmlinux.export.o | |
23 | endif | |
24 | ||
25 | ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink) | |
26 | ||
27 | # Final link of vmlinux with optional arch pass after final link | |
28 | cmd_link_vmlinux = \ | |
29 | $< "$(LD)" "$(KBUILD_LDFLAGS)" "$(LDFLAGS_vmlinux)"; \ | |
30 | $(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true) | |
31 | ||
32 | targets += vmlinux | |
33 | vmlinux: scripts/link-vmlinux.sh vmlinux.o $(KBUILD_LDS) FORCE | |
34 | +$(call if_changed_dep,link_vmlinux) | |
7b453719 MY |
35 | |
36 | # Add FORCE to the prequisites of a target to force it to be always rebuilt. | |
37 | # --------------------------------------------------------------------------- | |
38 | ||
39 | PHONY += FORCE | |
40 | FORCE: | |
41 | ||
42 | # Read all saved command lines and dependencies for the $(targets) we | |
43 | # may be building above, using $(if_changed{,_dep}). As an | |
44 | # optimization, we don't need to read them if the target does not | |
45 | # exist, we will rebuild anyway in that case. | |
46 | ||
47 | existing-targets := $(wildcard $(sort $(targets))) | |
48 | ||
49 | -include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd) | |
50 | ||
51 | .PHONY: $(PHONY) |