
On Fri, 2019-07-26 at 10:23 +0100, Daniel P. Berrangé wrote:
On Fri, Jul 26, 2019 at 11:18:03AM +0200, Andrea Bolognani wrote:
On Tue, 2019-07-23 at 17:02 +0100, Daniel P. Berrangé wrote: [...]
+AUG_TEST_NAMES = $(subst /,-, $(augeastest_DATA))
check-local: check-augeas
-check-augeas: $(AUGEAS_DIRS:%=check-augeas-%) +check-augeas: $(AUG_TEST_NAMES:%=check-augeas-%) + +check-augeas-%: $(augeas_DATA) $(augeastest_DATA) + $(AM_V_GEN)export FILE=`echo $* | sed -e 's/.*-//'`; \ + export DIR=`echo $* | sed -e 's/-.*//'`; \ + if test -x '$(AUGPARSE)'; then \ + '$(AUGPARSE)' -I $(srcdir)/$$DIR -I $(builddir)/$$DIR $$DIR/$$FILE; \ + fi
How about we skip the double conversion steps and just do
check-augeas: $(augeas_DATA) $(augeastest_DATA) $(AM_V_GEN) \ if test -x "$(AUGPARSE)"; then \ for f in $(augeastest_DATA); do \ DIR=$$(dirname "$$f"); \ FILE=$$(basename "$$f"); \ "$(AUGPARSE)" \ -I "$(srcdir)/$$DIR" -I "$(builddir)/$$DIR" \ "$$DIR/$$FILE"; \ done; \ fi .PHONY: check-augeas
instead? As an added bonus, this version avoids doing any work if augparse is not available and is correctly marked as PHONY, which the rules you're replacing also were.
This doesn't show any output for the files - I wanted to see the make output for each file being checked, as its a useful confirmation that we're actually processing the files we expect to have.
That's only a couple small tweaks away: check-augeas: $(augeas_DATA) $(augeastest_DATA) @if test -x "$(AUGPARSE)"; then \ for f in $(augeastest_DATA); do \ DIR=$$(dirname "$$f"); \ FILE=$$(basename "$$f"); \ echo "AUGPARSE $$f"; \ "$(AUGPARSE)" \ -I "$(srcdir)/$$DIR" -I "$(builddir)/$$DIR" \ "$$DIR/$$FILE"; \ done; \ fi .PHONY: check-augeas This version even results in a more accurate output, as we're not really generating the files but rather validating them. -- Andrea Bolognani / Red Hat / Virtualization