1# -*- Autoconf -*- 2# Sanity-test a C++ compiler. 3# 4# Copyright (C) 2004, 2006 Free Software Foundation, Inc. 5# 6# This program is free software; you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation; either version 2 of the License, or 9# (at your option) any later version. 10# 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15# 16# You should have received a copy of the GNU General Public License 17# along with this program; if not, write to the Free Software 18# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 19# 02110-1301 USA 20 21# Written by Paul Eggert. 22 23AC_DEFUN([BISON_TEST_FOR_WORKING_CXX_COMPILER], 24[ 25 AC_CACHE_CHECK([whether $CXX builds executables that work], 26 bison_cv_cxx_works, 27 [AC_LANG_PUSH([C++]) 28 bison_cv_cxx_works=no 29 AC_COMPILE_IFELSE( 30 [AC_LANG_PROGRAM( 31 [#include <cstdlib> 32 #include <iostream> 33 #include <map> 34 #include <string> 35 using namespace std;], 36 [std::cerr << ""; 37 cout << ""; 38 typedef std::pair<unsigned int, int> uipair; 39 std::map<unsigned int, int> m; 40 std::map<unsigned int, int>::iterator i; 41 m.insert (uipair (4, -4)); 42 for (i = m.begin (); i != m.end (); ++i) 43 if (i->first != 4) 44 return 1;])], 45 [AS_IF([AC_TRY_COMMAND([$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD])], 46 [AS_IF([test "$cross_compiling" = yes], 47 [bison_cv_cxx_works=cross], 48 [AS_IF([AC_TRY_COMMAND(./conftest$ac_exeext)], 49 [bison_cv_cxx_works=yes])])]) 50 rm -f conftest$ac_exeext]) 51 AC_LANG_POP([C++])]) 52 53 case $bison_cv_cxx_works in 54 yes) 55 BISON_CXX_WORKS=':';; 56 no | cross) 57 BISON_CXX_WORKS='exit 77';; 58 esac 59 60 AC_SUBST([BISON_CXX_WORKS]) 61 AM_CONDITIONAL(BISON_CXX_WORKS, test $bison_cv_cxx_works = yes) 62]) 63