From owner-freebsd-ports@FreeBSD.ORG Sat Mar 13 04:32:12 2004 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 58E9716A4CE for ; Sat, 13 Mar 2004 04:32:12 -0800 (PST) Received: from mail.dt.e-technik.uni-dortmund.de (mail.dt.E-Technik.Uni-Dortmund.DE [129.217.163.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id CAB3843D39 for ; Sat, 13 Mar 2004 04:32:11 -0800 (PST) (envelope-from ma@dt.e-technik.uni-dortmund.de) Received: from m2a2.dyndns.org (krusty.dt.e-technik.uni-dortmund.de [129.217.163.1])C2E7B1A439; Sat, 13 Mar 2004 13:32:10 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by merlin.emma.line.org (Postfix) with ESMTP id A1F85AB0AC; Sat, 13 Mar 2004 13:32:07 +0100 (CET) Received: from merlin.emma.line.org ([127.0.0.1]) by localhost (m2a2.dyndns.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 14294-02; Sat, 13 Mar 2004 13:32:06 +0100 (CET) Received: by merlin.emma.line.org (Postfix, from userid 500) id CEDD5AB0AB; Sat, 13 Mar 2004 13:32:06 +0100 (CET) To: Oliver Eikemeier In-Reply-To: <4052E92D.7050000@fillmore-labs.com> (Oliver Eikemeier's message of "Sat, 13 Mar 2004 11:57:49 +0100") References: <20040313002807.GA13745@merlin.emma.line.org> <40525BE9.2050208@fillmore-labs.com> <20040313102423.GA6018@merlin.emma.line.org> <4052E92D.7050000@fillmore-labs.com> From: Matthias Andree Date: Sat, 13 Mar 2004 13:32:06 +0100 Message-ID: User-Agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new at m2a2.dyndns.org cc: ports@freebsd.org cc: Matthias Andree Subject: Re: ports/64037 and the alleged && -> ; failure from March 2002 X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Mar 2004 12:32:12 -0000 Oliver Eikemeier writes: > GNU make is not used for ports Makefiles, only for the ones in the > distribution, and you don't want to Patch Them All(tm), do you? perl -ple 's/;/\&\&/g;' `find /usr/ports -iname 'makefile*'` # :*) Seriously, whether we use gmake or make for ports does not matter, neither documents the "make passes -e to /bin/sh" behaviour, hence it must not be relied on under any circumstances. Robustness considerations mandate using && over ; when cmd1 is a prerequisite for cmd2 in a cmd1 && cmd2 AND-list. Some day, someone considers the whole command line isn't that important, prepends a '-' (making make suppress the -e) and cmd2 gets executed when cmd1 failed in a cmd1;cmd2 sequence. Seriously, any Makefile that is touched by a committer or maintainer should have the ";" changed to "&&" if "&&" is needed to make the thing work without -e. > Finally I'm not sure if simply ignoring the following command is the > right thing to do. I can construct an example where this is fatal too, > but IMHO all such examples would be pathological. Sure you can (but then we have OR-lists with "||" :-P) I'm not saying that all ';' must be '&&', but in the common "cd, then execute a command" case, it really ought to be. -- Matthias Andree Encrypt your mail: my GnuPG key ID is 0x052E7D95