xref: /OK3568_Linux_fs/kernel/arch/x86/entry/syscalls/Makefile (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyunout := arch/$(SRCARCH)/include/generated/asm
3*4882a593Smuzhiyunuapi := arch/$(SRCARCH)/include/generated/uapi/asm
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun# Create output directory if not already present
6*4882a593Smuzhiyun_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)') \
7*4882a593Smuzhiyun	  $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)')
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunsyscall32 := $(srctree)/$(src)/syscall_32.tbl
10*4882a593Smuzhiyunsyscall64 := $(srctree)/$(src)/syscall_64.tbl
11*4882a593Smuzhiyun
12*4882a593Smuzhiyunsyshdr := $(srctree)/$(src)/syscallhdr.sh
13*4882a593Smuzhiyunsystbl := $(srctree)/$(src)/syscalltbl.sh
14*4882a593Smuzhiyun
15*4882a593Smuzhiyunquiet_cmd_syshdr = SYSHDR  $@
16*4882a593Smuzhiyun      cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \
17*4882a593Smuzhiyun		   '$(syshdr_abi_$(basetarget))' \
18*4882a593Smuzhiyun		   '$(syshdr_pfx_$(basetarget))' \
19*4882a593Smuzhiyun		   '$(syshdr_offset_$(basetarget))'
20*4882a593Smuzhiyunquiet_cmd_systbl = SYSTBL  $@
21*4882a593Smuzhiyun      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' $< $@
22*4882a593Smuzhiyun
23*4882a593Smuzhiyunquiet_cmd_hypercalls = HYPERCALLS $@
24*4882a593Smuzhiyun      cmd_hypercalls = $(CONFIG_SHELL) '$<' $@ $(filter-out $<,$^)
25*4882a593Smuzhiyun
26*4882a593Smuzhiyunsyshdr_abi_unistd_32 := i386
27*4882a593Smuzhiyun$(uapi)/unistd_32.h: $(syscall32) $(syshdr)
28*4882a593Smuzhiyun	$(call if_changed,syshdr)
29*4882a593Smuzhiyun
30*4882a593Smuzhiyunsyshdr_abi_unistd_32_ia32 := i386
31*4882a593Smuzhiyunsyshdr_pfx_unistd_32_ia32 := ia32_
32*4882a593Smuzhiyun$(out)/unistd_32_ia32.h: $(syscall32) $(syshdr)
33*4882a593Smuzhiyun	$(call if_changed,syshdr)
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunsyshdr_abi_unistd_x32 := common,x32
36*4882a593Smuzhiyunsyshdr_offset_unistd_x32 := __X32_SYSCALL_BIT
37*4882a593Smuzhiyun$(uapi)/unistd_x32.h: $(syscall64) $(syshdr)
38*4882a593Smuzhiyun	$(call if_changed,syshdr)
39*4882a593Smuzhiyun
40*4882a593Smuzhiyunsyshdr_abi_unistd_64 := common,64
41*4882a593Smuzhiyun$(uapi)/unistd_64.h: $(syscall64) $(syshdr)
42*4882a593Smuzhiyun	$(call if_changed,syshdr)
43*4882a593Smuzhiyun
44*4882a593Smuzhiyunsyshdr_abi_unistd_64_x32 := x32
45*4882a593Smuzhiyunsyshdr_pfx_unistd_64_x32 := x32_
46*4882a593Smuzhiyun$(out)/unistd_64_x32.h: $(syscall64) $(syshdr)
47*4882a593Smuzhiyun	$(call if_changed,syshdr)
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun$(out)/syscalls_32.h: $(syscall32) $(systbl)
50*4882a593Smuzhiyun	$(call if_changed,systbl)
51*4882a593Smuzhiyun$(out)/syscalls_64.h: $(syscall64) $(systbl)
52*4882a593Smuzhiyun	$(call if_changed,systbl)
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun$(out)/xen-hypercalls.h: $(srctree)/scripts/xen-hypercalls.sh
55*4882a593Smuzhiyun	$(call if_changed,hypercalls)
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun$(out)/xen-hypercalls.h: $(srctree)/include/xen/interface/xen*.h
58*4882a593Smuzhiyun
59*4882a593Smuzhiyunuapisyshdr-y			+= unistd_32.h unistd_64.h unistd_x32.h
60*4882a593Smuzhiyunsyshdr-y			+= syscalls_32.h
61*4882a593Smuzhiyunsyshdr-$(CONFIG_X86_64)		+= unistd_32_ia32.h unistd_64_x32.h
62*4882a593Smuzhiyunsyshdr-$(CONFIG_X86_64)		+= syscalls_64.h
63*4882a593Smuzhiyunsyshdr-$(CONFIG_XEN)		+= xen-hypercalls.h
64*4882a593Smuzhiyun
65*4882a593Smuzhiyuntargets	+= $(uapisyshdr-y) $(syshdr-y)
66*4882a593Smuzhiyun
67*4882a593SmuzhiyunPHONY += all
68*4882a593Smuzhiyunall: $(addprefix $(uapi)/,$(uapisyshdr-y))
69*4882a593Smuzhiyunall: $(addprefix $(out)/,$(syshdr-y))
70*4882a593Smuzhiyun	@:
71