version 1.69, 2007/09/17 10:17:26 |
version 1.70, 2007/09/17 10:22:30 |
|
|
#include "gnode.h" |
#include "gnode.h" |
#include "memory.h" |
#include "memory.h" |
#include "make.h" |
#include "make.h" |
#include "str.h" |
|
|
|
#define TMPPAT "/tmp/makeXXXXXXXXXX" |
#define TMPPAT "/tmp/makeXXXXXXXXXX" |
|
|
|
|
static Shell *commandShell = &shells[DEFSHELL];/* this is the shell to |
static Shell *commandShell = &shells[DEFSHELL];/* this is the shell to |
* which we pass all |
* which we pass all |
* commands in the Makefile*/ |
* commands in the Makefile*/ |
static char *shellPath = NULL, /* full pathname of |
#define SHELL_ECHO_OFF "set -" |
* executable image */ |
#define SHELL_ECHO_ON "set -v" |
*shellName = NULL; /* last component of shell */ |
#define SHELL_ERROR_ON "set -e" |
|
#define SHELL_ERROR_OFF "set +e" |
|
#define SHELL_ECHO_FLAG "v" |
|
#define SHELL_ERROR_FLAG "e" |
|
|
|
static const char *shellPath = _PATH_BSHELL; |
|
static const char *shellName = "sh"; |
|
|
static int maxJobs; /* The most children we can run at once */ |
static int maxJobs; /* The most children we can run at once */ |
static int maxLocal; /* The most local ones we can have */ |
static int maxLocal; /* The most local ones we can have */ |
|
|
int argc; |
int argc; |
static char args[10]; /* For merged arguments */ |
static char args[10]; /* For merged arguments */ |
|
|
argv[0] = shellName; |
argv[0] = (char *)shellName; |
argc = 1; |
argc = 1; |
|
|
if ((commandShell->exit && *commandShell->exit != '-') || |
if ((commandShell->exit && *commandShell->exit != '-') || |
|
|
targFmt = ""; |
targFmt = ""; |
} else { |
} else { |
targFmt = TARG_FMT; |
targFmt = TARG_FMT; |
} |
|
|
|
if (shellPath == NULL) { |
|
/* |
|
* The user didn't specify a shell to use, so we are using the |
|
* default one... Both the absolute path and the last component |
|
* must be set. The last component is taken from the 'name' |
|
* field of the default shell description pointed-to by |
|
* commandShell. All default shells are located in |
|
* _PATH_DEFSHELLDIR. |
|
*/ |
|
shellName = commandShell->name; |
|
shellPath = Str_concat(_PATH_DEFSHELLDIR, shellName, '/'); |
|
} |
} |
|
|
if (commandShell->exit == NULL) { |
if (commandShell->exit == NULL) { |