Since commit "Provide unix-sytle command line parsing" (2009-07-13) the reference to KWSYS_C_HAS_PTRDIFF_T in System.c has been meaningless because the macro was never passed to the compiler!
KWSys provides a platform-independent API to many common system features that are implemented differently on every platform. This library is intended to be shared among many projects, so it has a configurable namespace. Each project should configure KWSys to use a namespace unique to itself. See comments in CMakeLists.txt for details. You are probably reading this file in the source tree of a surrounding project. In that case, see "../README.kwsys" for details of using KWSys in your project.