47bca2f064
The --with-distro options might come from bin/build-ooo in a "build" style build, and in that case, the relevant configure options are already on the command line, too.
110 lines
2.6 KiB
Bash
Executable file
110 lines
2.6 KiB
Bash
Executable file
:
|
|
eval 'exec perl -S $0 ${1+"$@"}'
|
|
if 0;
|
|
|
|
use strict;
|
|
|
|
sub clean()
|
|
{
|
|
system ("rm -Rf autom4te.cache");
|
|
system ("rm -f missing install-sh mkinstalldirs libtool ltmain.sh");
|
|
print "cleaned the build tree\n";
|
|
}
|
|
|
|
# one argument per line
|
|
sub read_args($)
|
|
{
|
|
my $file = shift;
|
|
my $fh;
|
|
my @lst;
|
|
open ($fh, $file) || die "can't open file: $file";
|
|
while (<$fh>) {
|
|
chomp();
|
|
# migrate from the old system
|
|
if ( substr($_, 0, 1) eq "'" ) {
|
|
print "Migrating options from the old autogen.lastrun format, using:\n";
|
|
my @opts;
|
|
@opts = split(/'/);
|
|
foreach my $opt (@opts) {
|
|
if ( substr($opt, 0, 1) eq "-" ) {
|
|
push @lst, $opt;
|
|
print " $opt\n";
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
push @lst, $_;
|
|
}
|
|
}
|
|
close ($fh);
|
|
# print "read args from file '$file': @lst\n";
|
|
return @lst;
|
|
}
|
|
|
|
sub invalid_distro($$)
|
|
{
|
|
my ($config, $distro) = @_;
|
|
print STDERR "Can't find distro option set: $config\nThis is not necessarily a problem.\n";
|
|
print STDERR "Distros with distro option sets are:\n";
|
|
my $dirh;
|
|
opendir ($dirh, "distro-configs");
|
|
while (($_ = readdir ($dirh))) {
|
|
/(.*)\.conf$/ || next;
|
|
print STDERR "\t$1\n";
|
|
}
|
|
closedir ($dirh);
|
|
}
|
|
|
|
my @cmdline_args = ();
|
|
if (!@ARGV) {
|
|
my $lastrun = "autogen.lastrun";
|
|
@cmdline_args = read_args ($lastrun) if (-f $lastrun);
|
|
} else {
|
|
@cmdline_args = @ARGV;
|
|
}
|
|
|
|
my @args;
|
|
for my $arg (@cmdline_args) {
|
|
if ($arg eq '--clean') {
|
|
clean();
|
|
} elsif ($arg =~ m/--with-distro=(.*)$/) {
|
|
my $config = "distro-configs/$1.conf";
|
|
if (! -f $config) {
|
|
invalid_distro ($config, $1);
|
|
} else {
|
|
push @args, read_args ($config);
|
|
}
|
|
} else {
|
|
push @args, $arg;
|
|
}
|
|
}
|
|
|
|
system ("touch ChangeLog");
|
|
|
|
my $system = `uname -s`;
|
|
chomp $system;
|
|
|
|
my $aclocal_flags = $ENV{ACLOCAL_FLAGS};
|
|
|
|
$aclocal_flags = "-I ./m4/mac" if (($aclocal_flags eq "") && ($system eq 'Darwin'));
|
|
|
|
$ENV{AUTOMAKE_EXTRA_FLAGS} = '--warnings=no-portability' if (!($system eq 'Darwin'));
|
|
|
|
system ("aclocal $aclocal_flags") && die "Failed to run aclocal";
|
|
system ("autoconf") && die "Failed to run autoconf";
|
|
|
|
if (defined $ENV{NOCONFIGURE}) {
|
|
print "Skipping configure process.";
|
|
} else {
|
|
if ($#cmdline_args > 0) {
|
|
print "writing args to autogen.lastrun\n";
|
|
my $fh;
|
|
open ($fh, ">autogen.lastrun") || die "can't open autogen.lastrun: $!";
|
|
for my $arg (@cmdline_args) {
|
|
print $fh "$arg\n";
|
|
}
|
|
close ($fh);
|
|
}
|
|
print "running ./configure with '" . join ("' '", @args), "'\n";
|
|
system ("./configure", @args);
|
|
}
|