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