diff options
Diffstat (limited to 'README.W32')
-rw-r--r-- | README.W32 | 61 |
1 files changed, 61 insertions, 0 deletions
@@ -46,6 +46,35 @@ GNU make and sh.exe: freely available. It may be available someday, but I am not in control of this decision nor do I influence it. Sorry! +GNU make and Cygnus GNU WIN32 tools (BATCH_MODE_ONLY_SHELL) + + GNU make now has support for the Cygnus GNU WIN32 toolset. The + GNU WIN32 version of Bourne shell does not behave well when + invoked as 'sh -c' from CreateProcess(). The main problem is it + seems to have a hard time handling quoted strings correctly. This + problem goes away when invoking the Cygnus shell on a shell script. + + To work around this difficulty, this version of make supports + a new batch mode. When BATCH_MODE_ONLY_SHELL is defined at compile + time, make forces all command lines to be executed via script + files instead of by command line. + + A native WIN32 system with no Bourne shell will also run + in batch mode. All command lines will be put into batch files + and executed via $(COMSPEC) (%COMSPEC%). + + If you wish to use Cygnus' GNUWIN32 shell, be sure you define + BATCH_MODE_ONLY_SHELL in the config.h.W32 prior to building make. + The new feataure was tested with the b18 version of the Cygnus + user tools. + +GNU make and MKS shell + + There is now semi-official support for the MKS shell. To turn this + support on, define HAVE_MKS_SHELL in the config.h.W32 before you + build make. Do not define BATCH_MODE_ONLY_SHELL if you turn + on HAVE_MKS_SHELL. + GNU make handling of drive letters in pathnames (PATH, vpath, VPATH): There is a caveat that should be noted with respect to handling @@ -127,6 +156,38 @@ Pathnames and white space: and you are free to take a crack at making this work. The code in w32/pathstuff.c and vpath.c would be the places to start. +Pathnames and Case insensitivity: + + Unlike Unix, Windows 95/NT systems are case insensitive but case + preserving. For example if you tell the file system to create a + file named "Target", it will preserve the case. Subsequent access to + the file with other case permutations will succeed (i.e. opening a + file named "target" or "TARGET" will open the file "Target"). + + By default, GNU make retains its case sensitivity when comparing + target names and existing files or directories. It can be + configured, however, into a case preserving and case insensitive + mode by adding a define for HAVE_CASE_INSENSITIVE_FS to + config.h.W32. + + For example, the following makefile will create a file named + Target in the directory subdir which will subsequently be used + to satisfy the dependency of SUBDIR/DepTarget on SubDir/TARGET. + Without HAVE_CASE_INSENSITIVE_FS configured, the dependency link + will not be made: + + subdir/Target: + touch $@ + + SUBDIR/DepTarget: SubDir/TARGET + cp $^ $@ + + Reliance on this behavior also eliminates the ability of GNU make + to use case in comparison of matching rules. For example, it is + not possible to set up a C++ rule using %.C that is different + than a C rule using %.c. GNU make will consider these to be the + same rule and will issue a warning. + SAMBA/NTFS/VFAT: I have not had any success building the debug version of this |