summaryrefslogtreecommitdiff
path: root/README.W32
diff options
context:
space:
mode:
Diffstat (limited to 'README.W32')
-rw-r--r--README.W3261
1 files changed, 61 insertions, 0 deletions
diff --git a/README.W32 b/README.W32
index ac5001d..ca7f32c 100644
--- a/README.W32
+++ b/README.W32
@@ -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