This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]