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 | 20 | ifdef CONFIG_MODULES |
42633ed8 | 21 | KASAN_SANITIZE_.vmlinux.export.o := n |
2d7ce49f | 22 | KCSAN_SANITIZE_.vmlinux.export.o := n |
ddf56288 | 23 | GCOV_PROFILE_.vmlinux.export.o := n |
5d4aeffb MY |
24 | targets += .vmlinux.export.o |
25 | vmlinux: .vmlinux.export.o | |
26 | endif | |
27 | ||
28 | ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink) | |
29 | ||
30 | # Final link of vmlinux with optional arch pass after final link | |
31 | cmd_link_vmlinux = \ | |
32 | $< "$(LD)" "$(KBUILD_LDFLAGS)" "$(LDFLAGS_vmlinux)"; \ | |
33 | $(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true) | |
34 | ||
35 | targets += vmlinux | |
36 | vmlinux: scripts/link-vmlinux.sh vmlinux.o $(KBUILD_LDS) FORCE | |
37 | +$(call if_changed_dep,link_vmlinux) | |
7b453719 MY |
38 | |
39 | # Add FORCE to the prequisites of a target to force it to be always rebuilt. | |
40 | # --------------------------------------------------------------------------- | |
41 | ||
42 | PHONY += FORCE | |
43 | FORCE: | |
44 | ||
45 | # Read all saved command lines and dependencies for the $(targets) we | |
46 | # may be building above, using $(if_changed{,_dep}). As an | |
47 | # optimization, we don't need to read them if the target does not | |
48 | # exist, we will rebuild anyway in that case. | |
49 | ||
50 | existing-targets := $(wildcard $(sort $(targets))) | |
51 | ||
52 | -include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd) | |
53 | ||
54 | .PHONY: $(PHONY) |