+const int DEBUG_TASK = 0x1;
+const int DEBUG_SCRIPT = 0x2;
+const int DEBUG_FILES = 0x4;
+const int DEBUG_RELAXATION = 0x8;
+const int DEBUG_INCREMENTAL = 0x10;
+const int DEBUG_LOCATION = 0x20;
+const int DEBUG_TARGET = 0x40;
+const int DEBUG_PLUGIN = 0x80;
+
+const int DEBUG_ALL = (DEBUG_TASK | DEBUG_SCRIPT | DEBUG_FILES
+ | DEBUG_RELAXATION | DEBUG_INCREMENTAL
+ | DEBUG_LOCATION | DEBUG_TARGET | DEBUG_PLUGIN);
+
+// Convert a debug string to the appropriate enum.
+inline int
+debug_string_to_enum(const char* arg)
+{
+ static const struct { const char* name; int value; }
+ debug_options[] =
+ {
+ { "task", DEBUG_TASK },
+ { "script", DEBUG_SCRIPT },
+ { "files", DEBUG_FILES },
+ { "relaxation", DEBUG_RELAXATION },
+ { "incremental", DEBUG_INCREMENTAL },
+ { "location", DEBUG_LOCATION },
+ { "target", DEBUG_TARGET },
+ { "plugin", DEBUG_PLUGIN },
+ { "all", DEBUG_ALL }
+ };