}
# dolib is responsible for building libraries. It will call
- # libobj2shlib is shared libraries are produced, and obj2lib in all
+ # obj2shlib is shared libraries are produced, and obj2lib in all
# cases. It also makes sure all object files for the library are
# built.
sub dolib {
my $lib = shift;
return "" if $cache{$lib};
unless ($disabled{shared} || $lib =~ /\.a$/) {
- $OUT .= libobj2shlib(shlib => $unified_info{sharednames}->{$lib},
+ my $obj2shlib = defined &obj2shlib ? \&obj2shlib : \&libobj2shlib;
+ $OUT .= $obj2shlib->(shlib => $unified_info{sharednames}->{$lib},
lib => $lib,
- objs => [ @{$unified_info{shared_sources}->{$lib}},
- @{$unified_info{sources}->{$lib}} ],
+ objs => $unified_info{shared_sources}->{$lib},
deps => [ reducedepends(resolvedepends($lib)) ],
installed => is_installed($lib));
foreach ((@{$unified_info{shared_sources}->{$lib}},
# If this is somehow a compiled object, take care of it that way
# Otherwise, it might simply be generated
if (defined $unified_info{sources}->{$_}) {
- doobj($_, $lib, intent => "lib", installed => is_installed($lib));
+ doobj($_, $lib, intent => "shlib", installed => is_installed($lib));
} else {
dogenerate($_, undef, undef, intent => "lib");
}
my $lib = shift;
return "" if $cache{$lib};
$OUT .= obj2dso(lib => $lib,
- objs => [ @{$unified_info{sources}->{$lib}},
- @{$unified_info{shared_sources}->{$lib}} ],
+ objs => $unified_info{shared_sources}->{$lib},
deps => [ resolvedepends($lib) ],
installed => is_installed($lib));
- foreach ((@{$unified_info{sources}->{$lib}},
- @{$unified_info{shared_sources}->{$lib}})) {
+ foreach (@{$unified_info{shared_sources}->{$lib}}) {
doobj($_, $lib, intent => "dso", installed => is_installed($lib));
}
$cache{$lib} = 1;