bug-autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Detecting that a language compiler is not found


From: Reuben Thomas
Subject: Detecting that a language compiler is not found
Date: Thu, 23 Mar 2017 12:38:39 +0000

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]