use strict;
my $dir = '.';
for(0...$#ARGV) {
if($ARGV[$_] eq '-C') {
$dir = $ARGV[$_ + 1];
last;
}
}
my $no64 = `make -C $dir no64`;
chomp($no64);
if($no64 eq 'YES') {
my @archs;
my @arch64;
my @cflags;
my $arch = 0;
for(split(" ", $ENV{RC_CFLAGS})) {
if($arch) {
if(/64/) {
push(@arch64, $_);
} else {
push(@cflags, '-arch', $_);
push(@archs, $_);
}
$arch = 0;
next;
}
if($_ eq '-arch') {
$arch = 1;
next;
}
push(@cflags, $_);
}
unless(scalar(@archs) > 0) {
print "Not building:\tmake @ARGV\n";
exit 0;
}
$ENV{RC_CFLAGS} = join(' ', @cflags);
$ENV{RC_ARCHS} = join(' ', @archs);
push(@ARGV, "RC_CFLAGS=$ENV{RC_CFLAGS}", "RC_ARCHS=$ENV{RC_ARCHS}");
for(@arch64) {
delete($ENV{"RC_$_"});
push(@ARGV, "RC_$_=");
}
}
print "make @ARGV\n";
exec {'make'} 'make', @ARGV;