[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] ocaml: install built modules
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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |