From owner-cvs-user Fri May 15 10:16:15 1998 Return-Path: Received: (from daemon@localhost) by hub.freebsd.org (8.8.8/8.8.8) id KAA01961 for cvs-user-outgoing; Fri, 15 May 1998 10:16:15 -0700 (PDT) (envelope-from owner-cvs-user) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id KAA01859; Fri, 15 May 1998 10:15:54 -0700 (PDT) (envelope-from bde@FreeBSD.org) From: Bruce Evans Received: (from bde@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id KAA11461; Fri, 15 May 1998 10:12:01 -0700 (PDT) Date: Fri, 15 May 1998 10:12:01 -0700 (PDT) Message-Id: <199805151712.KAA11461@freefall.freebsd.org> To: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-user@FreeBSD.ORG Subject: cvs commit: src Makefile Sender: owner-cvs-user@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk bde 1998/05/15 10:12:01 PDT Modified files: . Makefile Log: Don't use `&&' in any shell commands here. Using it to give conditional execution is usually unnecessary in BSD Makefiles because BSD make invokes shells with -e. Using it to give conditional execution is often wrong in BSD makefiles because BSD make joins shell commands when invoked in certain ways (in particular, as `make -jN'). Example makefile: --- clean: cd / false && true rm -rf * # a dangerous command --- This should terminate after the `false && true' command fails, but it doesn't when the commands are joined (`false && true' is a non- simple command, so -e doesn't cause termination). The b-maked version: --- clean: cd / false; true rm -rf * # a dangerous command --- terminates after the `false' command fails (`false' is a simple command, so -e causes termination). However, for versions of make like gnu make that don't invoke shells with -e, this change completely breaks the makefile. This is one of the fixes for the bug suite that caused `make world' to sometimes put raw cpp output in .depend files. Building of cc sometimes failed, but the failure did not terminate the build immediately, and various wrong versions of the cc components were used until one was wrong enough to cause a fatal error. Revision Changes Path 1.177 +116 -116 src/Makefile