Stop build process more reliably on failure.
authorPhil Pennock <pdp@exim.org>
Sat, 27 Aug 2011 23:10:52 +0000 (16:10 -0700)
committerPhil Pennock <pdp@exim.org>
Sat, 27 Aug 2011 23:10:52 +0000 (16:10 -0700)
Patch from Heiko Schlittermann.
Fixes bug 1087

doc/doc-txt/ChangeLog
src/Makefile
src/OS/Makefile-Base

index 6181dd2..d689179 100644 (file)
@@ -88,8 +88,8 @@ TF/06 Removed a few PCRE remnants.
 TF/07 Automatically extract Exim's version number from tags in the git
       repository when doing development or release builds.
 
 TF/07 Automatically extract Exim's version number from tags in the git
       repository when doing development or release builds.
 
-PP/02 Raise smtp_cmd_buffer_size to 16kB. Patch from Paul Fisher.
-      Bugzilla 879.
+PP/02 Raise smtp_cmd_buffer_size to 16kB.
+      Bugzilla 879.  Patch from Paul Fisher.
 
 PP/03 Implement SSL-on-connect outbound with protocol=smtps on smtp transport.
       Heavily based on revision 40f9a89a from Simon Arlott's tree.
 
 PP/03 Implement SSL-on-connect outbound with protocol=smtps on smtp transport.
       Heavily based on revision 40f9a89a from Simon Arlott's tree.
@@ -98,8 +98,10 @@ PP/03 Implement SSL-on-connect outbound with protocol=smtps on smtp transport.
 PP/04 Use .dylib instead of .so for dynamic library loading on MacOS.
 
 PP/05 Variable $av_failed, true if the AV scanner deferred.
 PP/04 Use .dylib instead of .so for dynamic library loading on MacOS.
 
 PP/05 Variable $av_failed, true if the AV scanner deferred.
-      Patch from John Horne.
-      Bugzilla 1078.
+      Bugzilla 1078.  Patch from John Horne.
+
+PP/06 Stop make process more reliably on build failure.
+      Bugzilla 1087.  Patch from Heiko Schlittermann.
 
 
 Exim version 4.76
 
 
 Exim version 4.76
index 76234e9..4c8300c 100644 (file)
@@ -66,7 +66,8 @@ makefile: build-directory
 # The installation commands are kept in a separate script, which expects
 # to be run from inside the build directory.
 
 # The installation commands are kept in a separate script, which expects
 # to be run from inside the build directory.
 
-install:;      @cd build-$(buildname); \
+install:        all
+               @cd build-$(buildname); \
                build=$(build) $(SHELL) ../scripts/exim_install $(INSTALL_ARG)
 
 # Tidy-up targets
                build=$(build) $(SHELL) ../scripts/exim_install $(INSTALL_ARG)
 
 # Tidy-up targets
index 9723c60..deb0e44 100644 (file)
@@ -639,43 +639,43 @@ $(MONBIN): $(HDRS)
 # The lookups library.
 
 buildlookups lookups/lookups.a: config.h version.h
 # The lookups library.
 
 buildlookups lookups/lookups.a: config.h version.h
-        @cd lookups; $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+        @cd lookups && $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
           CFLAGS_DYNAMIC="$(CFLAGS_DYNAMIC)" HDRS="../version.h $(PHDRS)" \
           FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" \
           CFLAGS_DYNAMIC="$(CFLAGS_DYNAMIC)" HDRS="../version.h $(PHDRS)" \
           FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" \
-          INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE) $(LOOKUP_INCLUDE)"; \
-        echo " "
+          INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE) $(LOOKUP_INCLUDE)"
+        @echo " "
 
 # The routers library.
 
 buildrouters routers/routers.a: config.h
 
 # The routers library.
 
 buildrouters routers/routers.a: config.h
-        @cd routers; $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+        @cd routers && $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
           FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
           FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
-          INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"; \
-        echo " "
+          INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"
+        @echo " "
 
 # The transports library.
 
 buildtransports transports/transports.a: config.h
 
 # The transports library.
 
 buildtransports transports/transports.a: config.h
-        @cd transports; $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+        @cd transports && $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
           FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
           FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
-          INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"; \
-        echo " "
+          INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"
+        @echo " "
 
 # The library of authorization modules
 
 buildauths auths/auths.a: config.h
 
 # The library of authorization modules
 
 buildauths auths/auths.a: config.h
-        @cd auths; $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+        @cd auths && $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
           FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
           FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
-          INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"; \
-        echo " "
+          INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"
+        @echo " "
 
 # The PDKIM library
 
 buildpdkim pdkim/pdkim.a: config.h
 
 # The PDKIM library
 
 buildpdkim pdkim/pdkim.a: config.h
-        @cd pdkim; $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+        @cd pdkim && $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
           FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
           FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
-          INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"; \
-        echo " "
+          INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"
+        @echo " "
 
 # The "clean", "install", and "makefile" targets just pass themselves back to
 # the main Exim makefile. These targets will be obeyed only if "make" is obeyed
 
 # The "clean", "install", and "makefile" targets just pass themselves back to
 # the main Exim makefile. These targets will be obeyed only if "make" is obeyed