mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-06 05:13:18 +00:00
b1992c3772
Kbuild conventionally uses $(obj)/ for generated files, and $(src)/ for checked-in source files. It is merely a convention without any functional difference. In fact, $(obj) and $(src) are exactly the same, as defined in scripts/Makefile.build: src := $(obj) When the kernel is built in a separate output directory, $(src) does not accurately reflect the source directory location. While Kbuild resolves this discrepancy by specifying VPATH=$(srctree) to search for source files, it does not cover all cases. For example, when adding a header search path for local headers, -I$(srctree)/$(src) is typically passed to the compiler. This introduces inconsistency between upstream and downstream Makefiles because $(src) is used instead of $(srctree)/$(src) for the latter. To address this inconsistency, this commit changes the semantics of $(src) so that it always points to the directory in the source tree. Going forward, the variables used in Makefiles will have the following meanings: $(obj) - directory in the object tree $(src) - directory in the source tree (changed by this commit) $(objtree) - the top of the kernel object tree $(srctree) - the top of the kernel source tree Consequently, $(srctree)/$(src) in upstream Makefiles need to be replaced with $(src). Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
52 lines
1.4 KiB
Makefile
52 lines
1.4 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
kapi := arch/$(SRCARCH)/include/generated/asm
|
|
uapi := arch/$(SRCARCH)/include/generated/uapi/asm
|
|
|
|
$(shell mkdir -p $(uapi) $(kapi))
|
|
|
|
syshdr := $(srctree)/scripts/syscallhdr.sh
|
|
sysnr := $(src)/syscallnr.sh
|
|
systbl := $(srctree)/scripts/syscalltbl.sh
|
|
|
|
quiet_cmd_syshdr = SYSHDR $@
|
|
cmd_syshdr = $(CONFIG_SHELL) $(syshdr) --offset __NR_Linux $< $@
|
|
|
|
quiet_cmd_sysnr = SYSNR $@
|
|
cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@' \
|
|
'$(sysnr_abis_$(basetarget))' \
|
|
'$(sysnr_pfx_$(basetarget))'
|
|
|
|
quiet_cmd_systbl = SYSTBL $@
|
|
cmd_systbl = $(CONFIG_SHELL) $(systbl) $< $@
|
|
|
|
$(uapi)/unistd_%.h: $(src)/syscall_%.tbl $(syshdr) FORCE
|
|
$(call if_changed,syshdr)
|
|
|
|
sysnr_pfx_unistd_nr_n32 := N32
|
|
sysnr_pfx_unistd_nr_n64 := 64
|
|
sysnr_pfx_unistd_nr_o32 := O32
|
|
|
|
$(kapi)/unistd_nr_%.h: $(src)/syscall_%.tbl $(sysnr) FORCE
|
|
$(call if_changed,sysnr)
|
|
|
|
$(kapi)/syscall_table_%.h: $(src)/syscall_%.tbl $(systbl) FORCE
|
|
$(call if_changed,systbl)
|
|
|
|
uapisyshdr-y += unistd_n32.h \
|
|
unistd_n64.h \
|
|
unistd_o32.h
|
|
kapisyshdr-y += syscall_table_n32.h \
|
|
syscall_table_n64.h \
|
|
syscall_table_o32.h \
|
|
unistd_nr_n32.h \
|
|
unistd_nr_n64.h \
|
|
unistd_nr_o32.h
|
|
|
|
uapisyshdr-y := $(addprefix $(uapi)/, $(uapisyshdr-y))
|
|
kapisyshdr-y := $(addprefix $(kapi)/, $(kapisyshdr-y))
|
|
targets += $(addprefix ../../../../, $(uapisyshdr-y) $(kapisyshdr-y))
|
|
|
|
PHONY += all
|
|
all: $(uapisyshdr-y) $(kapisyshdr-y)
|
|
@:
|