Hilko Bengen
2014-Mar-22 10:36 UTC
Re: [Libguestfs] [PATCH] Fix building on architectures where ocamlopt is not available
* Richard W.M. Jones:> On Fri, Feb 28, 2014 at 02:35:56PM +0100, Hilko Bengen wrote: >> diff --git a/ocaml/Makefile.am b/ocaml/Makefile.am >> index 5dd2c9b..708b2e7 100644 >> --- a/ocaml/Makefile.am >> +++ b/ocaml/Makefile.am > [...] >> +# Tell version 3.79 and up of GNU make to not build goals in this >> +# directory in parallel. >> +.NOTPARALLEL: > > ^ This makes building the OCaml subdirectory very slow (I normally > build with MAKEFLAGS=-j9). Was there a reason for adding this?I think I added this because both the mlguestfs.cma and mlguestfs.cmxa targets generate libmlguestfs.a: mlguestfs.cma: libguestfsocaml.a guestfs.cmo $(OCAMLMKLIB) -o mlguestfs \ $(libguestfsocaml_a_OBJECTS) guestfs.cmo \ -L$(top_builddir)/src/.libs -lguestfs mlguestfs.cmxa: libguestfsocaml.a guestfs.cmx $(OCAMLMKLIB) -o mlguestfs \ $(libguestfsocaml_a_OBJECTS) guestfs.cmx \ -L$(top_builddir)/src/.libs -lguestfs As far as I know, those are the only targets that shouldn't be run parallel. I think that an extra target (mlguestfs.cmxa: mlguestfs.cma) would make the .NOTPARALLEL unnecessary. Cheers, -Hilko
Richard W.M. Jones
2014-Mar-22 11:09 UTC
Re: [Libguestfs] [PATCH] Fix building on architectures where ocamlopt is not available
On Sat, Mar 22, 2014 at 11:36:33AM +0100, Hilko Bengen wrote:> * Richard W.M. Jones: > > > On Fri, Feb 28, 2014 at 02:35:56PM +0100, Hilko Bengen wrote: > >> diff --git a/ocaml/Makefile.am b/ocaml/Makefile.am > >> index 5dd2c9b..708b2e7 100644 > >> --- a/ocaml/Makefile.am > >> +++ b/ocaml/Makefile.am > > [...] > >> +# Tell version 3.79 and up of GNU make to not build goals in this > >> +# directory in parallel. > >> +.NOTPARALLEL: > > > > ^ This makes building the OCaml subdirectory very slow (I normally > > build with MAKEFLAGS=-j9). Was there a reason for adding this? > > I think I added this because both the mlguestfs.cma and mlguestfs.cmxa > targets generate libmlguestfs.a: > > mlguestfs.cma: libguestfsocaml.a guestfs.cmo > $(OCAMLMKLIB) -o mlguestfs \ > $(libguestfsocaml_a_OBJECTS) guestfs.cmo \ > -L$(top_builddir)/src/.libs -lguestfs > > mlguestfs.cmxa: libguestfsocaml.a guestfs.cmx > $(OCAMLMKLIB) -o mlguestfs \ > $(libguestfsocaml_a_OBJECTS) guestfs.cmx \ > -L$(top_builddir)/src/.libs -lguestfs > > As far as I know, those are the only targets that shouldn't be run > parallel. > > I think that an extra target (mlguestfs.cmxa: mlguestfs.cma) would make > the .NOTPARALLEL unnecessary.Right, I remember this was a problem now. It was fixed by: https://github.com/libguestfs/libguestfs/commit/dce94f3e266ed3f1fc634a1ef6953f2db1510963 Do you think we could re-add the stamp-file / touch $@ ? Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org
Hilko Bengen
2014-Mar-22 12:22 UTC
Re: [Libguestfs] [PATCH] Fix building on architectures where ocamlopt is not available
* Richard W.M. Jones:>> I think that an extra target (mlguestfs.cmxa: mlguestfs.cma) would make >> the .NOTPARALLEL unnecessary. > > Right, I remember this was a problem now. > > It was fixed by: > > https://github.com/libguestfs/libguestfs/commit/dce94f3e266ed3f1fc634a1ef6953f2db1510963 > > Do you think we could re-add the stamp-file / touch $@ ?Sure, it would have to be modified so it still works if OCAMLOPT is not available -- that's why I made that change in the first place. Wouldn't a rule without commands such as mlguestfs.cmxa: mlguestfs.cma also prevent make from building the two targets in parallel? Cheers, -Hilko