aboutsummaryrefslogtreecommitdiffstats
path: root/tools
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
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')
-rw-r--r--tools/Makefile1
-rw-r--r--tools/Rules.mk24
-rw-r--r--tools/blktap/drivers/Makefile2
-rw-r--r--tools/blktap/lib/Makefile2
-rw-r--r--tools/console/Makefile1
-rw-r--r--tools/flask/libflask/Makefile2
-rw-r--r--tools/flask/loadpolicy/Makefile1
-rw-r--r--tools/include/Makefile40
-rw-r--r--tools/include/xen-foreign/Makefile45
-rw-r--r--tools/ioemu/Makefile.target1
-rw-r--r--tools/libxc/Makefile6
-rw-r--r--tools/misc/Makefile1
-rw-r--r--tools/python/setup.py1
-rw-r--r--tools/xcutils/Makefile2
-rw-r--r--tools/xenmon/Makefile1
-rw-r--r--tools/xenstat/libxenstat/Makefile2
-rw-r--r--tools/xenstore/Makefile1
-rw-r--r--tools/xentrace/Makefile1
18 files changed, 103 insertions, 31 deletions
diff --git a/tools/Makefile b/tools/Makefile
index fddf7e5801..d75b35cfab 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -2,6 +2,7 @@ XEN_ROOT = ../
include $(XEN_ROOT)/tools/Rules.mk
SUBDIRS-y :=
+SUBDIRS-y += include
SUBDIRS-y += libxc
SUBDIRS-y += flask
SUBDIRS-y += xenstore
diff --git a/tools/Rules.mk b/tools/Rules.mk
index ec121f645e..007a844af9 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -5,6 +5,7 @@ all:
include $(XEN_ROOT)/Config.mk
+XEN_INCLUDE = $(XEN_ROOT)/tools/include
XEN_XC = $(XEN_ROOT)/tools/python/xen/lowlevel/xc
XEN_LIBXC = $(XEN_ROOT)/tools/libxc
XEN_XENSTORE = $(XEN_ROOT)/tools/xenstore
@@ -37,26 +38,3 @@ $(eval $(check-y))
%.o: %.cc
$(CC) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-.PHONY: mk-symlinks
-
-mk-symlinks:
- mkdir -p xen/sys
- ( cd xen/sys && \
- ln -sf ../../$(XEN_ROOT)/tools/include/$(XEN_OS)/*.h . )
- mkdir -p xen
- ( cd xen && ln -sf ../$(XEN_ROOT)/xen/include/public/*.h . )
- mkdir -p xen/hvm
- ( cd xen/hvm && ln -sf ../../$(XEN_ROOT)/xen/include/public/hvm/*.h . )
- mkdir -p xen/io
- ( cd xen/io && ln -sf ../../$(XEN_ROOT)/xen/include/public/io/*.h . )
- mkdir -p xen/xsm
- ( cd xen/xsm && ln -sf ../../$(XEN_ROOT)/xen/include/public/xsm/*.h . )
- mkdir -p xen/arch-x86
- ( cd xen/arch-x86 && ln -sf ../../$(XEN_ROOT)/xen/include/public/arch-x86/*.h . )
- mkdir -p xen/arch-ia64
- ( cd xen/arch-ia64 && ln -sf ../../$(XEN_ROOT)/xen/include/public/arch-ia64/*.h . )
- mkdir -p xen/foreign
- ( cd xen/foreign && ln -sf ../../$(XEN_ROOT)/xen/include/public/foreign/Makefile . )
- ( cd xen/foreign && ln -sf ../../$(XEN_ROOT)/xen/include/public/foreign/reference.size . )
- ( cd xen/foreign && ln -sf ../../$(XEN_ROOT)/xen/include/public/foreign/*.py . )
- $(MAKE) -C xen/foreign
diff --git a/tools/blktap/drivers/Makefile b/tools/blktap/drivers/Makefile
index cfd41f6498..5376b6904b 100644
--- a/tools/blktap/drivers/Makefile
+++ b/tools/blktap/drivers/Makefile
@@ -1,7 +1,7 @@
XEN_ROOT = ../../..
include $(XEN_ROOT)/tools/Rules.mk
-INCLUDES += -I.. -I../lib
+INCLUDES += -I.. -I../lib -I$(XEN_INCLUDE)
IBIN = blktapctrl tapdisk
QCOW_UTIL = img2qcow qcow2raw qcow-create
diff --git a/tools/blktap/lib/Makefile b/tools/blktap/lib/Makefile
index 008baac776..ce6342c153 100644
--- a/tools/blktap/lib/Makefile
+++ b/tools/blktap/lib/Makefile
@@ -5,7 +5,7 @@ MAJOR = 3.0
MINOR = 0
SONAME = libblktap.so.$(MAJOR)
-INCLUDES += -I. -I.. -I $(XEN_LIBXC) -I $(XEN_XENSTORE)
+INCLUDES += -I. -I.. -I $(XEN_LIBXC) -I $(XEN_XENSTORE) -I$(XEN_INCLUDE)
LIBS := -lxenstore
diff --git a/tools/console/Makefile b/tools/console/Makefile
index 4ee3d0a816..85c2ad8574 100644
--- a/tools/console/Makefile
+++ b/tools/console/Makefile
@@ -8,6 +8,7 @@ CFLAGS += -Werror
CFLAGS += -I $(XEN_LIBXC)
CFLAGS += -I $(XEN_XENSTORE)
+CFLAGS += -I $(XEN_INCLUDE)
BIN = xenconsoled xenconsole
diff --git a/tools/flask/libflask/Makefile b/tools/flask/libflask/Makefile
index b6c086c0c2..8c085b929b 100644
--- a/tools/flask/libflask/Makefile
+++ b/tools/flask/libflask/Makefile
@@ -11,7 +11,7 @@ SRCS += flask_op.c
CFLAGS += -Werror
CFLAGS += -fno-strict-aliasing
-CFLAGS += $(INCLUDES) -I./include -I$(XEN_LIBXC)
+CFLAGS += $(INCLUDES) -I./include -I$(XEN_LIBXC) -I$(XEN_INCLUDE)
# Get gcc to generate the dependencies for us.
CFLAGS += -Wp,-MD,.$(@F).d
diff --git a/tools/flask/loadpolicy/Makefile b/tools/flask/loadpolicy/Makefile
index bb0ead6846..9845222759 100644
--- a/tools/flask/loadpolicy/Makefile
+++ b/tools/flask/loadpolicy/Makefile
@@ -15,6 +15,7 @@ BASECFLAGS+= $(PROFILE)
BASECFLAGS+= -I$(LIBXC_ROOT)
BASECFLAGS+= -I$(LIBFLASK_ROOT)/include
BASECFLAGS+= -I.
+BASECFLAGS+= -I$(XEN_INCLUDE)
CFLAGS += $(BASECFLAGS)
LDFLAGS += $(PROFILE) -L$(XEN_LIBXC) -L$(LIBFLASK_ROOT)
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)
diff --git a/tools/ioemu/Makefile.target b/tools/ioemu/Makefile.target
index c3bef46761..ebd691b5f0 100644
--- a/tools/ioemu/Makefile.target
+++ b/tools/ioemu/Makefile.target
@@ -18,6 +18,7 @@ VPATH=$(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw:$(SRC_PATH)/audio
CPPFLAGS=-I. -I.. -I$(TARGET_PATH) -I$(SRC_PATH)
CPPFLAGS+= -I$(XEN_ROOT)/tools/libxc
CPPFLAGS+= -I$(XEN_ROOT)/tools/xenstore
+CPPFLAGS+= -I$(XEN_ROOT)/tools/include
ifdef CONFIG_DARWIN_USER
VPATH+=:$(SRC_PATH)/darwin-user
CPPFLAGS+=-I$(SRC_PATH)/darwin-user -I$(SRC_PATH)/darwin-user/$(TARGET_ARCH)
diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
index e71b7a4e9e..d0b1168366 100644
--- a/tools/libxc/Makefile
+++ b/tools/libxc/Makefile
@@ -50,7 +50,7 @@ GUEST_SRCS-$(CONFIG_POWERPC) += xc_dom_powerpc.c
-include $(XEN_TARGET_ARCH)/Makefile
CFLAGS += -Werror -Wmissing-prototypes
-CFLAGS += $(INCLUDES) -I. -I../xenstore
+CFLAGS += $(INCLUDES) -I. -I../xenstore -I../include
# Needed for posix_fadvise64() in xc_linux.c
CFLAGS-$(CONFIG_Linux) += -D_GNU_SOURCE
@@ -80,7 +80,7 @@ LIB += libxenguest.so libxenguest.so.$(MAJOR) libxenguest.so.$(MAJOR).$(MINOR)
all: build
.PHONY: build
-build: check-for-zlib mk-symlinks
+build: check-for-zlib
$(MAKE) $(LIB)
.PHONY: check-for-zlib
@@ -114,7 +114,7 @@ TAGS:
.PHONY: clean
clean:
- rm -rf *.rpm $(LIB) *~ $(DEPS) xen \
+ rm -rf *.rpm $(LIB) *~ $(DEPS) \
$(CTRL_LIB_OBJS) $(CTRL_PIC_OBJS) \
$(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS)
diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index 62f2acf5f0..e0b38ee20e 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -5,6 +5,7 @@ CFLAGS += -Werror
INCLUDES += -I $(XEN_XC)
INCLUDES += -I $(XEN_LIBXC)
+INCLUDES += -I $(XEN_INCLUDE)
CFLAGS += $(INCLUDES)
HDRS = $(wildcard *.h)
diff --git a/tools/python/setup.py b/tools/python/setup.py
index 68ce0070d4..0afc168b66 100644
--- a/tools/python/setup.py
+++ b/tools/python/setup.py
@@ -8,6 +8,7 @@ extra_compile_args = [ "-fno-strict-aliasing", "-Werror" ]
include_dirs = [ XEN_ROOT + "/tools/libxc",
XEN_ROOT + "/tools/xenstore",
+ XEN_ROOT + "/tools/include",
]
library_dirs = [ XEN_ROOT + "/tools/libxc",
diff --git a/tools/xcutils/Makefile b/tools/xcutils/Makefile
index 9d70df4fba..4c004750bf 100644
--- a/tools/xcutils/Makefile
+++ b/tools/xcutils/Makefile
@@ -13,7 +13,7 @@ include $(XEN_ROOT)/tools/Rules.mk
PROGRAMS_INSTALL_DIR = $(LIBDIR)/xen/bin
-INCLUDES += -I $(XEN_LIBXC) -I $(XEN_XENSTORE)
+INCLUDES += -I $(XEN_LIBXC) -I $(XEN_XENSTORE) -I$(XEN_INCLUDE)
CFLAGS += -Werror
CFLAGS += $(INCLUDES)
diff --git a/tools/xenmon/Makefile b/tools/xenmon/Makefile
index ef0b36227c..886d5b2d02 100644
--- a/tools/xenmon/Makefile
+++ b/tools/xenmon/Makefile
@@ -16,6 +16,7 @@ include $(XEN_ROOT)/tools/Rules.mk
CFLAGS += -Werror
CFLAGS += -I $(XEN_XC)
CFLAGS += -I $(XEN_LIBXC)
+CFLAGS += -I $(XEN_INCLUDE)
LDFLAGS += -L $(XEN_LIBXC)
BIN = xentrace_setmask xenbaked
diff --git a/tools/xenstat/libxenstat/Makefile b/tools/xenstat/libxenstat/Makefile
index 69cbf2fca7..f60ec7872e 100644
--- a/tools/xenstat/libxenstat/Makefile
+++ b/tools/xenstat/libxenstat/Makefile
@@ -36,7 +36,7 @@ SONAME_FLAGS=-Wl,$(SONAME_LDFLAG) -Wl,libxenstat.so.$(MAJOR)
WARN_FLAGS=-Wall -Werror
-CFLAGS+=-Isrc -I$(XEN_LIBXC) -I$(XEN_XENSTORE)
+CFLAGS+=-Isrc -I$(XEN_LIBXC) -I$(XEN_XENSTORE) -I$(XEN_INCLUDE)
LDFLAGS+=-Lsrc -L$(XEN_XENSTORE)/ -L$(XEN_LIBXC)/
LDLIBS-y = -lxenstore -lxenctrl
LDLIBS-$(CONFIG_SunOS) += -lkstat
diff --git a/tools/xenstore/Makefile b/tools/xenstore/Makefile
index 1fbd42ce12..3b31e9a4b1 100644
--- a/tools/xenstore/Makefile
+++ b/tools/xenstore/Makefile
@@ -13,6 +13,7 @@ PROG_DEP = .*.d
BASECFLAGS+= $(PROFILE)
BASECFLAGS+= -I$(XEN_ROOT)/tools/libxc
BASECFLAGS+= -I.
+BASECFLAGS+= -I$(XEN_INCLUDE)
CFLAGS += $(BASECFLAGS)
LDFLAGS += $(PROFILE) -L$(XEN_LIBXC)
diff --git a/tools/xentrace/Makefile b/tools/xentrace/Makefile
index 022f01e08a..e4f27c673d 100644
--- a/tools/xentrace/Makefile
+++ b/tools/xentrace/Makefile
@@ -5,6 +5,7 @@ CFLAGS += -Werror
CFLAGS += -I $(XEN_XC)
CFLAGS += -I $(XEN_LIBXC)
+CFLAGS += -I $(XEN_INCLUDE)
HDRS = $(wildcard *.h)
OBJS = $(patsubst %.c,%.o,$(wildcard *.c))