Perl: Howto...
Jan-Benedict Glaw
jbglaw at lug-owl.de
Wed Jul 25 12:33:02 CEST 2001
Hallo!
Ich hab' ein kleines Perl-Problem und absolut keine Ahnung[1]:
Das LXR-Projekt (leider etwas eingeschlafen...) soll installiert werden
Um in den Linux-Quellen die #include <asm/blah.h> wiederfinden zu können,
benutzt LXR folgendes Mapping:
1. Architektur-Variable:
'a' => {
'name' => 'Architecture',
'range' => [ qw(i386 alpha arm cris ia64 m68k mips mips64 parisc ppc s390 s390x sh sparc sparc64)]
},
2. Das Mapping:
'maps' => {
'/include/asm[^\/]*/' => '/include/asm-$a/',
'/arch/[^\/]+/' => '/arch/$a/',
},
Diese werden mittels
sub mappath {
my ($self, $path, @args) = @_;
my %oldvars;
my ($m, $n);
foreach $m (@args) {
if ($m =~ /(.*?)=(.*)/) {
$oldvars{$1} = $self->variable($1);
$self->variable($1, $2);
}
}
while (($m, $n) = each %{$self->{maps} || {}}) {
$path =~ s/$m/$self->varexpand($n)/e;
}
while (($m, $n) = each %oldvars) {
$self->variable($m, $n);
}
return $path;
}
auf einen Pfad angewendet, um z.B. für i386 aus /include/asm/blah.h
/include/asm-i386/blah.h zu machen. Mein Problem ist nun, daß es
in gaaaaaanz frühen Kerneln diese Architektur-Unterscheidungen noch
nicht gab. Ich habe versucht, eine weitere Architektur "noarch"
einzufügen sowie das Mapping
'/include/asm-noarch/' => '/include/asm/'
aber das hat leider nicht funktioniert. Kann mir jemand sagen, wie ich
sowas machen kann?
MfG, JBG
[1] ...das bezieht sich natürlich nur auf Perl =8-]
More information about the Linux
mailing list