Subject: Re: change in behavior of make from 3.80 to 3.81
From: "William A. Hoffman" <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked]
Date: Thu, 17 Aug 2006 09:43:30 -0400

At 04:31 AM 8/17/2006, Eli Zaretskii wrote:
>> Date: Wed, 16 Aug 2006 09:34:36 -0400
>> From: "William A. Hoffman" <[email-masked]>
>> 
>> Actually no, MinGW make is not working for what used to work with cygwin
>> make.   It has a nasty habit of changing cl's command line arguments
>> like /GZ into c:/msys/1.0/GZ.
>
>I think this is the MSYS Make, not what I call ``the MinGW Make''.
>The latter is produced by building the original Make 3.81 sources with
>the MinGW compiler via the build_w32.bat batch file included in the
>source tarball.  If you look in the official Make sources, you will
>not find any code that changes /GZ into something else; in fact, the
>native Windows build doesn't change anything in the command-line
>options of the command being invoked, IIRC.

You are correct.  MSYS Make is the one that has that problem.
My earlier test must have found the wrong make.  However, the mingw
make when correctly in the PATH does not like the makefiles that
have forward / and does not launch processes very well if sh.exe is
in your path.   I can only get it to work from a dos shell with dos
style paths.   CMake can generate dos path makefiles for MinGW Make,
but I usually run from a cygwin shell and create makefiles with unix
style forward /, and this seems not to work.  This may be the wrong
list for this, but since MinGW was recommend as an alternative in
the announcement for make 3.81 it should be fair game to point out
the problems with that suggestion.

I have not dug into the problem yet, but:

Here is a run with the MinGW make, from a cygwin shell:

$ ./make
[ 25%] Built target testc2
[ 50%] Built target testc1
Linking
C
executable
conly.exe
cl : Command line warning D4024 : unrecognized source file type 'CMakeFiles/conl
y.dir/conly.obj CMakeFiles/conly.dir/foo.obj ', object file assumed
LINK : fatal error LNK1104: cannot open file 'CMakeFiles/conly.dir/conly.obj CMa
keFiles/conly.dir/foo.obj'
make.exe[2]: *** [conly.exe] Error 2
make.exe[1]: *** [CMakeFiles/conly.dir/all] Error 2
c:\hoffman\My Builds\CMakeDev\Tests\COnly\b\make.exe: *** [all] Error 2

Here is a run in the same directory with the 3.81 make that I patched:
(also works fine for cygwin 3.80 make)

Hoffman@VOGON ~/My Builds/CMakeDev/Tests/COnly/b
$ /cygdrive/c/Downloads/make-3.81-build/make
[ 25%] Built target testc2
[ 50%] Built target testc1
Linking C executable conly.exe
[100%] Built target conly

-Bill

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