# last in the line. We may therefore need to put back a line ending.
sub src2obj {
my %args = @_;
- my $obj = platform->obj($args{obj});
+ my $obj = platform->convertext($args{obj});
my $dep = platform->dep($args{obj});
my @srcs = @{$args{srcs}};
my $srcs = join(" ", @srcs);
sub obj2shlib {
my %args = @_;
my @linkdirs = ();
- foreach (@{args{deps}}) {
- my $d = dirname($_);
- push @linkdirs, $d unless grep { $d eq $_ } @linkdirs;
+ my @linklibs = ();
+ foreach (@{$args{deps}}) {
+ if (platform->isstaticlib($_)) {
+ push @linklibs, platform->convertext($_);
+ } else {
+ my $d = "-L" . dirname($_);
+ my $l = basename($_);
+ $l =~ s/^lib//;
+ $l = "-l" . $l;
+ push @linklibs, $l;
+ push @linkdirs, $d unless grep { $d eq $_ } @linkdirs;
+ }
}
- my $linkflags = join("", map { "-L$_ " } @linkdirs);
- my $linklibs = join("", map { my $f = basename($_);
- (my $l = $f) =~ s/^lib//;
- " -l$l" } @{$args{deps}});
- my @objs = map { platform->obj($_) }
+ my $linkflags = join("", map { $_." " } @linkdirs);
+ my $linklibs = join("", map { $_." " } @linklibs);
+ my @objs = map { platform->convertext($_) }
grep { !platform->isdef($_) }
@{$args{objs}};
my @defs = map { platform->def($_) }
my %args = @_;
my $dso = platform->dso($args{module});
my @linkdirs = ();
- foreach (@{args{deps}}) {
- my $d = dirname($_);
- push @linkdirs, $d unless grep { $d eq $_ } @linkdirs;
+ my @linklibs = ();
+ foreach (@{$args{deps}}) {
+ next unless defined $_;
+ if (platform->isstaticlib($_)) {
+ push @linklibs, platform->convertext($_);
+ } else {
+ my $d = "-L" . dirname($_);
+ my $l = basename($_);
+ $l =~ s/^lib//;
+ $l = "-l" . $l;
+ push @linklibs, $l;
+ push @linkdirs, $d unless grep { $d eq $_ } @linkdirs;
+ }
}
- my $linkflags = join("", map { "-L$_ " } @linkdirs);
- my $linklibs = join("", map { my $f = basename($_);
- (my $l = $f) =~ s/^lib//;
- " -l$l" } @{$args{deps}});
- my @objs = map { platform->obj($_) }
+ my $linkflags = join("", map { $_." " } @linkdirs);
+ my $linklibs = join("", map { $_." " } @linklibs);
+ my @objs = map { platform->convertext($_) }
grep { !platform->isdef($_) }
@{$args{objs}};
my @defs = map { platform->def($_) }
$dso: $deps
\$(CC) \$(DSO_CFLAGS) $linkflags\$(DSO_LDFLAGS) \\
-o $dso$shared_def $objs \\
- $linklibs \$(DSO_EX_LIBS)
+ $linklibs\$(DSO_EX_LIBS)
EOF
}
sub obj2lib {
my $objs = join(" ", map { platform->obj($_) } @{$args{objs}});
my $deps = join(" ", compute_lib_depends(@{$args{deps}}));
my @linkdirs = ();
- foreach (@{args{deps}}) {
- next if $_ =~ /\.a$/;
- my $d = dirname($_);
- push @linkdirs, $d unless grep { $d eq $_ } @linkdirs;
+ my @linklibs = ();
+ foreach (@{$args{deps}}) {
+ next unless defined $_;
+ if (platform->isstaticlib($_)) {
+ push @linklibs, platform->convertext($_);
+ } else {
+ my $d = "-L" . dirname($_);
+ my $l = basename($_);
+ $l =~ s/^lib//;
+ $l = "-l" . $l;
+ push @linklibs, $l;
+ push @linkdirs, $d unless grep { $d eq $_ } @linkdirs;
+ }
}
- my $linkflags = join("", map { "-L$_ " } @linkdirs);
- my $linklibs = join("", map { if ($_ =~ m/\.a$/) {
- " ".platform->staticlib($_);
- } else {
- my $f = basename($_);
- (my $l = $f) =~ s/^lib//;
- " -l$l"
- }
- } @{$args{deps}});
+ my $linkflags = join("", map { $_." " } @linkdirs);
+ my $linklibs = join("", map { $_." " } @linklibs);
my $cmd = '$(CC)';
my $cmdflags = '$(BIN_CFLAGS)';
if (grep /_cc\.o$/, @{$args{objs}}) {
rm -f $bin
\$\${LDCMD:-$cmd} $cmdflags $linkflags\$(BIN_LDFLAGS) \\
-o $bin $objs \\
- $linklibs \$(BIN_EX_LIBS)
+ $linklibs\$(BIN_EX_LIBS)
EOF
}
sub in2script {