couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Reser <...@reser.org>
Subject configure: C++ compiler detection improvement
Date Wed, 13 Mar 2013 00:11:34 GMT
Friend of mine was trying to build couchdb today and ran into a problem.

[[[
checking jsapi.h usability... no
checking jsapi.h presence... no
checking for jsapi.h... no
checking js/jsapi.h usability... no
checking js/jsapi.h presence... no
checking for js/jsapi.h... no
configure.jm: error: Could not find the jsapi header.

Are the Mozilla SpiderMonkey headers installed?
]]]

But he clearly had Mozilla Spidermonkey installed:
[[[
# locate jsapi.h
/usr/include/jsapi.h
/usr/include/js/jsapi.h
/usr/include/xulrunner-sdk-1.9.2/jsapi.h
]]]

He was stumped and asked me to take a look.  I looked at the
config.log and found:
[[[
configure.jm:16700: checking jsapi.h usability
configure.jm:16717: g++ -c  -DXP_UNIX
-I/usr/include/xulrunner-sdk-1.9.2
-I/usr/include/xulrunner-sdk-1.9.2/js
-I/usr/include/xulrunner-sdk-1.9.2/mozjs  -I/opt/local/include
-I/usr/local/include -I/usr/include  conftest.cpp >&5
./configure.jm: line 16718: g++: command not found
]]]

You're using AC_PROG_CXX in your configure.ac to find a C++ compiler.
Unfortunately due to a bug (or misfeature) of autoconf if AC_PROG_CXX
follows AC_PROG_CC then it won't fail if no C++ compiler is found.
See:
http://lists.gnu.org/archive/html/bug-autoconf/2010-05/msg00001.html

Fortunately, it's relatively easy to work around this.  You can simply
test that the ac_ct_CXX shell variable is set after running
AC_PROG_CXX.  I've attached a patch that does so.

Running configure on a system without a C++ compiler now results in
the following:
[[[
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl.exe... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking dependency style of g++... none
checking that we found a C++ compiler... no
configure: error: A C++ compiler is required.
]]]

I'm not subscribed to your dev list so if you'd like to respond to me
please CC me.  Also my ASF username is breser an ICLA is already on
file for me.

Mime
View raw message