summaryrefslogtreecommitdiffstats
path: root/Configurations/windows-makefile.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'Configurations/windows-makefile.tmpl')
-rw-r--r--Configurations/windows-makefile.tmpl34
1 files changed, 23 insertions, 11 deletions
diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl
index 1e3d63f8d1..521f72d7b7 100644
--- a/Configurations/windows-makefile.tmpl
+++ b/Configurations/windows-makefile.tmpl
@@ -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