Module Name: src
Committed By: rillig
Date: Tue Nov 24 20:17:17 UTC 2020
Modified Files:
src/usr.bin/make: make.h
Log Message:
make(1): indent make.h with tabs instead of spaces
To generate a diff of this commit:
cvs rdiff -u -r1.218 -r1.219 src/usr.bin/make/make.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/make/make.h
diff -u src/usr.bin/make/make.h:1.218 src/usr.bin/make/make.h:1.219
--- src/usr.bin/make/make.h:1.218 Tue Nov 24 19:33:13 2020
+++ src/usr.bin/make/make.h Tue Nov 24 20:17:17 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: make.h,v 1.218 2020/11/24 19:33:13 rillig Exp $ */
+/* $NetBSD: make.h,v 1.219 2020/11/24 20:17:17 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -192,27 +192,29 @@ typedef int Boolean;
* UNMADE -> BEINGMADE -> UPTODATE.
*/
typedef enum GNodeMade {
- /* Not examined yet. */
- UNMADE,
- /* The node has been examined but is not yet ready since its
- * dependencies have to be made first. */
- DEFERRED,
-
- /* The node is on the toBeMade list. */
- REQUESTED,
-
- /* The node is already being made.
- * Trying to build a node in this state indicates a cycle in the graph. */
- BEINGMADE,
-
- /* Was out-of-date and has been made. */
- MADE,
- /* Was already up-to-date, does not need to be made. */
- UPTODATE,
- /* An error occurred while it was being made (used only in compat mode). */
- ERROR,
- /* The target was aborted due to an error making a dependency (compat). */
- ABORTED
+ /* Not examined yet. */
+ UNMADE,
+ /* The node has been examined but is not yet ready since its
+ * dependencies have to be made first. */
+ DEFERRED,
+
+ /* The node is on the toBeMade list. */
+ REQUESTED,
+
+ /* The node is already being made. Trying to build a node in this
+ * state indicates a cycle in the graph. */
+ BEINGMADE,
+
+ /* Was out-of-date and has been made. */
+ MADE,
+ /* Was already up-to-date, does not need to be made. */
+ UPTODATE,
+ /* An error occurred while it was being made.
+ * Used only in compat mode. */
+ ERROR,
+ /* The target was aborted due to an error making a dependency.
+ * Used only in compat mode. */
+ ABORTED
} GNodeMade;
/* The OP_ constants are used when parsing a dependency line as a way of
@@ -221,112 +223,125 @@ typedef enum GNodeMade {
*
* Some of the OP_ constants can be combined, others cannot. */
typedef enum GNodeType {
- OP_NONE = 0,
+ OP_NONE = 0,
- /* The dependency operator ':' is the most common one. The commands of
- * this node are executed if any child is out-of-date. */
- OP_DEPENDS = 1 << 0,
- /* The dependency operator '!' always executes its commands, even if
- * its children are up-to-date. */
- OP_FORCE = 1 << 1,
- /* The dependency operator '::' behaves like ':', except that it allows
- * multiple dependency groups to be defined. Each of these groups is
- * executed on its own, independently from the others. Each individual
- * dependency group is called a cohort. */
- OP_DOUBLEDEP = 1 << 2,
-
- /* Matches the dependency operators ':', '!' and '::'. */
- OP_OPMASK = OP_DEPENDS|OP_FORCE|OP_DOUBLEDEP,
-
- /* Don't care if the target doesn't exist and can't be created */
- OP_OPTIONAL = 1 << 3,
- /* Use associated commands for parents */
- OP_USE = 1 << 4,
- /* Target is never out of date, but always execute commands anyway.
- * Its time doesn't matter, so it has none...sort of */
- OP_EXEC = 1 << 5,
- /* Ignore non-zero exit status from shell commands when creating the node */
- OP_IGNORE = 1 << 6,
- /* Don't remove the target when interrupted */
- OP_PRECIOUS = 1 << 7,
- /* Don't echo commands when executed */
- OP_SILENT = 1 << 8,
- /* Target is a recursive make so its commands should always be executed
- * when it is out of date, regardless of the state of the -n or -t flags */
- OP_MAKE = 1 << 9,
- /* Target is out-of-date only if any of its children was out-of-date */
- OP_JOIN = 1 << 10,
- /* Assume the children of the node have been already made */
- OP_MADE = 1 << 11,
- /* Special .BEGIN, .END, .INTERRUPT */
- OP_SPECIAL = 1 << 12,
- /* Like .USE, only prepend commands */
- OP_USEBEFORE = 1 << 13,
- /* The node is invisible to its parents. I.e. it doesn't show up in the
- * parents' local variables (.IMPSRC, .ALLSRC). */
- OP_INVISIBLE = 1 << 14,
- /* The node is exempt from normal 'main target' processing in parse.c */
- OP_NOTMAIN = 1 << 15,
- /* Not a file target; run always */
- OP_PHONY = 1 << 16,
- /* Don't search for file in the path */
- OP_NOPATH = 1 << 17,
- /* In a dependency line "target: source1 .WAIT source2", source1 is made
- * first, including its children. Once that is finished, source2 is made,
- * including its children. The .WAIT keyword may appear more than once in
- * a single dependency declaration. */
- OP_WAIT = 1 << 18,
- /* .NOMETA do not create a .meta file */
- OP_NOMETA = 1 << 19,
- /* .META we _do_ want a .meta file */
- OP_META = 1 << 20,
- /* Do not compare commands in .meta file */
- OP_NOMETA_CMP = 1 << 21,
- /* Possibly a submake node */
- OP_SUBMAKE = 1 << 22,
-
- /* Attributes applied by PMake */
-
- /* The node is a transformation rule, such as ".c.o". */
- OP_TRANSFORM = 1 << 30,
- /* Target is a member of an archive */
- /* XXX: How does this differ from OP_ARCHV? */
- OP_MEMBER = 1 << 29,
- /* The node is a library,
- * its name has the form "-l<libname>" */
- OP_LIB = 1 << 28,
- /* The node is an archive member,
- * its name has the form "archive(member)" */
- /* XXX: How does this differ from OP_MEMBER? */
- OP_ARCHV = 1 << 27,
- /* Target has all the commands it should. Used when parsing to catch
- * multiple command groups for a target. Only applies to the dependency
- * operators ':' and '!', but not to '::'. */
- OP_HAS_COMMANDS = 1 << 26,
- /* The special command "..." has been seen. All further commands from
- * this node will be saved on the .END node instead, to be executed at
- * the very end. */
- OP_SAVE_CMDS = 1 << 25,
- /* Already processed by Suff_FindDeps, to find dependencies from suffix
- * transformation rules. */
- OP_DEPS_FOUND = 1 << 24,
- /* Node found while expanding .ALLSRC */
- OP_MARK = 1 << 23,
+ /* The dependency operator ':' is the most common one. The commands
+ * of this node are executed if any child is out-of-date. */
+ OP_DEPENDS = 1 << 0,
+ /* The dependency operator '!' always executes its commands, even if
+ * its children are up-to-date. */
+ OP_FORCE = 1 << 1,
+ /* The dependency operator '::' behaves like ':', except that it
+ * allows multiple dependency groups to be defined. Each of these
+ * groups is executed on its own, independently from the others.
+ * Each individual dependency group is called a cohort. */
+ OP_DOUBLEDEP = 1 << 2,
+
+ /* Matches the dependency operators ':', '!' and '::'. */
+ OP_OPMASK = OP_DEPENDS | OP_FORCE | OP_DOUBLEDEP,
+
+ /* Don't care if the target doesn't exist and can't be created. */
+ OP_OPTIONAL = 1 << 3,
+ /* Use associated commands for parents. */
+ OP_USE = 1 << 4,
+ /* Target is never out of date, but always execute commands anyway.
+ * Its time doesn't matter, so it has none...sort of. */
+ OP_EXEC = 1 << 5,
+ /* Ignore non-zero exit status from shell commands when creating the
+ * node. */
+ OP_IGNORE = 1 << 6,
+ /* Don't remove the target when interrupted. */
+ OP_PRECIOUS = 1 << 7,
+ /* Don't echo commands when executed. */
+ OP_SILENT = 1 << 8,
+ /* Target is a recursive make so its commands should always be
+ * executed when it is out of date, regardless of the state of the
+ * -n or -t flags. */
+ OP_MAKE = 1 << 9,
+ /* Target is out-of-date only if any of its children was out-of-date. */
+ OP_JOIN = 1 << 10,
+ /* Assume the children of the node have been already made. */
+ OP_MADE = 1 << 11,
+ /* Special .BEGIN, .END or .INTERRUPT. */
+ OP_SPECIAL = 1 << 12,
+ /* Like .USE, only prepend commands. */
+ OP_USEBEFORE = 1 << 13,
+ /* The node is invisible to its parents. I.e. it doesn't show up in
+ * the parents' local variables (.IMPSRC, .ALLSRC). */
+ OP_INVISIBLE = 1 << 14,
+ /* The node does not become the main target, even if it is the first
+ * target in the first makefile. */
+ OP_NOTMAIN = 1 << 15,
+ /* Not a file target; run always. */
+ OP_PHONY = 1 << 16,
+ /* Don't search for the file in the path. */
+ OP_NOPATH = 1 << 17,
+ /* In a dependency line "target: source1 .WAIT source2", source1 is
+ * made first, including its children. Once that is finished,
+ * source2 is made, including its children. The .WAIT keyword may
+ * appear more than once in a single dependency declaration. */
+ OP_WAIT = 1 << 18,
+ /* .NOMETA do not create a .meta file */
+ OP_NOMETA = 1 << 19,
+ /* .META we _do_ want a .meta file */
+ OP_META = 1 << 20,
+ /* Do not compare commands in .meta file */
+ OP_NOMETA_CMP = 1 << 21,
+ /* Possibly a submake node */
+ OP_SUBMAKE = 1 << 22,
+
+ /* Attributes applied by PMake */
+
+ /* The node is a transformation rule, such as ".c.o". */
+ OP_TRANSFORM = 1 << 30,
+ /* Target is a member of an archive */
+ /* XXX: How does this differ from OP_ARCHV? */
+ OP_MEMBER = 1 << 29,
+ /* The node is a library,
+ * its name has the form "-l<libname>" */
+ OP_LIB = 1 << 28,
+ /* The node is an archive member,
+ * its name has the form "archive(member)" */
+ /* XXX: How does this differ from OP_MEMBER? */
+ OP_ARCHV = 1 << 27,
+ /* Target has all the commands it should. Used when parsing to catch
+ * multiple command groups for a target. Only applies to the
+ * dependency operators ':' and '!', but not to '::'. */
+ OP_HAS_COMMANDS = 1 << 26,
+ /* The special command "..." has been seen. All further commands from
+ * this node will be saved on the .END node instead, to be executed at
+ * the very end. */
+ OP_SAVE_CMDS = 1 << 25,
+ /* Already processed by Suff_FindDeps, to find dependencies from
+ * suffix transformation rules. */
+ OP_DEPS_FOUND = 1 << 24,
+ /* Node found while expanding .ALLSRC */
+ OP_MARK = 1 << 23,
- OP_NOTARGET = OP_NOTMAIN | OP_USE | OP_EXEC | OP_TRANSFORM
+ OP_NOTARGET = OP_NOTMAIN | OP_USE | OP_EXEC | OP_TRANSFORM
} GNodeType;
typedef enum GNodeFlags {
- REMAKE = 0x0001, /* this target needs to be (re)made */
- CHILDMADE = 0x0002, /* children of this target were made */
- FORCE = 0x0004, /* children don't exist, and we pretend made */
- DONE_WAIT = 0x0008, /* Set by Make_ProcessWait() */
- DONE_ORDER = 0x0010, /* Build requested by .ORDER processing */
- FROM_DEPEND = 0x0020, /* Node created from .depend */
- DONE_ALLSRC = 0x0040, /* We do it once only */
- CYCLE = 0x1000, /* Used by MakePrintStatus */
- DONECYCLE = 0x2000, /* Used by MakePrintStatus */
- INTERNAL = 0x4000 /* Internal use only */
+ /* this target needs to be (re)made */
+ REMAKE = 0x0001,
+ /* children of this target were made */
+ CHILDMADE = 0x0002,
+ /* children don't exist, and we pretend made */
+ FORCE = 0x0004,
+ /* Set by Make_ProcessWait() */
+ DONE_WAIT = 0x0008,
+ /* Build requested by .ORDER processing */
+ DONE_ORDER = 0x0010,
+ /* Node created from .depend */
+ FROM_DEPEND = 0x0020,
+ /* We do it once only */
+ DONE_ALLSRC = 0x0040,
+ /* Used by MakePrintStatus */
+ CYCLE = 0x1000,
+ /* Used by MakePrintStatus */
+ DONECYCLE = 0x2000,
+ /* Internal use only */
+ INTERNAL = 0x4000
} GNodeFlags;
typedef struct List StringList;
@@ -340,109 +355,113 @@ typedef struct List /* of CachedDir */ S
/* A graph node represents a target that can possibly be made, including its
* relation to other targets and a lot of other details. */
typedef struct GNode {
- /* The target's name, such as "clean" or "make.c" */
- char *name;
- /* The unexpanded name of a .USE node */
- char *uname;
- /* The full pathname of the file belonging to the target.
- * XXX: What about .PHONY targets? These don't have an associated path. */
- char *path;
-
- /* The type of operator used to define the sources (see the OP flags below).
- * XXX: This looks like a wild mixture of type and flags. */
- GNodeType type;
- GNodeFlags flags;
-
- /* The state of processing on this node */
- GNodeMade made;
- int unmade; /* The number of unmade children */
-
- /* The modification time; 0 means the node does not have a corresponding
- * file; see GNode_IsOODate. */
- time_t mtime;
- struct GNode *youngestChild;
-
- /* The GNodes for which this node is an implied source. May be empty.
- * For example, when there is an inference rule for .c.o, the node for
- * file.c has the node for file.o in this list. */
- GNodeList *implicitParents;
-
- /* The nodes that depend on this one, or in other words, the nodes for
- * which this is a source. */
- GNodeList *parents;
- /* The nodes on which this one depends. */
- GNodeList *children;
-
- /* .ORDER nodes we need made. The nodes that must be made (if they're
- * made) before this node can be made, but that do not enter into the
- * datedness of this node. */
- GNodeList *order_pred;
- /* .ORDER nodes who need us. The nodes that must be made (if they're made
- * at all) after this node is made, but that do not depend on this node,
- * in the normal sense. */
- GNodeList *order_succ;
-
- /* Other nodes of the same name, for the '::' dependency operator. */
- GNodeList *cohorts;
- /* The "#n" suffix for this cohort, or "" for other nodes */
- char cohort_num[8];
- /* The number of unmade instances on the cohorts list */
- int unmade_cohorts;
- /* Pointer to the first instance of a '::' node; only set when on a
- * cohorts list */
- struct GNode *centurion;
-
- /* Last time (sequence number) we tried to make this node */
- unsigned int checked_seqno;
-
- /* The "local" variables that are specific to this target and this target
- * only, such as $@, $<, $?.
- *
- * Also used for the global variable scopes VAR_GLOBAL, VAR_CMDLINE,
- * VAR_INTERNAL, which contain variables with arbitrary names. */
- HashTable /* of Var pointer */ vars;
-
- /* The commands to be given to a shell to create this target. */
- StringList *commands;
-
- /* Suffix for the node (determined by Suff_FindDeps and opaque to everyone
- * but the Suff module) */
- struct Suffix *suffix;
-
- /* Filename where the GNode got defined */
- /* XXX: What is the lifetime of this string? */
- const char *fname;
- /* Line number where the GNode got defined */
- int lineno;
+ /* The target's name, such as "clean" or "make.c" */
+ char *name;
+ /* The unexpanded name of a .USE node */
+ char *uname;
+ /* The full pathname of the file belonging to the target.
+ * XXX: What about .PHONY targets? These don't have an associated
+ * path. */
+ char *path;
+
+ /* The type of operator used to define the sources (see the OP flags
+ * below).
+ * XXX: This looks like a wild mixture of type and flags. */
+ GNodeType type;
+ GNodeFlags flags;
+
+ /* The state of processing on this node */
+ GNodeMade made;
+ /* The number of unmade children */
+ int unmade;
+
+ /* The modification time; 0 means the node does not have a
+ * corresponding file; see GNode_IsOODate. */
+ time_t mtime;
+ struct GNode *youngestChild;
+
+ /* The GNodes for which this node is an implied source. May be empty.
+ * For example, when there is an inference rule for .c.o, the node for
+ * file.c has the node for file.o in this list. */
+ GNodeList *implicitParents;
+
+ /* The nodes that depend on this one, or in other words, the nodes for
+ * which this is a source. */
+ GNodeList *parents;
+ /* The nodes on which this one depends. */
+ GNodeList *children;
+
+ /* .ORDER nodes we need made. The nodes that must be made (if they're
+ * made) before this node can be made, but that do not enter into the
+ * datedness of this node. */
+ GNodeList *order_pred;
+ /* .ORDER nodes who need us. The nodes that must be made (if they're
+ * made at all) after this node is made, but that do not depend on
+ * this node, in the normal sense. */
+ GNodeList *order_succ;
+
+ /* Other nodes of the same name, for the '::' dependency operator. */
+ GNodeList *cohorts;
+ /* The "#n" suffix for this cohort, or "" for other nodes */
+ char cohort_num[8];
+ /* The number of unmade instances on the cohorts list */
+ int unmade_cohorts;
+ /* Pointer to the first instance of a '::' node; only set when on a
+ * cohorts list */
+ struct GNode *centurion;
+
+ /* Last time (sequence number) we tried to make this node */
+ unsigned int checked_seqno;
+
+ /* The "local" variables that are specific to this target and this
+ * target only, such as $@, $<, $?.
+ *
+ * Also used for the global variable scopes VAR_GLOBAL, VAR_CMDLINE,
+ * VAR_INTERNAL, which contain variables with arbitrary names. */
+ HashTable /* of Var pointer */ vars;
+
+ /* The commands to be given to a shell to create this target. */
+ StringList *commands;
+
+ /* Suffix for the node (determined by Suff_FindDeps and opaque to
+ * everyone but the Suff module) */
+ struct Suffix *suffix;
+
+ /* Filename where the GNode got defined */
+ /* XXX: What is the lifetime of this string? */
+ const char *fname;
+ /* Line number where the GNode got defined */
+ int lineno;
} GNode;
/* Error levels for diagnostics during parsing. */
typedef enum ParseErrorLevel {
- /* Exit when the current top-level makefile has been parsed completely. */
- PARSE_FATAL = 1,
- /* Print "warning"; may be upgraded to fatal by the -w option. */
- PARSE_WARNING,
- /* Informational, mainly used during development of makefiles. */
- PARSE_INFO
+ /* Exit when the current top-level makefile has been parsed
+ * completely. */
+ PARSE_FATAL = 1,
+ /* Print "warning"; may be upgraded to fatal by the -w option. */
+ PARSE_WARNING,
+ /* Informational, mainly used during development of makefiles. */
+ PARSE_INFO
} ParseErrorLevel;
/*
* Values returned by Cond_EvalLine and Cond_EvalCondition.
*/
typedef enum CondEvalResult {
- COND_PARSE, /* Parse the next lines */
- COND_SKIP, /* Skip the next lines */
- COND_INVALID /* Not a conditional statement */
+ COND_PARSE, /* Parse the next lines */
+ COND_SKIP, /* Skip the next lines */
+ COND_INVALID /* Not a conditional statement */
} CondEvalResult;
/* Names of the variables that are "local" to a specific target. */
-#define TARGET "@" /* Target of dependency */
-#define OODATE "?" /* All out-of-date sources */
-#define ALLSRC ">" /* All sources */
-#define IMPSRC "<" /* Source implied by transformation */
-#define PREFIX "*" /* Common prefix */
-#define ARCHIVE "!" /* Archive in "archive(member)" syntax */
-#define MEMBER "%" /* Member in "archive(member)" syntax */
+#define TARGET "@" /* Target of dependency */
+#define OODATE "?" /* All out-of-date sources */
+#define ALLSRC ">" /* All sources */
+#define IMPSRC "<" /* Source implied by transformation */
+#define PREFIX "*" /* Common prefix */
+#define ARCHIVE "!" /* Archive in "archive(member)" syntax */
+#define MEMBER "%" /* Member in "archive(member)" syntax */
/*
* Global Variables
@@ -516,13 +535,13 @@ extern int makelevel;
#define vFork() ((getpid() == myPid) ? vfork() : fork())
extern pid_t myPid;
-#define MAKEFLAGS ".MAKEFLAGS"
-#define MAKEOVERRIDES ".MAKEOVERRIDES"
-#define MAKE_JOB_PREFIX ".MAKE.JOB.PREFIX" /* prefix when printing the
- * target of a job */
-#define MAKE_EXPORTED ".MAKE.EXPORTED" /* exported variables */
-#define MAKE_MAKEFILES ".MAKE.MAKEFILES" /* all loaded makefiles */
-#define MAKE_LEVEL ".MAKE.LEVEL" /* recursion level */
+#define MAKEFLAGS ".MAKEFLAGS"
+#define MAKEOVERRIDES ".MAKEOVERRIDES"
+/* prefix when printing the target of a job */
+#define MAKE_JOB_PREFIX ".MAKE.JOB.PREFIX"
+#define MAKE_EXPORTED ".MAKE.EXPORTED" /* exported variables */
+#define MAKE_MAKEFILES ".MAKE.MAKEFILES" /* all loaded makefiles */
+#define MAKE_LEVEL ".MAKE.LEVEL" /* recursion level */
#define MAKE_MAKEFILE_PREFERENCE ".MAKE.MAKEFILE_PREFERENCE"
#define MAKE_DEPENDFILE ".MAKE.DEPENDFILE" /* .depend */
#define MAKE_MODE ".MAKE.MODE"
@@ -531,33 +550,33 @@ extern pid_t myPid;
#endif
typedef enum DebugFlags {
- DEBUG_NONE = 0,
- DEBUG_ARCH = 1 << 0,
- DEBUG_COND = 1 << 1,
- DEBUG_CWD = 1 << 2,
- DEBUG_DIR = 1 << 3,
- DEBUG_ERROR = 1 << 4,
- DEBUG_FOR = 1 << 5,
- DEBUG_GRAPH1 = 1 << 6,
- DEBUG_GRAPH2 = 1 << 7,
- DEBUG_GRAPH3 = 1 << 8,
- DEBUG_HASH = 1 << 9,
- DEBUG_JOB = 1 << 10,
- DEBUG_LOUD = 1 << 11,
- DEBUG_MAKE = 1 << 12,
- DEBUG_META = 1 << 13,
- DEBUG_PARSE = 1 << 14,
- DEBUG_SCRIPT = 1 << 15,
- DEBUG_SHELL = 1 << 16,
- DEBUG_SUFF = 1 << 17,
- DEBUG_TARG = 1 << 18,
- DEBUG_VAR = 1 << 19,
- DEBUG_ALL = (1 << 20) - 1
+ DEBUG_NONE = 0,
+ DEBUG_ARCH = 1 << 0,
+ DEBUG_COND = 1 << 1,
+ DEBUG_CWD = 1 << 2,
+ DEBUG_DIR = 1 << 3,
+ DEBUG_ERROR = 1 << 4,
+ DEBUG_FOR = 1 << 5,
+ DEBUG_GRAPH1 = 1 << 6,
+ DEBUG_GRAPH2 = 1 << 7,
+ DEBUG_GRAPH3 = 1 << 8,
+ DEBUG_HASH = 1 << 9,
+ DEBUG_JOB = 1 << 10,
+ DEBUG_LOUD = 1 << 11,
+ DEBUG_MAKE = 1 << 12,
+ DEBUG_META = 1 << 13,
+ DEBUG_PARSE = 1 << 14,
+ DEBUG_SCRIPT = 1 << 15,
+ DEBUG_SHELL = 1 << 16,
+ DEBUG_SUFF = 1 << 17,
+ DEBUG_TARG = 1 << 18,
+ DEBUG_VAR = 1 << 19,
+ DEBUG_ALL = (1 << 20) - 1
} DebugFlags;
-#define CONCAT(a,b) a##b
+#define CONCAT(a, b) a##b
-#define DEBUG(module) (opts.debug & CONCAT(DEBUG_,module))
+#define DEBUG(module) (opts.debug & CONCAT(DEBUG_,module))
void debug_printf(const char *, ...) MAKE_ATTR_PRINTFLIKE(1, 2);
@@ -586,87 +605,87 @@ void debug_printf(const char *, ...) MAK
else debug_printf(fmt, arg1, arg2, arg3, arg4, arg5)
typedef enum PrintVarsMode {
- PVM_NONE,
- PVM_UNEXPANDED,
- PVM_EXPANDED
+ PVM_NONE,
+ PVM_UNEXPANDED,
+ PVM_EXPANDED
} PrintVarsMode;
/* Command line options */
typedef struct CmdOpts {
- /* -B: whether we are make compatible */
- Boolean compatMake;
+ /* -B: whether we are make compatible */
+ Boolean compatMake;
- /* -d: debug control: There is one bit per module. It is up to the
- * module what debug information to print. */
- DebugFlags debug;
+ /* -d: debug control: There is one bit per module. It is up to the
+ * module what debug information to print. */
+ DebugFlags debug;
- /* -df: debug output is written here - default stderr */
- FILE *debug_file;
+ /* -df: debug output is written here - default stderr */
+ FILE *debug_file;
- /* -dL: lint mode
- *
- * Runs make in strict mode, with additional checks and better error
- * handling. */
- Boolean lint;
+ /* -dL: lint mode
+ *
+ * Runs make in strict mode, with additional checks and better error
+ * handling. */
+ Boolean lint;
- /* -dV: for the -V option, print unexpanded variable values */
- Boolean debugVflag;
+ /* -dV: for the -V option, print unexpanded variable values */
+ Boolean debugVflag;
- /* -e: check environment variables before global variables */
- Boolean checkEnvFirst;
+ /* -e: check environment variables before global variables */
+ Boolean checkEnvFirst;
- /* -f: the makefiles to read */
- StringList *makefiles;
+ /* -f: the makefiles to read */
+ StringList *makefiles;
- /* -i: if true, ignore all errors from shell commands */
- Boolean ignoreErrors;
+ /* -i: if true, ignore all errors from shell commands */
+ Boolean ignoreErrors;
- /* -j: the maximum number of jobs that can run in parallel;
- * this is coordinated with the submakes */
- int maxJobs;
+ /* -j: the maximum number of jobs that can run in parallel;
+ * this is coordinated with the submakes */
+ int maxJobs;
- /* -k: if true, continue on unaffected portions of the graph when an
- * error occurs in one portion */
- Boolean keepgoing;
+ /* -k: if true, continue on unaffected portions of the graph when an
+ * error occurs in one portion */
+ Boolean keepgoing;
- /* -N: execute no commands from the targets */
- Boolean noRecursiveExecute;
+ /* -N: execute no commands from the targets */
+ Boolean noRecursiveExecute;
- /* -n: execute almost no commands from the targets */
- Boolean noExecute;
+ /* -n: execute almost no commands from the targets */
+ Boolean noExecute;
- /* -q: if true, we aren't supposed to really make anything, just see if
- * the targets are out-of-date */
- Boolean queryFlag;
+ /* -q: if true, we aren't supposed to really make anything, just see
+ * if the targets are out-of-date */
+ Boolean queryFlag;
- /* -r: raw mode, without loading the builtin rules. */
- Boolean noBuiltins;
+ /* -r: raw mode, without loading the builtin rules. */
+ Boolean noBuiltins;
- /* -s: don't echo the shell commands before executing them */
- Boolean beSilent;
+ /* -s: don't echo the shell commands before executing them */
+ Boolean beSilent;
- /* -t: touch the targets if they are out-of-date, but don't actually
- * make them */
- Boolean touchFlag;
+ /* -t: touch the targets if they are out-of-date, but don't actually
+ * make them */
+ Boolean touchFlag;
- /* -[Vv]: print expanded or unexpanded selected variables */
- PrintVarsMode printVars;
- /* -[Vv]: the variables to print */
- StringList *variables;
+ /* -[Vv]: print expanded or unexpanded selected variables */
+ PrintVarsMode printVars;
+ /* -[Vv]: the variables to print */
+ StringList *variables;
- /* -W: if true, makefile parsing warnings are treated as errors */
- Boolean parseWarnFatal;
+ /* -W: if true, makefile parsing warnings are treated as errors */
+ Boolean parseWarnFatal;
- /* -w: print Entering and Leaving for submakes */
- Boolean enterFlag;
+ /* -w: print Entering and Leaving for submakes */
+ Boolean enterFlag;
- /* -X: if true, do not export variables set on the command line to the
- * environment. */
- Boolean varNoExportEnv;
+ /* -X: if true, do not export variables set on the command line to the
+ * environment. */
+ Boolean varNoExportEnv;
- /* The target names specified on the command line.
- * Used to resolve .if make(...) statements. */
- StringList *create;
+ /* The target names specified on the command line.
+ * Used to resolve .if make(...) statements. */
+ StringList *create;
} CmdOpts;
@@ -695,13 +714,13 @@ Boolean GNode_ShouldExecute(GNode *gn);
MAKE_INLINE Boolean
GNode_IsTarget(const GNode *gn)
{
- return (gn->type & OP_OPMASK) != 0;
+ return (gn->type & OP_OPMASK) != 0;
}
MAKE_INLINE const char *
GNode_Path(const GNode *gn)
{
- return gn->path != NULL ? gn->path : gn->name;
+ return gn->path != NULL ? gn->path : gn->name;
}
MAKE_INLINE Boolean
@@ -764,9 +783,9 @@ GNode_VarMember(GNode *gn) { return Var_
#endif
#if defined(SYSV)
-#define KILLPG(pid, sig) kill(-(pid), (sig))
+#define KILLPG(pid, sig) kill(-(pid), (sig))
#else
-#define KILLPG(pid, sig) killpg((pid), (sig))
+#define KILLPG(pid, sig) killpg((pid), (sig))
#endif
MAKE_INLINE Boolean
@@ -787,29 +806,29 @@ ch_toupper(char ch) { return (char)toupp
MAKE_INLINE void
cpp_skip_whitespace(const char **pp)
{
- while (ch_isspace(**pp))
- (*pp)++;
+ while (ch_isspace(**pp))
+ (*pp)++;
}
MAKE_INLINE void
cpp_skip_hspace(const char **pp)
{
- while (**pp == ' ' || **pp == '\t')
- (*pp)++;
+ while (**pp == ' ' || **pp == '\t')
+ (*pp)++;
}
MAKE_INLINE void
pp_skip_whitespace(char **pp)
{
- while (ch_isspace(**pp))
- (*pp)++;
+ while (ch_isspace(**pp))
+ (*pp)++;
}
MAKE_INLINE void
pp_skip_hspace(char **pp)
{
- while (**pp == ' ' || **pp == '\t')
- (*pp)++;
+ while (**pp == ' ' || **pp == '\t')
+ (*pp)++;
}
#ifdef MAKE_NATIVE