1 # SPDX-License-Identifier: GPL-2.0
2 out
:= arch
/$(SRCARCH
)/include/generated
/asm
3 uapi
:= arch
/$(SRCARCH
)/include/generated
/uapi
/asm
5 # Create output directory if not already present
6 $(shell mkdir
-p
$(out
) $(uapi
))
8 syscall32
:= $(src
)/syscall_32.tbl
9 syscall64
:= $(src
)/syscall_64.tbl
11 syshdr
:= $(srctree
)/scripts
/syscallhdr.sh
12 systbl
:= $(srctree
)/scripts
/syscalltbl.sh
16 quiet_cmd_syshdr
= SYSHDR
$@
17 cmd_syshdr
= $(CONFIG_SHELL
) $(syshdr
) --abis
$(abis
) --emit-nr \
18 $(if
$(offset
),--offset
$(offset
)) \
19 $(if
$(prefix),--prefix $(prefix)) \
21 quiet_cmd_systbl
= SYSTBL
$@
22 cmd_systbl
= $(CONFIG_SHELL
) $(systbl
) --abis
$(abis
) $< $@
24 quiet_cmd_hypercalls
= HYPERCALLS
$@
25 cmd_hypercalls
= $(CONFIG_SHELL
) '$<' $@
$(filter-out $<, $(real-prereqs
))
27 $(uapi
)/unistd_32.h
: abis
:= i386
28 $(uapi
)/unistd_32.h
: $(syscall32
) $(syshdr
) FORCE
29 $(call if_changed
,syshdr
)
31 $(out
)/unistd_32_ia32.h
: abis
:= i386
32 $(out
)/unistd_32_ia32.h
: prefix := ia32_
33 $(out
)/unistd_32_ia32.h
: $(syscall32
) $(syshdr
) FORCE
34 $(call if_changed
,syshdr
)
36 $(uapi
)/unistd_x32.h
: abis
:= common
,x32
37 $(uapi
)/unistd_x32.h
: offset
:= __X32_SYSCALL_BIT
38 $(uapi
)/unistd_x32.h
: $(syscall64
) $(syshdr
) FORCE
39 $(call if_changed
,syshdr
)
41 $(uapi
)/unistd_64.h
: abis
:= common
,64
42 $(uapi
)/unistd_64.h
: $(syscall64
) $(syshdr
) FORCE
43 $(call if_changed
,syshdr
)
45 $(out
)/unistd_64_x32.h
: abis
:= x32
46 $(out
)/unistd_64_x32.h
: prefix := x32_
47 $(out
)/unistd_64_x32.h
: $(syscall64
) $(syshdr
) FORCE
48 $(call if_changed
,syshdr
)
50 $(out
)/syscalls_32.h
: abis
:= i386
51 $(out
)/syscalls_32.h
: $(syscall32
) $(systbl
) FORCE
52 $(call if_changed
,systbl
)
53 $(out
)/syscalls_64.h
: abis
:= common
,64
54 $(out
)/syscalls_64.h
: $(syscall64
) $(systbl
) FORCE
55 $(call if_changed
,systbl
)
56 $(out
)/syscalls_x32.h
: abis
:= common
,x32
57 $(out
)/syscalls_x32.h
: $(syscall64
) $(systbl
) FORCE
58 $(call if_changed
,systbl
)
60 $(out
)/xen-hypercalls.h
: $(srctree
)/scripts
/xen-hypercalls.sh FORCE
61 $(call if_changed
,hypercalls
)
63 $(out
)/xen-hypercalls.h
: $(srctree
)/include/xen
/interface
/xen
*.h
65 uapisyshdr-y
+= unistd_32.h unistd_64.h unistd_x32.h
66 syshdr-y
+= syscalls_32.h
67 syshdr-
$(CONFIG_X86_64
) += unistd_32_ia32.h unistd_64_x32.h
68 syshdr-
$(CONFIG_X86_64
) += syscalls_64.h
69 syshdr-
$(CONFIG_X86_X32_ABI
) += syscalls_x32.h
70 syshdr-
$(CONFIG_XEN
) += xen-hypercalls.h
72 uapisyshdr-y
:= $(addprefix $(uapi
)/, $(uapisyshdr-y
))
73 syshdr-y
:= $(addprefix $(out
)/, $(syshdr-y
))
74 targets
+= $(addprefix ..
/..
/..
/..
/, $(uapisyshdr-y
) $(syshdr-y
))
77 all: $(uapisyshdr-y
) $(syshdr-y
)