change in behavior of make from 3.80 to 3.81

Igor Peshansky pechtcha@cs.nyu.edu
Tue Aug 15 15:53:00 GMT 2006


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@cs.nyu.edu | igor@watson.ibm.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/



More information about the Cygwin mailing list