dougm 01/10/09 11:28:19
Modified: lib/ModPerl WrapXS.pm
Log:
generate {apache,modperl}.def files for win32
Revision Changes Path
1.26 +29 -3 modperl-2.0/lib/ModPerl/WrapXS.pm
Index: WrapXS.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/lib/ModPerl/WrapXS.pm,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- WrapXS.pm 2001/10/09 18:19:35 1.25
+++ WrapXS.pm 2001/10/09 18:28:18 1.26
@@ -569,6 +569,7 @@
$self->get_functions;
$self->get_structures;
$self->write_exp; #XXX if $^O eq 'aix'
+ $self->write_def; #XXX if $^O eq 'Win32'
while (my($module, $functions) = each %{ $self->{XS} }) {
# my($root, $sub) = split '::', $module;
@@ -581,6 +582,13 @@
}
}
+sub open_export_file {
+ my($self, $name, $ext) = @_;
+ my $file = join '/', $self->{XS_DIR}, "$name.$ext";
+ open my $fh, '>', $file or die "open $file: $!";
+ return($fh, $file);
+}
+
sub write_exp {
my $self = shift;
@@ -590,13 +598,31 @@
);
while (my($name, $table) = each %files) {
- my $file = join '/', $self->{XS_DIR}, "$name.exp";
- open my $fh, '>', $file or die "open $file: $!";
-
+ my($fh, $file) = $self->open_export_file($name, 'exp');
print $fh "#!\n";
for my $entry (@$table) {
print $fh "$entry->{name}\n";
+ }
+
+ close $fh or die "close $file: $!";
+ }
+}
+
+sub write_def {
+ my $self = shift;
+
+ my %files = (
+ modperl => $ModPerl::FunctionTable,
+ apache => $Apache::FunctionTable,
+ );
+
+ while (my($name, $table) = each %files) {
+ my($fh, $file) = $self->open_export_file($name, 'def');
+ print $fh "LIBRARY\n\nEXPORTS\n\n";
+
+ for my $entry (@$table) {
+ print $fh " $entry->{name}\n";
}
close $fh or die "close $file: $!";