]> ruderich.org/simon Gitweb - blhc/blhc.git/blobdiff - bin/blhc
Use /x to make regex more readable.
[blhc/blhc.git] / bin / blhc
index 1d1fc27d6d2a5cdbe613de7c37cdf04105243f1f..527a09866e59214cdb620e007c8f74796e94084b 100755 (executable)
--- a/bin/blhc
+++ b/bin/blhc
@@ -166,7 +166,7 @@ sub is_non_verbose_build {
     my ($line, $next_line, $skip_ref) = @_;
 
     if (not ($line =~ /^checking if you want to see long compiling messages\.\.\. no/
-                or $line =~ /^\s*(?:CC|CCLD)\s+(.+?)$/
+                or $line =~ /^\s*\[?(?:CC|CCLD|LD)\]?\s+(.+?)$/
                 or $line =~ /^\s*(?:C|c)ompiling\s+(.+?)(?:\.\.\.)?$/
                 or $line =~ /^\s*(?:B|b)uilding (?:program|shared library)\s+(.+?)$/
                 or $line =~ /^\s*\[[\d ]+%\] Building (?:C|CXX) object (.+?)$/)) {
@@ -282,6 +282,16 @@ while (my $line = <>) {
     # Ignore compiler warnings for now.
     next if $line =~ /$warning_regex/;
 
+    # Remove all ANSI color sequences which are sometimes used in non-verbose
+    # builds.
+    $line = Term::ANSIColor::colorstrip($line);
+    # Also strip '\0xf' (delete previous character), used by Elink's build
+    # system.
+    $line =~ s/\x0f//g;
+    # And "ESC(B" which seems to be used on armhf and hurd (not sure what it
+    # does).
+    $line =~ s/\033\(B//g;
+
     # Check if this line indicates a non verbose build.
     my $non_verbose = is_non_verbose_build($line);
 
@@ -325,7 +335,11 @@ while (my $line = <>) {
             #
             # `./configure` output.
             next if not $non_verbose and $line =~ /^checking /;
-            next if $line =~ /^\s*(?:C|c)ompiler[\s.]*:\s+$cc_regex(?:\s-std=[a-z0-9:+]+)?\s*$/
+            next if $line =~ /^\s*(?:C\s+)?
+                               (?:C|c)ompiler[\s.]*:\s+
+                               $cc_regex
+                               (?:\s-std=[a-z0-9:+]+)?\s*$
+                             /x
                     or $line =~ /^\s*(?:- )?(?:CC|CXX)\s*=\s*$cc_regex\s*$/
                     or $line =~ /^\s*-- Check for working (?:C|CXX) compiler: /
                     or $line =~ /^\s*(?:echo )?Using [A-Z_]+\s*=\s*/;