X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: mwoehlke 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: 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> <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 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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 Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , 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/