Ensure that global dependencies are built first, even for parallell builds
authorBen Laurie <ben@links.org>
Sun, 26 Jun 2016 12:09:23 +0000 (13:09 +0100)
committerBen Laurie <ben@links.org>
Sat, 2 Jul 2016 12:57:07 +0000 (13:57 +0100)
Also, make sure that per-file deps are included in the build, even if previous
builds have failed.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Configurations/unix-Makefile.tmpl

index 6dbed43..34ba56a 100644 (file)
 
          return $engine . $dsoext;
      }
+     # This makes sure things get built in the order they need
+     # to. You're welcome.
+     sub dependmagic {
+         my $target = shift;
+
+         return "$target: build_generated\n\t\$(MAKE) depend && \$(MAKE) _$target\n_$target";
+     }
      '';
 -}
 PLATFORM={- $config{target} -}
@@ -210,25 +217,21 @@ PROCESSOR= {- $config{processor} -}
 
 # The main targets ###################################################
 
-all: build_generated \
-     build_libs_nodep build_engines_nodep build_apps_nodep \
-     depend link-utils
+{- dependmagic('all'); -}: build_libs_nodep build_engines_nodep build_apps_nodep link-utils
+{- dependmagic('build_libs'); -}: build_libs_nodep
+{- dependmagic('build_engines'); -}: build_engines_nodep
+{- dependmagic('build_apps'); -}: build_apps_nodep
+{- dependmagic('build_tests'); -}: build_tests_nodep
 
-build_libs: build_generated build_libs_nodep depend
+build_generated: $(GENERATED_MANDATORY)
 build_libs_nodep: libcrypto.pc libssl.pc openssl.pc
-build_engines: build_generated build_engines_nodep depend
 build_engines_nodep: $(ENGINES)
-build_apps: build_generated build_apps_nodep depend
 build_apps_nodep: $(PROGRAMS) $(SCRIPTS)
-build_tests: build_generated build_tests_nodep depend
 build_tests_nodep: $(TESTPROGS)
 
-build_generated: $(GENERATED_MANDATORY)
-
 test: tests
-tests: build_generated \
-       build_tests_nodep build_apps_nodep build_engines_nodep \
-       depend link-utils
+{- dependmagic('tests'); -}: build_tests_nodep build_apps_nodep \
+                             build_engines_nodep link-utils
        @ : {- output_off() if $disabled{tests}; "" -}
        ( cd test; \
          SRCTOP=../$(SRCDIR) \