|
|
|
@ -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
|
|
|
|
|