delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/09/21/05:05:04

X-Spam-Check-By: sourceware.org
From: "Dave Korn" <dave DOT korn AT artimi DOT com>
To: <cygwin AT cygwin DOT com>
Subject: RE: downgrading make version
Date: Thu, 21 Sep 2006 10:04:50 +0100
Message-ID: <033e01c6dd5c$fe7a3770$a501a8c0@CAM.ARTIMI.COM>
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook 11
In-Reply-To: <20060921050447.GH6790@ns1.anodized.com>
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On 21 September 2006 06:05, Christopher Layne wrote:

> On Thu, Sep 21, 2006 at 12:57:58AM -0400, Christopher Faylor wrote:
>>> (CP) = \cp
>>> 
>>> install: $(PROGS)
>>> 	$(CP) $(PROGS) $(INSTBINDIR)
>>> 
>>> \cp nda.exe mtk.exe sda.exe /home/mast/CYGMOD/bin
>>> make: \cp: Command not found
>> 
>> The above is not valid makefile syntax but if I make obvious
>> corrections, I get the same thing on Linux.  I don't know what you were
>> expecting \cp to be translated to, but it shouldn't, IMO, be interpreted
>> as a MS-DOS path.
> 
> Within a shell, one may also use \command to override an alias. Either way,
> Makefile isn't a shell so it's bogus there.

  Actually, make invokes a shell if it detects any metacharacters on the
commandline.    We need to take a look at that sh_chars_sh or whatever it's
called variable and verify whether or not it includes backslash and why.

  FWIW, you can work-around it by appending "| cat" to the end of the command
line.  That forces make to invoke bash:

dk AT rainbow /tmp> cat mf
PROGS=foo
INSTBINDIR=./bin
CP = \cp

install: $(PROGS)
        $(CP) $(PROGS) $(INSTBINDIR)

dk AT rainbow /tmp> diff -u mf mf2
--- mf  2006-09-21 10:00:14.498410000 +0100
+++ mf2 2006-09-21 10:02:17.826535000 +0100
@@ -3,5 +3,5 @@
 CP = \cp

 install: $(PROGS)
-       $(CP) $(PROGS) $(INSTBINDIR)
+       $(CP) $(PROGS) $(INSTBINDIR) | cat

dk AT rainbow /tmp> make -f mf
\cp foo ./bin
make: \cp: Command not found
mf:6: *** [install] Error 127

#0  install at /tmp/mf:6
Command-line arguments:
        "-f mf"
dk AT rainbow /tmp> make -f mf2
\cp foo ./bin | cat
dk AT rainbow /tmp>


    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019