xen: build infrastructure for generating hypercall depending symbols
[linux-2.6-block.git] / arch / x86 / syscalls / Makefile
CommitLineData
d181764c 1out := $(obj)/../include/generated/asm
10b63956 2uapi := $(obj)/../include/generated/uapi/asm
d181764c
PA
3
4# Create output directory if not already present
ec28b7f2
DH
5_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)') \
6 $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)')
d181764c
PA
7
8syscall32 := $(srctree)/$(src)/syscall_32.tbl
9syscall64 := $(srctree)/$(src)/syscall_64.tbl
10
11syshdr := $(srctree)/$(src)/syscallhdr.sh
12systbl := $(srctree)/$(src)/syscalltbl.sh
13
14quiet_cmd_syshdr = SYSHDR $@
6cbb369f
PA
15 cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \
16 '$(syshdr_abi_$(basetarget))' \
17 '$(syshdr_pfx_$(basetarget))' \
18 '$(syshdr_offset_$(basetarget))'
d181764c
PA
19quiet_cmd_systbl = SYSTBL $@
20 cmd_systbl = $(CONFIG_SHELL) '$(systbl)' $< $@
21
9b4ade22
JG
22quiet_cmd_hypercalls = HYPERCALLS $@
23 cmd_hypercalls = $(CONFIG_SHELL) '$<' $@ $(filter-out $<,$^)
24
d181764c 25syshdr_abi_unistd_32 := i386
ec28b7f2 26$(uapi)/unistd_32.h: $(syscall32) $(syshdr)
d181764c
PA
27 $(call if_changed,syshdr)
28
29syshdr_abi_unistd_32_ia32 := i386
30syshdr_pfx_unistd_32_ia32 := ia32_
31$(out)/unistd_32_ia32.h: $(syscall32) $(syshdr)
32 $(call if_changed,syshdr)
33
6cbb369f
PA
34syshdr_abi_unistd_x32 := common,x32
35syshdr_offset_unistd_x32 := __X32_SYSCALL_BIT
ec28b7f2 36$(uapi)/unistd_x32.h: $(syscall64) $(syshdr)
6cbb369f
PA
37 $(call if_changed,syshdr)
38
6630f11b 39syshdr_abi_unistd_64 := common,64
ec28b7f2 40$(uapi)/unistd_64.h: $(syscall64) $(syshdr)
d181764c
PA
41 $(call if_changed,syshdr)
42
ea499fec
PA
43syshdr_abi_unistd_64_x32 := x32
44syshdr_pfx_unistd_64_x32 := x32_
45$(out)/unistd_64_x32.h: $(syscall64) $(syshdr)
46 $(call if_changed,syshdr)
47
d181764c
PA
48$(out)/syscalls_32.h: $(syscall32) $(systbl)
49 $(call if_changed,systbl)
50$(out)/syscalls_64.h: $(syscall64) $(systbl)
51 $(call if_changed,systbl)
52
9b4ade22
JG
53$(out)/xen-hypercalls.h: $(srctree)/scripts/xen-hypercalls.sh
54 $(call if_changed,hypercalls)
55
56$(out)/xen-hypercalls.h: $(srctree)/include/xen/interface/xen*.h
57
ec28b7f2 58uapisyshdr-y += unistd_32.h unistd_64.h unistd_x32.h
d181764c 59syshdr-y += syscalls_32.h
ea499fec 60syshdr-$(CONFIG_X86_64) += unistd_32_ia32.h unistd_64_x32.h
d181764c 61syshdr-$(CONFIG_X86_64) += syscalls_64.h
9b4ade22 62syshdr-$(CONFIG_XEN) += xen-hypercalls.h
d181764c 63
ec28b7f2 64targets += $(uapisyshdr-y) $(syshdr-y)
d181764c 65
e6bcd1a8 66PHONY += all
ec28b7f2
DH
67all: $(addprefix $(uapi)/,$(uapisyshdr-y))
68all: $(addprefix $(out)/,$(syshdr-y))
e6bcd1a8 69 @: