17b453719SMasahiro Yamada# SPDX-License-Identifier: GPL-2.0-only 27b453719SMasahiro Yamada 35d4aeffbSMasahiro YamadaPHONY := __default 45d4aeffbSMasahiro Yamada__default: vmlinux 55d4aeffbSMasahiro Yamada 67b453719SMasahiro Yamadainclude include/config/auto.conf 77b453719SMasahiro Yamadainclude $(srctree)/scripts/Kbuild.include 87b453719SMasahiro Yamada 97b453719SMasahiro Yamada# for c_flags 107b453719SMasahiro Yamadainclude $(srctree)/scripts/Makefile.lib 117b453719SMasahiro Yamada 125d4aeffbSMasahiro Yamadatargets := 135d4aeffbSMasahiro Yamada 147b453719SMasahiro Yamadaquiet_cmd_cc_o_c = CC $@ 157b453719SMasahiro Yamada cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $< 167b453719SMasahiro Yamada 177b453719SMasahiro Yamada%.o: %.c FORCE 187b453719SMasahiro Yamada $(call if_changed_dep,cc_o_c) 197b453719SMasahiro Yamada 205d4aeffbSMasahiro Yamadaifdef CONFIG_MODULES 2142633ed8SSami TolvanenKASAN_SANITIZE_.vmlinux.export.o := n 22*e2d8abf5SJosh PoimboeufKCSAN_SANITIZE_.vmlinux.export.o := n 23ddf56288SSami TolvanenGCOV_PROFILE_.vmlinux.export.o := n 245d4aeffbSMasahiro Yamadatargets += .vmlinux.export.o 255d4aeffbSMasahiro Yamadavmlinux: .vmlinux.export.o 265d4aeffbSMasahiro Yamadaendif 275d4aeffbSMasahiro Yamada 285d4aeffbSMasahiro YamadaARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink) 295d4aeffbSMasahiro Yamada 305d4aeffbSMasahiro Yamada# Final link of vmlinux with optional arch pass after final link 315d4aeffbSMasahiro Yamadacmd_link_vmlinux = \ 325d4aeffbSMasahiro Yamada $< "$(LD)" "$(KBUILD_LDFLAGS)" "$(LDFLAGS_vmlinux)"; \ 335d4aeffbSMasahiro Yamada $(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true) 345d4aeffbSMasahiro Yamada 355d4aeffbSMasahiro Yamadatargets += vmlinux 365d4aeffbSMasahiro Yamadavmlinux: scripts/link-vmlinux.sh vmlinux.o $(KBUILD_LDS) FORCE 375d4aeffbSMasahiro Yamada +$(call if_changed_dep,link_vmlinux) 387b453719SMasahiro Yamada 397b453719SMasahiro Yamada# Add FORCE to the prequisites of a target to force it to be always rebuilt. 407b453719SMasahiro Yamada# --------------------------------------------------------------------------- 417b453719SMasahiro Yamada 427b453719SMasahiro YamadaPHONY += FORCE 437b453719SMasahiro YamadaFORCE: 447b453719SMasahiro Yamada 457b453719SMasahiro Yamada# Read all saved command lines and dependencies for the $(targets) we 467b453719SMasahiro Yamada# may be building above, using $(if_changed{,_dep}). As an 477b453719SMasahiro Yamada# optimization, we don't need to read them if the target does not 487b453719SMasahiro Yamada# exist, we will rebuild anyway in that case. 497b453719SMasahiro Yamada 507b453719SMasahiro Yamadaexisting-targets := $(wildcard $(sort $(targets))) 517b453719SMasahiro Yamada 527b453719SMasahiro Yamada-include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd) 537b453719SMasahiro Yamada 547b453719SMasahiro Yamada.PHONY: $(PHONY) 55