This is a related question How do I identify x86 vs. x86_64 at compile time in gcc? and Detecting CPU architecture compile-time
In addition to compiler defined macros you can inject information during the build process via custom macros.