Ignore:
Timestamp:
Sep 15, 2006, 7:09:38 AM (19 years ago)
Author:
bird
Message:

Untested merge with GNU Make v3.81 (vendor/gnumake/2005-05-16 -> vendor/gnumake/current).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gmake/README.W32

    r151 r503  
    1 Port of GNU make to Windows NT and Windows 95
    2 Builds natively with MSVC 2.x or MSVC 4.x compilers.
    3 Should also build fine with MSVC 5.x and 6.x (though not confirmed).
    4 
    5 This Windows 32-bit port of GNU make is maintained primarily by Rob
    6 Tulloh, who is also the author of this README.
    7 
    8 To build with nmake on Windows NT, Windows 95, or Windows 98:
    9 
    10         1. Make sure cl.exe is in your %Path%. Example:
    11 
    12                 set Path=%Path%;c:/msdev/bin
    13 
    14         2. Make sure %include% is set to msvc include directory. Example:
    15 
    16                 set include=c:/msdev/include
    17 
    18         3. Make sure %lib% is set to msvc lib directory. Example:
    19 
    20                 set lib=c:/msdev/lib
    21 
    22         4. nmake /f NMakefile
    23 
    24 
    25     A short cut to steps 1, 2, and 3 is to run VCVARS32.bat before
    26     invoking namke. For example:
    27 
    28         c:
    29         cd \msdev\bin
    30         VCVARS32.bat
    31         cd \path\to\make-3.81beta1
     1This version of GNU make has been tested on Microsoft Windows 2000/XP/2003.
     2It has also been used on Windows 95/98/NT, and on OS/2.
     3
     4It builds natively with MSVC 2.x, 4.x, 5.x, 6.x, and 2003 as well as
     5.NET 7.x and .NET 2003.
     6
     7It builds with the MinGW port of GCC 3.x (tested with GCC 3.4.2).
     8
     9The Windows 32-bit port of GNU make is maintained jointly by various
     10people.  It was originally made by Rob Tulloh.
     11
     12
     13Do this first, regardless of the build method you choose:
     14---------------------------------------------------------
     15
     16 1. At the Windows command prompt run:
     17
     18      if not exist NMakefile copy NMakefile.template NMakefile
     19      if not exist config.h copy config.h.W32 config.h
     20
     21    Then edit config.h to your liking (especially the few shell-related
     22    defines near the end, or HAVE_CASE_INSENSITIVE_FS which corresponds
     23    to './configure --enable-case-insensitive-file-system').
     24
     25
     26Using make_msvc_net2003.vcproj
     27------------------------------
     28
     29 2. Open make_msvc_net2003.vcproj in MSVS71 or MSVC71 or any compatible IDE,
     30    then build this project as usual.
     31
     32
     33Building with (MinGW-)GCC using build_w32.bat
     34---------------------------------------------
     35
     36 2. Open a W32 command prompt for your installed (MinGW-)GCC, setup a
     37    correct PATH and other environment variables for it, then execute ...
     38
     39        build_w32.bat gcc
     40
     41    This produces gnumake.exe in the current directory.
     42
     43
     44Building with (MSVC++-)cl using build_w32.bat or NMakefile
     45----------------------------------------------------------
     46
     47 2. Open a W32 command prompt for your installed (MSVC++-)cl, setup a
     48    correct PATH and other environment variables for it (usually via
     49    executing vcvars32.bat or vsvars32.bat from the cl-installation,
     50    e.g. "%VS71COMNTOOLS%vsvars32.bat"; or using a corresponding start
     51    menue entry from the cl-installation), then execute EITHER ...
     52
     53        build_w32.bat
     54
     55    (this produces WinDebug/gnumake.exe and WinRel/gnumake.exe)
     56
     57    ... OR ...
     58
    3259        nmake /f NMakefile
    3360
    34 There is a bat file (build_w32.bat) for folks who have fear of nmake.
    35 
    36 Outputs:
    37 
    38         WinDebug/make.exe
    39         WinRel/make.exe
    40 
    41 
     61    (this produces WinDebug/make.exe and WinRel/make.exe).
     62
     63
     64-------------------
    4265-- Notes/Caveats --
     66-------------------
    4367
    4468GNU make on Windows 32-bit platforms:
     
    6488        There are very few true ports of Bourne shell for NT right now.
    6589        There is a version of GNU bash available from Cygnus "Cygwin"
    66         porting effort (http://sourceware.cygnus.com/cygwin).
     90        porting effort (http://www.cygwin.com/).
    6791        Other possibilities are the MKS version of sh.exe, or building
    6892        your own with a package like NutCracker (DataFocus) or Portage
    69         (Consensys).
     93        (Consensys).  Also MinGW includes sh (http://mingw.org/).
    7094
    7195GNU make and brain-dead shells (BATCH_MODE_ONLY_SHELL):
     
    132156        specification of paths.  Make is able to figure out the intended
    133157        result and convert the paths internally to the format needed
    134         when interacting with the operating system.
     158        when interacting with the operating system, providing the path
     159        is not within quotes, e.g. "x:/test/test.c".
    135160
    136161        You are encouraged to use colon as the separator character.
     
    143168
    144169        I verified all functionality with a slightly modified version
    145         of make-test-3.81beta1 (modifications to get test suite to run
     170        of make-test-3.81 (modifications to get test suite to run
    146171        on Windows NT). All tests pass in an environment that includes
    147172        sh.exe.  Tests were performed on both Windows NT and Windows 95.
     
    168193
    169194        Unlike Unix, Windows 95/NT systems encourage pathnames which
    170         contain white space (e.g. C:\Program Files\). These sorts of pathnames
    171         are legal under Unix too, but are never encouraged. There is
    172         at least one place in make (VPATH/vpath handling) where paths
    173         containing white space will simply not work. There may be others
    174         too. I chose to not try and port make in such a way so that
    175         these sorts of paths could be handled. I offer these suggestions
    176         as workarounds:
    177 
    178                 1. Use 8.3 notation
     195        contain white space (e.g. C:\Program Files\). These sorts of
     196        pathnames are legal under Unix too, but are never encouraged.
     197        There is at least one place in make (VPATH/vpath handling) where
     198        paths containing white space will simply not work. There may be
     199        others too. I chose to not try and port make in such a way so
     200        that these sorts of paths could be handled. I offer these
     201        suggestions as workarounds:
     202
     203                1. Use 8.3 notation. i.e. "x:/long~1/", which is actually
     204                   "x:\longpathtest".  Type "dir /x" to view these filenames
     205                   within the cmd.exe shell.
    179206                2. Rename the directory so it does not contain white space.
    180207
     
    221248        related to the way VC++ 4.0 changes the case name of the pdb
    222249        filename it is passed on the command line. It seems to change
    223         the name always to to lower case. I contend that
    224         the VC++ compiler should not change the casename of files that
    225         are passed as arguments on the command line. I don't think this
    226         was a problem in MSVC 2.x, but I know it is a problem in MSVC 4.x.
     250        the name always to to lower case. I contend that the VC++
     251        compiler should not change the casename of files that are passed
     252        as arguments on the command line. I don't think this was a
     253        problem in MSVC 2.x, but I know it is a problem in MSVC 4.x.
    227254
    228255        The package builds fine on VFAT and NTFS filesystems.
     
    230257        Most all of the development I have done to date has been using
    231258        NTFS and long file names. I have not done any considerable work
    232         under VFAT. VFAT users may wish to be aware that this port
    233         of make does respect case sensitivity.
     259        under VFAT. VFAT users may wish to be aware that this port of
     260        make does respect case sensitivity.
    234261
    235262FAT:
    236263
    237         Version 3.76 added support for FAT filesystems. Make
    238         works around some difficulties with stat'ing of
    239         files and caching of filenames and directories internally.
     264        Version 3.76 added support for FAT filesystems. Make works
     265        around some difficulties with stat'ing of files and caching of
     266        filenames and directories internally.
    240267
    241268Bug reports:
     
    243270        Please submit bugs via the normal bug reporting mechanism which
    244271        is described in the GNU make manual and the base README.
     272
     273
     274-------------------------------------------------------------------------------
     275Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     2762006 Free Software Foundation, Inc.
     277This file is part of GNU Make.
     278
     279GNU Make is free software; you can redistribute it and/or modify it under the
     280terms of the GNU General Public License as published by the Free Software
     281Foundation; either version 2, or (at your option) any later version.
     282
     283GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     284WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     285A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     286
     287You should have received a copy of the GNU General Public License along with
     288GNU Make; see the file COPYING.  If not, write to the Free Software
     289Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
Note: See TracChangeset for help on using the changeset viewer.