On Thu, 2010-11-11 at 15:33 +0000, Ian Campbell wrote:
> # HG changeset patch
> # User Ian Campbell <ian.campbell@xxxxxxxxxx>
> # Date 1289489569 0
> # Node ID d98249b40f3c4a41b2f1ae9dc6b09b90b323460c
> # Parent 566505063e89cf583633613893d2913fe56eefee
> 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.
I wondered if this change might make the .NOTPARALLEL statements
unnecessary, especially in tools/ocaml/Makefile since that is now
serialized due to the shape of the stuff in Rules.mk.
I sure about removing the tools/ocaml/Makefile.rules one or the ones in
tools/ocaml/libs/{xs,xb}/Makefile (which may be redundant since the
Makefile.rules one was added?).
Eventually I figured no harm could come from leaving them as is for now.
>
> 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>
>
> diff -r 566505063e89 -r d98249b40f3c .hgignore
> --- a/.hgignore Thu Nov 11 15:07:42 2010 +0000
> +++ b/.hgignore Thu Nov 11 15:32:49 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 566505063e89 -r d98249b40f3c tools/ocaml/Makefile
> --- a/tools/ocaml/Makefile Thu Nov 11 15:07:42 2010 +0000
> +++ b/tools/ocaml/Makefile Thu Nov 11 15:32:49 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 566505063e89 -r d98249b40f3c tools/ocaml/common.make
> --- a/tools/ocaml/common.make Thu Nov 11 15:07:42 2010 +0000
> +++ b/tools/ocaml/common.make Thu Nov 11 15:32:49 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 566505063e89 -r d98249b40f3c tools/ocaml/libs/Makefile
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/tools/ocaml/libs/Makefile Thu Nov 11 15:32:49 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 566505063e89 -r d98249b40f3c tools/ocaml/libs/eventchn/Makefile
> --- a/tools/ocaml/libs/eventchn/Makefile Thu Nov 11 15:07:42 2010 +0000
> +++ b/tools/ocaml/libs/eventchn/Makefile Thu Nov 11 15:32:49 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 566505063e89 -r d98249b40f3c tools/ocaml/libs/log/Makefile
> --- a/tools/ocaml/libs/log/Makefile Thu Nov 11 15:07:42 2010 +0000
> +++ b/tools/ocaml/libs/log/Makefile Thu Nov 11 15:32:49 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 566505063e89 -r d98249b40f3c tools/ocaml/libs/mmap/Makefile
> --- a/tools/ocaml/libs/mmap/Makefile Thu Nov 11 15:07:42 2010 +0000
> +++ b/tools/ocaml/libs/mmap/Makefile Thu Nov 11 15:32:49 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 566505063e89 -r d98249b40f3c tools/ocaml/libs/uuid/Makefile
> --- a/tools/ocaml/libs/uuid/Makefile Thu Nov 11 15:07:42 2010 +0000
> +++ b/tools/ocaml/libs/uuid/Makefile Thu Nov 11 15:32:49 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 566505063e89 -r d98249b40f3c tools/ocaml/libs/xb/Makefile
> --- a/tools/ocaml/libs/xb/Makefile Thu Nov 11 15:07:42 2010 +0000
> +++ b/tools/ocaml/libs/xb/Makefile Thu Nov 11 15:32:49 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 566505063e89 -r d98249b40f3c tools/ocaml/libs/xc/Makefile
> --- a/tools/ocaml/libs/xc/Makefile Thu Nov 11 15:07:42 2010 +0000
> +++ b/tools/ocaml/libs/xc/Makefile Thu Nov 11 15:32:49 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 566505063e89 -r d98249b40f3c tools/ocaml/libs/xl/META.in
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/tools/ocaml/libs/xl/META.in Thu Nov 11 15:32:49 2010 +0000
> @@ -0,0 +1,4 @@
> +version = "@VERSION@"
> +description = "Xen Toolstack Library"
> +archive(byte) = "xl.cma"
> +archive(native) = "xl.cmxa"
> diff -r 566505063e89 -r d98249b40f3c tools/ocaml/libs/xl/Makefile
> --- a/tools/ocaml/libs/xl/Makefile Thu Nov 11 15:07:42 2010 +0000
> +++ b/tools/ocaml/libs/xl/Makefile Thu Nov 11 15:32:49 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 566505063e89 -r d98249b40f3c tools/ocaml/libs/xs/Makefile
> --- a/tools/ocaml/libs/xs/Makefile Thu Nov 11 15:07:42 2010 +0000
> +++ b/tools/ocaml/libs/xs/Makefile Thu Nov 11 15:32:49 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 566505063e89 -r d98249b40f3c tools/ocaml/xenstored/Makefile
> --- a/tools/ocaml/xenstored/Makefile Thu Nov 11 15:07:42 2010 +0000
> +++ b/tools/ocaml/xenstored/Makefile Thu Nov 11 15:32:49 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-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|