mirror of https://github.com/torvalds/linux.git
62 lines
1.8 KiB
Makefile
62 lines
1.8 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
# This Makefile generates headers in
|
|
# tools/perf/arch/$(SRCARCH)/include/generated/asm from the architecture's
|
|
# syscall table. This will either be from the generic syscall table, or from a
|
|
# table that is specific to that architecture.
|
|
|
|
PHONY := all
|
|
all:
|
|
|
|
obj := $(OUTPUT)arch/$(SRCARCH)/include/generated/asm
|
|
|
|
syscall_abis_32 := common,32
|
|
syscall_abis_64 := common,64
|
|
syscalltbl := $(srctree)/tools/scripts/syscall.tbl
|
|
|
|
# let architectures override $(syscall_abis_%) and $(syscalltbl)
|
|
-include $(srctree)/tools/perf/arch/$(SRCARCH)/entry/syscalls/Makefile.syscalls
|
|
include $(srctree)/tools/build/Build.include
|
|
-include $(srctree)/tools/perf/arch/$(SRCARCH)/entry/syscalls/Kbuild
|
|
|
|
systbl := $(srctree)/tools/perf/scripts/syscalltbl.sh
|
|
|
|
syscall-y := $(addprefix $(obj)/, $(syscall-y))
|
|
|
|
# Remove stale wrappers when the corresponding files are removed from generic-y
|
|
old-headers := $(wildcard $(obj)/*.h)
|
|
unwanted := $(filter-out $(syscall-y),$(old-headers))
|
|
|
|
quiet_cmd_remove = REMOVE $(unwanted)
|
|
cmd_remove = rm -f $(unwanted)
|
|
|
|
quiet_cmd_systbl = SYSTBL $@
|
|
cmd_systbl = $(CONFIG_SHELL) $(systbl) \
|
|
$(if $(systbl-args-$*),$(systbl-args-$*),$(systbl-args)) \
|
|
--abis $(subst $(space),$(comma),$(strip $(syscall_abis_$*))) \
|
|
$< $@
|
|
|
|
all: $(syscall-y)
|
|
$(if $(unwanted),$(call cmd,remove))
|
|
@:
|
|
|
|
$(obj)/syscalls_%.h: $(syscalltbl) $(systbl) FORCE
|
|
$(call if_changed,systbl)
|
|
|
|
targets := $(syscall-y)
|
|
|
|
# Create output directory. Skip it if at least one old header exists
|
|
# since we know the output directory already exists.
|
|
ifeq ($(old-headers),)
|
|
$(shell mkdir -p $(obj))
|
|
endif
|
|
|
|
PHONY += FORCE
|
|
|
|
FORCE:
|
|
|
|
existing-targets := $(wildcard $(sort $(targets)))
|
|
|
|
-include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd)
|
|
|
|
.PHONY: $(PHONY)
|