From: Stefano Lattarini Date: Thu, 10 Jan 2013 20:52:18 +0000 (+0100) Subject: depend: reduce code duplication, de-uglify make verbose output X-Git-Tag: v1.16~89^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ca41efd3e14a9523e4e0cc1d9689eb30b6b7045a;p=thirdparty%2Fautomake.git depend: reduce code duplication, de-uglify make verbose output Verbose output from compilation recipes had been made more messy by the previous "simplifying" commit v1.13.1d-220-g1fa0c24. With this patch, not only we reduce some code duplication, but also improve that output again, for the joy of users who dislike silent-rules :-) * lib/am/depend2.am: Use the new '%XSOURCE%' transform, instead of copying and pasting the idiom for VPATH rewrite emulation over and over. Fix some indentation and line-wrapping issues while at it. * bin/automake.in (handle_languages): Implement the new transform. * t/silent-nested-vars.sh: Adjust to avoid spurious failures. Signed-off-by: Stefano Lattarini --- diff --git a/bin/automake.in b/bin/automake.in index 04906b3f3..f51cfa770 100644 --- a/bin/automake.in +++ b/bin/automake.in @@ -1291,6 +1291,7 @@ sub handle_languages () BASE => '$*', SOURCE => '$<', + XSOURCE => '$<', SOURCEFLAG => $sourceflags{$ext} || '', OBJ => '$@', OBJOBJ => '$@', @@ -1342,6 +1343,9 @@ sub handle_languages () "\$(LIBTOOL) $ltverbose $libtool_tag\$($ptltflags) \$(LIBTOOLFLAGS) " . "--mode=compile $obj_compile"; + # For non-suffix rules, we must emulate a VPATH search. + my $xsource = "`test -f '$source' || echo '\$(srcdir)/'`$source"; + $output_rules .= file_contents ($rule_file, new Automake::Location, @@ -1350,6 +1354,7 @@ sub handle_languages () BASE => $obj, SOURCE => $source, + XSOURCE => $xsource, SOURCEFLAG => $sourceflags{$srcext} || '', # Use $myext and not '.o' here, in case # we are actually building a new source diff --git a/lib/am/depend2.am b/lib/am/depend2.am index a947ee7b6..b975be2f3 100644 --- a/lib/am/depend2.am +++ b/lib/am/depend2.am @@ -41,43 +41,29 @@ if %?NONLIBTOOL% ?GENERIC?%EXT%.o: ?!GENERIC?%OBJ%: %SOURCE% if %FASTDEP% - %VERBOSE%$(am__set_depbase) \ - && %COMPILE% -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ %SOURCEFLAG% \ -?GENERIC? %SOURCE% \ -## For non-suffix rules, we must emulate a VPATH search on %SOURCE%. -?!GENERIC? `test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE% \ - && $(am__mv) $$depbase.Tpo $$depbase.Po + %VERBOSE%$(am__set_depbase) && \ + %COMPILE% -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ %SOURCEFLAG% %XSOURCE% && \ + $(am__mv) $$depbase.Tpo $$depbase.Po else !%FASTDEP% if %AMDEP% %VERBOSE%source='%SOURCE%' object='$@' libtool=no @AMDEPBACKSLASH@ DEPDIR=$(DEPDIR) $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@ endif %AMDEP% - %VERBOSE-NODEP%%COMPILE% -c -o $@ %SOURCEFLAG% \ -?GENERIC? %SOURCE% -## For non-suffix rules, we must emulate a VPATH search on %SOURCE%. -?!GENERIC? `test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE% + %VERBOSE-NODEP%%COMPILE% -c -o $@ %SOURCEFLAG% %XSOURCE% endif !%FASTDEP% ?GENERIC?%EXT%.obj: ?!GENERIC?%OBJOBJ%: %SOURCE% if %FASTDEP% - %VERBOSE%$(am__set_depbase) \ - && %COMPILE% -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ %SOURCEFLAG% \ -?GENERIC? $$($(CYGPATH_W) '%SOURCE%') \ -## For non-suffix rules, we must emulate a VPATH search on %SOURCE%. -?!GENERIC? $$(if test -f '%SOURCE%'; then $(CYGPATH_W) '%SOURCE%'; \ -?!GENERIC? else $(CYGPATH_W) '$(srcdir)/%SOURCE%'; fi) \ - && $(am__mv) $$depbase.Tpo $$depbase.Po + %VERBOSE%$(am__set_depbase) && \ + %COMPILE% -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ %SOURCEFLAG% $$($(CYGPATH_W) %XSOURCE%) && \ + $(am__mv) $$depbase.Tpo $$depbase.Po else !%FASTDEP% if %AMDEP% %VERBOSE%source='%SOURCE%' object='$@' libtool=no @AMDEPBACKSLASH@ DEPDIR=$(DEPDIR) $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@ endif %AMDEP% - %VERBOSE-NODEP%%COMPILE% -c -o $@ %SOURCEFLAG% \ -?GENERIC? $$($(CYGPATH_W) '%SOURCE%') -## For non-suffix rules, we must emulate a VPATH search on %SOURCE%. -?!GENERIC? $$(if test -f '%SOURCE%'; then $(CYGPATH_W) '%SOURCE%'; \ -?!GENERIC? else $(CYGPATH_W) '$(srcdir)/%SOURCE%'; fi) + %VERBOSE-NODEP%%COMPILE% -c -o $@ %SOURCEFLAG% $$($(CYGPATH_W) %XSOURCE%) endif !%FASTDEP% endif %?NONLIBTOOL% @@ -85,20 +71,14 @@ if %?LIBTOOL% ?GENERIC?%EXT%.lo: ?!GENERIC?%LTOBJ%: %SOURCE% if %FASTDEP% - %VERBOSE%$(am__set_depbase) \ - && %LTCOMPILE% -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ %SOURCEFLAG% \ -?GENERIC? %SOURCE% \ -## For non-suffix rules, we must emulate a VPATH search on %SOURCE%. -?!GENERIC? `test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE% \ - && $(am__mv) $$depbase.Tpo $$depbase.Plo + %VERBOSE%$(am__set_depbase) && \ + %LTCOMPILE% -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ %SOURCEFLAG% %XSOURCE% && \ + $(am__mv) $$depbase.Tpo $$depbase.Plo else !%FASTDEP% if %AMDEP% %VERBOSE%source='%SOURCE%' object='$@' libtool=yes @AMDEPBACKSLASH@ DEPDIR=$(DEPDIR) $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@ endif %AMDEP% - %VERBOSE-NODEP%%LTCOMPILE% -c -o $@ %SOURCEFLAG% \ -?GENERIC? %SOURCE% -## For non-suffix rules, we must emulate a VPATH search on %SOURCE%. -?!GENERIC? `test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE% + %VERBOSE-NODEP%%LTCOMPILE% -c -o $@ %SOURCEFLAG% %XSOURCE% endif !%FASTDEP% endif %?LIBTOOL% diff --git a/t/silent-nested-vars.sh b/t/silent-nested-vars.sh index f03204d0b..08f46fd26 100755 --- a/t/silent-nested-vars.sh +++ b/t/silent-nested-vars.sh @@ -67,7 +67,7 @@ case $1 in done ;; esac -nested_var_pat='^[^#].*\$([^)]*\$' +nested_var_pat='^[^#].*[^$]\$([^)]*\$' if case $makefile in -) printf '%s\n' "$makerules" | grep "$nested_var_pat";;