Avoid sed for dependency post-processing
authorRichard Levitte <levitte@openssl.org>
Sat, 12 Mar 2016 00:06:48 +0000 (01:06 +0100)
committerRichard Levitte <levitte@openssl.org>
Sat, 12 Mar 2016 00:15:12 +0000 (01:15 +0100)
It turns out that different sed implementations treat -i differently
to cause issues.  make it simpler by avoiding it entirely and give
perl the trust to be consistent enough.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Configurations/unix-Makefile.tmpl

index e6dba5d..ffe7551 100644 (file)
@@ -868,11 +868,6 @@ EOF
       }
   }
 
-  # The combination of perl and sed takes advantage of their respective
-  # capabilities.  Some sed implementations aren't greedy (enough), which
-  # is problematic with the some regexps.  However, the sed d command is
-  # simply easier in sed.
-  #
   # Should one wonder about the end of the Perl snippet, it's because this
   # second regexp eats up line endings as well, if the removed path is the
   # last in the line.  We may therefore need to put back a line ending.
@@ -894,8 +889,9 @@ $obj$depext: $deps
        rm -f \$\@.tmp; touch \$\@.tmp
        -\$(MAKEDEPEND) -f\$\@.tmp -o"|$obj$objext" -- \$(CFLAGS) $ecflags$incs -- $srcs \\
            2>/dev/null
-       perl -i -pe 's/^.*\\|//; s/ \\/(\\\\.|[^ ])*//; \$\$_.="\\n" unless /\\R\$\$/g' \$\@.tmp
-       sed -i -e '/: *\$\$/d' -e '/^\\(#.*\\| *\\)\$\$/d' \$\@.tmp
+       perl -i -pe 's/^.*\\|//; s/ \\/(\\\\.|[^ ])*//;               #\\
+                    \$\$_ = undef if (/: *\$\$/ || /^(#.*| *)\$\$/); #\\
+                    \$\$_.="\\n" unless !defined(\$\$_) or /\\R\$\$/g;' \$\@.tmp
        \@if ! cmp \$\@.tmp \$\@ > /dev/null 2> /dev/null; then \\
                mv \$\@.tmp \$\@; \\
        else \\