delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/08/15/12:23:44

X-Spam-Check-By: sourceware.org
To: cygwin AT cygwin DOT com
From: mwoehlke <mwoehlke AT tibco DOT com>
Subject: Re: change in behavior of make from 3.80 to 3.81
Date: Tue, 15 Aug 2006 11:22:14 -0500
Lines: 36
Message-ID: <ebssbm$tt$1@sea.gmane.org>
References: <17632 DOT 65094 DOT 528377 DOT 623813 AT segfault DOT lan> <009a01c6bfff$934e8480$a501a8c0 AT CAM DOT ARTIMI DOT COM> <6 DOT 2 DOT 0 DOT 14 DOT 2 DOT 20060814213115 DOT 093f2a40 AT pop DOT nycap DOT rr DOT com> <Pine DOT GSO DOT 4 DOT 63 DOT 0608142225030 DOT 13215 AT access1 DOT cims DOT nyu DOT edu> <6 DOT 2 DOT 3 DOT 4 DOT 2 DOT 20060815084047 DOT 0cd61550 AT pop DOT nycap DOT rr DOT com>
Mime-Version: 1.0
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.5) Gecko/20060719 Thunderbird/1.5.0.5 Mnenhy/0.7.4.0
In-Reply-To: <6.2.3.4.2.20060815084047.0cd61550@pop.nycap.rr.com>
X-IsSubscribed: yes
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

William A. Hoffman wrote:
> At 10:40 PM 8/14/2006, Igor Peshansky wrote:
>>> - The other option is to use mingw-make, and only use cygwin make
>>> for cygwin linked programs only.
>> Incorrect.  If you use Cygwin make, it's very easy to invoke Windows
>> programs by converting their arguments with "cygpath -w" (or, barring
>> that, with a perl or sed script).  I've done that, others have done that.
>> If you are generating the code to invoke the Microsoft cl compiler, simply
>> use something like $(foreach f,$^,$(shell cygpath -w $f)) as the argument
>> to cl.
> 
> I have to say yuck!, and performance hit.  So, for every path that gets
> passed to the compiler you have to launch a process that does string allocation
> and conversion.   I do not think this is a realistic solution for larger
> projects.  I would not want CMake to generate makefiles with cygpath -w
> being invoked multiple times per compiler run.   So, I will restate that
> there is no workable solution to use cl with cygwin make anymore.

As one of those "others", I have to point out that it WJFFM. As for 
"larger projects", I just had to make a source tarball, so I have a nice 
statistic: *gzip'd*, it's about 2.6 MB. I'd say that qualifies as 
"large". I guess that makes me not "realistic"?

Is it slower? Yeah, but that's part of doing business. Some time I may 
decide to optimize it by converting some of my wrapper scripts to C 
code. I think the hit is from the "launch a process" step, not "string 
allocation and conversion".

Also, you could translate paths to e.g. '$DRIVEC/some/where.c', and use 
$(subst) to alternately replace '$DRIVEC' (which should be a unique 
identifier, like '__this_is_drive_c', NOT '/cygdrive/c') with a POSIX or 
DOS equivalent as appropriate.

-- 
Matthew
Only Joe suffers from schizophrenia. The rest of us enjoy it.


--
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