| [29] | 1 | /* | 
|---|
|  | 2 | * Copyright 1993, 1995 Christopher Seiwald. | 
|---|
|  | 3 | * | 
|---|
|  | 4 | * This file is part of Jam - see jam.c for Copyright information. | 
|---|
|  | 5 | */ | 
|---|
|  | 6 |  | 
|---|
|  | 7 | /*  This file is ALSO: | 
|---|
|  | 8 | *  Copyright 2001-2004 David Abrahams. | 
|---|
|  | 9 | *  Distributed under the Boost Software License, Version 1.0. | 
|---|
|  | 10 | *  (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) | 
|---|
|  | 11 | */ | 
|---|
|  | 12 |  | 
|---|
|  | 13 | /* | 
|---|
|  | 14 | * jam.h - includes and globals for jam | 
|---|
|  | 15 | * | 
|---|
|  | 16 | * 04/08/94 (seiwald) - Coherent/386 support added. | 
|---|
|  | 17 | * 04/21/94 (seiwald) - DGUX is __DGUX__, not just __DGUX. | 
|---|
|  | 18 | * 05/04/94 (seiwald) - new globs.jobs (-j jobs) | 
|---|
|  | 19 | * 11/01/94 (wingerd) - let us define path of Jambase at compile time. | 
|---|
|  | 20 | * 12/30/94 (wingerd) - changed command buffer size for NT (MS-DOS shell). | 
|---|
|  | 21 | * 02/22/95 (seiwald) - Jambase now in /usr/local/lib. | 
|---|
|  | 22 | * 04/30/95 (seiwald) - FreeBSD added.  Live Free or Die. | 
|---|
|  | 23 | * 05/10/95 (seiwald) - SPLITPATH character set up here. | 
|---|
|  | 24 | * 08/20/95 (seiwald) - added LINUX. | 
|---|
|  | 25 | * 08/21/95 (seiwald) - added NCR. | 
|---|
|  | 26 | * 10/23/95 (seiwald) - added SCO. | 
|---|
|  | 27 | * 01/03/96 (seiwald) - SINIX (nixdorf) added. | 
|---|
|  | 28 | * 03/13/96 (seiwald) - Jambase now compiled in; remove JAMBASE variable. | 
|---|
|  | 29 | * 04/29/96 (seiwald) - AIX now has 31 and 42 OSVERs. | 
|---|
|  | 30 | * 11/21/96 (peterk)  - added BeOS with MW CW mwcc | 
|---|
|  | 31 | * 12/21/96 (seiwald) - OSPLAT now defined for NT. | 
|---|
|  | 32 | * 07/19/99 (sickel)  - Mac OS X Server and Client support added | 
|---|
|  | 33 | * 02/18/00 (belmonte)- Support for Cygwin. | 
|---|
|  | 34 | * 09/12/00 (seiwald) - OSSYMS split to OSMAJOR/OSMINOR/OSPLAT | 
|---|
|  | 35 | * 12/29/00 (seiwald) - OSVER dropped. | 
|---|
|  | 36 | */ | 
|---|
|  | 37 |  | 
|---|
|  | 38 | #ifndef JAM_H_VP_2003_08_01 | 
|---|
|  | 39 | #define JAM_H_VP_2003_08_01 | 
|---|
|  | 40 |  | 
|---|
|  | 41 | #ifdef HAVE_PYTHON | 
|---|
|  | 42 | #include <Python.h> | 
|---|
|  | 43 | #endif | 
|---|
|  | 44 |  | 
|---|
|  | 45 | /* Assume popen support is available unless known otherwise. */ | 
|---|
|  | 46 | #define HAVE_POPEN 1 | 
|---|
|  | 47 |  | 
|---|
|  | 48 | /* | 
|---|
|  | 49 | * VMS, OPENVMS | 
|---|
|  | 50 | */ | 
|---|
|  | 51 |  | 
|---|
|  | 52 | # ifdef VMS | 
|---|
|  | 53 |  | 
|---|
|  | 54 | # include <types.h> | 
|---|
|  | 55 | # include <file.h> | 
|---|
|  | 56 | # include <stat.h> | 
|---|
|  | 57 | # include <stdio.h> | 
|---|
|  | 58 | # include <ctype.h> | 
|---|
|  | 59 | # include <stdlib.h> | 
|---|
|  | 60 | # include <signal.h> | 
|---|
|  | 61 | # include <string.h> | 
|---|
|  | 62 | # include <time.h> | 
|---|
|  | 63 | # include <unistd.h> | 
|---|
|  | 64 | # include <unixlib.h> | 
|---|
|  | 65 |  | 
|---|
|  | 66 | # define OSMINOR "OS=VMS" | 
|---|
|  | 67 | # define OSMAJOR "VMS=true" | 
|---|
|  | 68 | # define OS_VMS | 
|---|
|  | 69 | # define MAXLINE 1024 /* longest 'together' actions */ | 
|---|
|  | 70 | # define SPLITPATH ',' | 
|---|
|  | 71 | # define EXITOK 1 | 
|---|
|  | 72 | # define EXITBAD 0 | 
|---|
|  | 73 | # define DOWNSHIFT_PATHS | 
|---|
|  | 74 |  | 
|---|
|  | 75 | /* This may be inaccurate */ | 
|---|
|  | 76 | # ifndef __DECC | 
|---|
|  | 77 | # define OSPLAT "OSPLAT=VAX" | 
|---|
|  | 78 | # endif | 
|---|
|  | 79 |  | 
|---|
|  | 80 | # endif | 
|---|
|  | 81 |  | 
|---|
|  | 82 | /* | 
|---|
|  | 83 | * Windows NT | 
|---|
|  | 84 | */ | 
|---|
|  | 85 |  | 
|---|
|  | 86 | # ifdef NT | 
|---|
|  | 87 |  | 
|---|
|  | 88 | # include <fcntl.h> | 
|---|
|  | 89 | # include <stdlib.h> | 
|---|
|  | 90 | # include <stdio.h> | 
|---|
|  | 91 | # include <ctype.h> | 
|---|
|  | 92 | # include <malloc.h> | 
|---|
|  | 93 | # ifndef __MWERKS__ | 
|---|
|  | 94 | # include <memory.h> | 
|---|
|  | 95 | #endif | 
|---|
|  | 96 | # include <signal.h> | 
|---|
|  | 97 | # include <string.h> | 
|---|
|  | 98 | # include <time.h> | 
|---|
|  | 99 |  | 
|---|
|  | 100 | # define OSMAJOR "NT=true" | 
|---|
|  | 101 | # define OSMINOR "OS=NT" | 
|---|
|  | 102 | # define OS_NT | 
|---|
|  | 103 | # define SPLITPATH ';' | 
|---|
|  | 104 | /* Windows NT 3.51 only allows 996 chars per line, but we deal */ | 
|---|
|  | 105 | /* with problem in "execnt.c".                                 */ | 
|---|
|  | 106 | # define MAXLINE (maxline())    /* longest 'together' actions */ | 
|---|
|  | 107 | # define USE_EXECNT | 
|---|
|  | 108 | # define USE_PATHUNIX | 
|---|
|  | 109 | # define PATH_DELIM '\\' | 
|---|
|  | 110 | # define DOWNSHIFT_PATHS | 
|---|
|  | 111 |  | 
|---|
|  | 112 | /* AS400 cross-compile from NT */ | 
|---|
|  | 113 |  | 
|---|
|  | 114 | # ifdef AS400 | 
|---|
|  | 115 | # undef OSMINOR | 
|---|
|  | 116 | # undef OSMAJOR | 
|---|
|  | 117 | # define OSMAJOR "AS400=true" | 
|---|
|  | 118 | # define OSMINOR "OS=AS400" | 
|---|
|  | 119 | # define OS_AS400 | 
|---|
|  | 120 | # endif | 
|---|
|  | 121 |  | 
|---|
|  | 122 | /* Metrowerks Standard Library on Windows. */ | 
|---|
|  | 123 |  | 
|---|
|  | 124 | # ifdef __MSL__ | 
|---|
|  | 125 | #undef HAVE_POPEN | 
|---|
|  | 126 | #endif | 
|---|
|  | 127 |  | 
|---|
|  | 128 | # endif | 
|---|
|  | 129 |  | 
|---|
|  | 130 | /* | 
|---|
|  | 131 | * Windows MingW32 | 
|---|
|  | 132 | */ | 
|---|
|  | 133 |  | 
|---|
|  | 134 | # ifdef MINGW | 
|---|
|  | 135 |  | 
|---|
|  | 136 | # include <fcntl.h> | 
|---|
|  | 137 | # include <stdlib.h> | 
|---|
|  | 138 | # include <stdio.h> | 
|---|
|  | 139 | # include <ctype.h> | 
|---|
|  | 140 | # include <malloc.h> | 
|---|
|  | 141 | # include <memory.h> | 
|---|
|  | 142 | # include <signal.h> | 
|---|
|  | 143 | # include <string.h> | 
|---|
|  | 144 | # include <time.h> | 
|---|
|  | 145 |  | 
|---|
|  | 146 | # define OSMAJOR "MINGW=true" | 
|---|
|  | 147 | # define OSMINOR "OS=MINGW" | 
|---|
|  | 148 | # define OS_NT | 
|---|
|  | 149 | # define SPLITPATH ';' | 
|---|
|  | 150 | # define MAXLINE 996    /* longest 'together' actions */ | 
|---|
|  | 151 | # define USE_EXECUNIX | 
|---|
|  | 152 | # define USE_PATHUNIX | 
|---|
|  | 153 | # define PATH_DELIM '\\' | 
|---|
|  | 154 | # define DOWNSHIFT_PATHS | 
|---|
|  | 155 |  | 
|---|
|  | 156 | # endif | 
|---|
|  | 157 |  | 
|---|
|  | 158 | /* | 
|---|
|  | 159 | * OS2 | 
|---|
|  | 160 | */ | 
|---|
|  | 161 |  | 
|---|
|  | 162 | # ifdef __OS2__ | 
|---|
|  | 163 |  | 
|---|
|  | 164 | # include <fcntl.h> | 
|---|
|  | 165 | # include <stdlib.h> | 
|---|
|  | 166 | # include <stdio.h> | 
|---|
|  | 167 | # include <ctype.h> | 
|---|
|  | 168 | # include <malloc.h> | 
|---|
|  | 169 | # include <signal.h> | 
|---|
|  | 170 | # include <string.h> | 
|---|
|  | 171 | # include <time.h> | 
|---|
|  | 172 |  | 
|---|
|  | 173 | # define OSMAJOR "OS2=true" | 
|---|
|  | 174 | # define OSMINOR "OS=OS2" | 
|---|
|  | 175 | # define OS_OS2 | 
|---|
|  | 176 | # define SPLITPATH ';' | 
|---|
|  | 177 | # define MAXLINE 996    /* longest 'together' actions */ | 
|---|
|  | 178 | # define USE_EXECUNIX | 
|---|
|  | 179 | # define USE_PATHUNIX | 
|---|
|  | 180 | # define PATH_DELIM '\\' | 
|---|
|  | 181 | # define DOWNSHIFT_PATHS | 
|---|
|  | 182 |  | 
|---|
|  | 183 | # ifdef __EMX__ | 
|---|
|  | 184 | #   define USE_FILEUNIX | 
|---|
|  | 185 | # endif | 
|---|
|  | 186 |  | 
|---|
|  | 187 | # endif | 
|---|
|  | 188 |  | 
|---|
|  | 189 | /* | 
|---|
|  | 190 | * Macintosh MPW | 
|---|
|  | 191 | */ | 
|---|
|  | 192 |  | 
|---|
|  | 193 | # ifdef macintosh | 
|---|
|  | 194 |  | 
|---|
|  | 195 | # include <time.h> | 
|---|
|  | 196 | # include <stdlib.h> | 
|---|
|  | 197 | # include <string.h> | 
|---|
|  | 198 | # include <stdio.h> | 
|---|
|  | 199 |  | 
|---|
|  | 200 | # define OSMAJOR "MAC=true" | 
|---|
|  | 201 | # define OSMINOR "OS=MAC" | 
|---|
|  | 202 | # define OS_MAC | 
|---|
|  | 203 | # define SPLITPATH ',' | 
|---|
|  | 204 |  | 
|---|
|  | 205 | # endif | 
|---|
|  | 206 |  | 
|---|
|  | 207 | /* | 
|---|
|  | 208 | * God fearing UNIX | 
|---|
|  | 209 | */ | 
|---|
|  | 210 |  | 
|---|
|  | 211 | # ifndef OSMINOR | 
|---|
|  | 212 |  | 
|---|
|  | 213 | # define OSMAJOR "UNIX=true" | 
|---|
|  | 214 | # define USE_EXECUNIX | 
|---|
|  | 215 | # define USE_FILEUNIX | 
|---|
|  | 216 | # define USE_PATHUNIX | 
|---|
|  | 217 | # define PATH_DELIM '/' | 
|---|
|  | 218 |  | 
|---|
|  | 219 | # ifdef _AIX | 
|---|
|  | 220 | # define unix | 
|---|
|  | 221 | # define OSMINOR "OS=AIX" | 
|---|
|  | 222 | # define OS_AIX | 
|---|
|  | 223 | # define NO_VFORK | 
|---|
|  | 224 | # endif | 
|---|
|  | 225 | # ifdef AMIGA | 
|---|
|  | 226 | # define OSMINOR "OS=AMIGA" | 
|---|
|  | 227 | # define OS_AMIGA | 
|---|
|  | 228 | # endif | 
|---|
|  | 229 | # ifdef __BEOS__ | 
|---|
|  | 230 | # define unix | 
|---|
|  | 231 | # define OSMINOR "OS=BEOS" | 
|---|
|  | 232 | # define OS_BEOS | 
|---|
|  | 233 | # define NO_VFORK | 
|---|
|  | 234 | # endif | 
|---|
|  | 235 | # ifdef __bsdi__ | 
|---|
|  | 236 | # define OSMINOR "OS=BSDI" | 
|---|
|  | 237 | # define OS_BSDI | 
|---|
|  | 238 | # endif | 
|---|
|  | 239 | # if defined (COHERENT) && defined (_I386) | 
|---|
|  | 240 | # define OSMINOR "OS=COHERENT" | 
|---|
|  | 241 | # define OS_COHERENT | 
|---|
|  | 242 | # define NO_VFORK | 
|---|
|  | 243 | # endif | 
|---|
|  | 244 | # if defined(__cygwin__) || defined(__CYGWIN__) | 
|---|
|  | 245 | # define OSMINOR "OS=CYGWIN" | 
|---|
|  | 246 | # define OS_CYGWIN | 
|---|
|  | 247 | # endif | 
|---|
|  | 248 | # if defined(__FreeBSD__) && !defined(__DragonFly__) | 
|---|
|  | 249 | # define OSMINOR "OS=FREEBSD" | 
|---|
|  | 250 | # define OS_FREEBSD | 
|---|
|  | 251 | # endif | 
|---|
|  | 252 | # ifdef __DragonFly__ | 
|---|
|  | 253 | # define OSMINOR "OS=DRAGONFLYBSD" | 
|---|
|  | 254 | # define OS_DRAGONFLYBSD | 
|---|
|  | 255 | # endif | 
|---|
|  | 256 | # ifdef __DGUX__ | 
|---|
|  | 257 | # define OSMINOR "OS=DGUX" | 
|---|
|  | 258 | # define OS_DGUX | 
|---|
|  | 259 | # endif | 
|---|
|  | 260 | # ifdef __hpux | 
|---|
|  | 261 | # define OSMINOR "OS=HPUX" | 
|---|
|  | 262 | # define OS_HPUX | 
|---|
|  | 263 | # endif | 
|---|
|  | 264 | # ifdef __OPENNT | 
|---|
|  | 265 | # define unix | 
|---|
|  | 266 | # define OSMINOR "OS=INTERIX" | 
|---|
|  | 267 | # define OS_INTERIX | 
|---|
|  | 268 | # define NO_VFORK | 
|---|
|  | 269 | # endif | 
|---|
|  | 270 | # ifdef __sgi | 
|---|
|  | 271 | # define OSMINOR "OS=IRIX" | 
|---|
|  | 272 | # define OS_IRIX | 
|---|
|  | 273 | # define NO_VFORK | 
|---|
|  | 274 | # endif | 
|---|
|  | 275 | # ifdef __ISC | 
|---|
|  | 276 | # define OSMINOR "OS=ISC" | 
|---|
|  | 277 | # define OS_ISC | 
|---|
|  | 278 | # define NO_VFORK | 
|---|
|  | 279 | # endif | 
|---|
|  | 280 | # ifdef linux | 
|---|
|  | 281 | # define OSMINOR "OS=LINUX" | 
|---|
|  | 282 | # define OS_LINUX | 
|---|
|  | 283 | # endif | 
|---|
|  | 284 | # ifdef __Lynx__ | 
|---|
|  | 285 | # define OSMINOR "OS=LYNX" | 
|---|
|  | 286 | # define OS_LYNX | 
|---|
|  | 287 | # define NO_VFORK | 
|---|
|  | 288 | # define unix | 
|---|
|  | 289 | # endif | 
|---|
|  | 290 | # ifdef __MACHTEN__ | 
|---|
|  | 291 | # define OSMINOR "OS=MACHTEN" | 
|---|
|  | 292 | # define OS_MACHTEN | 
|---|
|  | 293 | # endif | 
|---|
|  | 294 | # ifdef mpeix | 
|---|
|  | 295 | # define unix | 
|---|
|  | 296 | # define OSMINOR "OS=MPEIX" | 
|---|
|  | 297 | # define OS_MPEIX | 
|---|
|  | 298 | # define NO_VFORK | 
|---|
|  | 299 | # endif | 
|---|
|  | 300 | # ifdef __MVS__ | 
|---|
|  | 301 | # define unix | 
|---|
|  | 302 | # define OSMINOR "OS=MVS" | 
|---|
|  | 303 | # define OS_MVS | 
|---|
|  | 304 | # endif | 
|---|
|  | 305 | # ifdef _ATT4 | 
|---|
|  | 306 | # define OSMINOR "OS=NCR" | 
|---|
|  | 307 | # define OS_NCR | 
|---|
|  | 308 | # endif | 
|---|
|  | 309 | # ifdef __NetBSD__ | 
|---|
|  | 310 | # define unix | 
|---|
|  | 311 | # define OSMINOR "OS=NETBSD" | 
|---|
|  | 312 | # define OS_NETBSD | 
|---|
|  | 313 | # define NO_VFORK | 
|---|
|  | 314 | # endif | 
|---|
|  | 315 | # ifdef __QNX__ | 
|---|
|  | 316 | # define unix | 
|---|
|  | 317 | # ifdef __QNXNTO__ | 
|---|
|  | 318 | # define OSMINOR "OS=QNXNTO" | 
|---|
|  | 319 | # define OS_QNXNTO | 
|---|
|  | 320 | # else | 
|---|
|  | 321 | # define OSMINOR "OS=QNX" | 
|---|
|  | 322 | # define OS_QNX | 
|---|
|  | 323 | # define NO_VFORK | 
|---|
|  | 324 | # define MAXLINE 996 | 
|---|
|  | 325 | # endif | 
|---|
|  | 326 | # endif | 
|---|
|  | 327 | # ifdef NeXT | 
|---|
|  | 328 | # ifdef __APPLE__ | 
|---|
|  | 329 | # define OSMINOR "OS=RHAPSODY" | 
|---|
|  | 330 | # define OS_RHAPSODY | 
|---|
|  | 331 | # else | 
|---|
|  | 332 | # define OSMINOR "OS=NEXT" | 
|---|
|  | 333 | # define OS_NEXT | 
|---|
|  | 334 | # endif | 
|---|
|  | 335 | # endif | 
|---|
|  | 336 | # ifdef __APPLE__ | 
|---|
|  | 337 | # define unix | 
|---|
|  | 338 | # define OSMINOR "OS=MACOSX" | 
|---|
|  | 339 | # define OS_MACOSX | 
|---|
|  | 340 | # endif | 
|---|
|  | 341 | # ifdef __osf__ | 
|---|
|  | 342 | # ifndef unix | 
|---|
|  | 343 | # define unix | 
|---|
|  | 344 | # endif | 
|---|
|  | 345 | # define OSMINOR "OS=OSF" | 
|---|
|  | 346 | # define OS_OSF | 
|---|
|  | 347 | # endif | 
|---|
|  | 348 | # ifdef _SEQUENT_ | 
|---|
|  | 349 | # define OSMINOR "OS=PTX" | 
|---|
|  | 350 | # define OS_PTX | 
|---|
|  | 351 | # endif | 
|---|
|  | 352 | # ifdef M_XENIX | 
|---|
|  | 353 | # define OSMINOR "OS=SCO" | 
|---|
|  | 354 | # define OS_SCO | 
|---|
|  | 355 | # define NO_VFORK | 
|---|
|  | 356 | # endif | 
|---|
|  | 357 | # ifdef sinix | 
|---|
|  | 358 | # define unix | 
|---|
|  | 359 | # define OSMINOR "OS=SINIX" | 
|---|
|  | 360 | # define OS_SINIX | 
|---|
|  | 361 | # endif | 
|---|
|  | 362 | # ifdef sun | 
|---|
|  | 363 | # if defined(__svr4__) || defined(__SVR4) | 
|---|
|  | 364 | # define OSMINOR "OS=SOLARIS" | 
|---|
|  | 365 | # define OS_SOLARIS | 
|---|
|  | 366 | # else | 
|---|
|  | 367 | # define OSMINOR "OS=SUNOS" | 
|---|
|  | 368 | # define OS_SUNOS | 
|---|
|  | 369 | # endif | 
|---|
|  | 370 | # endif | 
|---|
|  | 371 | # ifdef ultrix | 
|---|
|  | 372 | # define OSMINOR "OS=ULTRIX" | 
|---|
|  | 373 | # define OS_ULTRIX | 
|---|
|  | 374 | # endif | 
|---|
|  | 375 | # ifdef _UNICOS | 
|---|
|  | 376 | # define OSMINOR "OS=UNICOS" | 
|---|
|  | 377 | # define OS_UNICOS | 
|---|
|  | 378 | # endif | 
|---|
|  | 379 | # if defined(__USLC__) && !defined(M_XENIX) | 
|---|
|  | 380 | # define OSMINOR "OS=UNIXWARE" | 
|---|
|  | 381 | # define OS_UNIXWARE | 
|---|
|  | 382 | # endif | 
|---|
|  | 383 | # ifdef __OpenBSD__ | 
|---|
|  | 384 | # define OSMINOR "OS=OPENBSD" | 
|---|
|  | 385 | # define OS_OPENBSD | 
|---|
|  | 386 | # define unix | 
|---|
|  | 387 | # endif | 
|---|
|  | 388 | # if defined (__FreeBSD_kernel__) && !defined(__FreeBSD__) | 
|---|
|  | 389 | # define OSMINOR "OS=KFREEBSD" | 
|---|
|  | 390 | # define OS_KFREEBSD | 
|---|
|  | 391 | # endif | 
|---|
|  | 392 | # ifndef OSMINOR | 
|---|
|  | 393 | # define OSMINOR "OS=UNKNOWN" | 
|---|
|  | 394 | # endif | 
|---|
|  | 395 |  | 
|---|
|  | 396 | /* All the UNIX includes */ | 
|---|
|  | 397 |  | 
|---|
|  | 398 | # include <sys/types.h> | 
|---|
|  | 399 | # include <sys/stat.h> | 
|---|
|  | 400 |  | 
|---|
|  | 401 | # ifndef OS_MPEIX | 
|---|
|  | 402 | # include <sys/file.h> | 
|---|
|  | 403 | # endif | 
|---|
|  | 404 |  | 
|---|
|  | 405 | # include <fcntl.h> | 
|---|
|  | 406 | # include <stdio.h> | 
|---|
|  | 407 | # include <ctype.h> | 
|---|
|  | 408 | # include <signal.h> | 
|---|
|  | 409 | # include <string.h> | 
|---|
|  | 410 | # include <time.h> | 
|---|
|  | 411 |  | 
|---|
|  | 412 | # ifndef OS_QNX | 
|---|
|  | 413 | # include <memory.h> | 
|---|
|  | 414 | # endif | 
|---|
|  | 415 |  | 
|---|
|  | 416 | # ifndef OS_ULTRIX | 
|---|
|  | 417 | # include <stdlib.h> | 
|---|
|  | 418 | # endif | 
|---|
|  | 419 |  | 
|---|
|  | 420 | # if !defined(OS_BSDI) && \ | 
|---|
|  | 421 | !defined(OS_FREEBSD) && \ | 
|---|
|  | 422 | !defined(OS_DRAGONFLYBSD) && \ | 
|---|
|  | 423 | !defined(OS_NEXT) && \ | 
|---|
|  | 424 | !defined(OS_MACHTEN) && \ | 
|---|
|  | 425 | !defined(OS_MACOSX) && \ | 
|---|
|  | 426 | !defined(OS_RHAPSODY) && \ | 
|---|
|  | 427 | !defined(OS_MVS) && \ | 
|---|
|  | 428 | !defined(OS_OPENBSD) | 
|---|
|  | 429 | # include <malloc.h> | 
|---|
|  | 430 | # endif | 
|---|
|  | 431 |  | 
|---|
|  | 432 | # endif | 
|---|
|  | 433 |  | 
|---|
|  | 434 | /* | 
|---|
|  | 435 | * OSPLAT definitions - suppressed when it's a one-of-a-kind | 
|---|
|  | 436 | */ | 
|---|
|  | 437 |  | 
|---|
|  | 438 | # if defined( _M_PPC ) || \ | 
|---|
|  | 439 | defined( PPC ) || \ | 
|---|
|  | 440 | defined( ppc ) || \ | 
|---|
|  | 441 | defined( __powerpc__ ) || \ | 
|---|
|  | 442 | defined( __ppc__ ) | 
|---|
|  | 443 | # define OSPLAT "OSPLAT=PPC" | 
|---|
|  | 444 | # endif | 
|---|
|  | 445 |  | 
|---|
|  | 446 | # if defined( _ALPHA_ ) || \ | 
|---|
|  | 447 | defined( __alpha__ ) | 
|---|
|  | 448 | # define OSPLAT "OSPLAT=AXP" | 
|---|
|  | 449 | # endif | 
|---|
|  | 450 |  | 
|---|
|  | 451 | # if defined( _i386_ ) || \ | 
|---|
|  | 452 | defined( __i386__ ) || \ | 
|---|
|  | 453 | defined( _M_IX86 ) | 
|---|
|  | 454 | # if !defined( OS_FREEBSD ) && \ | 
|---|
|  | 455 | !defined( OS_DRAGONFLYBSD ) && \ | 
|---|
|  | 456 | !defined( OS_OS2 ) && \ | 
|---|
|  | 457 | !defined( OS_AS400 ) | 
|---|
|  | 458 | # define OSPLAT "OSPLAT=X86" | 
|---|
|  | 459 | # endif | 
|---|
|  | 460 | # endif | 
|---|
|  | 461 |  | 
|---|
|  | 462 | # ifdef __sparc__ | 
|---|
|  | 463 | # if !defined( OS_SUNOS ) && \ | 
|---|
|  | 464 | !defined( OS_SOLARIS ) | 
|---|
|  | 465 | # define OSPLAT "OSPLAT=SPARC" | 
|---|
|  | 466 | # endif | 
|---|
|  | 467 | # endif | 
|---|
|  | 468 |  | 
|---|
|  | 469 | # ifdef __mips__ | 
|---|
|  | 470 | # if !defined( OS_SGI ) | 
|---|
|  | 471 | # define OSPLAT "OSPLAT=MIPS" | 
|---|
|  | 472 | # endif | 
|---|
|  | 473 | # endif | 
|---|
|  | 474 |  | 
|---|
|  | 475 | # ifdef __arm__ | 
|---|
|  | 476 | # define OSPLAT "OSPLAT=ARM" | 
|---|
|  | 477 | # endif | 
|---|
|  | 478 |  | 
|---|
|  | 479 | # if defined( __ia64__ ) || defined( __IA64__ ) | 
|---|
|  | 480 | # define OSPLAT "OSPLAT=IA64" | 
|---|
|  | 481 | # endif | 
|---|
|  | 482 |  | 
|---|
|  | 483 | # ifdef __s390__ | 
|---|
|  | 484 | # define OSPLAT "OSPLAT=390" | 
|---|
|  | 485 | # endif | 
|---|
|  | 486 |  | 
|---|
|  | 487 | # ifndef OSPLAT | 
|---|
|  | 488 | # define OSPLAT "" | 
|---|
|  | 489 | # endif | 
|---|
|  | 490 |  | 
|---|
|  | 491 | /* | 
|---|
|  | 492 | * Jam implementation misc. | 
|---|
|  | 493 | */ | 
|---|
|  | 494 |  | 
|---|
|  | 495 | # ifndef MAXLINE | 
|---|
|  | 496 | # define MAXLINE 102400 /* longest 'together' actions' */ | 
|---|
|  | 497 | # endif | 
|---|
|  | 498 |  | 
|---|
|  | 499 | # ifndef EXITOK | 
|---|
|  | 500 | # define EXITOK 0 | 
|---|
|  | 501 | # define EXITBAD 1 | 
|---|
|  | 502 | # endif | 
|---|
|  | 503 |  | 
|---|
|  | 504 | # ifndef SPLITPATH | 
|---|
|  | 505 | # define SPLITPATH ':' | 
|---|
|  | 506 | # endif | 
|---|
|  | 507 |  | 
|---|
|  | 508 | /* You probably don't need to muck with these. */ | 
|---|
|  | 509 |  | 
|---|
|  | 510 | # define MAXSYM 1024    /* longest symbol in the environment */ | 
|---|
|  | 511 | # define MAXJPATH 1024  /* longest filename */ | 
|---|
|  | 512 |  | 
|---|
|  | 513 | # define MAXJOBS 64     /* silently enforce -j limit */ | 
|---|
|  | 514 | # define MAXARGC 32     /* words in $(JAMSHELL) */ | 
|---|
|  | 515 |  | 
|---|
|  | 516 | /* Jam private definitions below. */ | 
|---|
|  | 517 |  | 
|---|
|  | 518 | # define DEBUG_MAX      14 | 
|---|
|  | 519 |  | 
|---|
|  | 520 | struct globs { | 
|---|
|  | 521 | int     noexec; | 
|---|
|  | 522 | int     jobs; | 
|---|
|  | 523 | int     quitquick; | 
|---|
|  | 524 | int     newestfirst;            /* build newest sources first */ | 
|---|
|  | 525 | char    debug[DEBUG_MAX]; | 
|---|
|  | 526 | FILE    *cmdout;                /* print cmds, not run them */ | 
|---|
|  | 527 | long timeout; /* number of seconds to limit actions to, default 0 for no limit. */ | 
|---|
|  | 528 | } ; | 
|---|
|  | 529 |  | 
|---|
|  | 530 | extern struct globs globs; | 
|---|
|  | 531 |  | 
|---|
|  | 532 | # define DEBUG_MAKE     ( globs.debug[ 1 ] )    /* show actions when executed */ | 
|---|
|  | 533 | # define DEBUG_MAKEQ    ( globs.debug[ 2 ] )    /* show even quiet actions */ | 
|---|
|  | 534 | # define DEBUG_EXEC     ( globs.debug[ 2 ] )    /* show text of actons */ | 
|---|
|  | 535 | # define DEBUG_MAKEPROG ( globs.debug[ 3 ] )    /* show progress of make0 */ | 
|---|
|  | 536 | # define DEBUG_BIND     ( globs.debug[ 3 ] )    /* show when files bound */ | 
|---|
|  | 537 |  | 
|---|
|  | 538 | # define DEBUG_EXECCMD  ( globs.debug[ 4 ] )    /* show execcmds()'s work */ | 
|---|
|  | 539 |  | 
|---|
|  | 540 | # define DEBUG_COMPILE  ( globs.debug[ 5 ] )    /* show rule invocations */ | 
|---|
|  | 541 |  | 
|---|
|  | 542 | # define DEBUG_HEADER   ( globs.debug[ 6 ] )    /* show result of header scan */ | 
|---|
|  | 543 | # define DEBUG_BINDSCAN ( globs.debug[ 6 ] )    /* show result of dir scan */ | 
|---|
|  | 544 | # define DEBUG_SEARCH   ( globs.debug[ 6 ] )    /* show attempts at binding */ | 
|---|
|  | 545 |  | 
|---|
|  | 546 | # define DEBUG_VARSET   ( globs.debug[ 7 ] )    /* show variable settings */ | 
|---|
|  | 547 | # define DEBUG_VARGET   ( globs.debug[ 8 ] )    /* show variable fetches */ | 
|---|
|  | 548 | # define DEBUG_VAREXP   ( globs.debug[ 8 ] )    /* show variable expansions */ | 
|---|
|  | 549 | # define DEBUG_IF       ( globs.debug[ 8 ] )    /* show 'if' calculations */ | 
|---|
|  | 550 | # define DEBUG_LISTS    ( globs.debug[ 9 ] )    /* show list manipulation */ | 
|---|
|  | 551 | # define DEBUG_SCAN     ( globs.debug[ 9 ] )    /* show scanner tokens */ | 
|---|
|  | 552 | # define DEBUG_MEM      ( globs.debug[ 9 ] )    /* show memory use */ | 
|---|
|  | 553 |  | 
|---|
|  | 554 | # define DEBUG_PROFILE  ( globs.debug[ 10 ] )   /* dump rule execution times */ | 
|---|
|  | 555 | # define DEBUG_PARSE    ( globs.debug[ 11 ] )   /* debug parsing */ | 
|---|
|  | 556 | # define DEBUG_GRAPH    ( globs.debug[ 12 ] )   /* debug dependencies */ | 
|---|
|  | 557 | # define DEBUG_FATE ( globs.debug[ 13 ] )  /* show changes to fate in make0() */ | 
|---|
|  | 558 |  | 
|---|
|  | 559 | #endif | 
|---|