aboutsummaryrefslogtreecommitdiffstats
path: root/tools/include
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-01-26 10:38:44 +0000
committerKeir Fraser <keir.fraser@citrix.com>2008-01-26 10:38:44 +0000
commitbe5fbf9a7fecc31c192ca0c547a1f6b864d7aa05 (patch)
tree9e7ea5294656ebe1b5e31904644a4cf5560c68f4 /tools/include
parentbc4a5b7bf50bf466cfc63f20a3907d904d5f0cdf (diff)
downloadxen-be5fbf9a7fecc31c192ca0c547a1f6b864d7aa05.tar.gz
xen-be5fbf9a7fecc31c192ca0c547a1f6b864d7aa05.tar.bz2
xen-be5fbf9a7fecc31c192ca0c547a1f6b864d7aa05.zip
Move generation of public header hierarchy into the tools.
This patch merges the two versions of public header generation currently used in the build into one. Signed-off-by: Bastian Blank <waldi@debian.org>
Diffstat (limited to 'tools/include')
-rw-r--r--tools/include/Makefile40
-rw-r--r--tools/include/xen-foreign/Makefile45
2 files changed, 85 insertions, 0 deletions
diff --git a/tools/include/Makefile b/tools/include/Makefile
new file mode 100644
index 0000000000..47a72a8aa7
--- /dev/null
+++ b/tools/include/Makefile
@@ -0,0 +1,40 @@
+XEN_ROOT = ../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+.PHONY: all
+all:
+ $(MAKE) .dir
+
+.dir:
+ @rm -rf xen
+ mkdir xen
+ ln -sf ../$(XEN_ROOT)/xen/include/public/COPYING xen
+ ln -sf $(addprefix ../,$(wildcard $(XEN_ROOT)/xen/include/public/*.h)) xen
+ ln -sf $(addprefix ../$(XEN_ROOT)/xen/include/public/,arch-ia64 arch-x86 hvm io xsm) xen
+ ln -sf ../$(XEN_OS) xen/sys
+ $(MAKE) -C xen-foreign
+ ln -s ../xen-foreign xen/foreign
+ touch $@
+
+.PHONY: install
+install: all
+ $(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)/xen/arch-ia64
+ $(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)/xen/arch-x86
+ $(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)/xen/foreign
+ $(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)/xen/hvm
+ $(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)/xen/io
+ $(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)/xen/xsm
+ $(INSTALL_DATA) xen/COPYING $(DESTDIR)$(INCLUDEDIR)/xen
+ $(INSTALL_DATA) xen/*.h $(DESTDIR)$(INCLUDEDIR)/xen
+ $(INSTALL_DATA) xen/arch-ia64/*.h $(DESTDIR)$(INCLUDEDIR)/xen/arch-x86
+ $(INSTALL_DATA) xen/arch-x86/*.h $(DESTDIR)$(INCLUDEDIR)/xen/arch-x86
+ $(INSTALL_DATA) xen/foreign/*.h $(DESTDIR)$(INCLUDEDIR)/xen/foreign
+ $(INSTALL_DATA) xen/hvm/*.h $(DESTDIR)$(INCLUDEDIR)/xen/hvm
+ $(INSTALL_DATA) xen/io/*.h $(DESTDIR)$(INCLUDEDIR)/xen/io
+ $(INSTALL_DATA) xen/xsm/*.h $(DESTDIR)$(INCLUDEDIR)/xen/xsm
+
+.PHONY: clean
+clean:
+ rm -rf xen .dir
+ $(MAKE) -C xen-foreign clean
+
diff --git a/tools/include/xen-foreign/Makefile b/tools/include/xen-foreign/Makefile
new file mode 100644
index 0000000000..394edb602e
--- /dev/null
+++ b/tools/include/xen-foreign/Makefile
@@ -0,0 +1,45 @@
+XEN_ROOT=../../..
+include $(XEN_ROOT)/Config.mk
+
+ROOT = $(XEN_ROOT)/xen/include/public/foreign
+#VPATH = $(ROOT)
+HOSTCFLAGS += -I$(ROOT)
+
+MKHEADER_PY = $(ROOT)/mkheader.py
+
+architectures := x86_32 x86_64 ia64
+headers := $(patsubst %, %.h, $(architectures))
+scripts := $(wildcard *.py)
+
+.PHONY: all clean check-headers
+all: $(headers) check-headers
+
+clean:
+ rm -f $(headers)
+ rm -f checker checker.c
+ rm -f *.pyc *.o *~
+
+ifeq ($(CROSS_COMPILE)$(XEN_TARGET_ARCH),$(XEN_COMPILE_ARCH))
+checker: checker.c $(headers)
+ $(HOSTCC) $(HOSTCFLAGS) -o $@ $<
+
+check-headers: checker
+ ./checker > tmp.size
+ diff -u $(ROOT)/reference.size tmp.size
+ rm tmp.size
+else
+check-headers:
+ @echo "cross build: skipping check"
+endif
+
+x86_32.h: $(ROOT)/mkheader.py ../xen/arch-x86/xen-x86_32.h ../xen/arch-x86/xen.h ../xen/xen.h
+ python $< $* $@ $(filter %.h,$^)
+
+x86_64.h: $(ROOT)/mkheader.py ../xen/arch-x86/xen-x86_64.h ../xen/arch-x86/xen.h ../xen/xen.h
+ python $< $* $@ $(filter %.h,$^)
+
+ia64.h: $(ROOT)/mkheader.py ../xen/arch-ia64.h ../xen/xen.h
+ python $< $* $@ $(filter %.h,$^)
+
+checker.c: $(ROOT)/mkchecker.py
+ python $< $(XEN_TARGET_ARCH) $@ $(architectures)