On May 1, 2013, at 8:39 AM, Leif Hedstrom <zw...@apache.org> wrote:

> On 5/1/13 6:58 AM, James Peach wrote:
>> On May 1, 2013, at 12:48 AM, Igor Galić <i.ga...@brainsware.org> wrote:
>> 
>>> Following this basic idea here
>>> 
>>>  
>>> http://nadeausoftware.com/articles/2012/10/c_c_tip_how_detect_compiler_name_and_version_using_compiler_predefined_macros
>>> 
>>> I'd like to add a build/base_compiler.m4 - that runs this program:
>>> 
>>>    # include <stdio.h>
>>>    int main (void) {
>>>      printf (
>>>    #if defined(__clang__)
>>>      "clang"
>>>    #elif defined (__GNUC__) || defined (__GNUG__)
>>>      "gcc"
>>>    #elif defined (__SUNPRO_C) || defined (__SUNPRO_CC)
>>>      "sunproc"
>>>    #elif defined (__ICC) || defined(__INTEL_COMPILER)
>>>      "icc"
>>>    #endif
>>>      );
>>>      return 0;
>>>    }
> 
> 
> In addition to what James said, I think order could matter here. Like, I 
> suspect that ICC might define some of the gcc flags in its "compatibility" 
> mode. As such, I'd imagine you ought to test for most specific first (e.g. 
> icc then sunpro then clang and last gcc) ?

Yeh, the order matters ... clang masquerades as GCC pretty thoroughly

J

Reply via email to