]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
depend: reduce code duplication, de-uglify make verbose output
authorStefano Lattarini <stefano.lattarini@gmail.com>
Thu, 10 Jan 2013 20:52:18 +0000 (21:52 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Thu, 16 May 2013 12:00:57 +0000 (14:00 +0200)
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 <stefano.lattarini@gmail.com>
bin/automake.in
lib/am/depend2.am
t/silent-nested-vars.sh

index 04906b3f37659cb8208628dc2835f50840366399..f51cfa770812e862c02bb1225a11288db4eb19c1 100644 (file)
@@ -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
index a947ee7b675a3b0916fc2657aed3d217c170b644..b975be2f3fb691c1b9717abadc4e92c9a665af51 100644 (file)
@@ -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%
index f03204d0b0c524197532117ada4295ae2d72e9b1..08f46fd26dee2eaa8372d67a3c84e7effbd11573 100755 (executable)
@@ -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";;