config.h is platform depend, so it shouldn't be installed by make install. But what is the best way to deal with the platform depend stuff in the interface?
For example: #ifdef HAVE_HASHMAP # include <hash_map> typedef std::hash_map<string, int> myTableType; #else # include <map> typedef std::map<string, int> myTableType; #endif myTableType container; another example: #ifdef _POSIX_C_SOURCE typedef pthread_t iThreadID; typedef pthread_t iThreadHandle; #endif #ifdef USE_SPROC typedef pid_t iThreadID; typedef pid_t iThreadHandle; #endif #ifdef WIN32 typedef DWORD iThreadID; typedef HANDLE iThreadHandle; #endif The symbols are defined or not in the config.h, thus I have to include it in the header and then to install. The other way is to define a wrapper-class and use pointers to this class, but this is cumbersomely. Is there another way to solve this kind of problem?