Changeset 3138 in kBuild for vendor/gnumake/current/README.DOS.template
- Timestamp:
- Mar 12, 2018 7:32:29 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/gnumake/current/README.DOS.template
r2596 r3138 9 9 10 10 2. Supports both stock DOS COMMAND.COM and Unix-style shells 11 (details in ``Notes'' below).11 (details in 'Notes' below). 12 12 13 13 3. Supports DOS drive letters in dependencies and pattern rules. 14 14 15 15 4. Better support for DOS-style backslashes in pathnames (but see 16 ``Notes'' below).16 'Notes' below). 17 17 18 18 5. The $(shell) built-in can run arbitrary complex commands, … … 56 56 environment), or the DJGPP port of GNU Tar. 57 57 58 2. Invoke the `configure.bat' batch file.58 2. Invoke the 'configure.bat' batch file. 59 59 60 60 If you are building Make in-place, i.e. in the same directory … … 63 63 directory as an argument to the batch file, like this: 64 64 65 65 c:\djgpp\gnu\make-%VERSION%\configure.bat c:/djgpp/gnu/make-%VERSION% 66 66 67 67 Note the forward slashes in the source path argument: you MUST … … 69 69 70 70 3. If configure.bat doesn't find a working Make, it will suggest to 71 use the `dosbuild.bat' batch file to build Make. Either do as it71 use the 'dosbuild.bat' batch file to build Make. Either do as it 72 72 suggests or install another Make program (a pre-compiled binary 73 73 should be available from the usual DJGPP sites) and rerun … … 85 85 need to tell Make where the sources are, like this: 86 86 87 87 make srcdir=c:/djgpp/gnu/make-%VERSION% 88 88 89 89 (configure.bat will tell you this when it finishes). You MUST … … 92 92 93 93 6. After Make finishes, if you have a Unix-style shell installed, 94 you can use the `install' target to install the package. You94 you can use the 'install' target to install the package. You 95 95 will also need GNU Fileutils and GNU Sed for this (they should 96 96 be available from the DJGPP sites). … … 100 100 DESTDIR variable when invoking "make install", like this: 101 101 102 102 make install DESTDIR=c:/other/dir 103 103 104 104 This causes the make executable to be placed in c:/other/dir/bin, … … 108 108 and the docs manually. Copy make.exe to a directory on your 109 109 PATH, make.i* info files to your Info directory, and update the 110 file `dir' in your Info directory by adding the following item110 file 'dir' in your Info directory by adding the following item 111 111 to the main menu: 112 112 113 114 115 If you have the `install-info' program (from the GNU Texinfo113 * Make: (make.info). The GNU make utility. 114 115 If you have the 'install-info' program (from the GNU Texinfo 116 116 package), it will do that for you if you invoke it like this: 117 117 118 118 install-info --info-dir=c:/djgpp/info c:/djgpp/info/make.info 119 119 120 120 (If your Info directory is other than C:\DJGPP\INFO, change this 121 121 command accordingly.) 122 122 123 7. The `clean' targets also require Unix-style shell, and GNU Sed124 and `rm' programs (the latter from Fileutils).123 7. The 'clean' targets also require Unix-style shell, and GNU Sed 124 and 'rm' programs (the latter from Fileutils). 125 125 126 126 8. To run the test suite, type "make check". This requires a Unix … … 145 145 This port supports both DOS shells (the stock COMMAND.COM and its 146 146 4DOS/NDOS replacements), and Unix-style shells (tested with the 147 venerable Stewartson's `ms_sh' 2.3 and the DJGPP port of `bash' by147 venerable Stewartson's 'ms_sh' 2.3 and the DJGPP port of 'bash' by 148 148 Daisuke Aoyama <[email protected]>). 149 149 … … 167 167 batch file or a command internal to the shell is invoked. (Even 168 168 when a command is an internal shell command, Make will first 169 search the $PATH for it, so that if a Makefile calls `mkdir',170 you can install, say, a port of GNU `mkdir' and have it called169 search the $PATH for it, so that if a Makefile calls 'mkdir', 170 you can install, say, a port of GNU 'mkdir' and have it called 171 171 in that case.) 172 172 173 The key to all this is the extended functionality of `spawn' and174 `system' functions from the DJGPP library; this port just calls175 `system' where it would invoke the shell on Unix. The most173 The key to all this is the extended functionality of 'spawn' and 174 'system' functions from the DJGPP library; this port just calls 175 'system' where it would invoke the shell on Unix. The most 176 176 important aspect of these functions is that they use a special 177 177 mechanism to pass long (up to 16KB) command lines to DJGPP 178 programs. In addition, `system' emulates some internal179 commands, like `cd' (so that you can now use forward slashes178 programs. In addition, 'system' emulates some internal 179 commands, like 'cd' (so that you can now use forward slashes 180 180 with it, and can also change the drive if the directory is on 181 181 another drive). Another aspect worth mentioning is that you can … … 187 187 188 188 The $(shell) built-in is implemented in this port by calling 189 `popen'. Since `popen' calls `system', the above considerations189 'popen'. Since 'popen' calls 'system', the above considerations 190 190 are valid for $(shell) as well. In particular, you can put 191 191 arbitrary complex commands, including pipes and redirection, … … 198 198 Many Unix Makefiles include a line which sets the SHELL, for 199 199 those versions of Make which don't have this as the default. 200 Since many DOS systems don't have `sh' installed (in fact, most201 of them don't even have a `/bin' directory), this port takes200 Since many DOS systems don't have 'sh' installed (in fact, most 201 of them don't even have a '/bin' directory), this port takes 202 202 such directives with a grain of salt. It will only honor such a 203 directive if the basename of the shell name (like `sh' in the203 directive if the basename of the shell name (like 'sh' in the 204 204 above example) can indeed be found in the directory that is 205 mentioned in the SHELL= line ( `/bin' in the above example), or205 mentioned in the SHELL= line ('/bin' in the above example), or 206 206 in the current working directory, or anywhere on the $PATH (in 207 207 that order). If the basename doesn't include a filename … … 238 238 Makefiles to MSDOS and leave the line which sets the shell 239 239 intact, so that people who do have Unixy shell could use it for 240 targets which aren't converted to DOS (like `install' and241 `uninstall', for example).240 targets which aren't converted to DOS (like 'install' and 241 'uninstall', for example). 242 242 243 243 … … 259 259 letter-case issue. Make is internally case-sensitive, but all 260 260 file operations are case-insensitive on Windows 9x, so 261 e.g. files `FAQ', `faq' and `Faq' all refer to the same file, as261 e.g. files 'FAQ', 'faq' and 'Faq' all refer to the same file, as 262 262 far as Windows is concerned. The underlying DJGPP C library 263 263 functions honor the letter-case of the filenames they get from … … 266 266 many Makefiles otherwise. (The details of which filenames are 267 267 converted to lower case are explained in the DJGPP libc docs, 268 under the `_preserve_fncase' and `_lfn_gen_short_fname'268 under the '_preserve_fncase' and '_lfn_gen_short_fname' 269 269 functions, but as a thumb rule, any filename that is stored in 270 270 upper case in the directory, is a valid DOS 8+3 filename and … … 283 283 There are a lot of places throughout the program sources which 284 284 make implicit assumptions about the pathname syntax. In 285 particular, the directories are assumed to be separated by `/',286 and any pathname which doesn't begin with a `/' is assumed to be285 particular, the directories are assumed to be separated by '/', 286 and any pathname which doesn't begin with a '/' is assumed to be 287 287 relative to the current directory. This port attempts to 288 288 support DOS-style pathnames which might include the drive letter … … 297 297 are advised to stay away from backslashes whenever possible. In 298 298 particular, filename globbing won't work on pathnames with 299 backslashes, because the GNU `glob' library doesn't support them299 backslashes, because the GNU 'glob' library doesn't support them 300 300 (backslash is special in filename wildcards, and I didn't want 301 301 to break that). … … 316 316 group). For other bugs, please follow the procedure explained in 317 317 the "Bugs" chapter of the Info docs. If you don't have an Info 318 reader, look up that chapter in the `make.i1' file with any text318 reader, look up that chapter in the 'make.i1' file with any text 319 319 browser/editor. 320 320 321 321 322 322 Enjoy, 323 323 Eli Zaretskii <[email protected]> 324 324 325 325 326 326 327 327 ------------------------------------------------------------------------------- 328 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 329 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 328 Copyright (C) 1996-2016 Free Software Foundation, Inc. 330 329 This file is part of GNU Make. 331 330
Note:
See TracChangeset
for help on using the changeset viewer.