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