X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=build%2Fgenconf;h=eaf2d1c727155632aca5700c29fcd0cda82e7bcc;hb=f1b56d292bbe248bf29c078d27986cdfbb1b3d39;hp=29565a9c48a9d3bc2e34c442cbd3b8b9c457b690;hpb=15ea795b7c38ac31c2d00e051fddb65b12e8310c;p=libucw.git diff --git a/build/genconf b/build/genconf index 29565a9c..eaf2d1c7 100755 --- a/build/genconf +++ b/build/genconf @@ -10,18 +10,28 @@ use warnings; open CF, $ARGV[2] or die "Unable to open $ARGV[2]"; my %options = (); my %vars = (); +sub opt { + my ($k,$v) = @_; + $vars{$k} = $v; + $options{$k} = 1 if ($k =~ /^CONFIG_/); +} +foreach my $k (keys %ENV) { + opt($k, $ENV{$k}); +} while () { chomp; if (my ($k,$v) = /^(\w+)=(.*)/) { $v =~ s/\s+$//; - $vars{$k} = $v; - $options{$k} = 1 if ($k =~ /^CONFIG_/); + opt($k, $v); } } close CF; -my $opt_regex = join("|", keys %options); -sub eval_expr { $_ = "@_"; s/\b($opt_regex)\b/ 1 /g if $opt_regex; s/\bCONFIG_\w+\b/ 0 /g; return eval $_; } +sub eval_expr { + $_ = shift @_; + s/\b(CONFIG_\w+)\b/defined($options{$1}) ? 1 : 0/ge; + return eval $_; +} open IN, $ARGV[0] or die "Unable to open $ARGV[0]"; open OUT, ">$ARGV[1]" or die "Unable to create $ARGV[1]";