mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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:
1 parent
46d89e453b
commit
dd13d5775a
14 files changed
+63
-51
No files matched your search
@@ -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
@@ -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
|
||||
@@ -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 $@
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,4 @@
|
||||
version = "@VERSION@"
|
||||
description = "Xen Toolstack Library"
|
||||
archive(byte) = "xl.cma"
|
||||
archive(native) = "xl.cmxa"
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||