title: How to "weakly" #include a configuration file?
body: <p>I'm writing library routines of which some characteristics can be tailored through #include'ing a configuration file. However, I'd like this configuration file to be optional, some default parameters being provided in the source. Here is a typical source beginning:</p>
  
  <pre><code>#include "userconf.h"
  
  #ifndef BUFSIZE
  #define BUFSIZE 100
  #endif
  
  ...
  </code></pre>
  
  <p>where file <code>userconf.h</code>, if it exists, contains:</p>
  
  <pre><code>#define BUFSIZE 255
  </code></pre>
  
  <p>Standard compilers (gcc or others) consider a missing <code>#include</code> file an error (and they're right!). In this case, and only for this line, I'd like the compiler to continue without objection since default values are provided for parameters expected from the missing configuration file.</p>
  
  <p>Is there a way to do this?</p>
  
  <p><em>Note: I don't mind checking for this existence of the file from the make system (I'm using CMake) and passing a <code>-Doption</code> if that's easier to do (but, please, provide CMake directives for it, I'm not familiar with it and open documentation gives a hard time to grab the whole picture).</em></p>