#!/usr/bin/perl -w
#
# Creates a DEF file from a DLL.
#
use strict;
use File::Basename;
my $dll = shift || die "usage: $0 dll-name\n";
my $dllname = basename ($dll);
open (PIPE, "objdump -p $dll|") || die "objdump: $!\n";
print "LIBRARY $dllname\n";
print "EXPORTS\n";
my $exitcode = 1;
while (<PIPE>) {
if (/^\[Ordinal\/Name Pointer\] Table$/) {
while (<PIPE>) {
if (/^\s*\[\s*[0-9]+\]\s*(.+)\s*$/) {
print $1, "\n";
$exitcode = 0;
} else {
last;
}
}
}
}
close (PIPE) || die "objdump: $!\n";
warn ("$dllname: No symbols found.\n") if $exitcode;
exit ($exitcode);