| #!/usr/bin/perl |
| use strict; |
| |
| sub combinations { |
| return [] unless @_; |
| my $first = shift; |
| my @rest = combinations(@_); |
| return @rest, map { [$first, @$_] } @rest; |
| } |
| |
| my @allargs=("--enable-debug", "--disable-wrapping", "--disable-justify", "--disable-extra", "--enable-tiny", "--disable-utf8", "--disable-multibuffer", "--disable-nanorc", "--with-slang"); |
| my @combos = combinations(@allargs); |
| |
| my $i = 0; |
| foreach my $name (@combos) { |
| my @args = @$name; |
| my $pct = $i / $#combos * 100; |
| printf "Trying with options: @args, %d%% done...\n", $pct; |
| my $cmd = "./configure @args && make clean all"; |
| system("($cmd) >/dev/null 2>&1"); |
| if ($? != 0) { |
| print "Build failed for args: @args\n"; |
| print "To reproduce, run:\n $cmd\n"; |
| exit(1); |
| } |
| $i++; |
| } |
| |
| print "All options completed successfully!\n"; |