3.6 Getting the include directories

Two sets of include directories are distinguished: system include directories and project include directories. The former is just the contents of the INCLUDE environment variable. The latter is not so easy to obtain, and the way it can be obtained can vary greatly for different projects. Therefore, a customizable variable flymake-proc-get-project-include-dirs-function is used to provide the way to implement the desired behavior.

The default implementation, flymake-proc-get-project-include-dirs-imp, uses a make call. This requires a correct base directory, that is, a directory containing a correct Makefile, to be determined.

As obtaining the project include directories might be a costly operation, its return value is cached in the hash table. The cache is cleared in the beginning of every syntax check attempt.