aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-05-19 14:13:20 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-05-19 14:13:20 +0100
commitc7367160e47a01e07fabfcb38fcb5951773b04d4 (patch)
tree8877d3a06c90e10389e696cc4563b75926eb106f
parent1f876c2e6e48431940adb8ebd0a6960367cdc853 (diff)
downloadxen-c7367160e47a01e07fabfcb38fcb5951773b04d4.tar.gz
xen-c7367160e47a01e07fabfcb38fcb5951773b04d4.tar.bz2
xen-c7367160e47a01e07fabfcb38fcb5951773b04d4.zip
ocaml-xenstored: Allow to build ocaml xenstored instead of C version
To use, set CONFIG_OCAML_XENSTORED=y at build time. Then the build system will automatically download the remote repo to tools/ocaml-xenstored. Signed-off-by: Alex Zeffertt <alex.zeffertt@eu.citrix.com>
-rw-r--r--.hgignore2
-rw-r--r--Config.mk6
-rw-r--r--tools/Makefile22
-rw-r--r--tools/xenstore/Makefile11
4 files changed, 39 insertions, 2 deletions
diff --git a/.hgignore b/.hgignore
index 244158a5d3..17b24787de 100644
--- a/.hgignore
+++ b/.hgignore
@@ -90,6 +90,7 @@
^stubdom/gcc-.*$
^stubdom/include$
^stubdom/ioemu$
+^stubdom/xenstore$
^stubdom/libxc-.*$
^stubdom/lwip-.*$
^stubdom/mini-os-.*$
@@ -251,6 +252,7 @@
^tools/xm-test/tests/.*\.test$
^tools/ioemu-remote
^tools/ioemu-dir$
+^tools/ocaml-xenstored.*$
^xen/\.banner.*$
^xen/BLOG$
^xen/System.map$
diff --git a/Config.mk b/Config.mk
index 214b59296f..d756a60f9c 100644
--- a/Config.mk
+++ b/Config.mk
@@ -125,6 +125,12 @@ QEMU_REMOTE=http://xenbits.xensource.com/git-http/qemu-xen-unstable.git
# CONFIG_QEMU ?= ../qemu-xen.git
CONFIG_QEMU ?= $(QEMU_REMOTE)
+OCAML_XENSTORED_REPO=http://xenbits.xensource.com/ext/xen-ocaml-tools.hg
+
+# Build OCAML version of xenstored instead of the in-tree C version?
+# This will cause $(OCAML_XENSTORED_REPO) to be cloned.
+CONFIG_OCAML_XENSTORED ?= n
+
# Optional components
XENSTAT_XENTOP ?= y
VTPM_TOOLS ?= n
diff --git a/tools/Makefile b/tools/Makefile
index ed5f7568d2..d9208ca1b2 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -6,6 +6,7 @@ SUBDIRS-y += check
SUBDIRS-y += include
SUBDIRS-y += libxc
SUBDIRS-y += flask
+SUBDIRS-$(CONFIG_OCAML_XENSTORED) += ocaml-xenstored
SUBDIRS-y += xenstore
SUBDIRS-y += misc
SUBDIRS-y += examples
@@ -49,6 +50,7 @@ install: subdirs-install
$(INSTALL_DIR) $(DESTDIR)/var/xen/dump
$(INSTALL_DIR) $(DESTDIR)/var/log/xen
$(INSTALL_DIR) $(DESTDIR)/var/lib/xen
+ $(INSTALL_DIR) $(DESTDIR)/var/lock/subsys
.PHONY: clean distclean
clean distclean: subdirs-clean
@@ -103,3 +105,23 @@ subdir-clean-ioemu-dir:
$(absolutify_xen_root); \
$(MAKE) -C ioemu-dir clean; \
fi
+
+ocaml-xenstored:
+ set -ex; \
+ rm -rf ocaml-xenstored.tmp; \
+ hg clone $(OCAML_XENSTORED_REPO) ocaml-xenstored.tmp; \
+ if [ "$(OCAML_XENSTORED_TAG)" ]; then \
+ hg -R ocaml-xenstored.tmp update -r $(OCAML_XENSTORED_TAG) ;\
+ hg -R ocaml-xenstored.tmp branch mybranch ;\
+ fi; \
+ mv ocaml-xenstored.tmp ocaml-xenstored; \
+
+subdir-all-ocaml-xenstored subdir-install-ocaml-xenstored: ocaml-xenstored
+ $(absolutify_xen_root); \
+ $(MAKE) -C ocaml-xenstored $(patsubst subdir-%-ocaml-xenstored,%,$@);
+
+subdir-clean-ocaml-xenstored:
+ set -e; if test -d ocaml-xenstored; then \
+ $(MAKE) -C ocaml-xenstored clean; \
+ fi
+
diff --git a/tools/xenstore/Makefile b/tools/xenstore/Makefile
index 91b854da90..f64ba9face 100644
--- a/tools/xenstore/Makefile
+++ b/tools/xenstore/Makefile
@@ -26,8 +26,13 @@ LIBXENSTORE := libxenstore.a
xenstore xenstore-control: CFLAGS += -static
endif
+ALL_TARGETS = libxenstore.so libxenstore.a clients xs_tdb_dump
+ifneq ($(CONFIG_OCAML_XENSTORED),y)
+ ALL_TARGETS += xenstored
+endif
+
.PHONY: all
-all: libxenstore.so libxenstore.a xenstored clients xs_tdb_dump
+all: $(ALL_TARGETS)
.PHONY: clients
clients: xenstore $(CLIENTS) xenstore-control
@@ -90,12 +95,14 @@ tarball: clean
.PHONY: install
install: all
+ifneq ($(CONFIG_OCAML_XENSTORED),y)
$(INSTALL_DIR) $(DESTDIR)/var/run/xenstored
$(INSTALL_DIR) $(DESTDIR)/var/lib/xenstored
+ $(INSTALL_PROG) xenstored $(DESTDIR)$(SBINDIR)
+endif
$(INSTALL_DIR) $(DESTDIR)$(BINDIR)
$(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
$(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)
- $(INSTALL_PROG) xenstored $(DESTDIR)$(SBINDIR)
$(INSTALL_PROG) xenstore-control $(DESTDIR)$(BINDIR)
$(INSTALL_PROG) xenstore $(DESTDIR)$(BINDIR)
set -e ; for c in $(CLIENTS) ; do \