17b453719SMasahiro Yamada# SPDX-License-Identifier: GPL-2.0-only 27b453719SMasahiro Yamada 3*5d4aeffbSMasahiro YamadaPHONY := __default 4*5d4aeffbSMasahiro Yamada__default: vmlinux 5*5d4aeffbSMasahiro 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 12*5d4aeffbSMasahiro Yamadatargets := 13*5d4aeffbSMasahiro 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 20*5d4aeffbSMasahiro Yamadaifdef CONFIG_MODULES 21*5d4aeffbSMasahiro Yamadatargets += .vmlinux.export.o 22*5d4aeffbSMasahiro Yamadavmlinux: .vmlinux.export.o 23*5d4aeffbSMasahiro Yamadaendif 24*5d4aeffbSMasahiro Yamada 25*5d4aeffbSMasahiro YamadaARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink) 26*5d4aeffbSMasahiro Yamada 27*5d4aeffbSMasahiro Yamada# Final link of vmlinux with optional arch pass after final link 28*5d4aeffbSMasahiro Yamadacmd_link_vmlinux = \ 29*5d4aeffbSMasahiro Yamada $< "$(LD)" "$(KBUILD_LDFLAGS)" "$(LDFLAGS_vmlinux)"; \ 30*5d4aeffbSMasahiro Yamada $(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true) 31*5d4aeffbSMasahiro Yamada 32*5d4aeffbSMasahiro Yamadatargets += vmlinux 33*5d4aeffbSMasahiro Yamadavmlinux: scripts/link-vmlinux.sh vmlinux.o $(KBUILD_LDS) FORCE 34*5d4aeffbSMasahiro Yamada +$(call if_changed_dep,link_vmlinux) 357b453719SMasahiro Yamada 367b453719SMasahiro Yamada# Add FORCE to the prequisites of a target to force it to be always rebuilt. 377b453719SMasahiro Yamada# --------------------------------------------------------------------------- 387b453719SMasahiro Yamada 397b453719SMasahiro YamadaPHONY += FORCE 407b453719SMasahiro YamadaFORCE: 417b453719SMasahiro Yamada 427b453719SMasahiro Yamada# Read all saved command lines and dependencies for the $(targets) we 437b453719SMasahiro Yamada# may be building above, using $(if_changed{,_dep}). As an 447b453719SMasahiro Yamada# optimization, we don't need to read them if the target does not 457b453719SMasahiro Yamada# exist, we will rebuild anyway in that case. 467b453719SMasahiro Yamada 477b453719SMasahiro Yamadaexisting-targets := $(wildcard $(sort $(targets))) 487b453719SMasahiro Yamada 497b453719SMasahiro Yamada-include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd) 507b453719SMasahiro Yamada 517b453719SMasahiro Yamada.PHONY: $(PHONY) 52