#!/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";