X-Spam-Check-By: sourceware.org Date: Tue, 15 Aug 2006 10:23:02 -0400 (EDT) From: Igor Peshansky Reply-To: cygwin AT cygwin DOT com To: "William A. Hoffman" cc: cygwin AT cygwin DOT com Subject: RE: change in behavior of make from 3.80 to 3.81 In-Reply-To: <6.2.3.4.2.20060815084047.0cd61550@pop.nycap.rr.com> 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=US-ASCII 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 On Tue, 15 Aug 2006, William A. Hoffman wrote: > At 10:40 PM 8/14/2006, Igor Peshansky wrote: > > >> MS cl can no longer be used with cygwin make as of 3.81. > > > >Incorrect. See below. > > > >> Perhaps something along the lines of /c/ that would be translated by > >> gmake itself into c:, so that no special parsing would be required for > >> the makefiles. > > > >Yuck! Maybe have them simply accept the --win32 option or recognize the > >MAKE_MODE environment variable, like Cygwin make used to do? > > I was figuring this was off the table since it was not in the upstream > make. Is this option still on the table? If so, what is the path to > have it implemented? "them" = "the upstream make maintainers". If this option is accepted upstream, the next update of Cygwin's make package will pick it up. > >> - 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. Well, if you only want a constant number of processes, you can try something like $(shell echo "$^" | sed 's/\s/\n/g' | cygpath -w -f -) (If you know suitable make magic to embed a newline in a string, you can even avoid the 'sed' invocation). Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu | igor AT watson DOT ibm DOT com ZZZzz /,`.-'`' -. ;-;;,_ Igor Peshansky, Ph.D. (name changed!) |,4- ) )-,_. ,\ ( `'-' old name: Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! "Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte." "But no -- you are no fool; you call yourself a fool, there's proof enough in that!" -- Rostand, "Cyrano de Bergerac" -- 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/