* Rewrite preprocessor build system with automake
* Use new autoconf macros for flex/bison * Remove autoconf macro for dynare++ git-svn-id: https://www.dynare.org/svn/dynare/trunk@2911 ac1d8469-bf42-47a9-8791-bf33cf982152time-shift
parent
3bf1c45ddf
commit
9c3c314746
|
@ -0,0 +1,3 @@
|
|||
SUBDIRS = preprocessor doc
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
22
configure.ac
22
configure.ac
|
@ -20,7 +20,9 @@ dnl along with Dynare. If not, see <http://www.gnu.org/licenses/>.
|
|||
AC_PREREQ([2.63])
|
||||
AC_INIT([dynare], [4.1-unstable])
|
||||
AC_CONFIG_SRCDIR([preprocessor/DynareMain.cc])
|
||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
|
||||
# Use C++ for testing headers
|
||||
|
@ -41,17 +43,15 @@ case $host_os in
|
|||
;;
|
||||
esac
|
||||
|
||||
AC_CHECK_PROGS([FLEX], [flex])
|
||||
if test -z "$FLEX"; then
|
||||
AC_MSG_ERROR([No suitable flex found.])
|
||||
fi
|
||||
AC_PROG_RANLIB
|
||||
|
||||
AM_PROG_LEX
|
||||
AX_PROG_FLEX([], AC_MSG_ERROR([No suitable flex found.]))
|
||||
|
||||
AC_CHECK_HEADERS([FlexLexer.h], [], [AC_MSG_ERROR([Can't find FlexLexer.h])])
|
||||
|
||||
AC_CHECK_PROGS([BISON], [bison])
|
||||
if test -z "$BISON"; then
|
||||
AC_MSG_ERROR([No suitable bison found.])
|
||||
fi
|
||||
AC_PROG_YACC
|
||||
AX_PROG_BISON([], AC_MSG_ERROR([No suitable bison found.]))
|
||||
|
||||
AC_CHECK_HEADERS([boost/graph/adjacency_list.hpp], [], [AC_MSG_ERROR([Can't find Boost Graph Library])])
|
||||
AC_CHECK_HEADERS([boost/graph/max_cardinality_matching.hpp], [], [AC_MSG_ERROR([Your Boost version is too old. Please install a newer one.])])
|
||||
|
@ -89,9 +89,8 @@ then
|
|||
AX_MATLAB_ARCH
|
||||
fi
|
||||
|
||||
AX_DYNAREPP
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
preprocessor/macro/Makefile
|
||||
preprocessor/Makefile
|
||||
doc/Makefile
|
||||
doc/preprocessor/Makefile
|
||||
|
@ -99,6 +98,7 @@ AC_CONFIG_FILES([Makefile
|
|||
doc/userguide/Makefile
|
||||
tests/Makefile
|
||||
matlab/dynare_version.m
|
||||
windows/dynare-version.nsi])
|
||||
windows/dynare-version.nsi
|
||||
])
|
||||
|
||||
AC_OUTPUT
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
# ===========================================================================
|
||||
# http://www.nongnu.org/autoconf-archive/ax_prog_bison.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_PROG_BISON(ACTION-IF-TRUE,ACTION-IF-FALSE)
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check whether bison is the parser generator. Run ACTION-IF-TRUE if
|
||||
# successful, ACTION-IF-FALSE otherwise
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2009 Francesco Salvestrini <salvestrini@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation; either version 2 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
AC_DEFUN([AX_PROG_BISON], [
|
||||
AC_REQUIRE([AC_PROG_YACC])
|
||||
AC_REQUIRE([AC_PROG_SED])
|
||||
|
||||
AC_CACHE_CHECK([if bison is the parser generator],[ax_cv_prog_bison],[
|
||||
AS_IF([test "`echo \"$YACC\" | $SED 's,^.*\(bison\).*$,\1,'`" = "bison" ],[
|
||||
ax_cv_prog_bison=yes
|
||||
],[
|
||||
ax_cv_prog_bison=no
|
||||
])
|
||||
])
|
||||
AS_IF([test "$ax_cv_prog_bison" = yes],[
|
||||
:
|
||||
$1
|
||||
],[
|
||||
:
|
||||
$2
|
||||
])
|
||||
])
|
|
@ -0,0 +1,62 @@
|
|||
# ===========================================================================
|
||||
# http://www.nongnu.org/autoconf-archive/ax_prog_flex.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_PROG_FLEX(ACTION-IF-TRUE,ACTION-IF-FALSE)
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check whether flex is the scanner generator. Run ACTION-IF-TRUE if
|
||||
# successful, ACTION-IF-FALSE otherwise
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2009 Francesco Salvestrini <salvestrini@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation; either version 2 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
AC_DEFUN([AX_PROG_FLEX], [
|
||||
AC_REQUIRE([AM_PROG_LEX])
|
||||
AC_REQUIRE([AC_PROG_SED])
|
||||
|
||||
AC_CACHE_CHECK([if flex is the lexer generator],[ax_cv_prog_flex],[
|
||||
AS_IF([test "`echo \"$LEX\" | $SED 's,^.*\(flex\).*$,\1,'`" = "flex"],[
|
||||
ax_cv_prog_flex=yes
|
||||
],[
|
||||
ax_cv_prog_flex=no
|
||||
])
|
||||
])
|
||||
AS_IF([test "$ax_cv_prog_flex" = yes],[
|
||||
:
|
||||
$1
|
||||
],[
|
||||
:
|
||||
$2
|
||||
])
|
||||
])
|
|
@ -1,66 +0,0 @@
|
|||
dnl dynarepp.m4 --- check for Dynare++
|
||||
dnl
|
||||
dnl Copyright (C) 2009 Dynare Team
|
||||
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/>.
|
||||
dnl
|
||||
dnl Code:
|
||||
|
||||
# AX_DYNAREPP
|
||||
# ---------
|
||||
# Check for Dynare++.
|
||||
AC_DEFUN([AX_DYNAREPP],
|
||||
[dnl
|
||||
AC_PREREQ([2.63])
|
||||
ax_enable_dynarepp=
|
||||
AC_ARG_WITH([dynarepp], AC_HELP_STRING([--with-dynarepp=ARG], [path to Dynare++]),
|
||||
[case $withval in
|
||||
no)
|
||||
# Explicitly enable or disable Dynare++ but determine
|
||||
# Matlab prefix automatically.
|
||||
ax_enable_dynarepp=no
|
||||
;;
|
||||
*)
|
||||
# Enable Dynare++ and use ARG as the Dynare++ prefix.
|
||||
# ARG must be an existing directory.
|
||||
ax_enable_dynarepp=yes
|
||||
DYNAREPP=`cd "${withval-/}" > /dev/null 2>&1 && pwd`
|
||||
if test -z "$DYNAREPP" ; then
|
||||
AC_MSG_ERROR([invalid value '$withval' for --with-dynarepp])
|
||||
fi
|
||||
;;
|
||||
esac])
|
||||
AC_MSG_CHECKING([for Dynare++])
|
||||
if test x$ax_enable_dynarepp != xno ; then
|
||||
if test "${DYNAREPP+set}" = set && test -d "$DYNAREPP/kord" ; then
|
||||
ax_enable_dynarepp=yes
|
||||
elif test x$ax_enable_dynarepp = x ; then
|
||||
ax_enable_dynarepp=no
|
||||
else
|
||||
# Fail if Matlab was explicitly enabled.
|
||||
AC_MSG_RESULT([failure])
|
||||
AC_MSG_ERROR([check your Dynare++ setup])
|
||||
fi
|
||||
fi
|
||||
AC_MSG_RESULT([$ax_enable_dynarepp])
|
||||
AC_SUBST([DYNAREPP])
|
||||
])
|
||||
|
||||
dnl dynarepp.m4 ends here
|
||||
|
||||
dnl Local variables:
|
||||
dnl tab-width: 8
|
||||
dnl End:
|
|
@ -0,0 +1,62 @@
|
|||
SUBDIRS = macro
|
||||
|
||||
BUILT_SOURCES = DynareBison.hh stack.hh position.hh location.hh DynareBison.cc DynareFlex.cc
|
||||
|
||||
matlabdir = $(libdir)/matlab
|
||||
|
||||
matlab_PROGRAMS = dynare_m
|
||||
|
||||
dynare_m_SOURCES = \
|
||||
DynareFlex.ll \
|
||||
DynareBison.yy \
|
||||
ComputingTasks.cc \
|
||||
ComputingTasks.hh \
|
||||
ModelTree.cc \
|
||||
ModelTree.hh \
|
||||
StaticModel.cc \
|
||||
StaticModel.hh \
|
||||
StaticDllModel.cc \
|
||||
StaticDllModel.hh \
|
||||
DynamicModel.cc \
|
||||
DynamicModel.hh \
|
||||
NumericalConstants.cc \
|
||||
NumericalConstants.hh \
|
||||
NumericalInitialization.cc \
|
||||
NumericalInitialization.hh \
|
||||
Shocks.cc \
|
||||
Shocks.hh \
|
||||
SigmaeInitialization.cc \
|
||||
SigmaeInitialization.hh \
|
||||
SymbolTable.cc \
|
||||
SymbolTable.hh \
|
||||
SymbolList.cc \
|
||||
SymbolList.hh \
|
||||
ParsingDriver.cc \
|
||||
ParsingDriver.hh \
|
||||
DataTree.cc \
|
||||
DataTree.hh \
|
||||
ModFile.cc \
|
||||
ModFile.hh \
|
||||
Statement.cc \
|
||||
Statement.hh \
|
||||
ExprNode.cc \
|
||||
ExprNode.hh \
|
||||
MinimumFeedbackSet.cc \
|
||||
MinimumFeedbackSet.hh \
|
||||
IncidenceMatrix.cc \
|
||||
IncidenceMatrix.hh \
|
||||
BlockTriangular.cc \
|
||||
BlockTriangular.hh \
|
||||
DynareMain.cc \
|
||||
DynareMain.hh \
|
||||
DynareMain2.cc \
|
||||
DynareMain2.hh \
|
||||
CodeInterpreter.hh
|
||||
|
||||
dynare_m_LDADD = macro/libmacro.a
|
||||
|
||||
DynareFlex.cc: DynareFlex.ll
|
||||
$(LEX) -oDynareFlex.cc DynareFlex.ll
|
||||
|
||||
DynareBison.cc DynareBison.hh location.hh stack.hh position.hh: DynareBison.yy
|
||||
$(YACC) -o DynareBison.cc DynareBison.yy
|
|
@ -0,0 +1,17 @@
|
|||
noinst_LIBRARIES = libmacro.a
|
||||
|
||||
BUILT_SOURCES = MacroBison.hh stack.hh position.hh location.hh MacroBison.cc MacroFlex.cc
|
||||
|
||||
libmacro_a_SOURCES = \
|
||||
MacroFlex.ll \
|
||||
MacroBison.yy \
|
||||
MacroDriver.cc \
|
||||
MacroDriver.hh \
|
||||
MacroValue.cc \
|
||||
MacroValue.hh
|
||||
|
||||
MacroFlex.cc: MacroFlex.ll
|
||||
$(LEX) -oMacroFlex.cc MacroFlex.ll
|
||||
|
||||
MacroBison.cc MacroBison.hh location.hh stack.hh position.hh: MacroBison.yy
|
||||
$(YACC) -o MacroBison.cc MacroBison.yy
|
Loading…
Reference in New Issue