configure.ac 7.44 KB
Newer Older
sebastien's avatar
sebastien committed
1
2
dnl Process this file with autoconf to produce a configure script.

3
dnl Copyright (C) 2009-2018 Dynare Team
sebastien's avatar
sebastien committed
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
dnl
dnl This file is part of Dynare.
dnl
dnl Dynare is free software: you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation, either version 3 of the License, or
dnl (at your option) any later version.
dnl
dnl Dynare is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
sebastien's avatar
trunk:  
sebastien committed
19

20
AC_PREREQ([2.62])
Stéphane Adjemian's avatar
Stéphane Adjemian committed
21
AC_INIT([dynare], [4.6-unstable])
22
AC_CONFIG_SRCDIR([preprocessor/src/DynareMain.cc])
23
AM_INIT_AUTOMAKE([1.11 -Wall -Wno-portability foreign no-dist-gzip dist-xz tar-pax])
sebastien's avatar
trunk:  
sebastien committed
24

25
26
AC_CONFIG_SUBDIRS([preprocessor])

sebastien's avatar
sebastien committed
27
AC_PROG_CC
sebastien's avatar
trunk:  
sebastien committed
28
AC_PROG_CXX
29
AX_CXX_COMPILE_STDCXX_14
sebastien's avatar
trunk:  
sebastien committed
30

sebastien's avatar
sebastien committed
31
32
33
AC_CANONICAL_HOST
case ${host_os} in
  *mingw32*)
34
35
36
    # On Windows, we want Dynare++ to be statically linked
    AM_LDFLAGS="-static"
    AC_SUBST([AM_LDFLAGS])
37
    have_windows="yes"
sebastien's avatar
sebastien committed
38
    ;;
39
  *cygwin*)
40
41
42
    AC_MSG_WARN([You are compiling for the Cygwin target. This means that the preprocessor will])
    AC_MSG_WARN([not run from MATLAB unless you add the Cygwin DLL to the path.])
    AC_MSG_WARN([This is probably not what you want. Consider using a MinGW cross-compiler.])
43
44
45
46
47
    if test "x$F77" = "x"; then
      # On Cygwin 1.7, g77 comes has version 3, and is not compatible with default gcc/g++ which has version 4
      # And by default, the AC_PROG_F77 will pick up g77 if it is present (even if gfortran is also here)
      F77=gfortran
    fi
48
    have_windows="yes"
49
    ;;
sebastien's avatar
sebastien committed
50
51
esac

sebastien's avatar
trunk:  
sebastien committed
52
53
54
# Use C++ for testing headers
AC_LANG([C++])

55
56
AM_CXXFLAGS="-Wall -Wno-parentheses"
AC_SUBST([AM_CXXFLAGS])
sebastien's avatar
trunk:  
sebastien committed
57

58
59
60
# If default 'ar' is not available, try to find one with a host prefix (see ticket #145)
AC_CHECK_PROGS([AR], [ar ${host_alias}-ar])

61
AC_PROG_RANLIB
62
AM_PROG_AR
63

64
AX_PROG_LN_S
65

sebastien's avatar
sebastien committed
66
AC_PROG_MKDIR_P
67

68
69
AX_CXX11_THREAD

70
# Check for libmatio, needed by Dynare++
71
72
AX_MATIO
AM_CONDITIONAL([HAVE_MATIO], [test "x$has_matio" = "xyes"])
73

74
AC_CHECK_PROG([PDFLATEX], [pdflatex], [pdflatex])
75
76
AM_CONDITIONAL([HAVE_PDFLATEX], [test "x$PDFLATEX" != "x"])

77
AC_CHECK_PROG([BIBTEX], [bibtex], [bibtex])
78
79
AM_CONDITIONAL([HAVE_BIBTEX], [test "x$BIBTEX" != "x"])

80
81
AC_CHECK_PROG([SPHINXBUILD], [sphinx-build], [sphinx-build])
AM_CONDITIONAL([HAVE_SPHINXBUILD], [test "x$SPHINXBUILD" != "x"])
82

83
if test "x$PDFLATEX" != "x" -a "x$BIBTEX" != "x"; then
84
  AX_LATEX_CLASS([beamer], [ax_latex_have_beamer])
