Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Tue, 31 Jul 2001 18:38:08 +0100 Message-ID: <3366-Tue31Jul2001183808+0100-starksb@ebi.ac.uk> X-Mailer: 21.1 (patch 12) "Channel Islands" XEmacs Lucid (via feedmail 9-beta-7 I); VM 6.92 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid From: David Starks-Browning MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: sg AT broesel DOT sv DOT newtron DOT net Cc: cygwin AT cygwin DOT com Subject: RE: make, sh, bash and echo In-Reply-To: <003401c119b5$c0538ac0$21c9ca95@mow.siemens.ru> References: <200107311059 DOT f6VAxtc27922 AT broesel DOT sv DOT newtron DOT net> <003401c119b5$c0538ac0$21c9ca95 AT mow DOT siemens DOT ru> Andrej is correct, but here's a more detailed explanation: 'make' uses /bin/sh to execute commands. 'sh' is really ash, which has its own 'echo' builtin. That echo does not have the same options as /bin/echo. Bash's echo builtin *does* use the -ne options. But even that one is not as full featured as /bin/echo, which is part of the sh-utils package. (In the bash shell, type "echo --version" and "/bin/echo --version".) Even if PATH is set correctly, the ash shell builtins take precedence. Use /bin/echo if you want the fancy echo, regardless of shell. But that's only a "sure thing" in Cygwin. /bin/echo on other UNIX's may not be full-featured. Hope this helps. Regards, David (Cygwin FAQ maintainer) On Tuesday 31 Jul 01, Borsenkow Andrej writes: > > > > > Makefile: > > > > all: > > echo -ne "foo\nbar" > bar > > > > $ make --unix > > $ cat bar > > -ne foo\nbar > > > > Seems like the wrong echo is executed because SHELL is > > /bin/sh.exe and PATH isn't set correctly, you know why. > > On Unix of course the right one and only echo is executed. > > It is inherently non-portable. You cannot expect echo to understand any > option at all. > > > If I add the line SHELL=/bin/bash.exe it works the way i expect. > > > > The way you expect is not neccessarily how it works in real life. > > > Is there any better solution ? > > > > Yes, use portable constructs. Look in Autoconf manual that has good overview > of common portability problems with assorted tools (including echo). > > > -andrej -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/