1# SPDX-License-Identifier: GPL-2.0
2kapi := arch/$(SRCARCH)/include/generated/asm
3uapi := arch/$(SRCARCH)/include/generated/uapi/asm
4
5$(shell mkdir -p $(uapi) $(kapi))
6
7syshdr := $(srctree)/scripts/syscallhdr.sh
8sysnr := $(srctree)/$(src)/syscallnr.sh
9systbl := $(srctree)/scripts/syscalltbl.sh
10
11quiet_cmd_syshdr = SYSHDR  $@
12      cmd_syshdr = $(CONFIG_SHELL) $(syshdr) --offset __NR_Linux $< $@
13
14quiet_cmd_sysnr = SYSNR   $@
15      cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@'		\
16		  '$(sysnr_abis_$(basetarget))'			\
17		  '$(sysnr_pfx_$(basetarget))'
18
19quiet_cmd_systbl = SYSTBL  $@
20      cmd_systbl = $(CONFIG_SHELL) $(systbl) $< $@
21
22$(uapi)/unistd_%.h: $(src)/syscall_%.tbl $(syshdr) FORCE
23	$(call if_changed,syshdr)
24
25sysnr_pfx_unistd_nr_n32 := N32
26sysnr_pfx_unistd_nr_n64 := 64
27sysnr_pfx_unistd_nr_o32 := O32
28
29$(kapi)/unistd_nr_%.h: $(src)/syscall_%.tbl $(sysnr) FORCE
30	$(call if_changed,sysnr)
31
32$(kapi)/syscall_table_%.h: $(src)/syscall_%.tbl $(systbl) FORCE
33	$(call if_changed,systbl)
34
35uapisyshdr-y		+= unistd_n32.h			\
36			   unistd_n64.h			\
37			   unistd_o32.h
38kapisyshdr-y		+= syscall_table_n32.h		\
39			   syscall_table_n64.h		\
40			   syscall_table_o32.h		\
41			   unistd_nr_n32.h		\
42			   unistd_nr_n64.h		\
43			   unistd_nr_o32.h
44
45uapisyshdr-y	:= $(addprefix $(uapi)/, $(uapisyshdr-y))
46kapisyshdr-y	:= $(addprefix $(kapi)/, $(kapisyshdr-y))
47targets		+= $(addprefix ../../../../, $(uapisyshdr-y) $(kapisyshdr-y))
48
49PHONY += all
50all: $(uapisyshdr-y) $(kapisyshdr-y)
51	@:
52