#if、#ifdef、gcc -DSYMBOL=valueコマンドラインフラグなどのプリプロセッサディレクティブを使用してみてください。
たとえば、gcc -DREQUIRE_STDC = 1 -o myfile.o myfile.cを使用してコンパイルし、.cファイルに次のものが含まれている場合:
#if defined(REQUIRE_STDC) && defined(__STDC__)
#include "some/file.h"
#else
#include "another/file.h"
#endif /* defined(REQUIRE_STDC) && defined(__STDC__) */
STDCシンボルとREQUIRE_STDCシンボルの両方が定義されている場合は、「some/file.h」を使用してコンパイルされます。また、同じファイルが複数含まれないようにするために、ヘッダーに適切なディレクティブが含まれている場合があります。
#ifndef MY_HEADER_FILE
#define MY_HEADER_FILE 1
/* your C declarations here */
#endif /* MY_HEADER_FILE */
また、gccプリプロセッサのマニュアルもあります。