[Libguestfs] [PATCH] build: add simple custom silent rules for automake
Richard W.M. Jones
rjones at redhat.com
Thu Aug 4 14:26:48 UTC 2016
On Thu, Aug 04, 2016 at 04:21:51PM +0200, Pino Toscano wrote:
> Add makefile variables to enable silent rules for simple command
> invocations, such as ocamlc, ocamlopt, javac, and erlc.
>
> This reduces the log output when building with silent rules, still
> showing the full command lines otherwise.
> ---
> erlang/Makefile.am | 2 +-
> java/Makefile.am | 6 +++---
> ocaml/Makefile.am | 14 +++++++-------
> subdir-rules.mk | 20 +++++++++++++++++---
> 4 files changed, 28 insertions(+), 14 deletions(-)
>
> diff --git a/erlang/Makefile.am b/erlang/Makefile.am
> index a9825f6..7dc0906 100644
> --- a/erlang/Makefile.am
> +++ b/erlang/Makefile.am
> @@ -52,7 +52,7 @@ erlang_bin_DATA = guestfs.beam
> # The ./run script will set $ERL_LIBS to point to $(builddir)/erlang.
> # (See: http://www.erlang.org/doc/man/code.html)
> guestfs.beam: guestfs.erl
> - $(ERLC) +debug_info $^
> + $(guestfs_am_v_erlc)$(ERLC) +debug_info $^
> mkdir -p $(PACKAGE)-$(VERSION)/ebin
> cp $@ $(PACKAGE)-$(VERSION)/ebin
>
> diff --git a/java/Makefile.am b/java/Makefile.am
> index 0651fd3..8b6944d 100644
> --- a/java/Makefile.am
> +++ b/java/Makefile.am
> @@ -79,7 +79,7 @@ libguestfs_jardir = $(JAR_INSTALL_DIR)
> libguestfs_jar_DATA = libguestfs-${VERSION}.jar
> libguestfs_jar_class_files = $(java_sources:.java=.class)
> $(libguestfs_jar_class_files): %.class: %.java
> - $(JAVAC) $(JAVAC_FLAGS) -d . -classpath $(srcdir):. $<
> + $(guestfs_am_v_javac)$(JAVAC) $(JAVAC_FLAGS) -d . -classpath $(srcdir):. $<
>
> libguestfs-${VERSION}.jar: $(libguestfs_jar_class_files)
> $(JAR) cf $@ $^
> @@ -140,9 +140,9 @@ TESTS_ENVIRONMENT = $(top_builddir)/run --test
> check_DATA = Bindtests.class $(java_tests:.java=.class)
>
> t/%.class: t/%.java libguestfs-$(VERSION).jar
> - $(JAVAC) $(JAVAC_FLAGS) -classpath libguestfs-$(VERSION).jar -d t $<
> + $(guestfs_am_v_javac)$(JAVAC) $(JAVAC_FLAGS) -classpath libguestfs-$(VERSION).jar -d t $<
>
> Bindtests.class: Bindtests.java libguestfs-$(VERSION).jar
> - $(JAVAC) $(JAVAC_FLAGS) -classpath libguestfs-$(VERSION).jar -d . $<
> + $(guestfs_am_v_javac)$(JAVAC) $(JAVAC_FLAGS) -classpath libguestfs-$(VERSION).jar -d . $<
>
> endif
> diff --git a/ocaml/Makefile.am b/ocaml/Makefile.am
> index acbfad1..501ac69 100644
> --- a/ocaml/Makefile.am
> +++ b/ocaml/Makefile.am
> @@ -158,12 +158,12 @@ check_DATA += bindtests.opt
> endif
>
> %.bc: %.cmo mlguestfs.cma
> - $(top_builddir)/libtool -dlopen $(top_builddir)/src/.libs/libguestfs.la --mode=execute \
> + $(guestfs_am_v_ocamlc)$(top_builddir)/libtool -dlopen $(top_builddir)/src/.libs/libguestfs.la --mode=execute \
> $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -I . -package unix -linkpkg mlguestfs.cma $< -o $@
>
> if HAVE_OCAMLOPT
> %.opt: %.cmx mlguestfs.cmxa
> - $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
> + $(guestfs_am_v_ocamlopt)$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
> endif
>
> check-valgrind:
> @@ -173,16 +173,16 @@ CLEANFILES += bindtests.tmp
>
> # Dependencies.
> %.cmi: %.mli
> - $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -package unix -c $< -o $@
> + $(guestfs_am_v_ocamlc)$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -package unix -c $< -o $@
> guestfs.cmo: guestfs.ml
> - $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -package unix -c $< -o $@
> + $(guestfs_am_v_ocamlc)$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -package unix -c $< -o $@
> %.cmo: %.ml mlguestfs.cma
> - $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -package unix -c $< -o $@
> + $(guestfs_am_v_ocamlc)$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -package unix -c $< -o $@
> if HAVE_OCAMLOPT
> guestfs.cmx: guestfs.ml
> - $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -package unix -c $< -o $@
> + $(guestfs_am_v_ocamlopt)$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -package unix -c $< -o $@
> %.cmx: %.ml mlguestfs.cmxa
> - $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -package unix -c $< -o $@
> + $(guestfs_am_v_ocamlopt)$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -package unix -c $< -o $@
> endif
>
> depend: .depend
> diff --git a/subdir-rules.mk b/subdir-rules.mk
> index 39c2f50..d6aaba7 100644
> --- a/subdir-rules.mk
> +++ b/subdir-rules.mk
> @@ -56,11 +56,25 @@ MLARCHIVE = cmxa
> BEST = opt
> endif
>
> +# custom silent rules
> +guestfs_am_v_ocamlc = $(guestfs_am_v_ocamlc_ at AM_V@)
> +guestfs_am_v_ocamlc_ = $(guestfs_am_v_ocamlc_ at AM_DEFAULT_V@)
> +guestfs_am_v_ocamlc_0 = @echo " OCAMLC " $@;
> +guestfs_am_v_ocamlopt = $(guestfs_am_v_ocamlopt_ at AM_V@)
> +guestfs_am_v_ocamlopt_ = $(guestfs_am_v_ocamlopt_ at AM_DEFAULT_V@)
> +guestfs_am_v_ocamlopt_0 = @echo " OCAMLOPT " $@;
> +guestfs_am_v_javac = $(guestfs_am_v_javac_ at AM_V@)
> +guestfs_am_v_javac_ = $(guestfs_am_v_javac_ at AM_DEFAULT_V@)
> +guestfs_am_v_javac_0 = @echo " JAVAC " $@;
> +guestfs_am_v_erlc = $(guestfs_am_v_erlc_ at AM_V@)
> +guestfs_am_v_erlc_ = $(guestfs_am_v_erlc_ at AM_DEFAULT_V@)
> +guestfs_am_v_erlc_0 = @echo " ERLC " $@;
> +
> .mli.cmi:
> - $(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
> + $(guestfs_am_v_ocamlc)$(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
> .ml.cmo:
> - $(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
> + $(guestfs_am_v_ocamlc)$(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
> if HAVE_OCAMLOPT
> .ml.cmx:
> - $(OCAMLFIND) ocamlopt $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
> + $(guestfs_am_v_ocamlopt)$(OCAMLFIND) ocamlopt $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
> endif
> --
> 2.7.4
ACK.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
More information about the Libguestfs
mailing list