[Libguestfs] [PATCH] build: add simple custom silent rules for automake

Pino Toscano ptoscano at redhat.com
Thu Aug 4 14:21:51 UTC 2016


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




More information about the Libguestfs mailing list