diff options
Diffstat (limited to 'm4')
-rw-r--r-- | m4/aclocal_cxx.m4 | 68 |
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"]) |