freebsd-skq/contrib/perl5/h2pl/mkvars

32 lines
689 B
Perl

#!/usr/bin/perl
require 'sizeof.ph';
$LIB = '/usr/local/lib/perl';
foreach $include (@ARGV) {
printf STDERR "including %s\n", $include;
do $include;
warn "sourcing $include: $@\n" if ($@);
if (!open (INCLUDE,"$LIB/$include")) {
warn "can't open $LIB/$include: $!\n";
next;
}
while (<INCLUDE>) {
chop;
if (/^\s*eval\s+'sub\s+(\w+)\s.*[^{]$/ || /^\s*sub\s+(\w+)\s.*[^{]$/) {
$var = $1;
$val = eval "&$var;";
if ($@) {
warn "$@: $_";
print <<EOT;
warn "\$$var isn't correctly set" if defined \$_main{'$var'};
EOT
next;
}
( $nval = sprintf ("%x",$val ) ) =~ tr/a-z/A-Z/;
printf "\$%s = 0x%s;\n", $var, $nval;
}
}
}