Update gn's depfile help text to include more guidance.

Review-Url: https://codereview.chromium.org/2349743002
Cr-Original-Commit-Position: refs/heads/master@{#419555}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 76097c7f435951726c7eaedc728271c084b5517d
diff --git a/tools/gn/variables.cc b/tools/gn/variables.cc
index f374934..644c835 100644
--- a/tools/gn/variables.cc
+++ b/tools/gn/variables.cc
@@ -1025,13 +1025,23 @@
     "  the dependencies of the input. Empty or unset means that the script\n"
     "  doesn't generate the files.\n"
     "\n"
+    "  A depfile should be used only when a target depends on files that are\n"
+    "  not already specified by a target's inputs and sources. Likewise,\n"
+    "  depfiles should specify only those dependencies not already included\n"
+    "  in sources or inputs.\n"
+    "\n"
     "  The .d file should go in the target output directory. If you have more\n"
     "  than one source file that the script is being run over, you can use\n"
     "  the output file expansions described in \"gn help action_foreach\" to\n"
     "  name the .d file according to the input."
     "\n"
-    "  The format is that of a Makefile, and all of the paths should be\n"
-    "  relative to the root build directory.\n"
+    "  The format is that of a Makefile and all paths must be relative to the\n"
+    "  root build directory. Only one output may be listed and it must match\n"
+    "  the first output of the action.\n"
+    "\n"
+    "  Although depfiles are created by an action, they should not be listed\n"
+    "  in the action's \"outputs\" unless another target will use the file as\n"
+    "  an input.\n"
     "\n"
     "Example\n"
     "\n"