|
|
@ -848,7 +848,10 @@ EOF |
|
|
|
my %args = @_; |
|
|
|
my $lib = $args{lib}; |
|
|
|
my @objs = map { platform->convertext($_) } |
|
|
|
grep { platform->isobj($_) || platform->isres($_) } |
|
|
|
grep { platform->isobj($_) } |
|
|
|
@{$args{objs}}; |
|
|
|
my @ress = map { platform->convertext($_) } |
|
|
|
grep { platform->isres($_) } |
|
|
|
@{$args{objs}}; |
|
|
|
my @defs = map { platform->def($_) } |
|
|
|
grep { platform->isdef($_) } |
|
|
@ -857,10 +860,11 @@ EOF |
|
|
|
die "More than one exported symbols list" if scalar @defs > 1; |
|
|
|
my $linklibs = join("", map { "$_$target{ld_resp_delim}" } @deps); |
|
|
|
my $objs = join($target{ld_resp_delim}, @objs); |
|
|
|
my $deps = join(" ", @objs, @defs, @deps); |
|
|
|
my $ress = join($target{ld_resp_delim}, @ress); |
|
|
|
my $deps = join(" ", @objs, @ress, @defs, @deps); |
|
|
|
my $import = platform->sharedlib_import($lib); |
|
|
|
my $dll = platform->sharedlib($lib); |
|
|
|
my $shared_def = join("", map { " $target{lddefflag}$_" } @defs); |
|
|
|
my $shared_def = $target{lddefflag} . join("", @defs); |
|
|
|
my $implib_rule = $target{ld_implib_rule} || ""; |
|
|
|
my $implib_flag = $target{ld_implib_flag} |
|
|
|
? "$target{ld_implib_flag}$import" |
|
|
@ -875,7 +879,7 @@ $dll: $deps |
|
|
|
IF EXIST $full.manifest DEL /F /Q $full.manifest |
|
|
|
IF EXIST \$@ DEL /F /Q \$@ |
|
|
|
\$(LD) \$(LDFLAGS) \$(LIB_LDFLAGS) @<< $implib_flag || (DEL /Q \$(\@B).* $import; EXIT 1) |
|
|
|
$objs$target{ld_resp_delim}\$(LDOUTFLAG)$dll$target{ldpostoutflag}$target{ld_resp_delim}$linklibs\$(LIB_EX_LIBS)$shared_def |
|
|
|
$objs$target{ld_resp_delim}\$(LDOUTFLAG)$dll$target{ldpostoutflag}$target{ld_resp_delim}$linklibs\$(LIB_EX_LIBS)$target{ld_resp_delim}$shared_def$target{ldresflag}$ress |
|
|
|
<< |
|
|
|
IF EXIST $dll.manifest \\ |
|
|
|
\$(MT) \$(MTFLAGS) \$(MTINFLAG)$dll.manifest \$(MTOUTFLAG)$dll |
|
|
@ -892,21 +896,26 @@ EOF |
|
|
|
my $dso = platform->dso($args{module}); |
|
|
|
my $dso_n = platform->dsoname($args{module}); |
|
|
|
my @objs = map { platform->convertext($_) } |
|
|
|
grep { platform->isobj($_) || platform->isres($_) } |
|
|
|
grep { platform->isobj($_) } |
|
|
|
@{$args{objs}}; |
|
|
|
my @ress = map { platform->convertext($_) } |
|
|
|
grep { platform->isres($_) } |
|
|
|
@{$args{objs}}; |
|
|
|
my @defs = map { platform->def($_) } |
|
|
|
grep { platform->isdef($_) } |
|
|
|
@{$args{objs}}; |
|
|
|
my @deps = compute_lib_depends(@{$args{deps}}); |
|
|
|
die "More than one exported symbols list" if scalar @defs > 1; |
|
|
|
my $objs = join($target{ld_resp_delim}, @objs); |
|
|
|
my $ress = join($target{ld_resp_delim}, @ress); |
|
|
|
my $linklibs = join("", map { "$_$target{ld_resp_delim}" } @deps); |
|
|
|
my $deps = join(" ", @objs, @defs, @deps); |
|
|
|
my $shared_def = join("", map { " $target{lddefflag}$_" } @defs); |
|
|
|
my $deps = join(" ", @objs, @ress, @defs, @deps); |
|
|
|
my $shared_def = $target{lddefflag} . join("", @defs); |
|
|
|
return <<"EOF"; |
|
|
|
$dso: $deps |
|
|
|
IF EXIST $dso.manifest DEL /F /Q $dso.manifest |
|
|
|
\$(LD) \$(LDFLAGS) \$(DSO_LDFLAGS) @<< || (DEL /Q \$(\@B).* $dso_n.*; EXIT 1) |
|
|
|
$objs$target{ld_resp_delim}\$(LDOUTFLAG)$dso$target{ldpostoutflag}$target{ld_resp_delim}$linklibs \$(DSO_EX_LIBS)$shared_def |
|
|
|
$objs$target{ld_resp_delim}\$(LDOUTFLAG)$dso$target{ldpostoutflag}$target{ld_resp_delim}$linklibs \$(DSO_EX_LIBS)$target{ld_resp_delim}$shared_def$target{ldresflag}$ress |
|
|
|
<< |
|
|
|
IF EXIST $dso.manifest \\ |
|
|
|
\$(MT) \$(MTFLAGS) \$(MTINFLAG)$dso.manifest \$(MTOUTFLAG)$dso |
|
|
@ -929,17 +938,20 @@ EOF |
|
|
|
my %args = @_; |
|
|
|
my $bin = platform->bin($args{bin}); |
|
|
|
my @objs = map { platform->convertext($_) } |
|
|
|
grep { platform->isobj($_) || platform->isres($_) } |
|
|
|
grep { platform->isobj($_) } |
|
|
|
@{$args{objs}}; |
|
|
|
my @ress = map { platform->convertext($_) } |
|
|
|
grep { platform->isres($_) } |
|
|
|
@{$args{objs}}; |
|
|
|
my @deps = compute_lib_depends(@{$args{deps}}); |
|
|
|
my $objs = join($target{ld_resp_delim}, @objs); |
|
|
|
my $linklibs = join("", map { "$_$target{ld_resp_delim}" } @deps); |
|
|
|
my $deps = join(" ", @objs, @deps); |
|
|
|
my $deps = join(" ", @objs, @ress, @deps); |
|
|
|
return <<"EOF"; |
|
|
|
$bin: $deps |
|
|
|
IF EXIST $bin.manifest DEL /F /Q $bin.manifest |
|
|
|
\$(LD) \$(LDFLAGS) \$(BIN_LDFLAGS) @<< |
|
|
|
$objs$target{ld_resp_delim}\$(LDOUTFLAG)$bin$target{ldpostoutflag}$target{ld_resp_delim}$linklibs\$(BIN_EX_LIBS) |
|
|
|
$objs$target{ld_resp_delim}\$(LDOUTFLAG)$bin$target{ldpostoutflag}$target{ld_resp_delim}$linklibs\$(BIN_EX_LIBS)$target{ldresflag}$target{ldresflag}$ress |
|
|
|
<< |
|
|
|
IF EXIST $bin.manifest \\ |
|
|
|
\$(MT) \$(MTFLAGS) \$(MTINFLAG)$bin.manifest \$(MTOUTFLAG)$bin |
|
|
|