85
fi
86
AM_CONDITIONAL([HAVE_BEAMER], [test "x$ax_latex_have_beamer" = "xyes"])
87

sebastien's avatar
sebastien committed
88
AC_PROG_F77
89
90
AC_F77_LIBRARY_LDFLAGS
case ${host_os} in
Houtan Bastani's avatar
Houtan Bastani committed
91
92
93
94
95
  *darwin*)
    # * OS X doesn't need to link against the Fortran libraries because
    #   everything is contained within the vecLib framework.
    FLIBS=''
    ;;
96
97
esac

sebastien's avatar
sebastien committed
98
99
100
101
if test "x$F77" != "x"; then
   AX_BLAS
   AX_LAPACK
fi
102
103
104
AM_CONDITIONAL([HAVE_BLAS], [test x"$ax_blas_ok" = "xyes"])
AM_CONDITIONAL([HAVE_LAPACK], [test x"$ax_lapack_ok" = "xyes"])

sebastien's avatar
sebastien committed
105
AC_CONFIG_FILES([Makefile
Stéphane Adjemian's avatar
Stéphane Adjemian committed
106
                 VERSION
sebastien's avatar
sebastien committed
107
                 doc/Makefile
108
109
                 doc/manual/Makefile
                 doc/manual/utils/version.py
110
                 doc/parallel/Makefile
111
                 doc/internals/Makefile
112
                 doc/gsa/Makefile
113
                 doc/dseries-and-reporting/Makefile
114
                 tests/Makefile
sebastien's avatar
sebastien committed
115
                 matlab/dynare_version.m
116
                 windows/dynare-version.nsi
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
                 dynare++/Makefile
                 dynare++/parser/cc/Makefile
                 dynare++/sylv/Makefile
                 dynare++/sylv/cc/Makefile
                 dynare++/sylv/testing/Makefile
                 dynare++/tl/Makefile
                 dynare++/tl/cc/Makefile
                 dynare++/tl/testing/Makefile
                 dynare++/doc/Makefile
                 dynare++/utils/cc/Makefile
                 dynare++/integ/Makefile
                 dynare++/integ/cc/Makefile
                 dynare++/integ/src/Makefile
                 dynare++/integ/testing/Makefile
                 dynare++/kord/Makefile
                 dynare++/src/Makefile
133
                 mex/sources/Makefile
134
])
sebastien's avatar
trunk:  
sebastien committed
135

sebastien's avatar
sebastien committed
136
137
138
AC_ARG_ENABLE([matlab], AS_HELP_STRING([--disable-matlab], [disable compilation of MEX files for MATLAB]), [], [enable_matlab=yes])
if test "x$enable_matlab" = "xyes"; then
  AC_CONFIG_SUBDIRS([mex/build/matlab])
139
  AX_MATLAB
140
141
142
143
144
145
146
  AX_MATLAB_ARCH
  if test "${MATLAB_ARCH}" = win32 -o "${MATLAB_ARCH}" = win64; then
    MATLAB_BATCH_OPTIONS='-nosplash -automation -wait -sd "$(CURDIR)"'
  else
    MATLAB_BATCH_OPTIONS='-nosplash -nodisplay'
  fi
  AC_SUBST([MATLAB_BATCH_OPTIONS])
sebastien's avatar
sebastien committed
147
148
fi
AM_CONDITIONAL([ENABLE_MATLAB], [test "x$enable_matlab" = "xyes"])
149
AM_CONDITIONAL([HAVE_CMD_LINE_MATLAB], [test "x$ax_enable_matlab" = "xyes" -a "x$have_windows" = "x"])
sebastien's avatar
sebastien committed
150
151
152
153

AC_ARG_ENABLE([octave], AS_HELP_STRING([--disable-octave], [disable compilation of MEX files for Octave]), [], [enable_octave=yes])
if test "x$enable_octave" = "xyes"; then
  AC_CONFIG_SUBDIRS([mex/build/octave])
154
  AC_CHECK_PROG([OCTAVE], [octave], [octave])
