%scons; %builders-mod; %functions-mod; %tools-mod; %variables-mod; ]> Controls whether or not SCons will add implicit dependencies for the commands executed to build targets. By default, SCons will add to each target an implicit dependency on the command represented by the first argument of any command line it executes (which is typically the command itself). By setting such a dependency, &SCons; can determine that a target should be rebuilt if the command changes, such as when a compiler is upgraded to a new version. The specific file for the dependency is found by searching the PATH variable in the ENV dictionary in the &consenv; used to execute the command. The default is the same as setting the &consvar; &cv-IMPLICIT_COMMAND_DEPENDENCIES; to a True-like value (true, yes, or 1 - but not a number greater than one, as that has a different meaning). Action strings can be segmented by the use of an AND operator, &&. In a segemented string, each segment is a separate command line, these are run sequentially until one fails or the entire sequence has been executed. If an action string is segmented, then the selected behavior of &cv-IMPLICIT_COMMAND_DEPENDENCIES; is applied to each segment. If &cv-IMPLICIT_COMMAND_DEPENDENCIES; is set to a False-like value (none, false, no, 0, etc.), then the implicit dependency will not be added to the targets built with that &consenv;. If &cv-IMPLICIT_COMMAND_DEPENDENCIES; is set to 2 or higher, then that number of arguments in the command line will be scanned for relative or absolute paths. If any are present, they will be added as implicit dependencies to the targets built with that &consenv;. The first argument in the command line will be searched for using the PATH variable in the ENV dictionary in the &consenv; used to execute the command. The other arguments will only be found if they are absolute paths or valid paths relative to the working directory. If &cv-IMPLICIT_COMMAND_DEPENDENCIES; is set to all, then all arguments in the command line will be scanned for relative or absolute paths. If any are present, they will be added as implicit dependencies to the targets built with that &consenv;. The first argument in the command line will be searched for using the PATH variable in the ENV dictionary in the &consenv; used to execute the command. The other arguments will only be found if they are absolute paths or valid paths relative to the working directory. env = Environment(IMPLICIT_COMMAND_DEPENDENCIES=False) A Python function used to print the command lines as they are executed (assuming command printing is not disabled by the or options or their equivalents). The function should take four arguments: s, the command being executed (a string), target, the target being built (file node, list, or string name(s)), source, the source(s) used (file node, list, or string name(s)), and env, the environment being used. The function must do the printing itself. The default implementation, used if this variable is not set or is None, is: def print_cmd_line(s, target, source, env): sys.stdout.write(s + "\n") Here's an example of a more interesting function: def print_cmd_line(s, target, source, env): sys.stdout.write("Building %s -> %s...\n" % (' and '.join([str(x) for x in source]), ' and '.join([str(x) for x in target]))) env=Environment(PRINT_CMD_LINE_FUNC=print_cmd_line) env.Program('foo', 'foo.c') This just prints "Building targetname from sourcename..." instead of the actual commands. Such a function could also log the actual commands to a log file, for example. A command interpreter function that will be called to execute command line strings. The function must expect the following arguments: def spawn(shell, escape, cmd, args, env): sh is a string naming the shell program to use. escape is a function that can be called to escape shell special characters in the command line. cmd is the path to the command to be executed. args is the arguments to the command. env is a dictionary of the environment variables in which the command should be executed.