69 lines
1.4 KiB
Perl
Executable File
69 lines
1.4 KiB
Perl
Executable File
#! /usr/bin/perl
|
|
|
|
use strict;
|
|
|
|
my $cfg_prefix = "CONFIG";
|
|
my @arch_opts = ("IA32", "ARM", "UX" ,"XARCH");
|
|
my @abi_opts = ("V2", "X0", "V4", "ABI");
|
|
my @base_opts = ("INLINE", "NDEBUG", "NO_FRAME_PTR", "FINE_GRAINED_CPUTIME",
|
|
"FFUN");
|
|
my @debug_opts = ("KDB","JDB","VMEM_ALLOC_TEST","SERIAL", "PERF_CNT");
|
|
my @compile_opts = ("VERBOSE", "MAINTAINER_MODE");
|
|
|
|
my %cfg_files = ("arch_config.cfg" => \@arch_opts,
|
|
"abi_config.cfg" => \@abi_opts,
|
|
"base_config.cfg" => \@base_opts,
|
|
"debug_config.cfg" => \@debug_opts,
|
|
"compile_config.cfg" => \@compile_opts);
|
|
my $other_opts = "other_config.cfg";
|
|
|
|
my %cfg_files_2;
|
|
|
|
my $outfile = shift;
|
|
my $outhdl;
|
|
my $other = 0;
|
|
|
|
open($outhdl,">$outfile") || die "$outfile: $!";
|
|
|
|
foreach my $cfg (keys %cfg_files)
|
|
{
|
|
my $cfgs = $cfg_files{$cfg};
|
|
for (my $i = 0; $i <= $#$cfgs; $i++)
|
|
{
|
|
$cfgs->[$i] = $cfg_prefix."_".$cfgs->[$i];
|
|
}
|
|
}
|
|
|
|
my $expr;
|
|
|
|
if ($outfile eq $other_opts)
|
|
{
|
|
$other = 1;
|
|
foreach my $cfg (keys %cfg_files)
|
|
{
|
|
my $cfgs = $cfg_files{$cfg};
|
|
if ($expr ne "")
|
|
{
|
|
$expr = join("|", ($expr, @$cfgs));
|
|
} else {
|
|
$expr = join("|", @$cfgs);
|
|
}
|
|
}
|
|
} else {
|
|
my $cfgs = $cfg_files{$outfile};
|
|
exit 0 if (!defined $cfgs) ;
|
|
$expr= join("|", @$cfgs);
|
|
}
|
|
|
|
while(<>)
|
|
{
|
|
my $written = 0;
|
|
if (/^($expr)/ xor $other)
|
|
{
|
|
print $outhdl $_;
|
|
}
|
|
}
|
|
|
|
close $outhdl;
|
|
|