.
[make.git] / README.W32
blob80974cbf136deb4b18e09b4ab65f2114e7d28f41
1 Port of GNU make to Windows NT and Windows 95 
2 Builds natively with MSVC 2.x or MSVC 4.x compilers.
4 To build with nmake on Windows NT or Windows 95:
6         1. Make sure cl.exe is in your %Path%. Example:
7         
8                 set Path=%Path%;c:/msdev/bin
10         2. Make sure %include% is set to msvc include directory. Example:
12                 set include=c:/msdev/include
14         3. Make sure %lib% is set to msvc lib directory. Example:
16                 set lib=c:/msdev/lib
18         4. nmake /f NMakefile
21 There is a bat file (build_w32.bat) for folks who have fear of nmake.
22         
23 Outputs:
25         WinDebug/make.exe
26         WinRel/make.exe
29 -- Notes/Caveats --
31 GNU make and sh.exe:
33         This port prefers you have a working sh.exe somewhere on your
34         system. If you don't have sh.exe, port falls back to
35         MSDOS mode for launching programs (via a batch file).
36         The MSDOS mode style execution has not been tested too
37         carefully though (I use GNU bash as sh.exe). 
39         There are very few true ports of Bourne shell for NT right now.
40         There is a version of GNU bash available from Cygnus gnu-win32 
41         porting effort.  Other possibilites are to get the MKS version 
42         of sh.exe or to build your own with a package like 
43         NutCracker (DataFocus) or Portage (Consensys). 
45         Tivoli uses a homegrown port of GNU bash which is not (yet)
46         freely available. It may be available someday, but I am not in control
47         of this decision nor do I influence it. Sorry!
49 GNU make test suite:
51         I verified all functionality with a slightly modified version
52         of make-test-0.4.5 (modifications to get test suite to run
53         on Windows NT). All tests pass in an environment that includes
54         sh.exe. Tested on both Windows NT and Windows 95.
56 Building GNU make on Windows NT and Windows 95 with Microsoft Visual C
58         I did not provide a Visual C project file with this port as
59         the project file would not be considered freely distributable
60         (or so I think). It is easy enough to create one though if
61         you know how to use Visual C. 
63         I build the program statically to avoid problems locating DLL's
64         on machines that may not have MSVC runtime installed. If you
65         prefer, you can change make to build with shared libraries by
66         changing /MT to /MD in the NMakefile (or build_w32.bat). 
68         Program has not been built under non-Intel architectures (yet).
70         I have not tried to build with any other compilers than MSVC.
72 Pathnames and white space:
74         Unlike Unix, WIN32 systems encourage pathnames which
75         contain white space (e.g. C:\Program Files\). These sorts of pathnames
76         are legal under Unix too, but are never encouraged. There is
77         at least one place in make (VPATH/vpath handling) where paths
78         containing white space will simply not work. There may be others
79         too. I chose to not try and port make in such a way so that
80         these sorts of paths could be handled. I offer these suggestions
81         as workarounds:
83                 1. Use 8.3 notation 
84                 2. Rename the directory so it does not contain white space.
86         If you are unhappy with this choice, this is free software
87         and you are free to take a crack at making this work. The code
88         in w32/pathstuff.c and vpath.c would be the places to start.
90 SAMBA/NTFS/VFAT:
92         I have not had any success building the debug version of this
93         package using SAMBA as my file server. The reason seems to be
94         related to the way VC++ 4.0 changes the case name of the pdb
95         filename it is passed on the command line. It seems to change
96         the name always to to lower case. I contend that
97         the VC++ compiler should not change the casename of files that
98         are passed as arguments on the command line. I don't think this
99         was a problem in MSVC 2.x, but I know it is a problem in MSVC 4.x.
101         The package builds fine on VFAT and NTFS filesystems.
103         Most all of the development I have done to date has been using
104         NTFS and long file names. I have not done any considerable work
105         under VFAT. VFAT users may wish to be aware that this port
106         of make does respect case sensitivity.
108 Bug reports:
110         Please submit bugs via the normal bug reporting mechanism
111         which is described in one of the texinfo files. If you don't
112         have texinfo for Windows NT or Windows 95, these files are simple
113         text files and can be read with a text editor.