# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1290540483 0
# Node ID e908bfa58cd458546674071f366dd0e55b2f21a7
# Parent b609b1b983d646f19a6bdb5066368cfdc64796e8
ocaml: install built modules
Previously the install target was having no effect because it ended up
calling the default target in the subdir Makefile instead of the
install target.
Resolve this by tying the tools/ocaml Makefiles into the generic
handling done by tools/Rules.mk.
Other changes arising in one way or another from this:
- Add libs/xl/META.in
- Update .hgignore for META files
- Create leading directories
- Remove existing module before installation in install targer
(worksaround what appears to be a quirk of "ocamlfind install")
- Use the globally defined $(DESTDIR)
- Move "ocamlfind printfconf destdir" to a common variable,
repurposing exising unused OCAMLDESTDIR, incorporating $(DESTDIR) at
the same time.
- Drop a few unused variabe definitions (mainly to avoid deciding if
$(DESTDIR) made sense for them or not.
- Pass -destdir to ocamlfind in uninstall target for symmetry with
install target.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
.hgignore | 1 +
tools/ocaml/Makefile | 34 +++++-----------------------------
tools/ocaml/common.make | 7 +------
tools/ocaml/libs/Makefile | 16 ++++++++++++++++
tools/ocaml/libs/eventchn/Makefile | 6 ++++--
tools/ocaml/libs/log/Makefile | 6 ++++--
tools/ocaml/libs/mmap/Makefile | 6 ++++--
tools/ocaml/libs/uuid/Makefile | 6 ++++--
tools/ocaml/libs/xb/Makefile | 6 ++++--
tools/ocaml/libs/xc/Makefile | 6 ++++--
tools/ocaml/libs/xl/META.in | 4 ++++
tools/ocaml/libs/xl/Makefile | 6 ++++--
tools/ocaml/libs/xs/Makefile | 6 ++++--
tools/ocaml/xenstored/Makefile | 4 ++++
14 files changed, 63 insertions(+), 51 deletions(-)
diff -r b609b1b983d6 -r e908bfa58cd4 .hgignore
--- a/.hgignore Tue Nov 23 19:25:00 2010 +0000
+++ b/.hgignore Tue Nov 23 19:28:03 2010 +0000
@@ -292,6 +292,7 @@
^tools/ioemu-dir$
^tools/ocaml/.*/.*\.annot$
^tools/ocaml/.*/.*\.cmx?a$
+^tools/ocaml/.*/META$
^tools/ocaml/.*/\.ocamldep\.make$
^tools/ocaml/xenstored/oxenstored$
^xen/\.banner.*$
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/Makefile
--- a/tools/ocaml/Makefile Tue Nov 23 19:25:00 2010 +0000
+++ b/tools/ocaml/Makefile Tue Nov 23 19:28:03 2010 +0000
@@ -1,43 +1,19 @@ XEN_ROOT = ../..
XEN_ROOT = ../..
include $(XEN_ROOT)/tools/Rules.mk
-SUBDIRS_LIBS = \
- libs/uuid libs/mmap \
- libs/log libs/xc libs/eventchn \
- libs/xb libs/xs libs/xl
-
SUBDIRS_PROGRAMS = xenstored
-SUBDIRS = $(SUBDIRS_LIBS) $(SUBDIRS_PROGRAMS)
+SUBDIRS = libs $(SUBDIRS_PROGRAMS)
.NOTPARALLEL:
# targets here must be run in order, otherwise we can try
# to build programs before the libraries are done
.PHONY: all
-all: build
+all: subdirs-all
-.PHONY: build
-build: SUBDIRS
-
-.PHONY: SUBDIRS SUBDIRS_PROGRAMS SUBDIRS_LIBS
-SUBDIRS SUBDIRS_PROGRAMS SUBDIRS_LIBS:
- @set -e; for d in $($@); do \
- echo " === building $$d"; \
- $(MAKE) --no-print-directory -C $$d; \
- done
-
-.PHONY: install install-libs install-program
-install: install-libs install-program
-
-install-program: SUBDIRS_PROGRAMS
- $(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
- $(INSTALL_PROG) xenstored/oxenstored $(DESTDIR)$(SBINDIR)
-
-install-libs: SUBDIRS_LIBS
+.PHONY: install
+install: subdirs-install
.PHONY: clean
-clean:
- @for dir in $(SUBDIRS); do \
- $(MAKE) --no-print-directory -C $$dir clean; \
- done
+clean: subdirs-clean
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/common.make
--- a/tools/ocaml/common.make Tue Nov 23 19:25:00 2010 +0000
+++ b/tools/ocaml/common.make Tue Nov 23 19:28:03 2010 +0000
@@ -17,13 +17,8 @@ OCAMLOPTFLAGS = $(OCAMLOPTFLAG_G) -ccopt
OCAMLOPTFLAGS = $(OCAMLOPTFLAG_G) -ccopt "$(LDFLAGS)" -dtypes $(OCAMLINCLUDE)
-cc $(CC) -w F -warn-error F
OCAMLCFLAGS += -g $(OCAMLINCLUDE) -w F -warn-error F
-#LDFLAGS = -cclib -L./
-
-DESTDIR ?= /
VERSION := 4.1
-OCAMLABI = $(shell $(OCAMLC) -version)
-OCAMLLIBDIR = $(shell $(OCAMLC) -where)
-OCAMLDESTDIR ?= $(OCAMLLIBDIR)
+OCAMLDESTDIR ?= $(DESTDIR)$(shell ocamlfind printconf destdir)
o= >$@.new && mv -f $@.new $@
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/libs/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/ocaml/libs/Makefile Tue Nov 23 19:28:03 2010 +0000
@@ -0,0 +1,16 @@
+XEN_ROOT = ../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+SUBDIRS= \
+ uuid mmap \
+ log xc eventchn \
+ xb xs xl
+
+.PHONY: all
+all: subdirs-all
+
+.PHONY: install
+install: subdirs-install
+
+.PHONY: clean
+clean: subdirs-clean
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/libs/eventchn/Makefile
--- a/tools/ocaml/libs/eventchn/Makefile Tue Nov 23 19:25:00 2010 +0000
+++ b/tools/ocaml/libs/eventchn/Makefile Tue Nov 23 19:28:03 2010 +0000
@@ -19,11 +19,13 @@ OCAML_LIBRARY = eventchn
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf
destdir) -ldconf ignore eventchn META $(INTF) $(LIBS) *.a *.so *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) eventchn
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore eventchn META
$(INTF) $(LIBS) *.a *.so *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove eventchn
+ ocamlfind remove -destdir $(OCAMLDESTDIR) eventchn
include $(TOPLEVEL)/Makefile.rules
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/libs/log/Makefile
--- a/tools/ocaml/libs/log/Makefile Tue Nov 23 19:25:00 2010 +0000
+++ b/tools/ocaml/libs/log/Makefile Tue Nov 23 19:28:03 2010 +0000
@@ -32,11 +32,13 @@ syslog.mli : syslog.ml
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf
destdir) -ldconf ignore log META $(INTF) $(LIBS) *.a *.so *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) log
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore log META
$(INTF) $(LIBS) *.a *.so *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove log
+ ocamlfind remove -destdir $(OCAMLDESTDIR) log
include $(TOPLEVEL)/Makefile.rules
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/libs/mmap/Makefile
--- a/tools/ocaml/libs/mmap/Makefile Tue Nov 23 19:25:00 2010 +0000
+++ b/tools/ocaml/libs/mmap/Makefile Tue Nov 23 19:28:03 2010 +0000
@@ -18,11 +18,13 @@ OCAML_LIBRARY = mmap
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf
destdir) -ldconf ignore mmap META $(INTF) $(LIBS) *.a *.so *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) mmap
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore mmap META
$(INTF) $(LIBS) *.a *.so *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove mmap
+ ocamlfind remove -destdir $(OCAMLDESTDIR) mmap
include $(TOPLEVEL)/Makefile.rules
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/libs/uuid/Makefile
--- a/tools/ocaml/libs/uuid/Makefile Tue Nov 23 19:25:00 2010 +0000
+++ b/tools/ocaml/libs/uuid/Makefile Tue Nov 23 19:28:03 2010 +0000
@@ -17,11 +17,13 @@ OCAML_NOC_LIBRARY = uuid
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf
destdir) -ldconf ignore uuid META $(INTF) $(LIBS) *.a *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) uuid
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore uuid META
$(INTF) $(LIBS) *.a *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove uuid
+ ocamlfind remove -destdir $(OCAMLDESTDIR) uuid
include $(TOPLEVEL)/Makefile.rules
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/libs/xb/Makefile
--- a/tools/ocaml/libs/xb/Makefile Tue Nov 23 19:25:00 2010 +0000
+++ b/tools/ocaml/libs/xb/Makefile Tue Nov 23 19:28:03 2010 +0000
@@ -33,10 +33,12 @@ OCAML_LIBRARY = xb
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf
destdir) -ldconf ignore xb META $(INTF) $(LIBS) *.a *.so *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xb
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore xb META
$(INTF) $(LIBS) *.a *.so *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove xb
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xb
include $(TOPLEVEL)/Makefile.rules
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/libs/xc/Makefile
--- a/tools/ocaml/libs/xc/Makefile Tue Nov 23 19:25:00 2010 +0000
+++ b/tools/ocaml/libs/xc/Makefile Tue Nov 23 19:28:03 2010 +0000
@@ -20,10 +20,12 @@ libs: $(LIBS)
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf
destdir) -ldconf ignore xc META $(INTF) $(LIBS) *.a *.so *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xc
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore xc META
$(INTF) $(LIBS) *.a *.so *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove xc
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xc
include $(TOPLEVEL)/Makefile.rules
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/libs/xl/META.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/ocaml/libs/xl/META.in Tue Nov 23 19:28:03 2010 +0000
@@ -0,0 +1,4 @@
+version = "@VERSION@"
+description = "Xen Toolstack Library"
+archive(byte) = "xl.cma"
+archive(native) = "xl.cmxa"
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/libs/xl/Makefile
--- a/tools/ocaml/libs/xl/Makefile Tue Nov 23 19:25:00 2010 +0000
+++ b/tools/ocaml/libs/xl/Makefile Tue Nov 23 19:28:03 2010 +0000
@@ -17,10 +17,12 @@ libs: $(LIBS)
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf
destdir) -ldconf ignore xl META $(INTF) $(LIBS) *.a *.so *.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xl
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore xl META
$(INTF) $(LIBS) *.a *.so *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove xl
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xl
include $(TOPLEVEL)/Makefile.rules
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/libs/xs/Makefile
--- a/tools/ocaml/libs/xs/Makefile Tue Nov 23 19:25:00 2010 +0000
+++ b/tools/ocaml/libs/xs/Makefile Tue Nov 23 19:28:03 2010 +0000
@@ -33,11 +33,13 @@ OCAML_NOC_LIBRARY = xs
.PHONY: install
install: $(LIBS) META
- ocamlfind install -destdir $(DESTDIR)$(shell ocamlfind printconf
destdir) -ldconf ignore xs META $(INTF) xs.mli xst.mli xsraw.mli $(LIBS) *.a
*.cmx
+ mkdir -p $(OCAMLDESTDIR)
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xs
+ ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore xs META
$(INTF) xs.mli xst.mli xsraw.mli $(LIBS) *.a *.cmx
.PHONY: uninstall
uninstall:
- ocamlfind remove xs
+ ocamlfind remove -destdir $(OCAMLDESTDIR) xs
include $(TOPLEVEL)/Makefile.rules
diff -r b609b1b983d6 -r e908bfa58cd4 tools/ocaml/xenstored/Makefile
--- a/tools/ocaml/xenstored/Makefile Tue Nov 23 19:25:00 2010 +0000
+++ b/tools/ocaml/xenstored/Makefile Tue Nov 23 19:28:03 2010 +0000
@@ -52,4 +52,8 @@ all: $(INTF) $(PROGRAMS)
bins: $(PROGRAMS)
+install: all
+ $(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
+ $(INSTALL_PROG) oxenstored $(DESTDIR)$(SBINDIR)
+
include $(OCAML_TOPLEVEL)/Makefile.rules
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|