ccache has two ways of gathering information used to look up results in the
cache:
-* the *direct mode*, where ccache hashes the source code and include files
- directly
* the *preprocessor mode*, where ccache runs the preprocessor on the source
code and hashes the result
+* the *direct mode*, where ccache hashes the source code and include files
+ directly
The direct mode is generally faster since running the preprocessor has some
overhead.
<<config_extra_file_to_hash,*extra_files_to_hash*>> setting (if any)
+The preprocessor mode
+~~~~~~~~~~~~~~~~~~~~~
+
+In the preprocessor mode, the hash is formed of the common information and:
+
+* the preprocessor output from running the compiler with *-E*
+* the command line options except options that affect include files (*-I*,
+ *-include*, *-D*, etc; the theory is that these options will change the
+ preprocessor output if they have any effect at all)
+* any standard error output generated by the preprocessor
+
+Based on the hash, the cached compilation result can be looked up directly in
+the cache.
+
+
The direct mode
~~~~~~~~~~~~~~~
* the string `__TIME__` is present in the source code
-The preprocessor mode
-~~~~~~~~~~~~~~~~~~~~~
-
-In the preprocessor mode, the hash is formed of the common information and:
-
-* the preprocessor output from running the compiler with *-E*
-* the command line options except options that affect include files (*-I*,
- *-include*, *-D*, etc; the theory is that these options will change the
- preprocessor output if they have any effect at all)
-* any standard error output generated by the preprocessor
-
-Based on the hash, the cached compilation result can be looked up directly in
-the cache.
-
-
The depend mode
~~~~~~~~~~~~~~~