1#!/usr/bin/env perl 2use strict; 3use warnings; 4use 5.010; 5 6use Capture::Tiny 'capture'; 7use Path::Class; 8 9my $file = file($ARGV[0]); 10my @lines = $file->slurp; 11 12my @remove; 13for my $i (0..$#lines) { 14 my $line = $lines[$i]; 15 if ($line =~ /^\s*#\s*include\s+"(.*)"/) { 16 my $header = $1; 17 next if $header eq 'AppHdr.h'; 18 $file->spew(join('', @lines[0..($i-1)], @lines[($i+1)..$#lines])); 19 my $ret; 20 capture { 21 $ret = system("make -j5"); 22 }; 23 push @remove, $i unless $ret; 24 } 25} 26 27for my $remove (reverse @remove) { 28 splice(@lines, $remove, 1); 29} 30$file->spew(join('', @lines)); 31my $ret; 32my $output = capture { 33 $ret = system("make -j5"); 34}; 35print $output if $ret; 36exit $ret; 37