Dynare v4 on Opensuse

Hello!

I am new here, and I hope, that someone is able to help me. My Problem is, that I am trying to install dynare v4 on my Computer (OS: OPenSuse 11.1). I follow the steps as they are written in the dynarewiki:

  1. download dynare version 4 source (I downloaded Dynare version 4 (source code)
  2. compile preprocessor
  3. compile Dlls

The problems arise when I start compiling the preprocessor:

linux-0y8i:/home/basher/Desktop/dynare_v4/preprocessor # make
make -C macro
make[1]: Entering directory /home/basher/Desktop/dynare_v4/preprocessor/macro' bison --verbose -o MacroBison.cc MacroBison.yy flex -oMacroFlex.cc MacroFlex.ll g++ -Wall -O3 -MD -I include -c MacroFlex.cc g++ -Wall -O3 -MD -I include -c MacroBison.cc g++ -Wall -O3 -MD -I include -c MacroDriver.cc g++ -Wall -O3 -MD -I include -c MacroValue.cc ar crs libmacro.a MacroFlex.o MacroBison.o MacroDriver.o MacroValue.o make[1]: Leaving directory/home/basher/Desktop/dynare_v4/preprocessor/macro’
bison --verbose -o DynareBison.cc DynareBison.yy
mv DynareBison.hh location.hh stack.hh position.hh include/
flex -oDynareFlex.cc DynareFlex.ll
g++ -Wall -O3 -MD -I include -c DynareFlex.cc
g++ -Wall -O3 -MD -I include -c DynareBison.cc
g++ -Wall -O3 -MD -I include -c ComputingTasks.cc
g++ -Wall -O3 -MD -I include -c ModelTree.cc
ModelTree.cc: In member function ‘void ModelTree::writeOutput(std::ostream&) const’:
ModelTree.cc:3674: warning: suggest parentheses around && within ||
g++ -Wall -O3 -MD -I include -c NumericalConstants.cc
g++ -Wall -O3 -MD -I include -c NumericalInitialization.cc
g++ -Wall -O3 -MD -I include -c Shocks.cc
g++ -Wall -O3 -MD -I include -c SigmaeInitialization.cc
SigmaeInitialization.cc: In member function ‘virtual void SigmaeStatement::writeOutput(std::ostream&, const std::string&) const’:
SigmaeInitialization.cc:65: warning: ‘ir1’ may be used uninitialized in this function
SigmaeInitialization.cc:64: warning: ‘ic1’ may be used uninitialized in this function
g++ -Wall -O3 -MD -I include -c SymbolTable.cc
SymbolTable.cc: In member function ‘void SymbolTable::addSymbol(const std::string&, Type, const std::string&)’:
SymbolTable.cc:42: warning: ‘id’ may be used uninitialized in this function
g++ -Wall -O3 -MD -I include -c SymbolList.cc
g++ -Wall -O3 -MD -I include -c VariableTable.cc
g++ -Wall -O3 -MD -I include -c ParsingDriver.cc
g++ -Wall -O3 -MD -I include -c DataTree.cc
g++ -Wall -O3 -MD -I include -c ModFile.cc
g++ -Wall -O3 -MD -I include -c Statement.cc
g++ -Wall -O3 -MD -I include -c ExprNode.cc
g++ -Wall -O3 -MD -I include -c ModelNormalization.cc
g++ -Wall -O3 -MD -I include -c ModelBlocks.cc
g++ -Wall -O3 -MD -I include -c BlockTriangular.cc
g++ -Wall -O3 -MD -I include -c Model_Graph.cc
g++ -Wall -O3 -MD -I include -c SymbolGaussElim.cc
g++ -Wall -O3 -MD -I include -c DynareMain.cc
g++ -Wall -O3 -MD -I include -c DynareMain2.cc
g++ -Wall -O3 -o dynare_m DynareFlex.o DynareBison.o ComputingTasks.o ModelTree.o NumericalConstants.o NumericalInitialization.o Shocks.o SigmaeInitialization.o SymbolTable.o SymbolList.o VariableTable.o ParsingDriver.o DataTree.o ModFile.o Statement.o ExprNode.o ModelNormalization.o ModelBlocks.o BlockTriangular.o Model_Graph.o SymbolGaussElim.o DynareMain.o DynareMain2.o -Lmacro -lmacro
cp dynare_m …/matlab/

I do not really know, if there is something going wrong, but it has to, because when I start Octave (v 3.0.2) and want to build the Dlls, the following happens:

octave:4> cd /home/bjoern/Desktop/dynare_v4/mex/sources
octave:5> build_octave
gcc -c -DH5_USE_16_API -fPIC -I/usr/include/octave-3.0.2 -I/usr/include/octave-3.0.2/octave -mieee-fp -march=i586 -mtune=i686 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -I. -DNO_BLAS_H -DNO_LAPACK_H -DOCTAVE mjdgges/mjdgges.c -o mjdgges/mjdgges.o
mjdgges/mjdgges.c:21:17: error: mex.h: Datei oder Verzeichnis nicht gefunden
mjdgges/mjdgges.c: In function ‘mjdgges’:
mjdgges/mjdgges.c:50: warning: implicit declaration of function ‘mxCalloc’
mjdgges/mjdgges.c:50: warning: assignment makes pointer from integer without a cast
mjdgges/mjdgges.c:51: warning: assignment makes pointer from integer without a cast
mjdgges/mjdgges.c:52: warning: assignment makes pointer from integer without a cast
mjdgges/mjdgges.c:54: warning: assignment makes pointer from integer without a cast
mjdgges/mjdgges.c:55: warning: assignment makes pointer from integer without a cast
mjdgges/mjdgges.c:57: warning: assignment makes pointer from integer without a cast
mjdgges/mjdgges.c: At top level:
mjdgges/mjdgges.c:80: error: expected declaration specifiers or ‘…’ before ‘mxArray’
mjdgges/mjdgges.c:81: warning: type defaults to ‘int’ in declaration of ‘mxArray’
mjdgges/mjdgges.c:81: error: expected ‘;’, ‘,’ or ‘)’ before ‘’ token
g++ -c -DH5_USE_16_API -fPIC -I/usr/include/octave-3.0.2 -I/usr/include/octave-3.0.2/octave -mieee-fp -march=i586 -mtune=i686 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -I. -DNO_BLAS_H -DNO_LAPACK_H -DOCTAVE kronecker/sparse_hessian_times_B_kronecker_C.cc -o kronecker/sparse_hessian_times_B_kronecker_C.o
kronecker/sparse_hessian_times_B_kronecker_C.cc:27:17: error: mex.h: Datei oder Verzeichnis nicht gefunden
kronecker/sparse_hessian_times_B_kronecker_C.cc:34: error: variable or field ‘sparse_hessian_times_B_kronecker_B’ declared void
kronecker/sparse_hessian_times_B_kronecker_C.cc:34: error: ‘mwIndex’ was not declared in this scope
kronecker/sparse_hessian_times_B_kronecker_C.cc:34: error: ‘isparseA’ was not declared in this scope
kronecker/sparse_hessian_times_B_kronecker_C.cc:34: error: ‘mwIndex’ was not declared in this scope
kronecker/sparse_hessian_times_B_kronecker_C.cc:34: error: ‘jsparseA’ was not declared in this scope
kronecker/sparse_hessian_times_B_kronecker_C.cc:34: error: expected primary-expression before ‘double’
kronecker/sparse_hessian_times_B_kronecker_C.cc:35: error: expected primary-expression before ‘double’
kronecker/sparse_hessian_times_B_kronecker_C.cc:35: error: expected primary-expression before ‘double’
kronecker/sparse_hessian_times_B_kronecker_C.cc:35: error: ‘mwSize’ was not declared in this scope
kronecker/sparse_hessian_times_B_kronecker_C.cc:35: error: ‘mwSize’ was not declared in this scope
kronecker/sparse_hessian_times_B_kronecker_C.cc:35: error: ‘mwSize’ was not declared in this scope
kronecker/sparse_hessian_times_B_kronecker_C.cc:35: error: ‘mwSize’ was not declared in this scope
g++ -c -DH5_USE_16_API -fPIC -I/usr/include/octave-3.0.2 -I/usr/include/octave-3.0.2/octave -mieee-fp -march=i586 -mtune=i686 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -I. -DNO_BLAS_H -DNO_LAPACK_H -DOCTAVE kronecker/A_times_B_kronecker_C.cc -o kronecker/A_times_B_kronecker_C.o
kronecker/A_times_B_kronecker_C.cc:26:17: error: mex.h: Datei oder Verzeichnis nicht gefunden
kronecker/A_times_B_kronecker_C.cc: In function ‘void full_A_times_kronecker_B_C(double
, double*, double*, double*, lapack_int, int, int, int, lapack_int, lapack_int)’:
kronecker/A_times_B_kronecker_C.cc:53: warning: comparison between signed and unsigned integer expressions
kronecker/A_times_B_kronecker_C.cc:56: warning: comparison between signed and unsigned integer expressions
kronecker/A_times_B_kronecker_C.cc: In function ‘void full_A_times_kronecker_B_B(double*, double*, double*, lapack_int, int, lapack_int, lapack_int)’:
kronecker/A_times_B_kronecker_C.cc:73: warning: comparison between signed and unsigned integer expressions
kronecker/A_times_B_kronecker_C.cc:76: warning: comparison between signed and unsigned integer expressions
kronecker/A_times_B_kronecker_C.cc: At global scope:
kronecker/A_times_B_kronecker_C.cc:88: error: ‘mxArray’ has not been declared
kronecker/A_times_B_kronecker_C.cc:88: error: expected ‘,’ or ‘…’ before ‘’ token
kronecker/A_times_B_kronecker_C.cc:88: error: ISO C++ forbids declaration of ‘mxArray’ with no type
kronecker/A_times_B_kronecker_C.cc: In function ‘void mexFunction(int, int**, int, int)’:
kronecker/A_times_B_kronecker_C.cc:93: error: ‘mexErrMsgTxt’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:97: error: ‘mexErrMsgTxt’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:100: error: ‘mwSize’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:100: error: expected `;’ before ‘mA’
kronecker/A_times_B_kronecker_C.cc:101: error: ‘mA’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:101: error: ‘prhs’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:101: error: ‘mxGetM’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:102: error: ‘nA’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:102: error: ‘mxGetN’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:103: error: ‘mB’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:104: error: ‘nB’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:107: error: ‘mC’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:108: error: ‘nC’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:111: error: ‘mexErrMsgTxt’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:118: error: ‘mexErrMsgTxt’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:123: error: ‘mxGetPr’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:133: error: ‘nC’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:133: error: ‘mxREAL’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:133: error: ‘mxCreateDoubleMatrix’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:137: error: ‘mxREAL’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:137: error: ‘mxCreateDoubleMatrix’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:147: error: ‘mC’ was not declared in this scope
kronecker/A_times_B_kronecker_C.cc:147: error: ‘nC’ was not declared in this scope
g++ -c -DH5_USE_16_API -fPIC -I/usr/include/octave-3.0.2 -I/usr/include/octave-3.0.2/octave -mieee-fp -march=i586 -mtune=i686 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -I. -Igensylv/cc -DNO_BLAS_H -DNO_LAPACK_H -DOCTAVE -DMATLAB gensylv/matlab/gensylv.cpp -o gensylv/matlab/gensylv.o
gensylv/matlab/gensylv.cpp:25:17: error: mex.h: Datei oder Verzeichnis nicht gefunden
In file included from gensylv/cc/SylvMemory.h:27,
from gensylv/cc/GeneralSylvester.h:28,
from gensylv/matlab/gensylv.cpp:31:
gensylv/cc/SylvParams.h:86: error: ISO C++ forbids declaration of ‘mxArray’ with no type
gensylv/cc/SylvParams.h:86: error: expected ‘;’ before ‘
’ token
gensylv/cc/SylvParams.h:98: error: ISO C++ forbids declaration of ‘mxArray’ with no type
gensylv/cc/SylvParams.h:98: error: expected ‘;’ before ‘’ token
gensylv/cc/SylvParams.h:110: error: ISO C++ forbids declaration of ‘mxArray’ with no type
gensylv/cc/SylvParams.h:110: error: expected ‘;’ before ‘
’ token
gensylv/cc/SylvParams.h:122: error: ISO C++ forbids declaration of ‘mxArray’ with no type
gensylv/cc/SylvParams.h:122: error: expected ‘;’ before ‘’ token
gensylv/cc/SylvParams.h:170: error: ISO C++ forbids declaration of ‘mxArray’ with no type
gensylv/cc/SylvParams.h:170: error: expected ‘;’ before ‘
’ token
gensylv/matlab/gensylv.cpp: In function ‘void gen_sylv_solve(int, int, int, int, const double*, const double*, const double*, double*)’:
gensylv/matlab/gensylv.cpp:45: error: ‘mexErrMsgTxt’ was not declared in this scope
gensylv/matlab/gensylv.cpp: At global scope:
gensylv/matlab/gensylv.cpp:52: error: ‘mxArray’ has not been declared
gensylv/matlab/gensylv.cpp: In function ‘void gen_sylv_solve_and_check(int, int, int, int, const double*, const double*, const double*, const double*, double*, int*&)’:
gensylv/matlab/gensylv.cpp:58: error: ‘class SylvParams’ has no member named ‘createStructArray’
gensylv/matlab/gensylv.cpp:62: error: ‘mexErrMsgTxt’ was not declared in this scope
gensylv/matlab/gensylv.cpp: At global scope:
gensylv/matlab/gensylv.cpp:66: error: expected ‘,’ or ‘…’ before ‘’ token
gensylv/matlab/gensylv.cpp:68: error: ISO C++ forbids declaration of ‘mwSize’ with no type
gensylv/matlab/gensylv.cpp: In function ‘void checkDimensions(int)’:
gensylv/matlab/gensylv.cpp:70: error: ‘Adims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:71: error: ‘mexErrMsgTxt’ was not declared in this scope
gensylv/matlab/gensylv.cpp:72: error: ‘Adims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:72: error: ‘Bdims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:73: error: ‘mexErrMsgTxt’ was not declared in this scope
gensylv/matlab/gensylv.cpp:74: error: ‘Adims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:74: error: ‘Ddims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:75: error: ‘mexErrMsgTxt’ was not declared in this scope
gensylv/matlab/gensylv.cpp:76: error: ‘Cdims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:77: error: ‘mexErrMsgTxt’ was not declared in this scope
gensylv/matlab/gensylv.cpp:78: error: ‘Bdims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:79: error: ‘mexErrMsgTxt’ was not declared in this scope
gensylv/matlab/gensylv.cpp:80: error: ‘Ddims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:80: error: ‘Cdims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:80: error: ‘order’ was not declared in this scope
gensylv/matlab/gensylv.cpp:81: error: ‘mexErrMsgTxt’ was not declared in this scope
gensylv/matlab/gensylv.cpp: At global scope:
gensylv/matlab/gensylv.cpp:85: error: ‘mxArray’ has not been declared
gensylv/matlab/gensylv.cpp:86: error: expected ‘,’ or ‘…’ before ‘
’ token
gensylv/matlab/gensylv.cpp:86: error: ISO C++ forbids declaration of ‘mxArray’ with no type
gensylv/matlab/gensylv.cpp: In function ‘void mexFunction(int, int**, int, int)’:
gensylv/matlab/gensylv.cpp:89: error: ‘mexErrMsgTxt’ was not declared in this scope
gensylv/matlab/gensylv.cpp:91: error: ‘mexErrMsgTxt’ was not declared in this scope
gensylv/matlab/gensylv.cpp:93: error: ‘prhs’ was not declared in this scope
gensylv/matlab/gensylv.cpp:93: error: ‘mxGetScalar’ was not declared in this scope
gensylv/matlab/gensylv.cpp:94: error: expected initializer before ‘’ token
gensylv/matlab/gensylv.cpp:95: error: expected initializer before ‘
’ token
gensylv/matlab/gensylv.cpp:96: error: expected initializer before ‘’ token
gensylv/matlab/gensylv.cpp:97: error: expected initializer before ‘
’ token
gensylv/matlab/gensylv.cpp:98: error: expected initializer before ‘’ token
gensylv/matlab/gensylv.cpp:99: error: expected initializer before ‘
’ token
gensylv/matlab/gensylv.cpp:100: error: expected initializer before ‘’ token
gensylv/matlab/gensylv.cpp:101: error: expected initializer before ‘
’ token
gensylv/matlab/gensylv.cpp:102: error: ‘Adims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:102: error: ‘Bdims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:102: error: ‘Cdims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:102: error: ‘Ddims’ was not declared in this scope
gensylv/matlab/gensylv.cpp:106: error: ‘X’ was not declared in this scope
gensylv/matlab/gensylv.cpp:106: error: ‘mxREAL’ was not declared in this scope
gensylv/matlab/gensylv.cpp:106: error: ‘mxCreateDoubleMatrix’ was not declared in this scope
gensylv/matlab/gensylv.cpp:108: error: ‘mxGetPr’ was not declared in this scope
gensylv/matlab/gensylv.cpp:109: error: ‘D’ was not declared in this scope
gensylv/matlab/gensylv.cpp:114: error: ‘A’ was not declared in this scope
gensylv/matlab/gensylv.cpp:114: error: ‘B’ was not declared in this scope
gensylv/matlab/gensylv.cpp:114: error: ‘C’ was not declared in this scope
gensylv/matlab/gensylv.cpp:118: error: ‘A’ was not declared in this scope
gensylv/matlab/gensylv.cpp:118: error: ‘B’ was not declared in this scope
gensylv/matlab/gensylv.cpp:118: error: ‘C’ was not declared in this scope
g++ -c -DH5_USE_16_API -fPIC -I/usr/include/octave-3.0.2 -I/usr/include/octave-3.0.2/octave -mieee-fp -march=i586 -mtune=i686 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -I. -Isimulate -I…/…/preprocessor/include -DNO_BLAS_H -DNO_LAPACK_H -DOCTAVE simulate/simulate.cc -o simulate/simulate.o
In file included from simulate/SparseMatrix.hh:28,
from simulate/Interpreter.hh:31,
from simulate/simulate.hh:35,
from simulate/simulate.cc:28:
simulate/Mem_Mngr.hh:25:17: error: mex.h: Datei oder Verzeichnis nicht gefunden
simulate/simulate.cc:57: error: ‘mxArray’ has not been declared
simulate/simulate.cc:57: error: expected ‘,’ or ‘…’ before ‘*’ token
simulate/simulate.cc:57: error: ISO C++ forbids declaration of ‘mxArray’ with no type
simulate/simulate.cc: In function ‘void mexFunction(int, int**, int, int)’:
simulate/simulate.cc:59: error: ‘M_’ was not declared in this scope
simulate/simulate.cc:59: error: ‘oo_’ was not declared in this scope
simulate/simulate.cc:59: error: ‘options_’ was not declared in this scope
simulate/simulate.cc:67: error: ‘mexGetVariable’ was not declared in this scope
simulate/simulate.cc:70: error: ‘mexPrintf’ was not declared in this scope
simulate/simulate.cc:71: error: ‘mexEvalString’ was not declared in this scope
simulate/simulate.cc:72: error: ‘mexErrMsgTxt’ was not declared in this scope
simulate/simulate.cc:78: error: ‘mexPrintf’ was not declared in this scope
simulate/simulate.cc:79: error: ‘mexEvalString’ was not declared in this scope
simulate/simulate.cc:80: error: ‘mexErrMsgTxt’ was not declared in this scope
simulate/simulate.cc:85: error: ‘mexPrintf’ was not declared in this scope
simulate/simulate.cc:86: error: ‘mexEvalString’ was not declared in this scope
simulate/simulate.cc:87: error: ‘mexErrMsgTxt’ was not declared in this scope
simulate/simulate.cc:90: error: ‘mxGetFieldNumber’ was not declared in this scope
simulate/simulate.cc:90: error: ‘mxGetFieldByNumber’ was not declared in this scope
simulate/simulate.cc:90: error: ‘mxGetPr’ was not declared in this scope
simulate/simulate.cc:93: error: ‘mxGetM’ was not declared in this scope
simulate/simulate.cc:96: error: ‘mxGetN’ was not declared in this scope
simulate/simulate.cc:106: error: ‘mxa’ was not declared in this scope
simulate/simulate.cc:109: error: ‘mxCalloc’ was not declared in this scope
simulate/simulate.cc:111: error: ‘mxGetString’ was not declared in this scope
simulate/simulate.cc:113: error: ‘mexWarnMsgTxt’ was not declared in this scope
simulate/simulate.cc:124: error: ‘mxMalloc’ was not declared in this scope
simulate/simulate.cc:167: error: ‘mexPrintf’ was not declared in this scope
simulate/simulate.cc:174: error: ‘mxREAL’ was not declared in this scope
simulate/simulate.cc:174: error: ‘mxCreateDoubleMatrix’ was not declared in this scope
simulate/simulate.cc:181: error: ‘mxFree’ was not declared in this scope
simulate/simulate.cc:183: error: ‘mxFree’ was not declared in this scope
simulate/simulate.cc:185: error: ‘mxFree’ was not declared in this scope
simulate/simulate.cc:187: error: ‘mxFree’ was not declared in this scope
Compiling mjdgges…
Compiling sparse_hessian_times_B_kronecker_C…
Compiling A_times_B_kronecker_C…
Compiling gensylv…
Compiling simulate…

It seems to me, that there are too many errors. I am still new on all this linux stuff, so I hope someone can help me. I am really desperate!

Thanks in advance

basher

Dear Basher,

the compilation of the preprocessor went OK, so you should be able to use most features of Dynare without the DLLs.
It will only be slower.
The errors that you encounter while compiling the DLLs come from the fact that you are missing the Octave files necessary to compile MEX functions.
On Debian, I need to get package octave3.2-headers in order to get these files.

Hope it helps

Michel

Wow! Thanks a lot! :smiley: :smiley:

It is working right now. I have just installed the missing packages and now it works perfectly!

Thank you very much!