sebastien's avatar
sebastien committed
155
156
fi
AM_CONDITIONAL([ENABLE_OCTAVE], [test "x$enable_octave" = "xyes"])
157
AM_CONDITIONAL([HAVE_OCTAVE], [test "x$enable_octave" = "xyes" -a "x$OCTAVE" != "x"])
158

159
160
161
162
163
# Enable exporting of Org files
# The clean way would be to test for Emacs, Org-mode, latex, dvipng...
AC_ARG_ENABLE([org-export], AS_HELP_STRING([--enable-org-export], [enable exporting of Org files (requires Emacs, org-mode and other external programs)]))
AM_CONDITIONAL([ENABLE_ORG_EXPORT], [test "x$enable_org_export" != "x"])

sebastien's avatar
sebastien committed
164
165
# Construct final output message

166
if test "x$ax_blas_ok" = "xyes" -a "x$ax_lapack_ok" = "xyes" -a "x$has_matio" = "xyes"; then
167
  BUILD_DYNAREPLUSPLUS="yes"
sebastien's avatar
sebastien committed
168
else
169
  BUILD_DYNAREPLUSPLUS="no (missing one of: BLAS, LAPACK, MatIO)"
sebastien's avatar
sebastien committed
170
171
fi

172
173
174
175
176
177
if test "x$PDFLATEX" != "x" -a "x$ax_latex_have_beamer" = "xyes"; then
  BUILD_BEAMER_DOC="yes"
else
  BUILD_BEAMER_DOC="no (missing one of: pdflatex, beamer)"
fi

sebastien's avatar
sebastien committed
178
179
180
181
182
183
if test "x$PDFLATEX" != "x"; then
  BUILD_OTHER_PDF_DOC="yes"
else
  BUILD_OTHER_PDF_DOC="no (missing pdflatex)"
fi

184
185
186
187
188
189
if test "x$enable_org_export" != "x"; then
  BUILD_DYNARE_INTERNAL_DOC="yes"
else
  BUILD_DYNARE_INTERNAL_DOC="no (Org export not enabled)"
fi

190
191
if test "x$SPHINXBUILD" != "x"; then
  BUILD_DYNARE_HTML_MANUAL="yes"
192
  BUILD_DYNARE_PDF_MANUAL="yes"
193
else
194
195
  BUILD_DYNARE_HTML_MANUAL="no (missing sphinx-build)"
  BUILD_DYNARE_PDF_MANUAL="no (missing sphinx-build)"
196
197
fi

sebastien's avatar
sebastien committed
198
199
200
201
202
203
if test "x$OCTAVE" != "x"; then
  TESTSUITE_OCTAVE="yes"
else
  TESTSUITE_OCTAVE="no"
fi

204
if test "x$ax_blas_ok" = "xyes" -a "x$ax_lapack_ok" = "xyes"; then
sebastien's avatar
sebastien committed
205
206
  TESTSUITE_DYNAREPLUSPLUS="yes"
else
sebastien's avatar
sebastien committed
207
  TESTSUITE_DYNAREPLUSPLUS="no"
sebastien's avatar
sebastien committed
208
209
210
211
212
213
214
215
216
217
218
fi

AC_MSG_NOTICE([

Dynare is now configured for building the following components...

Binaries (with "make"):
 Dynare++:                              $BUILD_DYNAREPLUSPLUS

PDF documentation (with "make pdf"):
 Dynare reference manual:               $BUILD_DYNARE_PDF_MANUAL
219
 Beamer presentations:                  $BUILD_BEAMER_DOC
sebastien's avatar
sebastien committed
220
221
222
223
 Various other documents:               $BUILD_OTHER_PDF_DOC

HTML documentation (with "make html"):
 Dynare reference manual:               $BUILD_DYNARE_HTML_MANUAL
224
 Dynare internal doc:                   $BUILD_DYNARE_INTERNAL_DOC
sebastien's avatar
sebastien committed
225
226
227
228
229
230

Testsuites (run with "make check"):
 Dynare for Octave:                     $TESTSUITE_OCTAVE
 Dynare++:                              $TESTSUITE_DYNAREPLUSPLUS
])

sebastien's avatar
trunk:  
sebastien committed
231
AC_OUTPUT