#!/usr/bin/perl my $config = (); open IN,".config"; while () { if (m/\s*([\d\w_]+)[=](.*)\n/) { #printf "%s=%s\n",$1,$2; $config { $1 } = $2; } } close IN; open IN,".version"; while () { if (m/KERNELRELEASE\s*[:]*[=]+\s*(\d+)\.(\d+)\.(\d+)/) { $version=$1; $level=$2; $sublevel=$3; } } close IN; open IN,"versions.txt"; while () { if (m/\[(\d+)\.(\d+)\.(\d+)\]/) { $minversion=$1; $minlevel=$2; $minsublevel=$3; next; } s/\n//; if (m/DVB_AV7110_FIRMWARE/) { next; } if (m/DVB_AV7110_FIRMWARE_FILE/) { next; } if (m/^\s*([\w\d_]+)/) { if ( ($version < $minversion) | ($level < $minlevel) | ($sublevel < $minsublevel) ) { $config { "CONFIG_$1" } = 'n'; #print "CONFIG_$1 version is not supported\n"; next; } if (!($config { "CONFIG_$1" } ) ) { print "CONFIG_$1 is unset\n"; $config { "CONFIG_$1" } = 'n'; } } } close IN; open OUT,">.myconfig"; while ( my ($key, $value) = each(%config) ) { if ($value eq "y") { $value="m"; } printf OUT "%-44s := %s\n",$key,$value; } close OUT;