AC_DEFUN([LYX_PROG_CLANG],
[AC_CACHE_CHECK([whether the compiler is clang],
[lyx_cv_prog_clang],
-[AC_TRY_COMPILE([], [
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
#ifndef __clang__
this is not clang
#endif
-],
-[lyx_cv_prog_clang=yes ; CLANG=yes], [lyx_cv_prog_clang=no ; CLANG=no])])
+]])],[lyx_cv_prog_clang=yes ; CLANG=yes],[lyx_cv_prog_clang=no ; CLANG=no])])
if test $CLANG = yes ; then
AC_CACHE_CHECK([for clang version],
[lyx_cv_clang_version],
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$flag $AM_CXXFLAGS $CXXFLAGS"
dnl sample openmp source code to test
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
template <typename T>
struct check
{
check_type c;
check_type&& cr = static_cast<check_type&&>(c);
- auto d = a;], [],
- [lyx_cv_cxx11_flags=$flag; break])
+ auto d = a;]], [[]])],[lyx_cv_cxx11_flags=$flag; break],[])
CXXFLAGS=$save_CXXFLAGS
CPPFLAGS=$save_CPPFLAGS
done])
CXXFLAGS="$AM_CXXFLAGS $CXXFLAGS"
# The following code snippet has been taken taken from example in
# http://stackoverflow.com/questions/8561850/compile-stdregex-iterator-with-gcc
- AC_TRY_LINK(
- [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <regex>
#include <iostream>
#include <string.h>
typedef std::regex_iterator<const char *> Myiter;
- ], [
+ ]], [[
const char *pat = "axayaz";
Myiter::regex_type rx("a");
Myiter next(pat, pat + strlen(pat), rx);
Myiter end;
- ], [lyx_std_regex=yes], [lyx_std_regex=no])
+ ]])],[lyx_std_regex=yes],[lyx_std_regex=no])
CXXFLAGS=$save_CXXFLAGS
CPPFLAGS=$save_CPPFLAGS
AC_MSG_RESULT([$lyx_std_regex])
CPPFLAGS="$AM_CPPFLAGS $CPPFLAGS"
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$AM_CXXFLAGS $CXXFLAGS"
- AC_TRY_LINK(
- [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <mutex>
static std::once_flag flag;
- ], [
+ ]], [[
std::call_once(flag, [](){ return; });
- ], [lyx_std_call_once=yes], [lyx_std_call_once=no])
+ ]])],[lyx_std_call_once=yes],[lyx_std_call_once=no])
CXXFLAGS=$save_CXXFLAGS
CPPFLAGS=$save_CPPFLAGS
AC_MSG_RESULT([$lyx_std_call_once])
AC_DEFUN([LYX_LIB_STDCXX],
[AC_CACHE_CHECK([whether STL is libstdc++],
[lyx_cv_lib_stdcxx],
-[AC_TRY_COMPILE([#include<vector>], [
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include<vector>]], [[
#if ! defined(__GLIBCXX__) && ! defined(__GLIBCPP__)
this is not libstdc++
#endif
-],
-[lyx_cv_lib_stdcxx=yes], [lyx_cv_lib_stdcxx=no])])
+]])],[lyx_cv_lib_stdcxx=yes],[lyx_cv_lib_stdcxx=no])])
])
AC_DEFUN([LYX_LIB_STDCXX_CXX11_ABI],
[AC_CACHE_CHECK([whether STL is libstdc++ using the C++11 ABI],
[lyx_cv_lib_stdcxx_cxx11_abi],
-[AC_TRY_COMPILE([#include<vector>], [
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include<vector>]], [[
#if ! defined(_GLIBCXX_USE_CXX11_ABI) || ! _GLIBCXX_USE_CXX11_ABI
this is not libstdc++ using the C++11 ABI
#endif
-],
-[lyx_cv_lib_stdcxx_cxx11_abi=yes], [lyx_cv_lib_stdcxx_cxx11_abi=no])])
+]])],[lyx_cv_lib_stdcxx_cxx11_abi=yes],[lyx_cv_lib_stdcxx_cxx11_abi=no])])
])
if test x$CLANG = xno; then
dnl Useful for global version info
gxx_version=`${CXX} -dumpversion`
+ case $gxx_version in
+ *.*) ;;
+ *) gxx_version=`${CXX} -dumpfullversion` ;;
+ esac
CXX_VERSION="($gxx_version)"
else
gxx_version=clang-$clang_version
fi
dnl Warnings are for preprocessor too
if test x$enable_warnings = xyes ; then
- AM_CPPFLAGS="$AM_CPPFLAGS -Wall -Wextra"
- fi
+ case $gxx_version in
+ 9.*) AM_CPPFLAGS="$AM_CPPFLAGS -Wall -Wextra -Wno-deprecated-copy";;
+ *) AM_CPPFLAGS="$AM_CPPFLAGS -Wall -Wextra";;
+ esac
+ fi
case $gxx_version in
2.*|3.*|4.@<:@0-6@:>@) AC_MSG_ERROR([gcc >= 4.7 is required]);;
esac
if test x"$lyx_cv_callstack_printing" = xyes; then
AC_CACHE_CHECK([whether printing callstack is possible],
[lyx_cv_callstack_printing],
- [AC_TRY_COMPILE([
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <execinfo.h>
#include <cxxabi.h>
- ], [
+ ]], [[
void* array[200];
size_t size = backtrace(array, 200);
backtrace_symbols(array, size);
int status = 0;
abi::__cxa_demangle("abcd", 0, 0, &status);
- ],, [lyx_cv_callstack_printing=no])])
+ ]])],[],[lyx_cv_callstack_printing=no])])
fi
if test x"$lyx_cv_callstack_printing" = xyes; then
AC_DEFINE([LYX_CALLSTACK_PRINTING], 1,
[AC_CHECK_FUNCS([mkdir _mkdir])
AC_CACHE_CHECK([whether mkdir takes one argument],
[ac_cv_mkdir_takes_one_arg],
-[AC_TRY_COMPILE([
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/stat.h>
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
-], [mkdir (".");],
-[ac_cv_mkdir_takes_one_arg=yes], [ac_cv_mkdir_takes_one_arg=no])])
+]], [[mkdir (".");]])],[ac_cv_mkdir_takes_one_arg=yes],[ac_cv_mkdir_takes_one_arg=no])])
if test x"$ac_cv_mkdir_takes_one_arg" = xyes; then
AC_DEFINE([MKDIR_TAKES_ONE_ARG], 1,
[Define if mkdir takes only one argument.])
dnl this is used by the macro blow to general a proper config.h.in entry
m4_define([LYX_AH_CHECK_DECL],
[AH_TEMPLATE(AS_TR_CPP(HAVE_DECL_$1),
- [Define if you have the prototype for function `$1'])])
+ [Define if you have the prototype for function `$1'])])dnl`
dnl Check things are declared in headers to avoid errors or warnings.
dnl Called like LYX_CHECK_DECL(function, header1 header2...)
dnl this is used by the macro below to generate a proper config.h.in entry
m4_define([LYX_AH_CHECK_DEF],
[AH_TEMPLATE(AS_TR_CPP(HAVE_DEF_$1),
- [Define to 1 if `$1' is defined in `$2'])])
+ [Define to 1 if `$1' is defined in `$2'])])dnl'
dnl Check whether name is defined in header by using it in codesnippet.
dnl Called like LYX_CHECK_DEF(name, header, codesnippet)
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$AM_CXXFLAGS $CXXFLAGS"
AC_LANG_PUSH(C++)
- AC_TRY_COMPILE([#include <$2>], [$3],
- lyx_have_def_name=yes,
- lyx_have_def_name=no)
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <$2>]], [[$3]])],[lyx_have_def_name=yes],[lyx_have_def_name=no])
AC_LANG_POP(C++)
CXXFLAGS=$save_CXXFLAGS
CPPFLAGS=$save_CPPFLAGS