117 lines · 3.1 KB · Text
RawDownload
# SPDX-License-Identifier: GPL-2.0## Kbuild for top-level directory of the kernel # Prepare global headers and check sanity before descending into sub-directories# --------------------------------------------------------------------------- # Generate bounds.h bounds-file := include/generated/bounds.h targets := kernel/bounds.s $(bounds-file): kernel/bounds.s FORCE	$(call filechk,offsets,__LINUX_BOUNDS_H__) # Generate timeconst.h timeconst-file := include/generated/timeconst.h filechk_gentimeconst = echo $(CONFIG_HZ) | bc -q $< $(timeconst-file): kernel/time/timeconst.bc FORCE	$(call filechk,gentimeconst) # Generate asm-offsets.h offsets-file := include/generated/asm-offsets.h targets += arch/$(SRCARCH)/kernel/asm-offsets.s arch/$(SRCARCH)/kernel/asm-offsets.s: $(timeconst-file) $(bounds-file) $(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s FORCE	$(call filechk,offsets,__ASM_OFFSETS_H__) # Generate rq-offsets.h rq-offsets-file := include/generated/rq-offsets.h targets += kernel/sched/rq-offsets.s kernel/sched/rq-offsets.s: $(offsets-file) $(rq-offsets-file): kernel/sched/rq-offsets.s FORCE	$(call filechk,offsets,__RQ_OFFSETS_H__) # Check for missing system calls missing-syscalls-file := .tmp_missing-syscalls$(missing_syscalls_instance) targets += $(missing-syscalls-file) quiet_cmd_syscalls = CALL    $< $(addprefix for ,$(missing_syscalls_instance))      cmd_syscalls = DEPFILE=$(depfile) $(CONFIG_SHELL) $< $(CC) $(c_flags) $(missing_syscalls_flags); touch $@ $(missing-syscalls-file): scripts/checksyscalls.sh $(rq-offsets-file) FORCE	$(call if_changed_dep,syscalls) PHONY += missing-syscallsmissing-syscalls: $(missing-syscalls-file) # Check the manual modification of atomic headers quiet_cmd_check_sha1 = CHKSHA1 $<      cmd_check_sha1 = \	if ! command -v sha1sum >/dev/null; then \		echo "warning: cannot check the header due to sha1sum missing"; \		exit 0; \	fi; \	if [ "$$(sed -n '$$s:// ::p' $<)" != \	     "$$(sed '$$d' $< | sha1sum | sed 's/ .*//')" ]; then \		echo "error: $< has been modified." >&2; \		exit 1; \	fi; \	touch $@ atomic-checks += $(addprefix $(obj)/.checked-, \	  atomic-arch-fallback.h \	  atomic-instrumented.h \	  atomic-long.h) targets += $(atomic-checks)$(atomic-checks): $(obj)/.checked-%: include/linux/atomic/%  FORCE	$(call if_changed,check_sha1) # A phony target that depends on all the preparation targets PHONY += prepareprepare: $(offsets-file) missing-syscalls $(atomic-checks)	@: # Ordinary directory descending# --------------------------------------------------------------------------- obj-y			+= init/obj-y			+= usr/obj-y			+= arch/$(SRCARCH)/obj-y			+= $(ARCH_CORE)obj-y			+= kernel/obj-y			+= certs/obj-y			+= mm/obj-y			+= fs/obj-y			+= ipc/obj-y			+= security/obj-y			+= crypto/obj-$(CONFIG_BLOCK)	+= block/obj-$(CONFIG_IO_URING)	+= io_uring/obj-$(CONFIG_RUST)	+= rust/obj-y			+= $(ARCH_LIB)obj-y			+= drivers/obj-y			+= sound/obj-$(CONFIG_SAMPLES)	+= samples/obj-$(CONFIG_NET)	+= net/obj-y			+= virt/obj-y			+= $(ARCH_DRIVERS)obj-$(CONFIG_DRM_HEADER_TEST)	+= include/