Hilko Bengen
2011-Aug-25 18:02 UTC
[Libguestfs] [PATCH] Correctly build febootstrap on systems without native OCaml compiler
On those systems "$(OCAMLFIND) $(OCAMLBEST)" was resolved as "ocamlfind byte" which did not work. --- Makefile.am | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Makefile.am b/Makefile.am index 109d2c8..4dc6f12 100644 --- a/Makefile.am +++ b/Makefile.am @@ -56,18 +56,18 @@ SOURCES_ML = $(filter %.ml,$(SOURCES)) BOBJECTS = $(SOURCES_ML:.ml=.cmo) XOBJECTS = $(SOURCES_ML:.ml=.cmx) -if !HAVE_OCAMLOPT -OBJECTS = $(BOBJECTS) -else -OBJECTS = $(XOBJECTS) -endif - OCAMLPACKAGES = -package unix,str OCAMLFLAGS = -warn-error CDEFLMPSUVXYZ -febootstrap: $(OBJECTS) - $(OCAMLFIND) $(OCAMLBEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) -linkpkg \ +if !HAVE_OCAMLOPT +febootstrap: $(BOBJECTS) + $(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -linkpkg \ + $^ -o $@ +else +febootstrap: $(XOBJECTS) + $(OCAMLFIND) ocamlopt $(OCAMLFLAGS) $(OCAMLPACKAGES) -linkpkg \ $^ -o $@ +endif .mli.cmi: $(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@ -- 1.7.5.4
Richard W.M. Jones
2011-Aug-25 18:42 UTC
[Libguestfs] [PATCH] Correctly build febootstrap on systems without native OCaml compiler
On Thu, Aug 25, 2011 at 08:02:36PM +0200, Hilko Bengen wrote:> On those systems "$(OCAMLFIND) $(OCAMLBEST)" was resolved as > "ocamlfind byte" which did not work. > --- > Makefile.am | 16 ++++++++-------- > 1 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/Makefile.am b/Makefile.am > index 109d2c8..4dc6f12 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -56,18 +56,18 @@ SOURCES_ML = $(filter %.ml,$(SOURCES)) > BOBJECTS = $(SOURCES_ML:.ml=.cmo) > XOBJECTS = $(SOURCES_ML:.ml=.cmx) > > -if !HAVE_OCAMLOPT > -OBJECTS = $(BOBJECTS) > -else > -OBJECTS = $(XOBJECTS) > -endif > - > OCAMLPACKAGES = -package unix,str > OCAMLFLAGS = -warn-error CDEFLMPSUVXYZ > > -febootstrap: $(OBJECTS) > - $(OCAMLFIND) $(OCAMLBEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) -linkpkg \ > +if !HAVE_OCAMLOPT > +febootstrap: $(BOBJECTS) > + $(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -linkpkg \ > + $^ -o $@ > +else > +febootstrap: $(XOBJECTS) > + $(OCAMLFIND) ocamlopt $(OCAMLFLAGS) $(OCAMLPACKAGES) -linkpkg \ > $^ -o $@ > +endifI just tested the original, and as you say the link command becomes: ocamlfind byte -warn-error CDEFLMPSUVXYZ -package unix,str -linkpkg \ config.cmo febootstrap_cmdline.cmo febootstrap_utils.cmo febootstrap_package_handlers.cmo febootstrap_yum_rpm.cmo febootstrap_debian.cmo febootstrap_pacman.cmo febootstrap.cmo -o febootstrap Usage: ocamlfind query [-help | other options] <package_name> ... or: ocamlfind ocamlc [-help | other options] <file> ... or: ocamlfind ocamlcp [-help | other options] <file> ... or: ocamlfind ocamlmktop [-help | other options] <file> ... [...] which corresponds to the documentation, and _zack and I wrote those OCaml m4 macros, so I guess I should have known :-) I've pushed a slightly different version of the patch, and I tested that it works with and without the native compiler. Thanks, Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://et.redhat.com/~rjones/virt-df/
Possibly Parallel Threads
- [PATCH] supermin: Fix build with bytecode compiler
- [PATCH v3] common/mlstdutils: Build a bytecode version of this library.
- [PATCH v4] common/mlstdutils: Build a bytecode version of this library.
- [PATCH] Fix out-of-tree builds of OCaml components
- [PATCH / RFC] Handle --packager-config in zypp_rpm