Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.17.
  1# SPDX-License-Identifier: GPL-2.0-only
  2
  3PHONY := __default
  4__default: vmlinux
  5
  6include include/config/auto.conf
  7include $(srctree)/scripts/Kbuild.include
  8include $(srctree)/scripts/Makefile.lib
  9
 10targets :=
 11
 12%.o: %.c FORCE
 13	$(call if_changed_rule,cc_o_c)
 14
 15%.o: %.S FORCE
 16	$(call if_changed_rule,as_o_S)
 17
 18# Built-in dtb
 19# ---------------------------------------------------------------------------
 20
 21quiet_cmd_wrap_dtbs = WRAP    $@
 22      cmd_wrap_dtbs = {							\
 23	echo '\#include <asm-generic/vmlinux.lds.h>';			\
 24	echo '.section .dtb.init.rodata,"a"';				\
 25	while read dtb; do						\
 26		symbase=__dtb_$$(basename -s .dtb "$${dtb}" | tr - _);	\
 27		echo '.balign STRUCT_ALIGNMENT';			\
 28		echo ".global $${symbase}_begin";			\
 29		echo "$${symbase}_begin:";				\
 30		echo '.incbin "'$$dtb'" ';				\
 31		echo ".global $${symbase}_end";				\
 32		echo "$${symbase}_end:";				\
 33	done < $<;							\
 34	} > $@
 35
 36.builtin-dtbs.S: .builtin-dtbs-list FORCE
 37	$(call if_changed,wrap_dtbs)
 38
 39quiet_cmd_gen_dtbs_list = GEN     $@
 40      cmd_gen_dtbs_list = \
 41	$(if $(CONFIG_BUILTIN_DTB_NAME), echo "arch/$(SRCARCH)/boot/dts/$(CONFIG_BUILTIN_DTB_NAME).dtb",:) > $@
 42
 43.builtin-dtbs-list: arch/$(SRCARCH)/boot/dts/dtbs-list FORCE
 44	$(call if_changed,$(if $(CONFIG_BUILTIN_DTB_ALL),copy,gen_dtbs_list))
 45
 46targets += .builtin-dtbs-list
 47
 48ifdef CONFIG_GENERIC_BUILTIN_DTB
 49targets += .builtin-dtbs.S .builtin-dtbs.o
 50vmlinux: .builtin-dtbs.o
 51endif
 52
 53# vmlinux
 54# ---------------------------------------------------------------------------
 55
 56ifdef CONFIG_MODULES
 57targets += .vmlinux.export.o
 58vmlinux: .vmlinux.export.o
 59endif
 60
 61ifdef CONFIG_ARCH_WANTS_PRE_LINK_VMLINUX
 62vmlinux: arch/$(SRCARCH)/tools/vmlinux.arch.o
 63
 64arch/$(SRCARCH)/tools/vmlinux.arch.o: __KEEPMAKEFILEO__B.o FORCE
 65	$(Q)$(MAKE) $(build)=arch/$(SRCARCH)/tools $@
 66endif
 67
 68ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink)
 69
 70# Final link of vmlinux with optional arch pass after final link
 71cmd_link_vmlinux =							\
 72	$< "$(LD)" "$(KBUILD_LDFLAGS)" "$(LDFLAGS_vmlinux)";		\
 73	$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true)
 74
 75targets += vmlinux
 76vmlinux: scripts/link-vmlinux.sh __KEEPMAKEFILEO__C.o $(KBUILD_LDS) FORCE
 77	+$(call if_changed_dep,link_vmlinux)
 78ifdef CONFIG_DEBUG_INFO_BTF
 79vmlinux: $(RESOLVE_BTFIDS)
 80endif
 81
 82# module.builtin.ranges
 83# ---------------------------------------------------------------------------
 84ifdef CONFIG_BUILTIN_MODULE_RANGES
 85__default: modules.builtin.ranges
 86
 87quiet_cmd_modules_builtin_ranges = GEN     $@
 88      cmd_modules_builtin_ranges = gawk -f $(real-prereqs) > $@
 89
 90targets += modules.builtin.ranges
 91modules.builtin.ranges: $(srctree)/scripts/generate_builtin_ranges.awk \
 92			modules.builtin vmlinux.map __KEEPMAKEFILEO__D.o.map FORCE
 93	$(call if_changed,modules_builtin_ranges)
 94
 95vmlinux.map: vmlinux
 96	@:
 97
 98endif
 99
100# Add FORCE to the prerequisites of a target to force it to be always rebuilt.
101# ---------------------------------------------------------------------------
102
103PHONY += FORCE
104FORCE:
105
106# Read all saved command lines and dependencies for the $(targets) we
107# may be building above, using $(if_changed{,_dep}). As an
108# optimization, we don't need to read them if the target does not
109# exist, we will rebuild anyway in that case.
110
111existing-targets := $(wildcard $(sort $(targets)))
112
113-include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd)
114
115.PHONY: $(PHONY)