From 280cc69e7235f176669202a319dd493b234a5b70 Mon Sep 17 00:00:00 2001 From: Richard Kreckel Date: Fri, 5 Nov 2021 12:31:59 +0100 Subject: [PATCH] Update and clean up autoconf template files. This is needed for compatibility with newer autoconf: * Removed several unused m4 macros. * Removed support for traditional C decl in CL_PROTO_TRY. * Remove check for perror(), which is standard C++11. * Remove ax_cxx_compile_stdcxx.m4 (it is pulled in by autogen.sh). * Ran autoupdate on remaining files. Tested successfully with autoconf 1.69 and 1.71. --- configure.ac | 11 +- m4/alloca.m4 | 2 +- m4/as-underscore.m4 | 2 +- m4/ax_cxx_compile_stdcxx.m4 | 951 ------------------------------------ m4/general.m4 | 87 +--- m4/gettimeofday.m4 | 4 +- m4/gmp.m4 | 14 +- m4/intparam.m4 | 4 +- m4/perror.m4 | 28 -- m4/proto.m4 | 31 +- m4/rusage.m4 | 13 +- src/timing/cl_t_config.h.in | 4 - 12 files changed, 32 insertions(+), 1119 deletions(-) delete mode 100644 m4/ax_cxx_compile_stdcxx.m4 delete mode 100644 m4/perror.m4 diff --git a/configure.ac b/configure.ac index 60003a3..16240af 100644 --- a/configure.ac +++ b/configure.ac @@ -11,8 +11,8 @@ m4_define([cl_lt_revision], CL_GET_LTVERSION([REVISION])) m4_define([cl_lt_age], CL_GET_LTVERSION([AGE])) m4_define([cl_lt_version], [cl_lt_current:cl_lt_revision:cl_lt_age]) -AC_INIT([cln], cl_version) -AC_PREREQ(2.59) +AC_INIT([cln],[cl_version]) +AC_PREREQ([2.69]) AC_CONFIG_SRCDIR(src/integer/gcd/cl_I_gcd.cc) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) @@ -59,7 +59,7 @@ case $host_os in AC_ENABLE_SHARED ;; esac -AC_PROG_LIBTOOL +LT_INIT dnl sets variable LIBTOOL LT_VERSION_INFO=cl_lt_version @@ -93,8 +93,6 @@ ac_cv_func_ftime=no dnl don't use ftime(3) even if it's available CL_RUSAGE dnl DEFS HAVE_SYS_RESOURCE_H, HAVE_GETRUSAGE, HAVE_SYS_TIMES_H -CL_PERROR - dnl DEFS HAVE_PERROR_DECL CL_ATTRIBUTE_FLATTEN dnl DEFS CL_HAVE_ATTRIBUTE_FLATTEN dnl @@ -122,4 +120,5 @@ AC_LIB_LINKFLAGS_FROM_LIBS([CLNLIB_RPATH], [$CLNLIB_LIBS]) dnl dnl That's it. dnl -AC_OUTPUT([Makefile src/Makefile tests/Makefile examples/Makefile doc/Makefile benchmarks/Makefile cln.spec cln.pc]) +AC_CONFIG_FILES([Makefile src/Makefile tests/Makefile examples/Makefile doc/Makefile benchmarks/Makefile cln.spec cln.pc]) +AC_OUTPUT diff --git a/m4/alloca.m4 b/m4/alloca.m4 index 883392d..15d62c3 100644 --- a/m4/alloca.m4 +++ b/m4/alloca.m4 @@ -8,7 +8,7 @@ dnl the same distribution terms as the rest of that program. dnl From Bruno Haible, Marcus Daniels, Sam Steingold. -AC_PREREQ(2.57) +AC_PREREQ([2.57]) AC_DEFUN([CL_ALLOCA], [# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works diff --git a/m4/as-underscore.m4 b/m4/as-underscore.m4 index f1a1134..610ebc1 100644 --- a/m4/as-underscore.m4 +++ b/m4/as-underscore.m4 @@ -8,7 +8,7 @@ dnl the same distribution terms as the rest of that program. dnl From Bruno Haible, Marcus Daniels, Sam Steingold. -AC_PREREQ(2.57) +AC_PREREQ([2.57]) AC_DEFUN([CL_AS_UNDERSCORE], [AC_BEFORE([$0], [CL_GLOBAL_CONSTRUCTORS]) diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4 deleted file mode 100644 index 43087b2..0000000 --- a/m4/ax_cxx_compile_stdcxx.m4 +++ /dev/null @@ -1,951 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) -# -# DESCRIPTION -# -# Check for baseline language coverage in the compiler for the specified -# version of the C++ standard. If necessary, add switches to CXX and -# CXXCPP to enable support. VERSION may be '11' (for the C++11 standard) -# or '14' (for the C++14 standard). -# -# The second argument, if specified, indicates whether you insist on an -# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. -# -std=c++11). If neither is specified, you get whatever works, with -# preference for an extended mode. -# -# The third argument, if specified 'mandatory' or if left unspecified, -# indicates that baseline support for the specified C++ standard is -# required and that the macro should error out if no mode with that -# support is found. If specified 'optional', then configuration proceeds -# regardless, after defining HAVE_CXX${VERSION} if and only if a -# supporting mode is found. -# -# LICENSE -# -# Copyright (c) 2008 Benjamin Kosnik -# Copyright (c) 2012 Zack Weinberg -# Copyright (c) 2013 Roy Stogner -# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov -# Copyright (c) 2015 Paul Norman -# Copyright (c) 2015 Moritz Klammler -# Copyright (c) 2016, 2018 Krzesimir Nowak -# Copyright (c) 2019 Enji Cooper -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 11 - -dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro -dnl (serial version number 13). - -AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl - m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"], - [$1], [14], [ax_cxx_compile_alternatives="14 1y"], - [$1], [17], [ax_cxx_compile_alternatives="17 1z"], - [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl - m4_if([$2], [], [], - [$2], [ext], [], - [$2], [noext], [], - [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl - m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true], - [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true], - [$3], [optional], [ax_cxx_compile_cxx$1_required=false], - [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) - AC_LANG_PUSH([C++])dnl - ac_success=no - - m4_if([$2], [noext], [], [dnl - if test x$ac_success = xno; then - for alternative in ${ax_cxx_compile_alternatives}; do - switch="-std=gnu++${alternative}" - cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) - AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, - $cachevar, - [ac_save_CXX="$CXX" - CXX="$CXX $switch" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], - [eval $cachevar=yes], - [eval $cachevar=no]) - CXX="$ac_save_CXX"]) - if eval test x\$$cachevar = xyes; then - CXX="$CXX $switch" - if test -n "$CXXCPP" ; then - CXXCPP="$CXXCPP $switch" - fi - ac_success=yes - break - fi - done - fi]) - - m4_if([$2], [ext], [], [dnl - if test x$ac_success = xno; then - dnl HP's aCC needs +std=c++11 according to: - dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf - dnl Cray's crayCC needs "-h std=c++11" - for alternative in ${ax_cxx_compile_alternatives}; do - for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do - cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) - AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, - $cachevar, - [ac_save_CXX="$CXX" - CXX="$CXX $switch" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], - [eval $cachevar=yes], - [eval $cachevar=no]) - CXX="$ac_save_CXX"]) - if eval test x\$$cachevar = xyes; then - CXX="$CXX $switch" - if test -n "$CXXCPP" ; then - CXXCPP="$CXXCPP $switch" - fi - ac_success=yes - break - fi - done - if test x$ac_success = xyes; then - break - fi - done - fi]) - AC_LANG_POP([C++]) - if test x$ax_cxx_compile_cxx$1_required = xtrue; then - if test x$ac_success = xno; then - AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) - fi - fi - if test x$ac_success = xno; then - HAVE_CXX$1=0 - AC_MSG_NOTICE([No compiler with C++$1 support was found]) - else - HAVE_CXX$1=1 - AC_DEFINE(HAVE_CXX$1,1, - [define if the compiler supports basic C++$1 syntax]) - fi - AC_SUBST(HAVE_CXX$1) -]) - - -dnl Test body for checking C++11 support - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], - _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 -) - - -dnl Test body for checking C++14 support - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], - _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 - _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 -) - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17], - _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 - _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 - _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 -) - -dnl Tests for new features in C++11 - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ - -// If the compiler admits that it is not ready for C++11, why torture it? -// Hopefully, this will speed up the test. - -#ifndef __cplusplus - -#error "This is not a C++ compiler" - -#elif __cplusplus < 201103L - -#error "This is not a C++11 compiler" - -#else - -namespace cxx11 -{ - - namespace test_static_assert - { - - template - struct check - { - static_assert(sizeof(int) <= sizeof(T), "not big enough"); - }; - - } - - namespace test_final_override - { - - struct Base - { - virtual ~Base() {} - virtual void f() {} - }; - - struct Derived : public Base - { - virtual ~Derived() override {} - virtual void f() override {} - }; - - } - - namespace test_double_right_angle_brackets - { - - template < typename T > - struct check {}; - - typedef check single_type; - typedef check> double_type; - typedef check>> triple_type; - typedef check>>> quadruple_type; - - } - - namespace test_decltype - { - - int - f() - { - int a = 1; - decltype(a) b = 2; - return a + b; - } - - } - - namespace test_type_deduction - { - - template < typename T1, typename T2 > - struct is_same - { - static const bool value = false; - }; - - template < typename T > - struct is_same - { - static const bool value = true; - }; - - template < typename T1, typename T2 > - auto - add(T1 a1, T2 a2) -> decltype(a1 + a2) - { - return a1 + a2; - } - - int - test(const int c, volatile int v) - { - static_assert(is_same::value == true, ""); - static_assert(is_same::value == false, ""); - static_assert(is_same::value == false, ""); - auto ac = c; - auto av = v; - auto sumi = ac + av + 'x'; - auto sumf = ac + av + 1.0; - static_assert(is_same::value == true, ""); - static_assert(is_same::value == true, ""); - static_assert(is_same::value == true, ""); - static_assert(is_same::value == false, ""); - static_assert(is_same::value == true, ""); - return (sumf > 0.0) ? sumi : add(c, v); - } - - } - - namespace test_noexcept - { - - int f() { return 0; } - int g() noexcept { return 0; } - - static_assert(noexcept(f()) == false, ""); - static_assert(noexcept(g()) == true, ""); - - } - - namespace test_constexpr - { - - template < typename CharT > - unsigned long constexpr - strlen_c_r(const CharT *const s, const unsigned long acc) noexcept - { - return *s ? strlen_c_r(s + 1, acc + 1) : acc; - } - - template < typename CharT > - unsigned long constexpr - strlen_c(const CharT *const s) noexcept - { - return strlen_c_r(s, 0UL); - } - - static_assert(strlen_c("") == 0UL, ""); - static_assert(strlen_c("1") == 1UL, ""); - static_assert(strlen_c("example") == 7UL, ""); - static_assert(strlen_c("another\0example") == 7UL, ""); - - } - - namespace test_rvalue_references - { - - template < int N > - struct answer - { - static constexpr int value = N; - }; - - answer<1> f(int&) { return answer<1>(); } - answer<2> f(const int&) { return answer<2>(); } - answer<3> f(int&&) { return answer<3>(); } - - void - test() - { - int i = 0; - const int c = 0; - static_assert(decltype(f(i))::value == 1, ""); - static_assert(decltype(f(c))::value == 2, ""); - static_assert(decltype(f(0))::value == 3, ""); - } - - } - - namespace test_uniform_initialization - { - - struct test - { - static const int zero {}; - static const int one {1}; - }; - - static_assert(test::zero == 0, ""); - static_assert(test::one == 1, ""); - - } - - namespace test_lambdas - { - - void - test1() - { - auto lambda1 = [](){}; - auto lambda2 = lambda1; - lambda1(); - lambda2(); - } - - int - test2() - { - auto a = [](int i, int j){ return i + j; }(1, 2); - auto b = []() -> int { return '0'; }(); - auto c = [=](){ return a + b; }(); - auto d = [&](){ return c; }(); - auto e = [a, &b](int x) mutable { - const auto identity = [](int y){ return y; }; - for (auto i = 0; i < a; ++i) - a += b--; - return x + identity(a + b); - }(0); - return a + b + c + d + e; - } - - int - test3() - { - const auto nullary = [](){ return 0; }; - const auto unary = [](int x){ return x; }; - using nullary_t = decltype(nullary); - using unary_t = decltype(unary); - const auto higher1st = [](nullary_t f){ return f(); }; - const auto higher2nd = [unary](nullary_t f1){ - return [unary, f1](unary_t f2){ return f2(unary(f1())); }; - }; - return higher1st(nullary) + higher2nd(nullary)(unary); - } - - } - - namespace test_variadic_templates - { - - template - struct sum; - - template - struct sum - { - static constexpr auto value = N0 + sum::value; - }; - - template <> - struct sum<> - { - static constexpr auto value = 0; - }; - - static_assert(sum<>::value == 0, ""); - static_assert(sum<1>::value == 1, ""); - static_assert(sum<23>::value == 23, ""); - static_assert(sum<1, 2>::value == 3, ""); - static_assert(sum<5, 5, 11>::value == 21, ""); - static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); - - } - - // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae - // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function - // because of this. - namespace test_template_alias_sfinae - { - - struct foo {}; - - template - using member = typename T::member_type; - - template - void func(...) {} - - template - void func(member*) {} - - void test(); - - void test() { func(0); } - - } - -} // namespace cxx11 - -#endif // __cplusplus >= 201103L - -]]) - - -dnl Tests for new features in C++14 - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ - -// If the compiler admits that it is not ready for C++14, why torture it? -// Hopefully, this will speed up the test. - -#ifndef __cplusplus - -#error "This is not a C++ compiler" - -#elif __cplusplus < 201402L - -#error "This is not a C++14 compiler" - -#else - -namespace cxx14 -{ - - namespace test_polymorphic_lambdas - { - - int - test() - { - const auto lambda = [](auto&&... args){ - const auto istiny = [](auto x){ - return (sizeof(x) == 1UL) ? 1 : 0; - }; - const int aretiny[] = { istiny(args)... }; - return aretiny[0]; - }; - return lambda(1, 1L, 1.0f, '1'); - } - - } - - namespace test_binary_literals - { - - constexpr auto ivii = 0b0000000000101010; - static_assert(ivii == 42, "wrong value"); - - } - - namespace test_generalized_constexpr - { - - template < typename CharT > - constexpr unsigned long - strlen_c(const CharT *const s) noexcept - { - auto length = 0UL; - for (auto p = s; *p; ++p) - ++length; - return length; - } - - static_assert(strlen_c("") == 0UL, ""); - static_assert(strlen_c("x") == 1UL, ""); - static_assert(strlen_c("test") == 4UL, ""); - static_assert(strlen_c("another\0test") == 7UL, ""); - - } - - namespace test_lambda_init_capture - { - - int - test() - { - auto x = 0; - const auto lambda1 = [a = x](int b){ return a + b; }; - const auto lambda2 = [a = lambda1(x)](){ return a; }; - return lambda2(); - } - - } - - namespace test_digit_separators - { - - constexpr auto ten_million = 100'000'000; - static_assert(ten_million == 100000000, ""); - - } - - namespace test_return_type_deduction - { - - auto f(int& x) { return x; } - decltype(auto) g(int& x) { return x; } - - template < typename T1, typename T2 > - struct is_same - { - static constexpr auto value = false; - }; - - template < typename T > - struct is_same - { - static constexpr auto value = true; - }; - - int - test() - { - auto x = 0; - static_assert(is_same::value, ""); - static_assert(is_same::value, ""); - return x; - } - - } - -} // namespace cxx14 - -#endif // __cplusplus >= 201402L - -]]) - - -dnl Tests for new features in C++17 - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[ - -// If the compiler admits that it is not ready for C++17, why torture it? -// Hopefully, this will speed up the test. - -#ifndef __cplusplus - -#error "This is not a C++ compiler" - -#elif __cplusplus < 201703L - -#error "This is not a C++17 compiler" - -#else - -#include -#include -#include - -namespace cxx17 -{ - - namespace test_constexpr_lambdas - { - - constexpr int foo = [](){return 42;}(); - - } - - namespace test::nested_namespace::definitions - { - - } - - namespace test_fold_expression - { - - template - int multiply(Args... args) - { - return (args * ... * 1); - } - - template - bool all(Args... args) - { - return (args && ...); - } - - } - - namespace test_extended_static_assert - { - - static_assert (true); - - } - - namespace test_auto_brace_init_list - { - - auto foo = {5}; - auto bar {5}; - - static_assert(std::is_same, decltype(foo)>::value); - static_assert(std::is_same::value); - } - - namespace test_typename_in_template_template_parameter - { - - template typename X> struct D; - - } - - namespace test_fallthrough_nodiscard_maybe_unused_attributes - { - - int f1() - { - return 42; - } - - [[nodiscard]] int f2() - { - [[maybe_unused]] auto unused = f1(); - - switch (f1()) - { - case 17: - f1(); - [[fallthrough]]; - case 42: - f1(); - } - return f1(); - } - - } - - namespace test_extended_aggregate_initialization - { - - struct base1 - { - int b1, b2 = 42; - }; - - struct base2 - { - base2() { - b3 = 42; - } - int b3; - }; - - struct derived : base1, base2 - { - int d; - }; - - derived d1 {{1, 2}, {}, 4}; // full initialization - derived d2 {{}, {}, 4}; // value-initialized bases - - } - - namespace test_general_range_based_for_loop - { - - struct iter - { - int i; - - int& operator* () - { - return i; - } - - const int& operator* () const - { - return i; - } - - iter& operator++() - { - ++i; - return *this; - } - }; - - struct sentinel - { - int i; - }; - - bool operator== (const iter& i, const sentinel& s) - { - return i.i == s.i; - } - - bool operator!= (const iter& i, const sentinel& s) - { - return !(i == s); - } - - struct range - { - iter begin() const - { - return {0}; - } - - sentinel end() const - { - return {5}; - } - }; - - void f() - { - range r {}; - - for (auto i : r) - { - [[maybe_unused]] auto v = i; - } - } - - } - - namespace test_lambda_capture_asterisk_this_by_value - { - - struct t - { - int i; - int foo() - { - return [*this]() - { - return i; - }(); - } - }; - - } - - namespace test_enum_class_construction - { - - enum class byte : unsigned char - {}; - - byte foo {42}; - - } - - namespace test_constexpr_if - { - - template - int f () - { - if constexpr(cond) - { - return 13; - } - else - { - return 42; - } - } - - } - - namespace test_selection_statement_with_initializer - { - - int f() - { - return 13; - } - - int f2() - { - if (auto i = f(); i > 0) - { - return 3; - } - - switch (auto i = f(); i + 4) - { - case 17: - return 2; - - default: - return 1; - } - } - - } - - namespace test_template_argument_deduction_for_class_templates - { - - template - struct pair - { - pair (T1 p1, T2 p2) - : m1 {p1}, - m2 {p2} - {} - - T1 m1; - T2 m2; - }; - - void f() - { - [[maybe_unused]] auto p = pair{13, 42u}; - } - - } - - namespace test_non_type_auto_template_parameters - { - - template - struct B - {}; - - B<5> b1; - B<'a'> b2; - - } - - namespace test_structured_bindings - { - - int arr[2] = { 1, 2 }; - std::pair pr = { 1, 2 }; - - auto f1() -> int(&)[2] - { - return arr; - } - - auto f2() -> std::pair& - { - return pr; - } - - struct S - { - int x1 : 2; - volatile double y1; - }; - - S f3() - { - return {}; - } - - auto [ x1, y1 ] = f1(); - auto& [ xr1, yr1 ] = f1(); - auto [ x2, y2 ] = f2(); - auto& [ xr2, yr2 ] = f2(); - const auto [ x3, y3 ] = f3(); - - } - - namespace test_exception_spec_type_system - { - - struct Good {}; - struct Bad {}; - - void g1() noexcept; - void g2(); - - template - Bad - f(T*, T*); - - template - Good - f(T1*, T2*); - - static_assert (std::is_same_v); - - } - - namespace test_inline_variables - { - - template void f(T) - {} - - template inline T g(T) - { - return T{}; - } - - template<> inline void f<>(int) - {} - - template<> int g<>(int) - { - return 5; - } - - } - -} // namespace cxx17 - -#endif // __cplusplus < 201703L - -]]) diff --git a/m4/general.m4 b/m4/general.m4 index 6f37539..8877557 100644 --- a/m4/general.m4 +++ b/m4/general.m4 @@ -7,57 +7,14 @@ dnl the same distribution terms as the rest of that program. dnl From Bruno Haible, Marcus Daniels, Sam Steingold. -AC_PREREQ(2.13) +AC_PREREQ([2.69]) -dnl without AC_MSG_...: with AC_MSG_... and caching: -dnl AC_TRY_CPP CL_CPP_CHECK -dnl AC_TRY_COMPILE CL_COMPILE_CHECK -dnl AC_TRY_LINK CL_LINK_CHECK -dnl AC_TRY_RUN CL_RUN_CHECK - would require cross-compiling support dnl Usage: -dnl AC_TRY_CPP(INCLUDES, -dnl ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) -dnl CL_CPP_CHECK(ECHO-TEXT, CACHE-ID, -dnl INCLUDES, -dnl ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) -dnl AC_TRY_xxx(INCLUDES, FUNCTION-BODY, -dnl ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) -dnl CL_xxx_CHECK(ECHO-TEXT, CACHE-ID, -dnl INCLUDES, FUNCTION-BODY, -dnl ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) - -AC_DEFUN([CL_CPP_CHECK], -[AC_MSG_CHECKING(for $1) -AC_CACHE_VAL($2,[ -AC_TRY_CPP([$3], $2=yes, $2=no) -]) -AC_MSG_RESULT([$]$2) -if test [$]$2 = yes; then - ifelse([$4], , :, [$4]) -ifelse([$5], , , [else - $5 -])dnl -fi -]) - -AC_DEFUN([CL_COMPILE_CHECK], -[AC_MSG_CHECKING(for $1) -AC_CACHE_VAL($2,[ -AC_TRY_COMPILE([$3],[$4], $2=yes, $2=no) -]) -AC_MSG_RESULT([$]$2) -if test [$]$2 = yes; then - ifelse([$5], , :, [$5]) -ifelse([$6], , , [else - $6 -])dnl -fi -]) - +dnl CL_LINK_CHECK(ECHO-TEXT, CACHE-ID, INCLUDES, FUNCTION-BODY, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) AC_DEFUN([CL_LINK_CHECK], [AC_MSG_CHECKING(for $1) AC_CACHE_VAL($2,[ -AC_TRY_LINK([$3],[$4], $2=yes, $2=no) +AC_LINK_IFELSE([AC_LANG_PROGRAM([[$3]], [[$4]])], [$2=yes], [$2=no]) ]) AC_MSG_RESULT([$]$2) if test [$]$2 = yes; then @@ -68,18 +25,6 @@ ifelse([$6], , , [else fi ]) -dnl CL_SILENT(ACTION) -dnl performs ACTION, with AC_MSG_CHECKING and AC_MSG_RESULT being defined away. -AC_DEFUN([CL_SILENT], -[pushdef([AC_MSG_CHECKING],[:])dnl -pushdef([AC_CHECKING],[:])dnl -pushdef([AC_MSG_RESULT],[:])dnl -$1[]dnl -popdef([AC_MSG_RESULT])dnl -popdef([AC_CHECKING])dnl -popdef([AC_MSG_CHECKING])dnl -]) - dnl Expands to the "extern ..." prefix used for system declarations. dnl AC_LANG_EXTERN() AC_DEFUN([AC_LANG_EXTERN], @@ -89,32 +34,8 @@ AC_DEFUN([AC_LANG_EXTERN], #endif ]) -AC_DEFUN([CL_CC_WORKS], -[AC_CACHE_CHECK(whether CC works at all, cl_cv_prog_cc_works, [ -AC_LANG_SAVE() -AC_LANG_C() -AC_TRY_RUN([ -#include -int main() { exit(0); } -], -cl_cv_prog_cc_works=yes, cl_cv_prog_cc_works=no, -AC_TRY_LINK([], [], cl_cv_prog_cc_works=yes, cl_cv_prog_cc_works=no)) -AC_LANG_RESTORE() -]) -case "$cl_cv_prog_cc_works" in - *no) echo "Installation or configuration problem: C compiler cannot create executables."; exit 1;; - *yes) ;; -esac -]) - -AC_DEFUN([CL_CONFIG_SUBDIRS], -[dnl No AC_CONFIG_AUX_DIR_DEFAULT, so we don't need install.sh. -AC_PROVIDE([AC_CONFIG_AUX_DIR_DEFAULT]) -AC_CONFIG_SUBDIRS([$1])dnl -]) - AC_DEFUN([CL_CANONICAL_HOST], -[AC_REQUIRE([AC_PROG_CC]) dnl Actually: AC_REQUIRE([CL_CC_WORKS]) +[AC_REQUIRE([AC_PROG_CC]) AC_CANONICAL_HOST ]) diff --git a/m4/gettimeofday.m4 b/m4/gettimeofday.m4 index b291b82..d62474c 100644 --- a/m4/gettimeofday.m4 +++ b/m4/gettimeofday.m4 @@ -8,7 +8,7 @@ dnl the same distribution terms as the rest of that program. dnl From Bruno Haible, Marcus Daniels, Sam Steingold. -AC_PREREQ(2.57) +AC_PREREQ([2.69]) AC_DEFUN([CL_GETTIMEOFDAY], [AC_BEFORE([$0], [CL_TIMES_CLOCK]) @@ -20,14 +20,12 @@ CL_PROTO_TRY([ #include #include ], [int gettimeofday (struct timeval * tp, struct timezone * tzp);], -[int gettimeofday();], cl_cv_proto_gettimeofday_dots=no cl_cv_proto_gettimeofday_arg2="struct timezone *", [ CL_PROTO_TRY([ #include #include ], [int gettimeofday (struct timeval * tp, void * tzp);], -[int gettimeofday();], cl_cv_proto_gettimeofday_dots=no cl_cv_proto_gettimeofday_arg2="void *", cl_cv_proto_gettimeofday_dots=yes diff --git a/m4/gmp.m4 b/m4/gmp.m4 index 1d7ae99..d016cac 100644 --- a/m4/gmp.m4 +++ b/m4/gmp.m4 @@ -8,16 +8,16 @@ dnl the same distribution terms as the rest of that program. dnl From Richard B. Kreckel. -AC_PREREQ(2.13) +AC_PREREQ([2.69]) dnl Is the gmp header file new enough? (should be implemented with an argument) AC_DEFUN([CL_GMP_H_VERSION], [AC_CACHE_CHECK([for recent enough gmp.h], cl_cv_new_gmp_h, [ - AC_TRY_CPP([#include + AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include #if !defined(__GNU_MP_VERSION) || (__GNU_MP_VERSION < 3) #error "ancient gmp.h" -#endif], -cl_cv_new_gmp_h="yes", cl_cv_new_gmp_h="no") +#endif]])], +[cl_cv_new_gmp_h="yes"], [cl_cv_new_gmp_h="no"]) ])])dnl dnl Does libgmp provide some functionality introduced in version 3.0? @@ -25,8 +25,8 @@ AC_DEFUN([CL_GMP_CHECK], [AC_CACHE_CHECK([for working libgmp], cl_cv_new_libgmp, [ SAVELIBS=$LIBS LIBS="$LIBS -lgmp" - AC_TRY_LINK([#include ],[mpn_divexact_by3(0,0,0)], -cl_cv_new_libgmp="yes", cl_cv_new_libgmp="no") + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[mpn_divexact_by3(0,0,0)]])], + [cl_cv_new_libgmp="yes"], [cl_cv_new_libgmp="no"]) LIBS=$SAVELIBS]) if test "$cl_cv_new_libgmp" = yes; then LIBS="$LIBS -lgmp" @@ -119,7 +119,7 @@ case $with_gmp in LDFLAGS="$LDFLAGS -L${withval}/lib" AC_LIB_LINKFLAGS_FROM_LIBS([GMP_RPATH_CFG], [$LDFLAGS]) LDFLAGS="$GMP_RPATH_CFG $LDFLAGS" - AC_MSG_NOTICE([Using "\"$LDFLAGS\"" rpath to link with GMP]) + AC_MSG_NOTICE([Using "$LDFLAGS" rpath to link with GMP]) CL_GMP_H_VERSION if test "$cl_cv_new_gmp_h" = yes; then CL_GMP_CHECK diff --git a/m4/intparam.m4 b/m4/intparam.m4 index 5d7d00f..2b6243c 100644 --- a/m4/intparam.m4 +++ b/m4/intparam.m4 @@ -104,7 +104,7 @@ AC_DEFUN([CL_INTPARAM_CROSS], AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[typedef int verify[2*(sizeof(char*)<=sizeof (intptr_t))-1];]])], [], [echo "#error \"Type char * does not fit into an intptr_t!!\""]) - _AC_COMPUTE_INT([sizeof (char *)], [pointer_size]) + AC_COMPUTE_INT([pointer_size], [sizeof (char *)], [], []) pointer_bitsize=`expr $pointer_size '*' $char_bitsize` echo "/* Pointers of type char * have $pointer_bitsize bits. */" echo "#define pointer_bitsize $pointer_bitsize" @@ -243,7 +243,7 @@ dnl CL_INTPARAM_SIZEOF(type, variable) dnl puts into variable the determined size of the type. AC_DEFUN([CL_INTPARAM_SIZEOF], [ - _AC_COMPUTE_INT([sizeof($1)], [$2]) + AC_COMPUTE_INT([$2], [sizeof($1)], [], []) ]) dnl CL_INTPARAM_ALIGNOF(type, variable) diff --git a/m4/perror.m4 b/m4/perror.m4 deleted file mode 100644 index 791891a..0000000 --- a/m4/perror.m4 +++ /dev/null @@ -1,28 +0,0 @@ -dnl -*- Autoconf -*- -dnl Copyright (C) 1993-2003 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible, Marcus Daniels, Sam Steingold. - -AC_PREREQ(2.57) - -AC_DEFUN([CL_PERROR], -[AC_MSG_CHECKING(for perror declaration) -AC_CACHE_VAL(cl_cv_proto_perror, [ -AC_TRY_COMPILE([ -/* Some systems declare perror() in , some in , some don't - declare it at all. */ -#include -#include -]AC_LANG_EXTERN[double perror ();], [], -cl_cv_proto_perror=no, cl_cv_proto_perror=yes) -]) -AC_MSG_RESULT([$cl_cv_proto_perror]) -if test $cl_cv_proto_perror = yes; then -AC_DEFINE(HAVE_PERROR_DECL,,[ or contains a declaration for perror()]) -fi -]) diff --git a/m4/proto.m4 b/m4/proto.m4 index c60ab62..f0821f2 100644 --- a/m4/proto.m4 +++ b/m4/proto.m4 @@ -7,7 +7,7 @@ dnl the same distribution terms as the rest of that program. dnl From Bruno Haible, Marcus Daniels. -AC_PREREQ(2.13) +AC_PREREQ([2.13]) dnl CL_PROTO(IDENTIFIER, ACTION-IF-NOT-FOUND, FINAL-PROTOTYPE) AC_DEFUN([CL_PROTO], @@ -19,31 +19,10 @@ AC_MSG_RESULT([$]{ac_t:- }[$]cl_cv_proto_$1) ]) -dnl CL_PROTO_RET(INCLUDES, ANSI-DECL, TRAD-DECL, CACHE-ID, TYPE-IF-OK, TYPE-IF-FAILS) -AC_DEFUN([CL_PROTO_RET], -[AC_TRY_COMPILE([$1] -AC_LANG_EXTERN -[#if defined(__STDC__) || defined(__cplusplus) -$2 -#else -$3 -#endif -], [], $4="$5", $4="$6") -]) - -dnl CL_PROTO_TRY(INCLUDES, ANSI-DECL, TRAD-DECL, ACTION-IF-OK, ACTION-IF-FAILS) +dnl CL_PROTO_TRY(INCLUDES, DECL, ACTION-IF-OK, ACTION-IF-FAILS) AC_DEFUN([CL_PROTO_TRY], -[AC_TRY_COMPILE([$1] -AC_LANG_EXTERN -[#if defined(__STDC__) || defined(__cplusplus) +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$1 +]AC_LANG_EXTERN[ $2 -#else -$3 -#endif -], [], [$4], [$5]) +]], [[]])], [$3], [$4]) ]) - -dnl CL_PROTO_CONST(INCLUDES, ANSI-DECL, TRAD-DECL, CACHE-ID) -AC_DEFUN([CL_PROTO_CONST], -[CL_PROTO_TRY([$1], [$2], [$3], $4="", $4="const")] -) diff --git a/m4/rusage.m4 b/m4/rusage.m4 index dc5c6e0..813de00 100644 --- a/m4/rusage.m4 +++ b/m4/rusage.m4 @@ -8,7 +8,7 @@ dnl the same distribution terms as the rest of that program. dnl From Bruno Haible, Marcus Daniels, Sam Steingold, Peter Burwood, Sam Steingold. -AC_PREREQ(2.57) +AC_PREREQ([2.57]) AC_DEFUN([CL_RUSAGE], [AC_CHECK_HEADERS(sys/resource.h sys/times.h)dnl @@ -31,12 +31,11 @@ if test $ac_cv_header_sys_resource_h = yes; then #include ], [int getrusage (int who, struct rusage * rusage);], -[int getrusage();], [cl_cv_proto_getrusage_arg1="int"], [cl_cv_proto_getrusage_arg1="enum __rusage_who"]) ], [extern int getrusage ($cl_cv_proto_getrusage_arg1, struct rusage *);])dnl AC_CACHE_CHECK(whether getrusage works, cl_cv_func_getrusage_works, [ - AC_TRY_RUN([ + AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include #include /* NetBSD 1.0 needs this */ #include @@ -67,11 +66,11 @@ int main () /* getrusage is defined but does not work. */ /*fprintf(stderr,"failure after %d runs\n",count);*/ return 1; -}], -cl_cv_func_getrusage_works=yes, -cl_cv_func_getrusage_works=no, +}]])], +[cl_cv_func_getrusage_works=yes], +[cl_cv_func_getrusage_works=no], dnl When cross-compiling, don't assume anything. -cl_cv_func_getrusage_works="guessing no")]) +[cl_cv_func_getrusage_works="guessing no"])]) fi if test "$cl_cv_func_getrusage_works" = yes; then AC_DEFINE(HAVE_GETRUSAGE,,[have , the getrusage() function, the struct rusage type, and defines RUSAGE_SELF]) diff --git a/src/timing/cl_t_config.h.in b/src/timing/cl_t_config.h.in index 98b180b..4e9a471 100644 --- a/src/timing/cl_t_config.h.in +++ b/src/timing/cl_t_config.h.in @@ -23,10 +23,6 @@ /* Define if you have . */ #undef HAVE_SYS_TIMES_H -/* CL_PERROR */ -/* Define if or contains a declaration for perror(). */ -#undef HAVE_PERROR_DECL - #endif /* _CL_T_CONFIG_H */ -- 2.49.0