$target = {
id => $1,
conf => confstr($1),
- profiles => []
+ profiles => [],
+ features => [],
+ depends => []
};
push @target, $target;
};
/^Target-Path:\s*(.+)\s*$/ and $target->{path} = $1;
/^Target-Arch:\s*(.+)\s*$/ and $target->{arch} = $1;
/^Target-Features:\s*(.+)\s*$/ and $target->{features} = [ split(/\s+/, $1) ];
+ /^Target-Depends:\s*(.+)\s*$/ and $target->{depends} = [ split(/\s+/, $1) ];
/^Target-Description:/ and $target->{desc} = get_multiline(*FILE);
/^Linux-Version:\s*(.+)\s*$/ and $target->{version} = $1;
/^Linux-Release:\s*(.+)\s*$/ and $target->{release} = $1;
if ($target->{id} ne $target->{board}) {
print "\tselect TARGET_".$target->{boardconf}."\n";
}
+ foreach my $dep (@{$target->{depends}}) {
+ my $mode = "depends";
+ my $flags;
+ my $name;
+
+ $dep =~ /^([@\+\-]+)(.+)$/;
+ $flags = $1;
+ $name = $2;
+
+ $flags =~ /-/ and $mode = "deselect";
+ $flags =~ /\+/ and $mode = "select";
+ $flags =~ /@/ and print "\t$mode $name\n";
+ }
+
print "$features$help\n\n"
}
my $depends = shift;
my $only_dep = shift;
my $res;
+ my $dep = shift;
+ $dep or $dep = {};
$depends or return;
my @depends = @$depends;
# thus if FOO depends on other config options, these dependencies
# will not be checked. To fix this, we simply emit all of FOO's
# depends here as well.
- $package{$depend} and $res .= mconf_depends($package{$depend}->{depends}, 1);
+ $package{$depend} and mconf_depends($package{$depend}->{depends}, 1, $dep);
};
$flags =~ /@/ or $depend = "PACKAGE_$depend";
}
+ $dep->{$depend} =~ /select/ or $dep->{$depend} = $m;
+ }
+ foreach my $depend (keys %$dep) {
+ my $m = $dep->{$depend};
$res .= "\t\t$m $depend\n";
}
return $res;