@prefixlist = ("isc", "isccfg","dns", "isccc", "libres");
@prefixlist = ("isccc");
@iscdirlist = ("isc/include/isc","isc/win32/include/isc");
@iscprefixlist = ("isc", "isc", "cfg");
@isccfgdirlist = ("isccfg/include/isccfg");
@isccfgprefixlist = ("cfg");
@iscccdirlist = ("isccc/include/isccc");
@iscccprefixlist = ("isccc");
@dnsdirlist = ("dns/include/dns","dns/sec/dst/include/dst");
@dnsprefixlist = ("dns", "dst");
@lwresdirlist = ("lwres/include/lwres");
@lwresprefixlist = ("lwres");
$ind = 0;
createoutfile($iscprefixlist[0]);
foreach $dir (@iscdirlist) {
createdeffile($dir, $iscprefixlist[$ind]);
$ind++;
}
close OUTDEFFILE;
$ind = 0;
createoutfile($isccfgprefixlist[0]);
foreach $dir (@isccfgdirlist) {
createdeffile($dir, $isccfgprefixlist[$ind]);
$ind++;
}
close OUTDEFFILE;
$ind = 0;
createoutfile($dnsprefixlist[0]);
foreach $dir (@dnsdirlist) {
createdeffile($dir, $dnsprefixlist[$ind]);
$ind++;
}
close OUTDEFFILE;
$ind = 0;
createoutfile($iscccprefixlist[0]);
foreach $dir (@iscccdirlist) {
createdeffile($dir, $iscccprefixlist[$ind]);
$ind++;
}
close OUTDEFFILE;
$ind = 0;
createoutfile($lwresprefixlist[0]);
foreach $dir (@lwresdirlist) {
createdeffile($dir, $lwresprefixlist[$ind]);
$ind++;
}
close OUTDEFFILE;
exit;
sub createdeffile {
$xdir = $_[0];
$prefix = $_[1];
$pattern = "\^\(\(\[\_a\-z0\-9\]\)\*\( \)\)\*\(\\*\( \)\+\)\*$prefix";
$pattern = "$pattern\_\[\_a\-z0\-9\]\+_\[a\-z0\-9\]\+\( \)\*\\\(";
opendir(DIR,$xdir) || die "No Directory: $!";
@files = grep(/\.h$/i, readdir(DIR));
closedir(DIR);
foreach $filename (sort @files) {
open (HFILE, "$xdir/$filename") ||
die "Can't open file $filename : $!";
while (<HFILE>) {
if(/$pattern/) {
$func = $&;
chop($func);
$space = rindex($func, " ") + 1;
if($space >= 0) {
$func = substr($func, $space, 100);
}
print OUTDEFFILE "$func\n";
}
}
close(HFILE);
}
}
sub createoutfile {
$outfile = "lib$_[0].def";
open (OUTDEFFILE, ">$outfile")
|| die "Can't open output file $outfile: $!";
print OUTDEFFILE "LIBRARY lib$_[0]\n";
print OUTDEFFILE "\n";
print OUTDEFFILE "; Exported Functions\n";
print OUTDEFFILE "EXPORTS\n";
print OUTDEFFILE "\n";
}