Home | History | Annotate | Download | only in m4
      1 # ===========================================================================
      2 #    https://www.gnu.org/software/autoconf-archive/ax_cxx_namespaces.html
      3 # ===========================================================================
      4 #
      5 # SYNOPSIS
      6 #
      7 #   AX_CXX_NAMESPACES
      8 #
      9 # DESCRIPTION
     10 #
     11 #   If the compiler can prevent names clashes using namespaces, define
     12 #   HAVE_NAMESPACES.
     13 #
     14 # LICENSE
     15 #
     16 #   Copyright (c) 2008 Todd Veldhuizen
     17 #   Copyright (c) 2008 Luc Maisonobe <luc (a] spaceroots.org>
     18 #   Copyright (c) 2013 Bastien Roucaries <roucaries.bastien+autoconf (a] gmail.com>
     19 #
     20 #   Copying and distribution of this file, with or without modification, are
     21 #   permitted in any medium without royalty provided the copyright notice
     22 #   and this notice are preserved. This file is offered as-is, without any
     23 #   warranty.
     24 
     25 #serial 9
     26 
     27 AU_ALIAS([AC_CXX_NAMESPACES], [AX_CXX_NAMESPACES])
     28 AC_DEFUN([AX_CXX_NAMESPACES],
     29 [AC_CACHE_CHECK(whether the compiler implements namespaces,
     30 ax_cv_cxx_namespaces,
     31 [AC_LANG_PUSH([C++])
     32  AC_COMPILE_IFELSE([AC_LANG_SOURCE([namespace Outer { namespace Inner { int i = 0; }}
     33                                    using namespace Outer::Inner; int foo(void) { return i;} ])],
     34                    ax_cv_cxx_namespaces=yes, ax_cv_cxx_namespaces=no)
     35  AC_LANG_POP
     36 ])
     37 if test "$ax_cv_cxx_namespaces" = yes; then
     38   AC_DEFINE(HAVE_NAMESPACES,,[define if the compiler implements namespaces])
     39 fi
     40 ])
     41