Commit 50e83cdd authored by Richard Levitte's avatar Richard Levitte
Browse files

Unified build - fix make depend



There was a catch 22, where 'make depend' directly after configuring
in an otherwise pristine build tree would fail because buildinf.h
didn't exist yet.

This change has the depend building targets depend on the same other
targets as the object file building targets, so the generation of
buildinf.h and similar files would kick in during 'make depend'.

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
parent 82049c54
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -488,6 +488,7 @@ They are all expected to return a string with the lines they produce.

                        src2dep(obj => "PATH/TO/objectfile",
                                srcs => [ "PATH/TO/sourcefile", ... ],
                                deps => [ "dep1", ... ],
                                incs => [ "INCL/PATH", ... ]);

                  'obj' has the dependent object file as well as
@@ -496,7 +497,8 @@ They are all expected to return a string with the lines they produce.
                  'srcs' has the list of source files to build the
                  object file, with the first item being the source
                  file that directly corresponds to the object file.
                  'incs' is a list of include file directories.
                  'deps' is a list of explicit dependencies.  'incs'
                  is a list of include file directories.

    src2obj     - function that produces build file lines to build an
                  object file from source files and associated data.
@@ -513,8 +515,8 @@ They are all expected to return a string with the lines they produce.
                  'srcs' has the list of source files to build the
                  object file, with the first item being the source
                  file that directly corresponds to the object file.
                  'deps' is a list of dependencies.  'incs' is a list
                  of include file directories.
                  'deps' is a list of explicit dependencies.  'incs'
                  is a list of include file directories.

    obj2lib     - function that produces build file lines to build a
                  static library file ("libfoo.a" in Unix terms) from
+1 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@
                                   @{$unified_info{includes}->{$obj}} ]);
         $OUT .= src2dep(obj => $obj_no_o,
                         srcs => $unified_info{sources}->{$obj},
                         deps => [ reducedepends(resolvedepends($obj)) ],
                         incs => [ @{$unified_info{includes}->{$bin}},
                                   @{$unified_info{includes}->{$obj}} ]);
     }
+2 −1
Original line number Diff line number Diff line
@@ -408,6 +408,7 @@ descrip.mms : {- sourcefile("Configurations", "descrip.mms.tmpl") -} $(SRCDIR)Co
  sub src2dep {
      my %args = @_;
      my $dep = $args{obj};
      my $deps = join(", -\n\t\t", @{$args{srcs}}, @{$args{deps}});

      # Because VMS C isn't very good at combining a /INCLUDE path with
      # #includes having a relative directory (like '#include "../foo.h"),
@@ -432,7 +433,7 @@ descrip.mms : {- sourcefile("Configurations", "descrip.mms.tmpl") -} $(SRCDIR)Co
      my $after = $unified_info{after}->{$dep.".OBJ"} || "\@ !";

      return <<"EOF";
$dep.MMS : $srcs
$dep.MMS : $deps
        ${before}
        SET DEFAULT $forward
        \$(CC) \$(CFLAGS)${incs} /MMS=(TARGET=.OBJ)/OBJECT=${depd}${depn}.MMS $srcs
+3 −2
Original line number Diff line number Diff line
@@ -708,11 +708,12 @@ Makefile: {- $config{build_file_template} -} $(SRCDIR)/Configure $(SRCDIR)/confi
      my $dep = $args{obj}.'$(DEP_EXT)';
      my $obj = $args{obj}.'$(OBJ_EXT)';
      my $srcs = join(" ", @{$args{srcs}});
      my $deps = join(" ", @{$args{srcs}}, @{$args{deps}});
      my $incs = join(" ", map { " -I".$_ } @{$args{incs}});
      my $makedepprog = $config{makedepprog};
      if ($makedepprog eq "makedepend") {
          return <<"EOF";
$dep : $srcs
$dep : $deps
	rm -f \$\@.tmp; touch \$\@.tmp
	\$(MAKEDEPEND) -f\$\@.tmp -o"|$obj"\
	    -- -DOPENSSL_DOING_MAKEDEPEND \$(DEPFLAGS)$incs \
@@ -722,7 +723,7 @@ $dep : $srcs
EOF
      }
      return <<"EOF";
$dep : $srcs Makefile
$dep : $deps Makefile
	\$(CC) -DOPENSSL_DOING_MAKEDEPEND \$(DEPFLAGS)$incs -MM -MF \$\@ -MQ $obj $srcs
EOF
  }