Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Wed, 18 Oct 2000 17:50:52 +0100 Message-ID: <5169-Wed18Oct2000175052+0100-starksb@ebi.ac.uk> X-Mailer: emacs 20.7.1 (via feedmail 9-beta-7 I); VM 6.75 under Emacs 20.7.1 From: David Starks-Browning MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: cygwin AT sources DOT redhat DOT com Subject: FAQ about make Hi, While procrastinating against some of the more challenging FAQ revisions (like whole new sections on logging in, scripts not working, and this binmode/textmode thing), I'm getting instant gratification from some easier fixes. One outdated entry that I would like to fix is this: Q: Why is make behaving badly? A: (Please note: This section has not yet been updated for the latest net release.) Starting with the beta 19 release, make defaults to a win32 mode in which backslashes in filenames are permitted and cmd.exe / command.com is used as the sub-shell. In this mode, escape characters aren't allowed among other restrictions. For this reason, you must set the environment variable MAKE_MODE to UNIX to run make on ordinary Unix Makefiles. Here is the full scoop: MAKE_MODE selects between native Win32 make mode (the default) and a Unix mode where it behaves like a Unix make. The Unix mode does allow specifying Win32-style paths but only containing forward slashes as the path separator. The path list separator character is a colon in Unix mode. Win32 mode expects path separators to be either / or \. Thus no Unix-style \s as escape are allowed. Win32 mode also uses cmd.exe / command.com as the subshell which means "copy" and "del" (and other shell builtins) will work. The path list separator character is semi-colon in Win32 mode. People who want an nmake-like make might want to use this mode but no one should expect Unix Makefiles to compile in this mode. That is why the default b19 install sets MAKE_MODE to UNIX. Currently, /etc/profile contains 'export MAKE_MODE=unix'. Is this the only sense in which the behaviour has changed with the latest net release? (Hmm, I just tried it, and it seems the default is already unix mode, so is MAKE_MODE=unix unnecessary now?) And this business about path and path list separators. Is this only as a result of using cmd.exe instead of sh.exe, or does make do its own path processing (like for VPATH)? Before you all tell me to go off and figure it out for myself, remember that my interests are selfless, I'm not doing this for me. :-) Thanks for your help. Regards, David -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com