Bump to C++17
This means we now require GCC 8. Boost filesystem library is no longer needed. Ref preprocessor#16time-shift
parent
597433194c
commit
0d0a0a9bbb
10
README.md
10
README.md
|
@ -66,12 +66,12 @@ a 32-bit Octave.
|
|||
A number of tools and libraries are needed in order to recompile everything. You don't necessarily need to install everything, depending on what you want to compile.
|
||||
|
||||
- A POSIX compliant shell and an implementation of Make (mandatory)
|
||||
- The [GNU Compiler Collection](http://gcc.gnu.org/), version 6 or later, with
|
||||
- The [GNU Compiler Collection](http://gcc.gnu.org/), version 8 or later, with
|
||||
gcc, g++ and gfortran (mandatory)
|
||||
- MATLAB (if you want to compile the MEX for MATLAB)
|
||||
- [GNU Octave](http://www.octave.org), with the development headers (if you
|
||||
want to compile the MEX for Octave)
|
||||
- [Boost libraries](http://www.boost.org), version 1.36 or later (with the filesystem library compiled)
|
||||
- [Boost libraries](http://www.boost.org), version 1.36 or later
|
||||
- [Bison](http://www.gnu.org/software/bison/), version 3.2 or later (only if you get the source through Git)
|
||||
- [Flex](http://flex.sourceforge.net/), version 2.5.4 or later (only if you get the source through Git)
|
||||
- [Autoconf](http://www.gnu.org/software/autoconf/), version 2.62 or later (only if you get the source through Git)
|
||||
|
@ -219,7 +219,7 @@ All the prerequisites are packaged:
|
|||
- `build-essential` (for gcc, g++ and make)
|
||||
- `gfortran`
|
||||
- `liboctave-dev`
|
||||
- `libboost-graph-dev` and `libboost-filesystem-dev`
|
||||
- `libboost-graph-dev`
|
||||
- `libgsl-dev`
|
||||
- `libmatio-dev`
|
||||
- `libslicot-dev` and `libslicot-pic`
|
||||
|
@ -242,7 +242,7 @@ All the prerequisites are packaged:
|
|||
|
||||
You can install them all at once with:
|
||||
```
|
||||
apt install build-essential gfortran liboctave-dev libboost-graph-dev libboost-filesystem-dev libgsl-dev libmatio-dev libslicot-dev libslicot-pic libsuitesparse-dev flex bison autoconf automake texlive texlive-publishers texlive-latex-extra texlive-fonts-extra texlive-latex-recommended texlive-science texlive-generic-extra lmodern python3-sphinx libjs-mathjax doxygen
|
||||
apt install build-essential gfortran liboctave-dev libboost-graph-dev libgsl-dev libmatio-dev libslicot-dev libslicot-pic libsuitesparse-dev flex bison autoconf automake texlive texlive-publishers texlive-latex-extra texlive-fonts-extra texlive-latex-recommended texlive-science texlive-generic-extra lmodern python3-sphinx libjs-mathjax doxygen
|
||||
```
|
||||
|
||||
## Windows
|
||||
|
@ -280,7 +280,7 @@ autoreconf -si
|
|||
```
|
||||
- Configure Dynare:
|
||||
```
|
||||
./configure --with-boost-system=boost_system-mt --with-boost-filesystem=boost_filesystem-mt --with-slicot=/usr/local --with-matlab=<…> MATLAB_VERSION=<…> --disable-octave
|
||||
./configure --with-slicot=/usr/local --with-matlab=<…> MATLAB_VERSION=<…> --disable-octave
|
||||
```
|
||||
where the path and version of MATLAB are specified. Note that you should use
|
||||
the MSYS2 notation and not put spaces in the MATLAB path, so you probably want
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
dnl Copyright © 2009-2018 Dynare Team
|
||||
dnl Copyright © 2009-2019 Dynare Team
|
||||
dnl
|
||||
dnl This file is part of Dynare.
|
||||
dnl
|
||||
|
@ -26,7 +26,7 @@ AC_CONFIG_SUBDIRS([preprocessor])
|
|||
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
AX_CXX_COMPILE_STDCXX_14
|
||||
AX_CXX_COMPILE_STDCXX_17
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
case ${host_os} in
|
||||
|
|
|
@ -243,14 +243,15 @@ License: FSFAP
|
|||
|
||||
|
||||
Files: m4/ax_cxx_compile_stdcxx.m4
|
||||
m4/ax_cxx_compile_stdcxx_14.m4
|
||||
m4/ax_cxx_compile_stdcxx_17.m4
|
||||
Copyright: 2008 Benjamin Kosnik <bkoz@redhat.com>
|
||||
2012 Zack Weinberg <zackw@panix.com>
|
||||
2013 Roy Stogner <roystgnr@ices.utexas.edu>
|
||||
2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
|
||||
2015 Paul Norman <penorman@mac.com>
|
||||
2015 Moritz Klammler <moritz@klammler.eu>
|
||||
2016 Krzesimir Nowak <qdlacz@gmail.com>
|
||||
2016, 2018 Krzesimir Nowak <qdlacz@gmail.com>
|
||||
2019 Enji Cooper <yaneurabeya@gmail.com>
|
||||
License: FSFAP
|
||||
|
||||
Files: m4/ax_latex_class.m4 m4/ax_tex_test.m4
|
||||
|
|
|
@ -33,19 +33,19 @@
|
|||
# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
|
||||
# Copyright (c) 2015 Paul Norman <penorman@mac.com>
|
||||
# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
|
||||
# Copyright (c) 2016 Krzesimir Nowak <qdlacz@gmail.com>
|
||||
# Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com>
|
||||
# Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com>
|
||||
#
|
||||
# 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 7
|
||||
#serial 11
|
||||
|
||||
dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
|
||||
dnl (serial version number 13).
|
||||
|
||||
AX_REQUIRE_DEFINED([AC_MSG_WARN])
|
||||
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"],
|
||||
|
@ -61,14 +61,6 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
|
|||
[m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
|
||||
AC_LANG_PUSH([C++])dnl
|
||||
ac_success=no
|
||||
AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
|
||||
ax_cv_cxx_compile_cxx$1,
|
||||
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
|
||||
[ax_cv_cxx_compile_cxx$1=yes],
|
||||
[ax_cv_cxx_compile_cxx$1=no])])
|
||||
if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
|
||||
ac_success=yes
|
||||
fi
|
||||
|
||||
m4_if([$2], [noext], [], [dnl
|
||||
if test x$ac_success = xno; then
|
||||
|
@ -139,7 +131,6 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
|
|||
[define if the compiler supports basic C++$1 syntax])
|
||||
fi
|
||||
AC_SUBST(HAVE_CXX$1)
|
||||
m4_if([$1], [17], [AC_MSG_WARN([C++17 is not yet standardized, so the checks may change in incompatible ways anytime])])
|
||||
])
|
||||
|
||||
|
||||
|
@ -199,11 +190,13 @@ namespace cxx11
|
|||
|
||||
struct Base
|
||||
{
|
||||
virtual ~Base() {}
|
||||
virtual void f() {}
|
||||
};
|
||||
|
||||
struct Derived : public Base
|
||||
{
|
||||
virtual ~Derived() override {}
|
||||
virtual void f() override {}
|
||||
};
|
||||
|
||||
|
@ -587,20 +580,12 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[
|
|||
|
||||
#error "This is not a C++ compiler"
|
||||
|
||||
#elif __cplusplus <= 201402L
|
||||
#elif __cplusplus < 201703L
|
||||
|
||||
#error "This is not a C++17 compiler"
|
||||
|
||||
#else
|
||||
|
||||
#if defined(__clang__)
|
||||
#define REALLY_CLANG
|
||||
#else
|
||||
#if defined(__GNUC__)
|
||||
#define REALLY_GCC
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <initializer_list>
|
||||
#include <utility>
|
||||
#include <type_traits>
|
||||
|
@ -608,16 +593,12 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[
|
|||
namespace cxx17
|
||||
{
|
||||
|
||||
#if !defined(REALLY_CLANG)
|
||||
namespace test_constexpr_lambdas
|
||||
{
|
||||
|
||||
// TODO: test it with clang++ from git
|
||||
|
||||
constexpr int foo = [](){return 42;}();
|
||||
|
||||
}
|
||||
#endif // !defined(REALLY_CLANG)
|
||||
|
||||
namespace test::nested_namespace::definitions
|
||||
{
|
||||
|
@ -852,12 +833,9 @@ namespace cxx17
|
|||
|
||||
}
|
||||
|
||||
#if !defined(REALLY_CLANG)
|
||||
namespace test_template_argument_deduction_for_class_templates
|
||||
{
|
||||
|
||||
// TODO: test it with clang++ from git
|
||||
|
||||
template <typename T1, typename T2>
|
||||
struct pair
|
||||
{
|
||||
|
@ -876,7 +854,6 @@ namespace cxx17
|
|||
}
|
||||
|
||||
}
|
||||
#endif // !defined(REALLY_CLANG)
|
||||
|
||||
namespace test_non_type_auto_template_parameters
|
||||
{
|
||||
|
@ -890,12 +867,9 @@ namespace cxx17
|
|||
|
||||
}
|
||||
|
||||
#if !defined(REALLY_CLANG)
|
||||
namespace test_structured_bindings
|
||||
{
|
||||
|
||||
// TODO: test it with clang++ from git
|
||||
|
||||
int arr[2] = { 1, 2 };
|
||||
std::pair<int, int> pr = { 1, 2 };
|
||||
|
||||
|
@ -927,14 +901,10 @@ namespace cxx17
|
|||
const auto [ x3, y3 ] = f3();
|
||||
|
||||
}
|
||||
#endif // !defined(REALLY_CLANG)
|
||||
|
||||
#if !defined(REALLY_CLANG)
|
||||
namespace test_exception_spec_type_system
|
||||
{
|
||||
|
||||
// TODO: test it with clang++ from git
|
||||
|
||||
struct Good {};
|
||||
struct Bad {};
|
||||
|
||||
|
@ -952,7 +922,6 @@ namespace cxx17
|
|||
static_assert (std::is_same_v<Good, decltype(f(g1, g2))>);
|
||||
|
||||
}
|
||||
#endif // !defined(REALLY_CLANG)
|
||||
|
||||
namespace test_inline_variables
|
||||
{
|
||||
|
@ -977,6 +946,6 @@ namespace cxx17
|
|||
|
||||
} // namespace cxx17
|
||||
|
||||
#endif // __cplusplus <= 201402L
|
||||
#endif // __cplusplus < 201703L
|
||||
|
||||
]])
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
# =============================================================================
|
||||
# https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_14.html
|
||||
# https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_17.html
|
||||
# =============================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CXX_COMPILE_STDCXX_14([ext|noext], [mandatory|optional])
|
||||
# AX_CXX_COMPILE_STDCXX_17([ext|noext], [mandatory|optional])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check for baseline language coverage in the compiler for the C++14
|
||||
# Check for baseline language coverage in the compiler for the C++17
|
||||
# standard; if necessary, add switches to CXX and CXXCPP to enable
|
||||
# support.
|
||||
#
|
||||
# This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX
|
||||
# macro with the version set to C++14. The two optional arguments are
|
||||
# macro with the version set to C++17. The two optional arguments are
|
||||
# forwarded literally as the second and third argument respectively.
|
||||
# Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for
|
||||
# more information. If you want to use this macro, you also need to
|
||||
|
@ -22,13 +22,14 @@
|
|||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
|
||||
# Copyright (c) 2016 Krzesimir Nowak <qdlacz@gmail.com>
|
||||
#
|
||||
# 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 5
|
||||
#serial 2
|
||||
|
||||
AX_REQUIRE_DEFINED([AX_CXX_COMPILE_STDCXX])
|
||||
AC_DEFUN([AX_CXX_COMPILE_STDCXX_14], [AX_CXX_COMPILE_STDCXX([14], [$1], [$2])])
|
||||
AC_DEFUN([AX_CXX_COMPILE_STDCXX_17], [AX_CXX_COMPILE_STDCXX([17], [$1], [$2])])
|
|
@ -58,7 +58,7 @@ AC_PROG_F77([gfortran g77 f77])
|
|||
AC_PROG_CC
|
||||
AC_PROG_CC_C99 # mjdgges DLL now uses C99 features (variable declared in for loop)
|
||||
AC_PROG_CXX
|
||||
AX_CXX_COMPILE_STDCXX_14
|
||||
AX_CXX_COMPILE_STDCXX_17
|
||||
AC_PROG_RANLIB
|
||||
AX_PROG_LN_S
|
||||
AC_PROG_MKDIR_P
|
||||
|
|
|
@ -43,7 +43,7 @@ AC_PROG_F77([gfortran g77 f77])
|
|||
AC_PROG_CC
|
||||
AC_PROG_CC_C99 # mjdgges DLL now uses C99 features (variable declared in for loop)
|
||||
AC_PROG_CXX
|
||||
AX_CXX_COMPILE_STDCXX_14
|
||||
AX_CXX_COMPILE_STDCXX_17
|
||||
AC_PROG_RANLIB
|
||||
AX_PROG_LN_S
|
||||
AC_PROG_MKDIR_P
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 7c3f981eacdf7657aab0104cff6a028c93eb9549
|
||||
Subproject commit 0c755460b1cd971a1e138099147cdd7877a95f45
|
Loading…
Reference in New Issue