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@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
Ian Campbell committed 2010-11-23 19:28:03 +00:00
1 parent 46d89e453b
commit dd13d5775a
14 files changed
+63 -51

No files matched your search

+1
View File
@@ -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.*$
+5 -29
View File
@@ -1,43 +1,19 @@
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
+1 -6
View File
@@ -17,13 +17,8 @@ OCAMLOPTFLAG_G := $(shell $(OCAMLOPT) -h 2>&1 | sed -n 's/^ *\(-g\) .*/\1/p')
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 $@
+16
View File
@@ -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
+4 -2
View File
@@ -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
+4 -2
View File
@@ -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
+4 -2
View File
@@ -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
+4 -2
View File
@@ -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
+4 -2
View File
@@ -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
+4 -2
View File
@@ -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
+4
View File
@@ -0,0 +1,4 @@
version = "@VERSION@"
description = "Xen Toolstack Library"
archive(byte) = "xl.cma"
archive(native) = "xl.cmxa"
+4 -2
View File
@@ -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
+4 -2
View File
@@ -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
+4
View File
@@ -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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.