Generate dependency information
[openssl.git] / Configurations / windows-makefile.tmpl
index 1e3d63f8d10f067e2e24cf455b76af2234b10c54..bcb092d045b6d9f493db6dd1d99765965f7bb1bc 100644 (file)
@@ -226,7 +226,7 @@ libdir={- file_name_is_absolute($libdir)
 ##### User defined commands and flags ################################
 
 CC="{- $config{CC} -}"
-CPP="{- $config{CPP} -}"
+CPP={- $config{CPP} -}
 CPPFLAGS={- our $cppflags1 = join(" ",
                                   (map { "-D".$_} @{$config{CPPDEFINES}}),
                                   (map { " -I".$_} @{$config{CPPINCLUDES}}),
@@ -836,7 +836,7 @@ $obj: $deps
        \$(CC) $cflags $defs -c \$(COUTFLAG)\$\@ $srcs
 EOF
      $recipe .= <<"EOF"        unless $disabled{makedepend};
-       \$(CC) $cflags $defs /Zs /showIncludes $srcs 2>&1 > $dep
+       cmd /C "\$(CPP) $cflags $defs $target{cpp_depend_flags} $srcs > $dep 2>&1"
 EOF
      return $recipe;
  }
@@ -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