diff options
Diffstat (limited to 'cygwin/perlld.in')
-rw-r--r-- | cygwin/perlld.in | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/cygwin/perlld.in b/cygwin/perlld.in index 85dc2632d8..e69de29bb2 100644 --- a/cygwin/perlld.in +++ b/cygwin/perlld.in @@ -1,89 +0,0 @@ -# -# Perl script being a wrapper around the gnu ld. When a dll is specified to -# to be built, special processing is done, else the standard ld is called. -# - -# these are pretty mandatory -my $CC = '@CC@'; -my $EXPORT_ALL = @EXPORT_ALL@; - -# if some of extensions are undefined, -# no corresponding output will be done. -# most probably, you'd like to have an export library -# my $DEF_EXT = '@DEF_EXT@'; -# my $EXP_EXT = '@EXP_EXT@'; -my $LIB_EXT = '@LIB_EXT@'; - -#my $DEBUG ="perlld.out"; -my $DEBUG =undef; - -my $args = join(" ",@ARGV); # get args -my $verbose =grep(/^\-(v|\-verbose)$/, @ARGV); - -sub shellexec; - -if ($DEBUG) { - open DEBUGFILE, ">>$DEBUG"; - print DEBUGFILE "\n--- " .localtime() ."\nargs:\n$args\n\nenvironment:\n"; - foreach (keys(%ENV)) { print DEBUGFILE $_, "=", $ENV{$_}, "\n"; }; -} - -if ($args !~ /\-o (\S+)/) { - print DEBUGFILE "+ no dll output -- passing to gcc\n\n" if $DEBUG; - shellexec("$CC $args\n"); -} else { - my ($path, $command, $dllname, $libname) =''; - - $dllname =$1; - print DEBUGFILE "output file: $dllname\n" if $DEBUG; - # remove -o from args - $args =~ s/(^| )\-o \S+/$1/; - - # Check for path: - if( $dllname =~ /.*[\/\\]/){ - $dllname = $'; - $path = $&; - $path =~ s,[/\\](\.[/\\])*,/,g; - } - if ($dllname =~ /\./) { $libname =$`; } else { $libname =$dllname; }; - my $v_e_r_s = '@VERSION@'; - $v_e_r_s =~ tr/./_/; - if ( $dllname =~ /libperl.*/) { - $dllname ="cygperl$v_e_r_s.dll"; - } else { - $dllname ="$libname.dll"; - } - $libname ="lib$libname" unless ($libname =~ /^lib/); - print DEBUGFILE "dll name: $dllname\nimport library: $libname\npath: $path\n" if $DEBUG; - - $command ="$CC -shared -o $dllname"; -# $command .=" --verbose" if $verbose; - - $command .=" -Wl,--output-def=$libname$DEF_EXT" if $DEF_EXT; - $command .=" -Wl,--output-exp=$libname$EXP_EXT" if $EXP_EXT; - $command .=" -Wl,--out-implib=$libname.dll$LIB_EXT" if $LIB_EXT; - $command .=" -Wl,--export-all-symbols" if $EXPORT_ALL; - $command .=" -Wl,--enable-auto-import -Wl,--stack,8388608"; # always - $command .=" -Wl,--enable-auto-image-base"; # always - - # other args are passed through - shellexec("$command \\\n$args\n"); - - if ($path) { - $command ="mv $dllname"; - $command .=" $libname.dll$LIB_EXT" if $LIB_EXT; - shellexec("$command $path\n"); - }; -}; -close DEBUGFILE if $DEBUG; - -#--------------------------------------------------------------------------- -sub shellexec { - my $command = shift; - print $command; - print DEBUGFILE $command if $DEBUG; - system($command) == 0 - or die "perlld: *** system() failed to execute\n$command\n"; -}; - -1; |