5 my $kconfig_src_file = shift;
6 my $kconfig_obj_file = shift;
9 foreach my $f (@ARGV) {
11 $bsp_name = $1 if $f =~ /\/bsp\/([^\/]+)\//;
12 open(X, $f) || die "Cannot open $f: $!";
18 $pf = $1 if /^\s*\#\s*PF:\s*(\S+)/;
19 $pfdescr = $1 if /^\s*\#\s*PFDESCR:\s*(.+)/;
20 push(@pfselect, split(/\s+/, $1)) if /^\s*\#\s*PFSELECT:\s*(.+)/;
21 push(@pfdep, split(/\s+/, $1)) if /^\s*\#\s*PFDEPENDS:\s*(.+)/;
23 if (/^\s*\#\s*PFCAN:\s*(.+)/)
25 push(@pfselect, split(/\s+/, $1));
26 print "WARN: $f:$.: PFCAN is deprecated, use PFSELECT\n";
30 $pfs{$pf}{desc} = $pfdescr;
31 @{$pfs{$pf}{select}} = @pfselect;
32 @{$pfs{$pf}{dep}} = @pfdep;
33 $pfs{$pf}{name} = $bsp_name;
36 open(IN, "$kconfig_src_file") || die "Cannot open $kconfig_src_file: $!";
37 open(OUT, ">$kconfig_obj_file") || die "Cannot open $kconfig_obj_file: $!";
40 if (/^\s*\#\s*PF_INCLUDE\W/) {
41 foreach my $i (keys %pfs) {
42 print OUT "if PF_$i\n";
43 if (defined $pfs{$i}{name}) {
44 print OUT "config BSP_NAME\n string\n";
45 print OUT " depends on PF_$i\n";
46 print OUT " default \"$pfs{$i}{name}\"\n";
48 print OUT "source \"$pfs{$i}{file}\"\nendif\n";
51 if (/^\s*\#\s*PF_CHOICE\W/) {
52 foreach my $i (keys %pfs) {
53 if (defined $pfs{$i}{desc}) {
54 print OUT "config PF_$i\n bool \"$pfs{$i}{desc}\"\n";
56 print OUT "config PF_$i\n bool \"$i Platform\"\n";
58 print OUT " depends on $_\n" foreach (@{$pfs{$i}{dep}});
59 print OUT " select $_\n" foreach (@{$pfs{$i}{select}});