summaryrefslogtreecommitdiffstats
path: root/m4/aclocal_cxx.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/aclocal_cxx.m4')
-rw-r--r--m4/aclocal_cxx.m468
1 files changed, 14 insertions, 54 deletions
diff --git a/m4/aclocal_cxx.m4 b/m4/aclocal_cxx.m4
index b44ae82..9d47193 100644
--- a/m4/aclocal_cxx.m4
+++ b/m4/aclocal_cxx.m4
@@ -26,14 +26,11 @@ dnl we need as part of the C++ support. To distinquish these, they
dnl have a [PAC] prefix.
dnl Checking if C++ needs old style header files in includes
-
AC_DEFUN([PAC_PROG_CXX_HEADERS],[
AC_MSG_CHECKING([if $CXX needs old style header files in includes])
- AC_LINK_IFELSE([AC_LANG_SOURCE([
-#include <iostream>
+ TEST_SRC="`(echo \"#define OLD_HEADER_FILENAME 1\"; cat $srcdir/config/cmake_ext_mod/HDFCXXTests.cpp)`"
-int main(void) { return 0; }
- ])],
+ AC_LINK_IFELSE([AC_LANG_SOURCE([$TEST_SRC])],
[AC_MSG_RESULT([no])],
[AC_MSG_RESULT([yes])
CXXFLAGS="${CXXFLAGS} -DOLD_HEADER_FILENAME"
@@ -41,80 +38,43 @@ int main(void) { return 0; }
])
dnl Checking if ++ can handle namespaces
-
AC_DEFUN([PAC_PROG_CXX_NAMESPACE],[
AC_MSG_CHECKING([if $CXX can handle namespaces])
- AC_LINK_IFELSE([AC_LANG_SOURCE([
-namespace H5 {
-int fnord;
-}
+ TEST_SRC="`(echo \"#define HDF_NO_NAMESPACE 1\"; cat $srcdir/config/cmake_ext_mod/HDFCXXTests.cpp)`"
-int main(void) {
- using namespace H5;
- fnord = 37;
- return 0;
-}
- ])], [AC_MSG_RESULT([yes])],
+ AC_LINK_IFELSE([AC_LANG_SOURCE([$TEST_SRC])], [AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
- CXXFLAGS="${CXXFLAGS} -DH5_NO_NAMESPACE"
- AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_NAMESPACE"])
+ CXXFLAGS="${CXXFLAGS} -DHDF_NO_NAMESPACE"
+ AM_CXXFLAGS="${AM_CXXFLAGS} -DHDF_NO_NAMESPACE"])
])
dnl Checking if C++ supports std
-
AC_DEFUN([PAC_PROG_CXX_STD],[
AC_MSG_CHECKING([if $CXX supports std])
- AC_LINK_IFELSE([AC_LANG_SOURCE([
-#include <string>
-
-using namespace std;
+ TEST_SRC="`(echo \"#define HDF_NO_STD 1\"; cat $srcdir/config/cmake_ext_mod/HDFCXXTests.cpp)`"
-int main(void) {
- string myString("testing namespace std");
- return 0;
-}
- ])], [AC_MSG_RESULT([yes])],
+ AC_LINK_IFELSE([AC_LANG_SOURCE([$TEST_SRC])], [AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
CXXFLAGS="${CXXFLAGS} -DH5_NO_STD"
AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_STD"])
])
dnl Checking if C++ has offsetof extension
-
AC_DEFUN([PAC_PROG_CXX_OFFSETOF],[
AC_MSG_CHECKING([if $CXX has offsetof extension])
- AC_LINK_IFELSE([AC_LANG_PROGRAM([
- #include <stdio.h>
- #include <stddef.h>
- ],[
- struct index_st
- {
- unsigned char type;
- unsigned char num;
- unsigned int len;
- };
- typedef struct index_st index_t;
- int x,y;
- x = offsetof(struct index_st, len);
- y = offsetof(index_t, num)
- ])],[AC_MSG_RESULT([yes])
+ TEST_SRC="`(echo \"#define CXX_HAVE_OFFSETOF 1\"; cat $srcdir/config/cmake_ext_mod/HDFCXXTests.cpp)`"
+
+ AC_LINK_IFELSE([AC_LANG_SOURCE([$TEST_SRC])],[AC_MSG_RESULT([yes])
AC_DEFINE([CXX_HAVE_OFFSETOF], [1], [Define if C++ compiler recognizes offsetof])],
AC_MSG_RESULT([no]))
])
dnl Checking if C++ can handle static cast
-
AC_DEFUN([PAC_PROG_CXX_STATIC_CAST],[
AC_MSG_CHECKING([if $CXX can handle static cast])
- AC_LINK_IFELSE([AC_LANG_SOURCE([
-int main(void) {
- float test_float;
- int test_int;
- test_float = 37.0;
- test_int = static_cast <int> (test_float);
- return 0;
-}
- ])], [AC_MSG_RESULT([yes])],
+ TEST_SRC="`(echo \"#define NO_STATIC_CAST 1\"; cat $srcdir/config/cmake_ext_mod/HDFCXXTests.cpp)`"
+
+ AC_LINK_IFELSE([AC_LANG_SOURCE([$TEST_SRC])], [AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
CXXFLAGS="${CXXFLAGS} -DNO_STATIC_CAST"
AM_CXXFLAGS="${AM_CXXFLAGS} -DNO_STATIC_CAST"])