I have AC_PROG_OBJCXX in my configure.ac. On a system that lacks an Objective C++ compiler, but has g++, this happily sets OBJCXX=g++.
Later, I have a stanza that looks like this: AC_LANG_PUSH([Objective C++]) ... some stuff ... AC_LANG_POP([Objective C++]) On a system without an Objective C++ compiler, it gives an error: checking how to run the Objective C++ preprocessor... /lib/cpp configure: error: in `/home/rrt/enchant-src': configure: error: Objective C++ preprocessor "/lib/cpp" fails sanity check See `config.log' for more details This turns out to be because there is no such file /lib/cpp. I understand that OBJCXXCPP is set to /lib/cpp as a default (this is documented in the autoconf manual). However, this is conceivably a valid value. In config.log, I see several times: g++: error: conftest.mm: Objective-C++ compiler not installed on this system However, this information does not seem to be communicated in any obvious way that I can use in configure.ac. How can I detect that no Objective C++ compiler was found, and therefore not run the failing test? (In principle, the question applies to other languages, as I can't see how to tell no C, C++ etc. compiler was found either.) I'm a bit puzzled as to why this is not more obvious, except that I guess that particular languages are usually mandatory (as opposed to my project, in which Objective C++ is only required for an optional part), and hence it's not something one would need to detect, as configuration will fail anyway? The closest thing I can see is ac_cv_env_OBJCXX_value= But this does not appear to be something documented. -- http://rrt.sc3d.org