Archived OpenModelica forums. Posting is disabled.

Alternative forums include GitHub discussions or StackOverflow (make sure to read the Stack Overflow rules; you need to have well-formed questions)


Forgot password? | Forgot username? | Register
  • Index
  • » Users
  • » stephen_bosch
  • » Profile

Posts

Posts

Good news! OpenModelica now (mostly - I had to leave out OMOptim and PythonInterface) builds on my system, and I have a working OpenModelica Gentoo ebuild now. (Though I haven't compiled any models yet, that's the next step).

I will see about adding this to the Gentoo science overlay.

The linked webpage does not use the term "deprecated", but the relevant paragraph has been there since 2002. This was to give people lots of time to make the change, and some versions of autoconf (notably 1.4) only worked with configure.in (autoconf 1.4 is now very old).

Did you look at the other links? Support for configure.in *is* going away, so whether one wants to call it deprecated or something else doesn't really matter. When support is removed, the build will break.

sjoelund.se wrote:


My man-page says:
Generate  a configuration script from a TEMPLATE-FILE if given, or `configure.ac' if present, or else `configure.in'.

Nothing about deprecation.

Yes, you are right, the man page doesn't mention the future plans. However, the on-line documentation has contained a warning since at least 2002:

Previous versions of Autoconf promoted the name `configure.in', which is somewhat ambiguous (the tool needed to process this file is not described by its extension), and introduces a slight confusion with `config.h.in' and so on (for which `.in' means "to be processed by configure"). Using `configure.ac' is now preferred.

There are now concrete plans to eliminate support for configure.in starting with autoconf 2.71.

Also, Automake 2.0 will drop support for configure.in:

  - Automake 2.0 will drop support for the long-deprecated 'configure.in' name for the Autoconf input file.  You are advised to start using the recommended name 'configure.ac' instead, ASAP.

So the assertion that configure.in is "long-deprecated" is not simply mine alone. I think their advice is pretty clear.

Given that all we're talking about is a change in the filename, why wouldn't we fix this now? Thinking ahead reduces headache later and reduces confusion for people who are new to OpenModelica.

sjoelund.se wrote:

Yes, the download statistics say a lot of people use the Ubuntu and Debian packages. Support emails suggest OSX users are most common, but they have the fewest downloads.

That's good news. Are the Ubuntu and Debian packages also created from the nightly builds?

sjoelund.se wrote:

OMOptim and the other clients will be moved to separate repositories when we split the version control.

For when is this planned? Has any thought been given to switching to git for version control?

sjoelund.se wrote:

The README is not so outdated. it works just fine in Ubuntu current/smile

Still, I think it would benefit from some cleanup. Would you accept a modified README from me?

sjoelund.se wrote:

The OSX builds are created by running: sudo -n /opt/openmodelica/bin/port -v mpkg openmodelica-$TARGET $CHOSEN_VARIANT || exit 1
And some more to clean, upgrade, upload, etc.

How would I get /opt/openmodelica/bin/port?

Ok, it seems to build ok (I haven't tested the binaries yet because I am trying to build a Gentoo package).

I noticed a couple of things during this process that I believe need attention.

First, it wasn't really clear that OMOptim is unmaintained, so I wasted a lot of time setting up paradisEO. This could be better documented. (Do we even need it?)

Also, configure.in is very, very deprecated. We can expect this to stop working entirely pretty soon. This should be updated to configure.ac.

Also -- and I am sure you are aware of this -- the README is horribly outdated.

Is anyone using the Ubuntu or Debian packages? Are these created from the nightly builds? How are the Mac versions created?

If I am to integrate OpenModelica into Gentoo, then these things will have to be cleaned up. I am happy to help to the extent that I can, but I'm far from an expert. I'd have to work with someone more experienced with OpenModelica (and particularly with the build environment) to make sure I don't break anything that people are depending on, plus somebody to vet any changes to the README. It would be helpful to communicate with someone who is using OpenModelica in Linux on a regular basis, even better if that person is also compiling from sources.

I'm using ParadisEO-2.0.1, because that's the only one that I could find on the INRIA website.

I saw the note about the old beta, but I assumed that the README must not have been updated, because that version is no longer available. Also, I'm running gcc 4.8.4 and haven't used 4.4 in years, I think (though I see now that it is still available).

The thing is: this worked before when I used the included openblas. I was able to build both omc and mosh without errors. Only qtclients failed to build. You're sure paradisEO-2.0.1 won't work?

(I didn't get as far as actually testing the binaries, so perhaps it would have blown up then.)

Ok. Some progress. I seem to have made it past the errors with LAPACK and BLAS.

Now OMOptim fails to build, because it can't find eo (from paradiseo):

Code:

g++ -c -pipe -O2 -w -fPIC -D_REENTRANT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I../../3rdParty/qwt/src -I../../OMOptimBasis/build/release/generatedfiles/ui -Irelease/generatedfiles/ui -I. -I.. -I../.. -I../Core -I../GUI -I../Vld -I../Core/Dymola -I../Core/FileData -I../Core/Infos -I../Core/Modelica -I../Core/OMC -I../Core/OpenModelica -I../Core/Problems -I../Core/Tools -I../Core/Units -I../GUI/Dialogs -I../GUI/Plots -I../GUI/Resources -I../GUI/Scene -I../GUI/Tabs -I../GUI/Tools -I../GUI/Views -I../GUI/Widgets -I../Core/Optim -I../Core/Optim/EA -I../Core/Optim/MILP -I../Core/Optim/EA/Checkpoints -I../Core/Optim/EA/Chromosome -I../Core/Optim/EA/Crossover -I../Core/Optim/EA/Evaluations -I../Core/Optim/EA/Init -I../Core/Optim/EA/Monitor -I../Core/Optim/EA/Mutations -I../Core/Optim/EA/NSGA2 -I../Core/Optim/EA/Results -I../Core/Optim/EA/SPEA2 -I../Core/Optim/EA/SPEA2Adaptative -I../Core/Optim/EA/SA1 -I../Core/Optim/EA/PSO -I../../OMOptimBasis -I../../OMOptimBasis/FileData -I../../OMOptimBasis/GUI -I../../OMOptimBasis/GUI/Tools -I../../OMOptimBasis/GUI/Dialogs -I../../OMOptimBasis/GUI/Widgets -I../../OMOptimBasis/Infos -I../../OMOptimBasis/Units -I../../OMOptimBasis/Tools -I../../OMOptimBasis/Problems -Irelease/generatedfiles/moc -Irelease/generatedfiles/ui -o release/generatedfiles/Optimization.o ../Core/Problems/Optimization.cpp

In file included from ../Core/Optim/EA/EA:2:0,
                 from ../Core/Problems/Optimization.cpp:41:
../Core/Optim/EA/NSGA2/NSGA2.h:45:14: fatal error: eo: No such file or directory
#include <eo>
              ^
compilation terminated.
MakefileLib:2577: recipe for target 'release/generatedfiles/Optimization.o' failed
make[2]: *** [release/generatedfiles/Optimization.o] Error 1
make[2]: Leaving directory '/home/sfbosch/src/modelica/openmodelica/OMOptim/build'
Makefile.unix:21: recipe for target 'OMOptimLib' failed
make[1]: *** [OMOptimLib] Error 2
make[1]: Leaving directory '/home/sfbosch/src/modelica/openmodelica/OMOptim/build'
Makefile:128: recipe for target 'omoptim' failed
make: *** [omoptim] Error 2

When I used the built-in openblas, this built successfully (while the qtclients wouldn't). I have paradiseo installed, and I'm passing the path to configure, which tests successfully also:

Code:

$ ./configure --prefix=/usr --with-lapack="-lreflapack -lrefblas" --with-omniORB --with-paradiseo=/usr/include/paradiseo/ --enable-python-interface

Code:

checking for paradisEO... /usr/include/paradiseo/

checking for revision... 25593

eo is here:

Code:

$ ls -liah /usr/include/paradiseo/eo/eo

1328334 -rw-r--r-- 1 root root 5,6K  3. Nov 2012  /usr/include/paradiseo/eo/eo

One thing that has changed is that I did an svn update this afternoon.

Ok. This makes sense, the packages come from different repositories. I'll try using LAPACK from the same repo as BLAS.

I did run make clean prior to building.

Here is the error:

Code:

gcc build/_main.o -Wl,-z,origin -Wl,-rpath,'$ORIGIN/../lib/omc' -Wl,-rpath,'$ORIGIN' -g -O2 -fno-stack-protector -fPIC -I"/home/sfbosch/src/modelica/openmodelica/build/include/omc/c"  -DADD_METARECORD_DEFINITIONS= -o build/omc -L.  -Lbuild/ -L"/home/sfbosch/src/modelica/openmodelica/build/lib/omc" -lomparse -lomcruntime -lOpenModelicaRuntimeC -lModelicaExternalC -lantlr3 -lomniORB4 -lomnithread -lpthread -L/home/sfbosch/src/modelica/openmodelica/3rdParty/FMIL/install/lib -lfmilib -L/home/sfbosch/src/modelica/openmodelica/3rdParty/graphstream/gs-netstream/c++/ -lnetstream    -llapack -lrefblas -lomcgc  -lpthread -lm -ldl  -lstdc++ -rdynamic  -llpsolve55 -lcolamd -lm -ldl   -L/usr/lib/omc -lmetis -lexpat -lOpenModelicaCompiler

/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.4/../../../../x86_64-pc-linux-gnu/bin/ld: warning: libblas.so.0, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.4/../../../../lib64/liblapack.so, not found (try using -rpath or -rpath-link)
cp -a build/OpenModelicaScriptingAPI.h /home/sfbosch/src/modelica/openmodelica/build/include/omc/scripting-API
cp -a build/omc /home/sfbosch/src/modelica/openmodelica/build/bin/
cp -a /home/sfbosch/src/modelica/openmodelica/build/lib/omc/libOpenModelicaCompiler.so /home/sfbosch/src/modelica/openmodelica/build/bin/
make[3]: Leaving directory '/home/sfbosch/src/modelica/openmodelica/Compiler/boot'
Bootstrapping phase 1/3 completed
make -f Makefile clean OMC=../../build/bin/omc
make[3]: Entering directory '/home/sfbosch/src/modelica/openmodelica/Compiler/boot'
rm -rf build/
rm -f Makefile.sources LoadCompilerInterface.mos Makefile.depends
make[3]: Leaving directory '/home/sfbosch/src/modelica/openmodelica/Compiler/boot'
make -f Makefile generate-files-in-steps OMC=../../build/bin/omc
make[3]: Entering directory '/home/sfbosch/src/modelica/openmodelica/Compiler/boot'
make -f Makefile templates scripting
make[4]: Entering directory '/home/sfbosch/src/modelica/openmodelica/Compiler/boot'
make -f Makefile --no-print-directory -C /home/sfbosch/src/modelica/openmodelica/Compiler/Template
** AbsynDumpTpl template compilation **
../../build/bin/omc AbsynDumpTpl.tpl > AbsynDumpTpl.mo.log || (cat AbsynDumpTpl.mo.log && false)
../../build/bin/omc: error while loading shared libraries: libblas.so.0: cannot open shared object file: No such file or directory
Makefile.common:8: recipe for target 'AbsynDumpTpl.mo' failed
make[5]: *** [AbsynDumpTpl.mo] Error 1
Makefile.common:62: recipe for target 'templates' failed
make[4]: *** [templates] Error 2
make[4]: Leaving directory '/home/sfbosch/src/modelica/openmodelica/Compiler/boot'
Makefile.common:22: recipe for target 'generate-files-in-steps' failed
make[3]: *** [generate-files-in-steps] Error 2
make[3]: Leaving directory '/home/sfbosch/src/modelica/openmodelica/Compiler/boot'
Makefile.common:35: recipe for target 'bootstrap-from-tarball' failed
make[2]: *** [bootstrap-from-tarball] Error 2
make[2]: Leaving directory '/home/sfbosch/src/modelica/openmodelica/Compiler/boot'
Makefile.common:14: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/sfbosch/src/modelica/openmodelica/Compiler/boot'
Makefile:137: recipe for target 'omc-bootstrapped' failed
make: *** [omc-bootstrapped] Error 2

I'm wondering if my LAPACK is incompatible with my installed BLAS.

Ok. It appears that it detects LAPACK, but not BLAS; on this system, the BLAS libraries are called refblas, so if I use the configure script like so

Code:

./configure --prefix=/usr --with-lapack="-llapack -lrefblas" --with-omniORB --with-paradiseo=/usr/include/paradiseo/ --enable-python-interface

then it configures successfully. I am starting to understand how the test works.

Unfortunately, now the build fails in "make omc" because at some point it looks for libblas.so.0 and can't find it. What I can't understand is, if I've told it use librefblas.so.0 and the configure tests succeed, why is it now looking for libblas.so.0?

Sure enough, the link was broken.

Are you using autotools with pkg-config?

Thank you for the hint. I tried omitting --with-lapack once before, and I get the same error. It seems the test does in fact fail:

Code:

checking LAPACK/BLAS flags... configure: error: dgesv (LAPACK) linking failed using -llapack -lblas

(It would be helpful to include the quotes in the configure help, if possible.)

Here's the relevant part of config.log:

Code:

configure:6098: gcc -o conftest -g -O2 -fno-stack-protector -fPIC   conftest.c -llapack -lblas >&5

/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.4/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lblas
collect2: error: ld returned 1 exit status
configure:6098: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "OpenModelica"
| #define PACKAGE_TARNAME "openmodelica"
| #define PACKAGE_VERSION "dev"
| #define PACKAGE_STRING "OpenModelica dev"
| #define PACKAGE_BUGREPORT "https://trac.openmodelica.org/OpenModelica"
| #define PACKAGE_URL "https://openmodelica.org"
| #define YYTEXT_POINTER 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_VPRINTF 1
| #define HAVE_GETCWD 1
| #define HAVE_SELECT 1
| #define HAVE_STRDUP 1
| #define HAVE_STRERROR 1
| #define HAVE_SCANDIR 1
| /* end confdefs.h.  */
|
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char dgesv_ ();
| int
| main ()
| {
| return dgesv_ ();
|   ;
|   return 0;
| }
configure:6101: error: dgesv (LAPACK) linking failed using -llapack -lblas

So it appears it is BLAS it cannot find, even though it is installed:

Code:

$ LANG=C eix -I blas

[I] sci-libs/blas-reference
     Available versions:  [M]20070226 [M]~20070226-r2 [M]**20070226-r3 ~20131116[1] (~)20131116-r1[1] **99999999[1] {doc int64 static-libs test ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}
     Installed versions:  20131116-r1[1](09:46:32 04/16/15)(-int64 -static-libs -test ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="64 -32 -x32")
     Homepage:            http://www.netlib.org/lapack/
     Description:         Reference implementation of BLAS

[I] sci-libs/openblas [1]
     Available versions:  ~0.2.8 ~0.2.11 (~)0.2.12 **9999 {dynamic int64 openmp static-libs threads ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}
     Installed versions:  0.2.12(10:01:58 04/16/15)(openmp threads -dynamic -int64 -static-libs ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="64 -32 -x32")
     Homepage:            http://xianyi.github.com/OpenBLAS/
     Description:         Optimized BLAS library based on GotoBLAS2

[I] virtual/blas
     Available versions:  1.0 ~2.1-r1[1] ~2.1-r2[1] (~)2.1-r3[1] {doc int64}
     Installed versions:  2.1-r3[1](09:46:48 04/16/15)(-doc -int64)
     Description:         Virtual for FORTRAN 77 BLAS implementation

[I] virtual/cblas
     Available versions:  1.0 ~2.0[1] ~2.0-r1[1] (~)2.0-r2[1] {int64}
     Installed versions:  2.0-r2[1](10:02:05 04/16/15)(-int64)
     Description:         Virtual for BLAS C implementation

[1] "science" /var/lib/layman/science

Found 4 matches.

There are two BLAS libraries installed. Gentoo sets symlinks with a selector tool called eselect. Currently, openblas-threads is selected:

Code:

$ eselect blas list

Available providers for blas:
  [1]   openblas-threads *
  [2]   reference

I have also tried it with reference selected and I get the same failure.

As this is a 64-bit system, the library is placed in the /usr/lib64 directory:

Code:


$ qlist openblas
/usr/share/doc/openblas-0.2.12/Changelog.txt.bz2
/usr/share/doc/openblas-0.2.12/CONTRIBUTORS.md.bz2
/usr/share/doc/openblas-0.2.12/GotoBLAS_04FAQ.txt.bz2
/usr/share/doc/openblas-0.2.12/GotoBLAS_05LargePage.txt.bz2
/usr/share/doc/openblas-0.2.12/GotoBLAS_06WeirdPerformance.txt.bz2
/usr/share/doc/openblas-0.2.12/GotoBLAS_01Readme.txt.bz2
/usr/share/doc/openblas-0.2.12/README.md.bz2
/usr/share/doc/openblas-0.2.12/BACKERS.md.bz2
/usr/share/doc/openblas-0.2.12/GotoBLAS_03FAQ.txt.bz2
/usr/include/openblas/f77blas.h
/usr/include/openblas/openblas_config.h
/usr/include/openblas/cblas.h
/usr/lib64/libopenblas_penrynp-r0.2.12.so
/usr/lib64/pkgconfig/openblas-threads.pc
/etc/env.d/alternatives/blas/openblas-threads/usr/lib64/pkgconfig/blas.pc
/etc/env.d/alternatives/blas/openblas-threads/_importance
/etc/env.d/alternatives/cblas/openblas-threads/usr/include/cblas.h
/etc/env.d/alternatives/cblas/openblas-threads/usr/lib64/pkgconfig/cblas.pc
/etc/env.d/alternatives/cblas/openblas-threads/_importance
/usr/lib64/libopenblas.so.0
/usr/lib64/libopenblas.so

I am assuming this is a path problem, since configure says it cannot find -lblas. But the library path should be set automatically when the package is installed. How can I manually replicate this test? Any other ideas?

I am trying to build OpenModelica from SVN sources on a 64-bit Gentoo Linux system.

The first problem is that the configure script does not seem to find my local LAPACK and BLAS libraries. configure --help says:

Code:

  --with-lapack=-llapack -lblas    (use -llapack -lblas to use system-provided version instead of OpenBLAS. Use openblas for automatically detected OpenBLAS. Use --with-lapack=openblas-NEHALEM or other OpenBLAS target to compile against a certain architecture. Note that you need to include BLAS in this.)

If do --with-lapack, I get

Code:

checking LAPACK/BLAS flags... configure: error: dgesv (LAPACK) linking failed using yes

If I do --with-lapack=-llapack -lblas (verbatim from configure --help) I get:

Code:

configure: error: unrecognized option: `-lblas'

If I do --with-lapack=-llapack-lblas I get:

Code:

checking LAPACK/BLAS flags... configure: error: dgesv (LAPACK) linking failed using -llapack-lblas

If I do --with-lapack=openblas, it configures successfully, but the compile of qtclients fails with this error:

Code:

make[2]: Entering directory '/home/sfbosch/src/modelica/openmodelica/OMEdit/OMEditGUI'

g++ -Wl,-O1 -rdynamic -o ../bin/OMEdit main.o backtrace.o Helper.o MainWindow.o OpenModelicaScriptingAPIQt.o OMCProxy.o StringHandler.o MessagesWidget.o LibraryTreeWidget.o ModelWidgetContainer.o ModelicaClassDialog.o OptionsDialog.o BaseEditor.o ModelicaTextEditor.o TransformationsEditor.o DebuggerSourceEditor.o TextEditor.o CEditor.o PlotWindowContainer.o Component.o ShapeAnnotation.o CornerItem.o LineAnnotation.o PolygonAnnotation.o RectangleAnnotation.o EllipseAnnotation.o TextAnnotation.o BitmapAnnotation.o ComponentProperties.o Transformation.o DocumentationWidget.o SimulationDialog.o SimulationOutputWidget.o SimulationProcessThread.o SimulationOutputHandler.o ImportFMUDialog.o VariablesWidget.o NotificationsDialog.o ShapePropertiesDialog.o OMDumpXML.o Utilities.o diff_match_patch.o TransformationsWidget.o CommandFactory.o GDBAdapter.o StackFramesWidget.o LocalsWidget.o ModelicaValue.o BreakpointMarker.o BreakpointsWidget.o BreakpointDialog.o DebuggerMainWindow.o AttachToProcessDialog.o ProcessListModel.o CrashReportDialog.o OMCOutputParser.o OMCOutputLexer.o moc_Helper.o moc_MainWindow.o moc_OpenModelicaScriptingAPIQt.o moc_OMCProxy.o moc_StringHandler.o moc_MessagesWidget.o moc_LibraryTreeWidget.o moc_ModelWidgetContainer.o moc_ModelicaClassDialog.o moc_OptionsDialog.o moc_BaseEditor.o moc_ModelicaTextEditor.o moc_TransformationsEditor.o moc_DebuggerSourceEditor.o moc_TextEditor.o moc_CEditor.o moc_PlotWindowContainer.o moc_Component.o moc_ShapeAnnotation.o moc_CornerItem.o moc_LineAnnotation.o moc_PolygonAnnotation.o moc_RectangleAnnotation.o moc_EllipseAnnotation.o moc_TextAnnotation.o moc_BitmapAnnotation.o moc_ComponentProperties.o moc_DocumentationWidget.o moc_SimulationDialog.o moc_SimulationOutputWidget.o moc_SimulationProcessThread.o moc_SimulationOutputHandler.o moc_ImportFMUDialog.o moc_VariablesWidget.o moc_NotificationsDialog.o moc_ShapePropertiesDialog.o moc_Utilities.o moc_TransformationsWidget.o moc_GDBAdapter.o moc_StackFramesWidget.o moc_LocalsWidget.o moc_ModelicaValue.o moc_BreakpointMarker.o moc_BreakpointsWidget.o moc_BreakpointDialog.o moc_DebuggerMainWindow.o moc_AttachToProcessDialog.o moc_ProcessListModel.o moc_CrashReportDialog.o qrc_resource_omedit.o    -L/usr/lib64/qt4 -L ../../build/lib/omc -lOMPlot -lomqwt -L../OMEditGUI/Debugger/Parser -lGDBMIParser -L../../Parser -lantlr3 -Wl,-z,origin -Wl,-rpath,'$ORIGIN/../lib/omc' -Wl,-rpath,'$ORIGIN' -lOpenModelicaCompiler -lOpenModelicaRuntimeC -lfmilib_shared -lModelicaExternalC -lomcgc -lqjson -lQtWebKit -lQtSvg -L/usr/lib64/qt4 -L/usr/X11R6/lib -lQtXml -lQtGui -lQtNetwork -lQtCore -lpthread
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.4/../../../../x86_64-pc-linux-gnu/bin/ld: warning: libopenblas_openmodelica.so.0, needed by ../../build/lib/omc/libOpenModelicaCompiler.so, not found (try using -rpath or -rpath-link)
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dorgqr_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgtsv_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgesv_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgegv_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgelsx_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgels_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgbsv_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgetri_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgeqpf_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgglse_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgetrf_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgeev_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgesvd_'
../../build/lib/omc/libOpenModelicaCompiler.so: undefined reference to `dgetrs_'
collect2: error: ld returned 1 exit status
Makefile:315: recipe for target '../bin/OMEdit' failed
make[2]: *** [../bin/OMEdit] Error 1
make[2]: Leaving directory '/home/sfbosch/src/modelica/openmodelica/OMEdit/OMEditGUI'
Makefile.unix:32: recipe for target 'OMEdit' failed
make[1]: *** [OMEdit] Error 2
make[1]: Leaving directory '/home/sfbosch/src/modelica/openmodelica/OMEdit/OMEditGUI'
Makefile:106: recipe for target 'omedit' failed
make: *** [omedit] Error 2

I'm at a loss on how to proceed here. Any ideas?

I'm a Gentoo Linux user who made an attempt at building OpenModelica on my system a couple of years ago which was unsuccessful. At the time, my interest was personal, but I'm now working in a project where we will actually be using Modelica, so I'd really like to get it working this time.

Beyond that, though, I think it would really help OpenModelica's uptake on Linux if there were also a Gentoo ebuild. Gentoo, for those not already familiar with it, is a source-based Linux distribution that is popular with scientists because every package is compiled on the machine it will run on, and there is considerable compile-time flexibility. All of this while at the same time being much less headache to maintain than a pure source-based Linux installation.

If there are Gentoo users here, please get in touch with me, so that we might collaborate on an up-to-date ebuild for OpenModelica.

I haven't finished the install yet, but I haven't forgotten it, either -- I'm in the middle of exam stress right now. I have to have a look at this again when I am done (before the end of July).

sjoelund.se wrote:

Ok, try r12302.

svn up
./config.status --recheck
rm -f  OMOptim/{,OMOptimBasis/}build/Makefile{,Lib}
make -j2

Okay, here's a strange error --

Code:

g++ -L/usr/local/paradiseo/paradiseo-eo/build/lib /usr/local/paradiseo/paradiseo-moeo/build/lib -Wl,-O1 -Wl,-rpath,/usr/lib/qt4 -o OMOptim main.o qrc_OMOptim.o    -L/usr/lib/qt4 -L. -lOMOptim -L/usr/lib -lomniORB4 -lomnithread -lqwt -lmoeo -leo -leoutils -L../OMOptimBasis/build -lOMOptimBasis -lQtSvg -L/usr/lib/qt4 -L/usr/X11R6/lib -lQtXml -lQtGui -lQtCore -lgthread-2.0 -lrt -lglib-2.0 -lpthread 

/usr/local/paradiseo/paradiseo-moeo/build/lib: file not recognized: Is a directory
collect2: ld gab 1 als Ende-Status zurück
make[2]: *** [OMOptim] Fehler 1
make[2]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMOptim/build'
make[1]: *** [OMOptim] Fehler 2
make[1]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMOptim/build'
make: *** [omoptim] Fehler 2

It thinks the paradiseo-eo/build/lib directory -- which does exist, here -- is a file. (There is only one file in it -- is that as it should be?)

sjoelund.se wrote:

They need to be somewhere. I used the paths from our Windows package as I assumed that was a proper paradiseo installation. Its directory structure is as follows:

Code:

paradiseo-eo/src/...

paradiseo-eo/lib
paradiseo-eo/lib/libeo.a
paradiseo-eo/lib/libeoutils.a

And similar for -moeo and -mo. Do 'find /usr/local/paradiseo -name "*.a"' and I will update the paths current/hmm

Well, then that means my paradiseo installation must be broken, after all.

Here are the libs I have:

Code:

/usr/local/paradiseo/paradiseo-moeo/build/lib/libmoeo.a

/usr/local/paradiseo/paradiseo-moeo/build/tutorial/examples/flowshop/lib/libflowshop.a
/usr/local/paradiseo/mpich2/lib/libmpe.a
/usr/local/paradiseo/mpich2/lib/libmpichcxx.a
/usr/local/paradiseo/mpich2/lib/libmpe_null.a
/usr/local/paradiseo/mpich2/lib/libampe.a
/usr/local/paradiseo/mpich2/lib/libmpich.a
/usr/local/paradiseo/mpich2/lib/libmpe_nompi_null.a
/usr/local/paradiseo/mpich2/lib/liblmpe.a
/usr/local/paradiseo/mpich2/lib/libmpichf90.a
/usr/local/paradiseo/mpich2/lib/libmpe_f2cmpi.a
/usr/local/paradiseo/mpich2/lib/libfmpich.a
/usr/local/paradiseo/mpich2/lib/libmpe_nompi.a
/usr/local/paradiseo/mpich2/lib/libtmpe.a
/usr/local/paradiseo/mpich2/lib/libmpe_collchk.a
/usr/local/paradiseo/libxml2/lib/python2.6/site-packages/libxml2mod.a
/usr/local/paradiseo/libxml2/lib/libxml2.a
/usr/local/paradiseo/paradiseo-eo/build/lib/libga.a
/usr/local/paradiseo/paradiseo-eo/build/lib/libeo.a
/usr/local/paradiseo/paradiseo-eo/build/lib/libcma.a
/usr/local/paradiseo/paradiseo-eo/build/lib/libes.a
/usr/local/paradiseo/paradiseo-eo/build/lib/libeomoo.a
/usr/local/paradiseo/paradiseo-eo/build/lib/libeoutils.a

I will try to rebuild paradiseo and see if I can get it to finish...

current/yikes Stakkars meg, det kan ikke være sant:

Code:

g++ -L/usr/local/paradiseo/paradiseo-eo/lib /usr/local/paradiseo/paradiseo-mo/lib /usr/local/paradiseo/paradiseo-moeo/lib -Wl,-O1 -Wl,-rpath,/usr/lib/qt4 -o OMOptim main.o qrc_OMOptim.o    -L/usr/lib/qt4 -L. -lOMOptim -L/usr/lib -lomniORB4 -lomnithread -lqwt -lmoeo -leo -leoutils -L../OMOptimBasis/build -lOMOptimBasis -lQtSvg -L/usr/lib/qt4 -L/usr/X11R6/lib -lQtXml -lQtGui -lQtCore -lgthread-2.0 -lrt -lglib-2.0 -lpthread 

g++: /usr/local/paradiseo/paradiseo-mo/lib: Datei oder Verzeichnis nicht gefunden
g++: /usr/local/paradiseo/paradiseo-moeo/lib: Datei oder Verzeichnis nicht gefunden
make[2]: *** [OMOptim] Fehler 1
make[2]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMOptim/build'
make[1]: *** [OMOptim] Fehler 2
make[1]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMOptim/build'
make: *** [omoptim] Fehler 2

Is there supposed to be a lib directory in paradiseo-mo? (As you can see, I don't have one...) Perhaps my installation didn't complete after all?

sjoelund.se wrote:

Try r12299 and see if it configure works with it (should print soemthing like paradiseo... stock version in: /usr/local/paradiseo)

This seems to work:

Code:

./configure --with-omniORB --prefix=/usr/local/openmodelica/ --with-paradiseo=/usr/local/paradiseo --with-qwt

checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking whether make sets $(MAKE)... yes
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... -lfl
checking whether yytext is a pointer... yes
checking for $RMLHOME... no
checking for rmlc... /usr/local/rml/bin/rmlc
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sqlite3.h usability... yes
checking sqlite3.h presence... yes
checking for sqlite3.h... yes
checking f2c.h usability... yes
checking f2c.h presence... yes
checking for f2c.h... yes
checking for rml includefiles in /usr/local/rml... yes
checking if the user wants RML -trace support... yes
checking for antlr.Tool support... ANTLR Parser Generator   Version 2.7.7 (20060906)   1989-2005
yes
checking if the user wants to compile OMShell-terminal... yes
checking readline/readline.h usability... yes
checking readline/readline.h presence... yes
checking for readline/readline.h... yes
checking readline/history.h usability... yes
checking readline/history.h presence... yes
checking for readline/history.h... yes
checking for library containing readline... -lreadline
checking expat.h usability... yes
checking expat.h presence... yes
checking for expat.h... yes
checking for an ANSI C-conforming const... yes
checking for size_t... yes
checking for vprintf... yes
checking for _doprnt... no
checking for getcwd... yes
checking for select... yes
checking for strdup... yes
checking for strerror... yes
checking for scandir... yes
checking for library containing dlopen... -ldl
checking for library containing sqrt... -lm
checking for library containing colamd... -lcolamd
checking for library containing make_lp... -llpsolve55
checking lp_lib.h usability... no
checking lp_lib.h presence... no
checking for lp_lib.h... no
checking lpsolve/lp_lib.h usability... yes
checking lpsolve/lp_lib.h presence... yes
checking for lpsolve/lp_lib.h... yes
checking for socket... yes
checking for gethostbyname... yes
checking for sqlite3_libversion in -lsqlite3... yes
checking LAPACK flags... ok
checking kinsol/kinsol.h usability... no
checking kinsol/kinsol.h presence... no
checking for kinsol/kinsol.h... no
checking kinsol/kinsol_dense.h usability... no
checking kinsol/kinsol_dense.h presence... no
checking for kinsol/kinsol_dense.h... no
checking nvector/nvector_serial.h usability... no
checking nvector/nvector_serial.h presence... no
checking for nvector/nvector_serial.h... no
checking sundials/sundials_types.h usability... no
checking sundials/sundials_types.h presence... no
checking for sundials/sundials_types.h... no
checking sundials/sundials_math.h usability... no
checking sundials/sundials_math.h presence... no
checking for sundials/sundials_math.h... no
checking Sundials linking... failed to link KINInit
checking for CORBA... omniorb
checking if the user wants to use the Python interface... yes
checking for qmake-qt4... no
checking for qmake-mac... no
checking for qmake... qmake
checking for qmake arguments... qmake
checking for qwt... /usr/include/qwt/
checking for paradisEO... stock version in: /usr/local/paradiseo
Not compiling ModPar
Not compiling with BOOST
checking for revision... 12300
checking for OpenModelica platform name... linux-i686
checking for Modelica platform name... linux-i686
configure: creating ./config.status
config.status: creating Makefile
config.status: WARNING:  'Makefile.in' seems to ignore the --datarootdir setting
config.status: creating Compiler/Makefile
config.status: creating Compiler/omc_release/Makefile
config.status: creating Compiler/omc_debug/Makefile
config.status: creating Compiler/omc_profiler/Makefile
config.status: creating Compiler/runtime/Makefile
config.status: creating Compiler/modpar/Makefile
config.status: creating Compiler/runtime/config.unix.h
config.status: creating PythonInterface/Makefile
config.status: creating PythonInterface/OMPython/OMConfig.py
config.status: creating Parser/Makefile
config.status: creating OMNotebook/OMNotebookGUI/OMNotebook.config
config.status: creating OMNotebook/OMNotebookGUI/Makefile.unix
config.status: creating OMShell/OMShellGUI/OMShell.config
config.status: creating OMShell/OMShellGUI/Makefile.unix
config.status: creating OMEdit/OMEditGUI/Makefile.unix
config.status: creating OMEdit/OMEditGUI/OMEdit.config
config.status: creating OMPlot/OMPlotGUI/Makefile.unix
config.status: creating OMPlot/OMPlotGUI/OMPlotGUI.config
config.status: creating OMOptim/build/Makefile.unix
config.status: creating OMOptim/build/OMOptim.config
config.status: creating OMOptim/OMOptimBasis/build/Makefile.unix
config.status: creating OMOptim/OMOptimBasis/build/OMOptimBasis.config
config.status: creating testsuite/bootstrapping/LinkMain.makefile
config.status: creating SimulationRuntime/fmi/import/Makefile
config.status: creating SimulationRuntime/c/Makefile
config.status: creating SimulationRuntime/c/ModelicaExternalC/Makefile
config.status: creating SimulationRuntime/c/simulation/libf2c/makefile.u
config.status: creating SimulationRuntime/interactive/Makefile
config.status: creating mosh/src/Makefile
config.status: executing config.unix.h.fix commands

Configured OpenModelica successfully using the following options:
Simulations may use sundials suite: No

I am going to try building everything again and see what happens. The machine is slow, so this will take some time. I'll report back.

sjoelund.se wrote:

So make install does not put the files in /usr/local?

I specified the target directory with --with-paradiseo=/usr/local/paradiseo -- so those directories I gave you are all after the prefix.

The absolute path on my machine looks like this:

Code:

/usr/local/paradiseo/paradiseo-eo/src

It should work if you write configure.in so that it goes by the prefix...

Here's what the contents of src/ look like on my machine, you can let me know if it looks the way it is supposed to:

Code:

insgesamt 880K

2546998 drwxr-xr-x 13 root root 4,0K  7. Jun 19:53 .
2540206 drwxr-xr-x 12 root root 4,0K  5. Jul 21:49 ..
2547438 -rw-r--r--  1 root root 1,5K  8. Jun 00:28 apply.h
2547364 -rw-r--r--  1 root root 1,6K  8. Jun 00:28 CMakeLists.txt
2547341 drwxr-xr-x  2 root root 4,0K  7. Jun 19:53 do
2547260 -rw-r--r--  1 root root 5,6K  8. Jun 00:28 eo
2547424 -rw-r--r--  1 root root 1,6K  8. Jun 00:28 eoAlgo.h
2547098 -rw-r--r--  1 root root 1,7K  8. Jun 00:28 eoBinaryFlight.h
2547224 -rw-r--r--  1 root root 1,7K  8. Jun 00:28 eoBitParticle.h
2547255 -rw-r--r--  1 root root 2,5K  8. Jun 00:28 eoBreed.h
2547427 -rw-r--r--  1 root root 3,8K  8. Jun 00:28 eoCellularEasyEA.h
2547449 -rw-r--r--  1 root root 2,6K  8. Jun 00:28 eoCloneOps.h
2547338 -rw-r--r--  1 root root 2,8K  8. Jun 00:28 eoCombinedContinue.h
2547267 -rw-r--r--  1 root root 2,8K  8. Jun 00:28 eoCombinedInit.h
2547386 -rw-r--r--  1 root root 9,1K  8. Jun 00:28 eoConstrictedVariableWeightVelocity.h
2547419 -rw-r--r--  1 root root 8,0K  8. Jun 00:28 eoConstrictedVelocity.h
2547001 -rw-r--r--  1 root root 1,8K  8. Jun 00:28 eoContinue.h
2547382 -rw-r--r--  1 root root 8,2K  8. Jun 00:28 eoCounter.h
2547099 -rw-r--r--  1 root root 1,9K  8. Jun 00:28 eoCtrlCContinue.cpp
2547387 -rw-r--r--  1 root root 2,4K  8. Jun 00:28 eoCtrlCContinue.h
2547337 -rw-r--r--  1 root root 2,6K  8. Jun 00:28 eoDetSelect.h
2547119 -rwxr-xr-x  1 root root 2,4K  8. Jun 00:28 eoDetTournamentSelect.h
2547121 -rw-r--r--  1 root root 1,7K  8. Jun 00:28 eoDistribUpdater.h
2547254 -rw-r--r--  1 root root 1,7K  8. Jun 00:28 eoDistribution.h
2547380 -rw-r--r--  1 root root 4,3K  8. Jun 00:28 eoDominanceMap.h
2547365 -rw-r--r--  1 root root 8,0K  8. Jun 00:28 eoEasyEA.h
2547125 -rw-r--r--  1 root root 6,7K  8. Jun 00:28 eoEasyPSO.h
2547251 -rw-r--r--  1 root root 1,7K  8. Jun 00:28 eoEDA.h
2547437 -rw-r--r--  1 root root 2,3K  8. Jun 00:28 eoEvalContinue.h
2547120 -rw-r--r--  1 root root 1,9K  8. Jun 00:28 eoEvalFuncCounter.h
2547266 -rw-r--r--  1 root root 1,9K  8. Jun 00:28 eoEvalFunc.h
2547442 -rw-r--r--  1 root root 2,4K  8. Jun 00:28 eoEvalFuncPtr.h
2547273 -rw-r--r--  1 root root 8,0K  8. Jun 00:28 eoExtendedVelocity.h
2547421 -rw-r--r--  1 root root 2,6K  8. Jun 00:28 eoFactory.h
2547358 -rw-r--r--  1 root root 2,1K  8. Jun 00:28 eoFitContinue.h
2547118 -rw-r--r--  1 root root 2,0K  8. Jun 00:28 eoFitnessScalingSelect.h
2547257 -rw-r--r--  1 root root 8,0K  8. Jun 00:28 eoFixedInertiaWeightedVelocity.h
2547241 -rw-r--r--  1 root root 1,8K  8. Jun 00:28 eoFlight.h
2546999 -rw-r--r--  1 root root 6,1K  8. Jun 00:28 eoFlOrBinOp.h
2547426 -rw-r--r--  1 root root 3,5K  8. Jun 00:28 eoFlOrMonOp.h
2547271 -rw-r--r--  1 root root 5,9K  8. Jun 00:28 eoFlOrQuadOp.h
2547357 -rw-r--r--  1 root root 5,9K  8. Jun 00:28 eoFunctor.h
2547262 -rw-r--r--  1 root root  272  8. Jun 00:28 eoFunctorStore.cpp
2547340 -rw-r--r--  1 root root 2,2K  8. Jun 00:28 eoFunctorStore.h
2547265 -rw-r--r--  1 root root 3,1K  8. Jun 00:28 eoG3Replacement.h
2547210 -rw-r--r--  1 root root 2,1K  8. Jun 00:28 eoGaussRealWeightUp.h
2547096 -rw-r--r--  1 root root 3,4K  8. Jun 00:28 eoGenContinue.h
2547248 -rw-r--r--  1 root root 3,5K  8. Jun 00:28 eoGeneralBreeder.h
2547389 -rw-r--r--  1 root root 6,6K  8. Jun 00:28 eoGenOp.h
2547243 -rw-r--r--  1 root root 4,8K  8. Jun 00:28 EO.h
2547366 -rw-r--r--  1 root root 5,6K  8. Jun 00:28 eoInit.h
2547435 -rw-r--r--  1 root root 3,8K  8. Jun 00:28 eoInitializer.h
2547252 -rw-r--r--  1 root root 7,6K  8. Jun 00:28 eoIntegerVelocity.h
2547117 -rw-r--r--  1 root root 1,7K  8. Jun 00:28 eoInt.h
2547334 -rw-r--r--  1 root root 4,0K  8. Jun 00:28 eoInvalidateOps.h
2547444 -rw-r--r--  1 root root 2,6K  8. Jun 00:28 eoLinearDecreasingWeightUp.h
2547360 -rw-r--r--  1 root root 3,1K  8. Jun 00:28 eoLinearFitScaling.h
2547429 -rw-r--r--  1 root root 6,6K  8. Jun 00:28 eoLinearTopology.h
2547264 -rw-r--r--  1 root root 3,8K  8. Jun 00:28 eoMerge.h
2547422 -rw-r--r--  1 root root 3,4K  8. Jun 00:28 eoMergeReduce.h
2547420 -rw-r--r--  1 root root 3,3K  8. Jun 00:28 eoMGGReplacement.h
2547335 -rw-r--r--  1 root root  15K  8. Jun 00:28 eoNDSorting.h
2547433 -rw-r--r--  1 root root 1,7K  8. Jun 00:28 eoNeighborhood.h
2547214 -rw-r--r--  1 root root 2,8K  8. Jun 00:28 eoObject.h
2547000 -rw-r--r--  1 root root 4,3K  8. Jun 00:28 eoOneToOneBreeder.h
2547261 -rw-r--r--  1 root root 4,6K  8. Jun 00:28 eoOpContainer.h
2547432 -rw-r--r--  1 root root 5,3K  8. Jun 00:28 eoOp.h
2547378 -rw-r--r--  1 root root 3,5K  8. Jun 00:28 eoOpSelMason.h
2547363 -rw-r--r--  1 root root 2,5K  8. Jun 00:28 eoOrderXover.h
2547279 -rw-r--r--  1 root root 7,4K  8. Jun 00:28 eoParetoConstraintFitness.h
2547381 -rw-r--r--  1 root root 1,5K  8. Jun 00:28 eoParetoFitness.cpp
2547002 -rw-r--r--  1 root root 6,9K  8. Jun 00:28 eoParetoFitness.h
2547258 -rw-r--r--  1 root root 2,4K  8. Jun 00:28 eoParetoRanking.h
2547263 -rw-r--r--  1 root root 2,2K  8. Jun 00:28 eoParticleBestInit.h
2547097 -rw-r--r--  1 root root 4,2K  8. Jun 00:28 eoParticleFullInitializer.h
2547207 -rw-r--r--  1 root root 6,6K  8. Jun 00:28 eoPerf2Worth.h
2547377 -rw-r--r--  1 root root 1,8K  8. Jun 00:28 eoPeriodicContinue.h
2547256 -rw-r--r--  1 root root  334  8. Jun 00:28 eoPersistent.cpp
2547434 -rw-r--r--  1 root root 2,4K  8. Jun 00:28 eoPersistent.h
2547206 -rw-r--r--  1 root root  323  8. Jun 00:28 eoPopAlgo.h
2547440 -rw-r--r--  1 root root 3,3K  8. Jun 00:28 eoPopEvalFunc.h
2547384 -rw-r--r--  1 root root 8,8K  8. Jun 00:28 eoPop.h
2547443 -rw-r--r--  1 root root 5,5K  8. Jun 00:28 eoPopulator.h
2547123 -rw-r--r--  1 root root  676  8. Jun 00:28 eoPrintable.cpp
2547114 -rw-r--r--  1 root root 2,4K  8. Jun 00:28 eoPrintable.h
2547122 -rw-r--r--  1 root root 2,8K  8. Jun 00:28 eoPropGAGenOp.h
2547439 -rw-r--r--  1 root root 6,0K  8. Jun 00:28 eoProportionalCombinedOp.h
2547446 -rwxr-xr-x  1 root root 2,9K  8. Jun 00:28 eoProportionalSelect.h
2547431 -rw-r--r--  1 root root 1,6K  8. Jun 00:28 eoPSO.h
2547269 -rw-r--r--  1 root root 2,4K  8. Jun 00:28 eoRandomRealWeightUp.h
2547392 -rw-r--r--  1 root root 3,2K  8. Jun 00:28 eoRandomSelect.h
2547213 -rw-r--r--  1 root root 3,5K  8. Jun 00:28 eoRanking.h
2547259 -rw-r--r--  1 root root 2,1K  8. Jun 00:28 eoRankingSelect.h
2547388 -rw-r--r--  1 root root 3,2K  8. Jun 00:28 eoRealBoundModifier.h
2547362 -rw-r--r--  1 root root 1,7K  8. Jun 00:28 eoRealParticle.h
2547376 -rw-r--r--  1 root root 8,3K  8. Jun 00:28 eoReduce.h
2547367 -rw-r--r--  1 root root 3,8K  8. Jun 00:28 eoReduceMerge.h
2547379 -rw-r--r--  1 root root 4,8K  8. Jun 00:28 eoReduceMergeReduce.h
2547111 -rw-r--r--  1 root root 9,8K  8. Jun 00:28 eoReduceSplit.h
2547244 -rw-r--r--  1 root root 4,1K  8. Jun 00:28 eoReplacement.h
2547385 -rw-r--r--  1 root root 5,9K  8. Jun 00:28 eoRingTopology.h
2547116 -rw-r--r--  1 root root 1,5K  8. Jun 00:28 eoScalarFitnessAssembled.cpp
2547226 -rw-r--r--  1 root root 8,5K  8. Jun 00:28 eoScalarFitnessAssembled.h
2547445 -rw-r--r--  1 root root 3,6K  8. Jun 00:28 eoScalarFitness.h
2547277 -rw-r--r--  1 root root 2,0K  8. Jun 00:28 eoSecondsElapsedContinue.h
2547441 -rw-r--r--  1 root root 2,7K  8. Jun 00:28 eoSelectFactory.h
2547246 -rw-r--r--  1 root root 6,9K  8. Jun 00:28 eoSelectFromWorth.h
2547113 -rw-r--r--  1 root root 1,7K  8. Jun 00:28 eoSelect.h
2547276 -rw-r--r--  1 root root 2,8K  8. Jun 00:28 eoSelectMany.h
2547242 -rw-r--r--  1 root root 2,5K  8. Jun 00:28 eoSelectNumber.h
2547448 -rw-r--r--  1 root root 2,0K  8. Jun 00:28 eoSelectOne.h
2547048 -rw-r--r--  1 root root 2,5K  8. Jun 00:28 eoSelectPerc.h
2547275 -rw-r--r--  1 root root 4,2K  8. Jun 00:28 eoSequentialSelect.h
2547270 -rw-r--r--  1 root root 3,2K  8. Jun 00:28 eoSGAGenOp.h
2547124 -rw-r--r--  1 root root 3,3K  8. Jun 00:28 eoSGA.h
2547339 -rw-r--r--  1 root root 5,1K  8. Jun 00:28 eoSGATransform.h
2547274 -rw-r--r--  1 root root 3,7K  8. Jun 00:28 eoSharing.h
2547250 -rw-r--r--  1 root root 2,0K  8. Jun 00:28 eoSharingSelect.h
2547430 -rw-r--r--  1 root root 2,5K  8. Jun 00:28 eoShiftMutation.h
2547209 -rw-r--r--  1 root root 2,6K  8. Jun 00:28 eoSigBinaryFlight.h
2547383 -rw-r--r--  1 root root 3,0K  8. Jun 00:28 eoSimpleEDA.h
2547245 -rw-r--r--  1 root root 3,6K  8. Jun 00:28 eoSocialNeighborhood.h
2547336 -rw-r--r--  1 root root 3,6K  8. Jun 00:28 eoStandardFlight.h
2547423 -rw-r--r--  1 root root 7,5K  8. Jun 00:28 eoStandardVelocity.h
2547361 -rw-r--r--  1 root root 4,3K  8. Jun 00:28 eoStarTopology.h
2547211 -rwxr-xr-x  1 root root 4,0K  8. Jun 00:28 eoSteadyFitContinue.h
2547100 -rw-r--r--  1 root root 3,1K  8. Jun 00:28 eoSTLFunctor.h
2547046 -rwxr-xr-x  1 root root 3,5K  8. Jun 00:28 eoStochasticUniversalSelect.h
2547278 -rwxr-xr-x  1 root root 2,5K  8. Jun 00:28 eoStochTournamentSelect.h
2547115 -rw-r--r--  1 root root 6,0K  8. Jun 00:28 eoSurviveAndDie.h
2547247 -rw-r--r--  1 root root 2,5K  8. Jun 00:28 eoSwapMutation.h
2547393 -rw-r--r--  1 root root 8,7K  8. Jun 00:28 eoSyncEasyPSO.h
2547112 -rw-r--r--  1 root root 2,2K  8. Jun 00:28 eoTimeContinue.h
2547428 -rw-r--r--  1 root root 2,6K  8. Jun 00:28 eoTopology.h
2547418 -rw-r--r--  1 root root 1,5K  8. Jun 00:28 eoTransform.h
2547359 -rw-r--r--  1 root root 4,2K  8. Jun 00:28 eoTruncatedSelectMany.h
2547212 -rw-r--r--  1 root root 3,5K  8. Jun 00:28 eoTruncatedSelectOne.h
2547253 -rw-r--r--  1 root root 2,6K  8. Jun 00:28 eoTruncSelect.h
2547215 -rw-r--r--  1 root root 2,4K  8. Jun 00:28 eoTwoOptMutation.h
2547391 -rw-r--r--  1 root root 8,5K  8. Jun 00:28 eoVariableInertiaWeightedVelocity.h
2547268 -rw-r--r--  1 root root 9,5K  8. Jun 00:28 eoVariableLengthCrossover.h
2547003 -rw-r--r--  1 root root 4,4K  8. Jun 00:28 eoVariableLengthMutation.h
2547208 -rw-r--r--  1 root root 4,3K  8. Jun 00:28 eoVector.h
2547047 -rw-r--r--  1 root root 4,5K  8. Jun 00:28 eoVectorParticle.h
2547436 -rw-r--r--  1 root root 2,4K  8. Jun 00:28 eoVelocity.h
2547447 -rw-r--r--  1 root root 4,0K  8. Jun 00:28 eoVelocityInit.h
2547272 -rw-r--r--  1 root root 1,6K  8. Jun 00:28 eoWeightUpdater.h
2547049 drwxr-xr-x  2 root root 4,0K  7. Jun 19:53 es
2547390 -rw-r--r--  1 root root 2,1K  8. Jun 00:28 es.h
2547394 drwxr-xr-x  2 root root 4,0K  7. Jun 19:53 ga
2547425 -rw-r--r--  1 root root 1,5K  8. Jun 00:28 ga.h
2547101 drwxr-xr-x  2 root root 4,0K  7. Jun 19:53 gp
2547225 -rw-r--r--  1 root root 3,1K  8. Jun 00:28 Makefile.am
2547249 drwxr-xr-x  2 root root 4,0K  7. Jun 19:53 MGE
2547227 drwxr-xr-x  2 root root 4,0K  7. Jun 19:53 moo
2547126 drwxr-xr-x  2 root root 4,0K  7. Jun 19:53 obsolete
2547369 drwxr-xr-x  2 root root 4,0K  7. Jun 19:53 other
2547216 drwxr-xr-x  5 root root 4,0K  7. Jun 19:53 paradisEO
2547368 -rw-r--r--  1 root root 5,4K  8. Jun 00:28 PO.h
2547004 drwxr-xr-x  4 root root 4,0K  7. Jun 19:53 pyeo
2547280 drwxr-xr-x  2 root root 4,0K  7. Jun 19:53 utils

sjoelund.se wrote:

Do you plan on using OMOptim_ Configuring without paradiseo is always an option. And we do use paradiseo 1.3. I'll see if I can fix it. Where are your headers installed to?

I am "still" running with gcc 4.4. The bash build script to paradiseo fails for me, too, but I think that's just an error in the script -- as far as I could tell, the build completes successfully.

I would like to try out the optimization, especially if others are using it.

After the installation, the installation directory looks like this:

Code:

2511877 drwxr-xr-x  8 root root 4,0K  5. Jul 22:16 .

2218204 drwxr-xr-x 16 root root 4,0K  3. Jul 20:41 ..
2530661 drwxr-xr-x  2 root root 4,0K  5. Jul 22:17 include
2515956 -rw-r--r--  1 root root 6,0K  8. Jun 00:33 install.cmake
2547588 drwxr-xr-x  6 root root 4,0K  8. Jun 00:38 libxml2
2511878 drwxr-xr-x  8 root root 4,0K  8. Jun 00:44 mpich2
2540206 drwxr-xr-x 12 root root 4,0K  5. Jul 21:49 paradiseo-eo
2547846 drwxr-xr-x  7 root root 4,0K  7. Jun 20:19 paradiseo-mo
2531574 drwxr-xr-x  7 root root 4,0K  7. Jun 20:19 paradiseo-moeo

In general, headers are in src/ in the respective directories of each subpackage (-eo, -mo, -moeo).

I managed to get things working for "make omc" by making a symlink to the actual paradiseo-eo directories at /usr/local/include/paradiseo, but...

The autoconf stuff for paradiseo cannot be right.

It is telling make to look in paradiseo-prefix/include/paradiseo, and the paradiseo installer never makes an include directory. It also expects to find all the paradiseo components in one directory tree, but the paradiseo installer for 1.3 puts these in separate trees:

paradiseo-eo
paradiseo-moeo

The result is that it is impossible to have a setup in which make has access to all the paradiseo components required to build qtclients (I'd sure like to know how other people are getting this to work). The qtclients build breaks because of this:

Code:

g++ -c -pipe -w -fPIC -D_REENTRANT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I/usr/include/qwt -I/usr/local/paradiseo/include/paradiseo -I/usr/local/paradiseo/include/paradiseo/utils -I. -I.. -I../.. -I../Core -I../GUI -I../Vld -I../Core/Dymola -I../Core/FileData -I../Core/Infos -I../Core/Modelica -I../Core/OMC -I../Core/OpenModelica -I../Core/Problems -I../Core/Tools -I../Core/Units -I../GUI/Dialogs -I../GUI/Plots -I../GUI/Resources -I../GUI/Scene -I../GUI/Tabs -I../GUI/Tools -I../GUI/Views -I../GUI/Widgets -I../Core/Optim -I../Core/Optim/EA -I../Core/Optim/MILP -I../Core/Problems/BlockSubs -I../Core/Optim/EA/Checkpoints -I../Core/Optim/EA/Chromosome -I../Core/Optim/EA/Crossover -I../Core/Optim/EA/Evaluations -I../Core/Optim/EA/Init -I../Core/Optim/EA/Monitor -I../Core/Optim/EA/Mutations -I../Core/Optim/EA/NSGA2 -I../Core/Optim/EA/Results -I../Core/Optim/EA/SPEA2 -I../Core/Optim/EA/SPEA2Adaptative -I../Core/Optim/EA/SA1 -I../OMOptimBasis -I../OMOptimBasis/FileData -I../OMOptimBasis/GUI -I../OMOptimBasis/GUI/Tools -I../OMOptimBasis/GUI/Dialogs -I../OMOptimBasis/GUI/Widgets -I../OMOptimBasis/Infos -I../OMOptimBasis/Units -I../OMOptimBasis/Tools -I../OMOptimBasis/Problems -I. -I. -o Optimization.o ../Core/Problems/Optimization.cpp

In Datei, eingefügt von ../Core/Optim/EA/EA:2,
                 von ../Core/Problems/Optimization.cpp:42:
../Core/Optim/EA/NSGA2/NSGA2.h:46:16: Fehler: moeo: Datei oder Verzeichnis nicht gefunden
../Core/Optim/EA/NSGA2/NSGA2.h:51:35: Fehler: do/make_continue_moeo.h: Datei oder Verzeichnis nicht gefunden
../Core/Optim/EA/NSGA2/NSGA2.h:53:37: Fehler: do/make_checkpoint_moeo.h: Datei oder Verzeichnis nicht gefunden
../Core/Optim/EA/NSGA2/NSGA2.h:55:29: Fehler: do/make_ea_moeo.h: Datei oder Verzeichnis nicht gefunden
In file included from ../Core/Optim/EA/Results/EAStdResult.h:56,
                 from ../Core/Optim/EA/NSGA2/NSGA2.h:64,
                 from ../Core/Optim/EA/EA:2,
                 from ../Core/Problems/Optimization.cpp:42:
../Core/Optim/EA/Evaluations/EAStdOptimizationEval.h:58: Fehler: expected template-name before »<« token
../Core/Optim/EA/Evaluations/EAStdOptimizationEval.h:58: Fehler: expected »{« before »<« token
../Core/Optim/EA/Evaluations/EAStdOptimizationEval.h:58: Fehler: expected unqualified-id before »<« token
In file included from ../Core/Optim/EA/NSGA2/NSGA2.h:64,
                 from ../Core/Optim/EA/EA:2,
                 from ../Core/Problems/Optimization.cpp:42:
../Core/Optim/EA/Results/EAStdResult.h:63: Fehler: »moeoUnboundedArchive« has not been declared
../Core/Optim/EA/Results/EAStdResult.h:63: Fehler: expected »,« or »...« before »<« token
../Core/Optim/EA/Results/EAStdResult.h:68: Fehler: »moeoUnboundedArchive« has not been declared
../Core/Optim/EA/Results/EAStdResult.h:68: Fehler: expected »,« or »...« before »<« token
../Core/Optim/EA/Results/EAStdResult.h: In static member function »static OptimResult* EAStdResult<EOT>::buildOptimResult(Project*, Optimization*, QList<BlockSubstitutions*>, int)«:
../Core/Optim/EA/Results/EAStdResult.h:70: Fehler: »arch« wurde in diesem Gültigkeitsbereich nicht definiert
../Core/Optim/EA/Results/EAStdResult.h:163: Fehler: »arch« wurde in diesem Gültigkeitsbereich nicht definiert
../Core/Optim/EA/Results/EAStdResult.h:214: Fehler: »arch« wurde in diesem Gültigkeitsbereich nicht definiert
../Core/Optim/EA/Results/EAStdResult.h:225: Fehler: »moeoRealObjectiveVector« wurde in diesem Gültigkeitsbereich nicht definiert
../Core/Optim/EA/Results/EAStdResult.h:225: Fehler: »moeoObjectiveVectorTraits« wurde in diesem Gültigkeitsbereich nicht definiert
../Core/Optim/EA/Results/EAStdResult.h:225: Fehler: »resObjVector« wurde in diesem Gültigkeitsbereich nicht definiert
../Core/Optim/EA/Results/EAStdResult.h:240: Fehler: »arch« wurde in diesem Gültigkeitsbereich nicht definiert
In file included from ../Core/Optim/EA/NSGA2/NSGA2.h:66,
                 from ../Core/Optim/EA/EA:2,
                 from ../Core/Problems/Optimization.cpp:42:
../Core/Optim/EA/Chromosome/EOStd.h: At global scope:
../Core/Optim/EA/Chromosome/EOStd.h:52: Fehler: expected initializer before »<« token
../Core/Optim/EA/Chromosome/EOStd.h:57: Fehler: expected template-name before »<« token
../Core/Optim/EA/Chromosome/EOStd.h:57: Fehler: expected »{« before »<« token
../Core/Optim/EA/Chromosome/EOStd.h:57: Fehler: expected unqualified-id before »<« token
make[2]: *** [Optimization.o] Fehler 1
make[2]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMOptim/build'
make[1]: *** [OMOptimLib] Fehler 2
make[1]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMOptim/build'
make: *** [omoptim] Fehler 2

Can the autoconf script be fixed so that it reflects the directory layout for paradiseo 1.3?

At this point I am stuck again -- I do not know how to fix this problem myself.

Okay, I have no idea what changed, but clearly, make is looking in strange places for the paradiseo headers, because neither of these directories exists:

Code:

I/usr/local/paradiseo/include/paradiseo/ -I/usr/local/paradiseo/include/paradiseo/utils/

In fact, no include directory exists in the paradiseo install at all, which makes me wonder where it is coming from.

This worked before (I was able to build omc successfully) so I am really puzzled.

Sigh... now something else is broken:

Code:

g++ -c -pipe -w -fPIC -D_REENTRANT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I/usr/include/qwt -I/usr/local/paradiseo/include/paradiseo/ -I/usr/local/paradiseo/include/paradiseo/utils/ -I. -I.. -I../.. -I../Core -I../GUI -I../Vld -I../Core/Dymola -I../Core/FileData -I../Core/Infos -I../Core/Modelica -I../Core/OMC -I../Core/OpenModelica -I../Core/Problems -I../Core/Tools -I../Core/Units -I../GUI/Dialogs -I../GUI/Plots -I../GUI/Resources -I../GUI/Scene -I../GUI/Tabs -I../GUI/Tools -I../GUI/Views -I../GUI/Widgets -I../Core/Optim -I../Core/Optim/EA -I../Core/Optim/MILP -I../Core/Problems/BlockSubs -I../Core/Optim/EA/Checkpoints -I../Core/Optim/EA/Chromosome -I../Core/Optim/EA/Crossover -I../Core/Optim/EA/Evaluations -I../Core/Optim/EA/Init -I../Core/Optim/EA/Monitor -I../Core/Optim/EA/Mutations -I../Core/Optim/EA/NSGA2 -I../Core/Optim/EA/Results -I../Core/Optim/EA/SPEA2 -I../Core/Optim/EA/SPEA2Adaptative -I../Core/Optim/EA/SA1 -I../OMOptimBasis -I../OMOptimBasis/FileData -I../OMOptimBasis/GUI -I../OMOptimBasis/GUI/Tools -I../OMOptimBasis/GUI/Dialogs -I../OMOptimBasis/GUI/Widgets -I../OMOptimBasis/Infos -I../OMOptimBasis/Units -I../OMOptimBasis/Tools -I../OMOptimBasis/Problems -I. -I. -o Optimization.o ../Core/Problems/Optimization.cpp

In Datei, eingefügt von ../Core/Optim/EA/EA:2,
                 von ../Core/Problems/Optimization.cpp:42:
../Core/Optim/EA/NSGA2/NSGA2.h:45:14: Fehler: eo: Datei oder Verzeichnis nicht gefunden
../Core/Optim/EA/NSGA2/NSGA2.h:46:16: Fehler: moeo: Datei oder Verzeichnis nicht gefunden
../Core/Optim/EA/NSGA2/NSGA2.h:47:34: Fehler: es/eoRealInitBounded.h: Datei oder Verzeichnis nicht gefunden
../Core/Optim/EA/NSGA2/NSGA2.h:48:25: Fehler: es/eoRealOp.h: Datei oder Verzeichnis nicht gefunden
../Core/Optim/EA/NSGA2/NSGA2.h:51:35: Fehler: do/make_continue_moeo.h: Datei oder Verzeichnis nicht gefunden
../Core/Optim/EA/NSGA2/NSGA2.h:53:37: Fehler: do/make_checkpoint_moeo.h: Datei oder Verzeichnis nicht gefunden
../Core/Optim/EA/NSGA2/NSGA2.h:55:29: Fehler: do/make_ea_moeo.h: Datei oder Verzeichnis nicht gefunden
In Datei, eingefügt von ../Core/Optim/EA/SPEA2Adaptative/SPEA2Adapt.h:62,
                 von ../Core/Optim/EA/EA:4,
                 von ../Core/Problems/Optimization.cpp:42:
../Core/Optim/EA/SPEA2Adaptative/SPEA2AdaptMutation.h:47:23: Fehler: es/eoReal.h: Datei oder Verzeichnis nicht gefunden
../Core/Optim/EA/SPEA2Adaptative/SPEA2AdaptMutation.h:48:25: Fehler: utils/eoRNG.h: Datei oder Verzeichnis nicht gefunden
../Core/Optim/EA/SPEA2Adaptative/SPEA2AdaptMutation.h:49:32: Fehler: utils/eoRealBounds.h: Datei oder Verzeichnis nicht gefunden
In Datei, eingefügt von ../Core/Optim/EA/SPEA2Adaptative/SPEA2Adapt.h:63,
                 von ../Core/Optim/EA/EA:4,
                 von ../Core/Problems/Optimization.cpp:42:
../Core/Optim/EA/Init/EAAdaptReinitStdDev.h:18:20: Fehler: eoInit.h: Datei oder Verzeichnis nicht gefunden
In file included from ../Core/Optim/EA/Results/EAStdResult.h:56,
                 from ../Core/Optim/EA/NSGA2/NSGA2.h:64,
                 from ../Core/Optim/EA/EA:2,
                 from ../Core/Problems/Optimization.cpp:42:
../Core/Optim/EA/Evaluations/EAStdOptimizationEval.h:58: Fehler: expected template-name before »<« token
../Core/Optim/EA/Evaluations/EAStdOptimizationEval.h:58: Fehler: expected »{« before »<« token
../Core/Optim/EA/Evaluations/EAStdOptimizationEval.h:58: Fehler: expected unqualified-id before »<« token
In file included from ../Core/Optim/EA/NSGA2/NSGA2.h:64,
                 from ../Core/Optim/EA/EA:2,
                 from ../Core/Problems/Optimization.cpp:42:
../Core/Optim/EA/Results/EAStdResult.h:63: Fehler: »moeoUnboundedArchive« has not been declared
../Core/Optim/EA/Results/EAStdResult.h:63: Fehler: expected »,« or »...« before »<« token
../Core/Optim/EA/Results/EAStdResult.h:68: Fehler: »moeoUnboundedArchive« has not been declared
../Core/Optim/EA/Results/EAStdResult.h:68: Fehler: expected »,« or »...« before »<« token
../Core/Optim/EA/Results/EAStdResult.h: In static member function »static OptimResult* EAStdResult<EOT>::buildOptimResult(Project*, Optimization*, QList<BlockSubstitutions*>, int)«:
../Core/Optim/EA/Results/EAStdResult.h:70: Fehler: »arch« wurde in diesem Gültigkeitsbereich nicht definiert
../Core/Optim/EA/Results/EAStdResult.h:163: Fehler: »arch« wurde in diesem Gültigkeitsbereich nicht definiert
../Core/Optim/EA/Results/EAStdResult.h:214: Fehler: »arch« wurde in diesem Gültigkeitsbereich nicht definiert
../Core/Optim/EA/Results/EAStdResult.h:225: Fehler: »moeoRealObjectiveVector« wurde in diesem Gültigkeitsbereich nicht definiert
../Core/Optim/EA/Results/EAStdResult.h:225: Fehler: »moeoObjectiveVectorTraits« wurde in diesem Gültigkeitsbereich nicht definiert
../Core/Optim/EA/Results/EAStdResult.h:225: Fehler: »resObjVector« wurde in diesem Gültigkeitsbereich nicht definiert
../Core/Optim/EA/Results/EAStdResult.h:240: Fehler: »arch« wurde in diesem Gültigkeitsbereich nicht definiert
In file included from ../Core/Optim/EA/NSGA2/NSGA2.h:66,
                 from ../Core/Optim/EA/EA:2,
                 from ../Core/Problems/Optimization.cpp:42:
../Core/Optim/EA/Chromosome/EOStd.h: At global scope:
../Core/Optim/EA/Chromosome/EOStd.h:52: Fehler: expected initializer before »<« token
../Core/Optim/EA/Chromosome/EOStd.h:57: Fehler: expected template-name before »<« token
../Core/Optim/EA/Chromosome/EOStd.h:57: Fehler: expected »{« before »<« token
../Core/Optim/EA/Chromosome/EOStd.h:57: Fehler: expected unqualified-id before »<« token
make[2]: *** [Optimization.o] Fehler 1
make[2]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMOptim/build'
make[1]: *** [OMOptimLib] Fehler 2
make[1]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMOptim/build'
make: *** [omoptim] Fehler 2

Looks like paradisEO... but this worked before!

Here's /usr/local/paradiseo:

Code:

# ls -liah /usr/local/paradiseo/

insgesamt 36K
2511877 drwxr-xr-x  7 root root 4,0K  8. Jun 00:44 .
2218204 drwxr-xr-x 16 root root 4,0K  3. Jul 20:41 ..
2515956 -rw-r--r--  1 root root 6,0K  8. Jun 00:33 install.cmake
2547588 drwxr-xr-x  6 root root 4,0K  8. Jun 00:38 libxml2
2511878 drwxr-xr-x  8 root root 4,0K  8. Jun 00:44 mpich2
2540206 drwxr-xr-x 11 root root 4,0K  8. Jun 00:28 paradiseo-eo
2547846 drwxr-xr-x  7 root root 4,0K  7. Jun 20:19 paradiseo-mo
2531574 drwxr-xr-x  7 root root 4,0K  7. Jun 20:19 paradiseo-moeo

Which one does it want?

My path:

Code:

/usr/local/paradiseo/libxml2/bin:/usr/local/paradiseo/mpich2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.4.5:/usr/local/bin:/usr/local/rml/bin

sjoelund.se wrote:

The with-qwt option seems to only accept =no or =yes and autodetects some of the very odd differences between different distributions of qwt (some use qwt, some qwt-qt4). I'm willing to bet you have something like /usr/include/qwt5/... ? If so that's the first time I saw it, but I can change the trunk if so. Please list the files of your qwt5 package simialr to this:

You are indeed correct. Here are the package contents:

Code:


# equery files qwt:5
* Searching for qwt:5 ...
* Contents of x11-libs/qwt-5.2.1:
/usr
/usr/include
/usr/include/qwt5
/usr/include/qwt5/qwt.h
/usr/include/qwt5/qwt_abstract_scale.h
/usr/include/qwt5/qwt_abstract_scale_draw.h
/usr/include/qwt5/qwt_abstract_slider.h
/usr/include/qwt5/qwt_analog_clock.h
/usr/include/qwt5/qwt_array.h
/usr/include/qwt5/qwt_arrow_button.h
/usr/include/qwt5/qwt_clipper.h
/usr/include/qwt5/qwt_color_map.h
/usr/include/qwt5/qwt_compass.h
/usr/include/qwt5/qwt_compass_rose.h
/usr/include/qwt5/qwt_counter.h
/usr/include/qwt5/qwt_curve_fitter.h
/usr/include/qwt5/qwt_data.h
/usr/include/qwt5/qwt_dial.h
/usr/include/qwt5/qwt_dial_needle.h
/usr/include/qwt5/qwt_double_interval.h
/usr/include/qwt5/qwt_double_range.h
/usr/include/qwt5/qwt_double_rect.h
/usr/include/qwt5/qwt_dyngrid_layout.h
/usr/include/qwt5/qwt_event_pattern.h
/usr/include/qwt5/qwt_global.h
/usr/include/qwt5/qwt_interval_data.h
/usr/include/qwt5/qwt_knob.h
/usr/include/qwt5/qwt_layout_metrics.h
/usr/include/qwt5/qwt_legend.h
/usr/include/qwt5/qwt_legend_item.h
/usr/include/qwt5/qwt_legend_itemmanager.h
/usr/include/qwt5/qwt_magnifier.h
/usr/include/qwt5/qwt_math.h
/usr/include/qwt5/qwt_paint_buffer.h
/usr/include/qwt5/qwt_painter.h
/usr/include/qwt5/qwt_panner.h
/usr/include/qwt5/qwt_picker.h
/usr/include/qwt5/qwt_picker_machine.h
/usr/include/qwt5/qwt_plot.h
/usr/include/qwt5/qwt_plot_canvas.h
/usr/include/qwt5/qwt_plot_curve.h
/usr/include/qwt5/qwt_plot_dict.h
/usr/include/qwt5/qwt_plot_grid.h
/usr/include/qwt5/qwt_plot_item.h
/usr/include/qwt5/qwt_plot_layout.h
/usr/include/qwt5/qwt_plot_magnifier.h
/usr/include/qwt5/qwt_plot_marker.h
/usr/include/qwt5/qwt_plot_panner.h
/usr/include/qwt5/qwt_plot_picker.h
/usr/include/qwt5/qwt_plot_printfilter.h
/usr/include/qwt5/qwt_plot_rasteritem.h
/usr/include/qwt5/qwt_plot_rescaler.h
/usr/include/qwt5/qwt_plot_scaleitem.h
/usr/include/qwt5/qwt_plot_spectrogram.h
/usr/include/qwt5/qwt_plot_svgitem.h
/usr/include/qwt5/qwt_plot_zoomer.h
/usr/include/qwt5/qwt_polygon.h
/usr/include/qwt5/qwt_raster_data.h
/usr/include/qwt5/qwt_round_scale_draw.h
/usr/include/qwt5/qwt_scale_div.h
/usr/include/qwt5/qwt_scale_draw.h
/usr/include/qwt5/qwt_scale_engine.h
/usr/include/qwt5/qwt_scale_map.h
/usr/include/qwt5/qwt_scale_widget.h
/usr/include/qwt5/qwt_slider.h
/usr/include/qwt5/qwt_spline.h
/usr/include/qwt5/qwt_symbol.h
/usr/include/qwt5/qwt_text.h
/usr/include/qwt5/qwt_text_engine.h
/usr/include/qwt5/qwt_text_label.h
/usr/include/qwt5/qwt_thermo.h
/usr/include/qwt5/qwt_valuelist.h
/usr/include/qwt5/qwt_wheel.h
/usr/lib
/usr/lib/libqwt.so -> libqwt.so.5.2.1
/usr/lib/libqwt.so.5 -> libqwt.so.5.2.1
/usr/lib/libqwt.so.5.2 -> libqwt.so.5.2.1
/usr/lib/libqwt.so.5.2.1
/usr/lib/qt4
/usr/lib/qt4/plugins
/usr/lib/qt4/plugins/designer
/usr/lib/qt4/plugins/designer/libqwt_designer_plugin.so
/usr/share
/usr/share/doc
/usr/share/doc/qwt-5.2.1
/usr/share/doc/qwt-5.2.1/CHANGES.bz2
/usr/share/doc/qwt-5.2.1/README.bz2

In fact, just before reading your message, I found a broken symlink /usr/include/qwt pointing to the old qwt6 directory. I replaced it with one pointing to qwt5, tested it, and it seems to work, at least to start with.

To be safe I did make clean, ran configure again, and am building everything over again -- make omc && make mosh && make qtclients (I figure qtclients should build correctly now). On my somewhat slow machine it will take some time, so I can't tell yet if it the problems have been solved.

It would be nice, for convenience, to check this directory automatically, especially since there is a version-specific dependency on libqwt.

sjoelund.se wrote:

Did you do "make clean" first? There are probably some o-files compiled against qwt6. If you want to recompile as little as possible "make -C OMPlot/OMPlotGUI/ -f Makefile.unix clean" I think

Yeah, I had done a "make clean".

I had two versions of libqwt installed, from both 6 and 5 -- I have removed 6, done another make clean, and run configure again:

Now, if I run:

Code:

./configure --with-omniORB --prefix=/usr/local/openmodelica/ --with-paradiseo=/usr/local/paradiseo --with-qwt

the qwt test fails.

If I run

Code:

./configure --with-omniORB --prefix=/usr/local/openmodelica/ --with-paradiseo=/usr/local/paradiseo --with-qwt=/usr/lib

it passes, but then the make fails right at the start with a totally different error:

Code:


make qtclients
if [ "" = ".app" ]; then mkdir -p ./build/Applications/; fi
mkdir -p ./build/bin
mkdir -p ./build/lib/omc
mkdir -p ./build/lib/omc/libexec
mkdir -p ./build/lib/python
mkdir -p ./build/lib/python/omniORB
mkdir -p ./build/include/omc
mkdir -p ./build/share/omc/java/
mkdir -p ./build/share//omc/scripts/PythonInterface/OMPython/OMParser
mkdir -p ./build/share//omnotebook
mkdir -p ./build/share/doc/omc/testmodels
mkdir -p ./build/share/man//man1/
make -C OMPlot/OMPlotGUI -f Makefile.unix
make[1]: Entering directory `/home/sfbosch/src/openmodelica/trunk/OMPlot/OMPlotGUI'
qmake
qmake OMPlotLib.pro -o Makefile.lib
make -f Makefile.lib
make[2]: Entering directory `/home/sfbosch/src/openmodelica/trunk/OMPlot/OMPlotGUI'
g++ -c -pipe -w -fPIC -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/lib -I. -I../generatedfiles/moc -o main.o main.cpp
In Datei, eingefügt von PlotWindowContainer.h:38,
                 von PlotMainWindow.h:40,
                 von main.cpp:35:
PlotWindow.h:28:22: Fehler: qwt_plot.h: Datei oder Verzeichnis nicht gefunden
PlotWindow.h:29:22: Fehler: qwt_text.h: Datei oder Verzeichnis nicht gefunden
PlotWindow.h:30:28: Fehler: qwt_plot_curve.h: Datei oder Verzeichnis nicht gefunden
PlotWindow.h:31:29: Fehler: qwt_plot_picker.h: Datei oder Verzeichnis nicht gefunden
PlotWindow.h:32:32: Fehler: qwt_picker_machine.h: Datei oder Verzeichnis nicht gefunden
PlotWindow.h:33:27: Fehler: qwt_plot_grid.h: Datei oder Verzeichnis nicht gefunden
PlotWindow.h:34:30: Fehler: qwt_curve_fitter.h: Datei oder Verzeichnis nicht gefunden
PlotWindow.h:35:24: Fehler: qwt_legend.h: Datei oder Verzeichnis nicht gefunden
PlotWindow.h:36:29: Fehler: qwt_plot_zoomer.h: Datei oder Verzeichnis nicht gefunden
PlotWindow.h:37:29: Fehler: qwt_plot_panner.h: Datei oder Verzeichnis nicht gefunden
PlotWindow.h:38:30: Fehler: qwt_scale_engine.h: Datei oder Verzeichnis nicht gefunden
In file included from Plot.h:38,
                 from PlotWindow.h:44,
                 from PlotWindowContainer.h:38,
                 from PlotMainWindow.h:40,
                 from main.cpp:35:
Legend.h:45: Fehler: expected class-name before »{« token
In file included from Plot.h:39,
                 from PlotWindow.h:44,
                 from PlotWindowContainer.h:38,
                 from PlotMainWindow.h:40,
                 from main.cpp:35:
PlotGrid.h:42: Fehler: expected class-name before »{« token
In file included from Plot.h:40,
                 from PlotWindow.h:44,
                 from PlotWindowContainer.h:38,
                 from PlotMainWindow.h:40,
                 from main.cpp:35:
PlotZoomer.h:42: Fehler: expected class-name before »{« token
PlotZoomer.h:45: Fehler: »QwtPlotCanvas« has not been declared
In file included from Plot.h:41,
                 from PlotWindow.h:44,
                 from PlotWindowContainer.h:38,
                 from PlotMainWindow.h:40,
                 from main.cpp:35:
PlotPanner.h:42: Fehler: expected class-name before »{« token
PlotPanner.h:45: Fehler: expected »)« before »*« token
In file included from Plot.h:42,
                 from PlotWindow.h:44,
                 from PlotWindowContainer.h:38,
                 from PlotMainWindow.h:40,
                 from main.cpp:35:
PlotCurve.h:42: Fehler: expected class-name before »{« token
PlotCurve.h:44: Fehler: ISO-C++ verbietet Deklaration von »QwtArray« ohne Typ
PlotCurve.h:44: Fehler: expected »;« before »<« token
PlotCurve.h:45: Fehler: ISO-C++ verbietet Deklaration von »QwtArray« ohne Typ
PlotCurve.h:45: Fehler: expected »;« before »<« token
PlotCurve.h:74: Fehler: »QwtLegend« has not been declared
In file included from PlotWindow.h:44,
                 from PlotWindowContainer.h:38,
                 from PlotMainWindow.h:40,
                 from main.cpp:35:
Plot.h:54: Fehler: expected class-name before »{« token
Plot.h:59: Fehler: ISO-C++ verbietet Deklaration von »QwtPlotPicker« ohne Typ
Plot.h:59: Fehler: expected »;« before »*« token
Plot.h:72: Fehler: ISO-C++ verbietet Deklaration von »QwtPlotPicker« ohne Typ
Plot.h:72: Fehler: expected »;« before »*« token
make[2]: *** [main.o] Fehler 1
make[2]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMPlot/OMPlotGUI'
make[1]: *** [libOMPlot] Fehler 2
make[1]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMPlot/OMPlotGUI'
make: *** [omplot] Fehler 2

Now it can't find the header files...

Thank you for your help. Clearly, this is a Linux project, so there has to be a way of getting things working current/smile

Okay -- so now I have installed libqwt 5.2.1 (which should satisfy the dependency libqwt5-qt4-dev (>= 5.1.1)), but I am still getting the compile failure:

Code:

g++ -Wl,-O1 -Wl,-rpath,/usr/lib/qt4 -o ../bin/OMPlot main.o read_matlab4.o Plot.o PlotZoomer.o Legend.o PlotPanner.o PlotGrid.o PlotCurve.o PlotWindow.o PlotApplication.o PlotWindowContainer.o PlotMainWindow.o moc_Plot.o moc_PlotZoomer.o moc_Legend.o moc_PlotPanner.o moc_PlotWindow.o moc_PlotApplication.o moc_PlotWindowContainer.o moc_PlotMainWindow.o qrc_resource_omplot.o    -L/usr/lib/qt4 -lqwt -lQtSvg -L/usr/lib/qt4 -L/usr/X11R6/lib -lQtGui -lQtCore -lgthread-2.0 -lrt -lglib-2.0 -lpthread 

Plot.o: In function `OMPlot::Plot::Plot(OMPlot::PlotWindow*)':
Plot.cpp:(.text+0x37b): undefined reference to `QwtPlot::setCanvasBackground(QBrush const&)'
Plot.o: In function `OMPlot::Plot::Plot(OMPlot::PlotWindow*)':
Plot.cpp:(.text+0x7bb): undefined reference to `QwtPlot::setCanvasBackground(QBrush const&)'
PlotGrid.o:(.data.rel.ro._ZTVN6OMPlot8PlotGridE[vtable for OMPlot::PlotGrid]+0x28): undefined reference to `QwtPlotGrid::draw(QPainter*, QwtScaleMap const&, QwtScaleMap const&, QRectF const&) const'
PlotCurve.o: In function `OMPlot::PlotCurve::setData(double const*, double const*, int)':
PlotCurve.cpp:(.text+0x876): undefined reference to `QwtPlotCurve::setRawSamples(double const*, double const*, int)'
PlotCurve.o:(.data.rel.ro._ZTVN6OMPlot9PlotCurveE[vtable for OMPlot::PlotCurve]+0x18): undefined reference to `QwtPlotCurve::drawLegendIdentifier(QPainter*, QRectF const&) const'
PlotCurve.o:(.data.rel.ro._ZTVN6OMPlot9PlotCurveE[vtable for OMPlot::PlotCurve]+0x28): undefined reference to `QwtPlotAbstractSeriesItem::draw(QPainter*, QwtScaleMap const&, QwtScaleMap const&, QRectF const&) const'
PlotCurve.o:(.data.rel.ro._ZTVN6OMPlot9PlotCurveE[vtable for OMPlot::PlotCurve]+0x34): undefined reference to `QwtPlotCurve::drawSeries(QPainter*, QwtScaleMap const&, QwtScaleMap const&, QRectF const&, int, int) const'
PlotCurve.o:(.data.rel.ro._ZTVN6OMPlot9PlotCurveE[vtable for OMPlot::PlotCurve]+0x38): undefined reference to `QwtPlotCurve::drawCurve(QPainter*, int, QwtScaleMap const&, QwtScaleMap const&, QRectF const&, int, int) const'
PlotCurve.o:(.data.rel.ro._ZTVN6OMPlot9PlotCurveE[vtable for OMPlot::PlotCurve]+0x3c): undefined reference to `QwtPlotCurve::drawSymbols(QPainter*, QwtSymbol const&, QwtScaleMap const&, QwtScaleMap const&, QRectF const&, int, int) const'
PlotCurve.o:(.data.rel.ro._ZTVN6OMPlot9PlotCurveE[vtable for OMPlot::PlotCurve]+0x40): undefined reference to `QwtPlotCurve::fillCurve(QPainter*, QwtScaleMap const&, QwtScaleMap const&, QRectF const&, QPolygonF&) const'
PlotWindow.o: In function `OMPlot::PlotWindow::receiveMessage(QStringList)':
PlotWindow.cpp:(.text+0x7026): undefined reference to `QwtPlotItem::detach()'
PlotWindow.o: In function `OMPlot::PlotWindow::setGrid(bool)':
PlotWindow.cpp:(.text+0x77cc): undefined reference to `QwtPlotItem::detach()'
PlotWindow.o: In function `OMPlot::PlotWindow::fitInView()':
PlotWindow.cpp:(.text+0x7893): undefined reference to `QwtPlot::setAxisAutoScale(int, bool)'
PlotWindow.cpp:(.text+0x78b1): undefined reference to `QwtPlot::setAxisAutoScale(int, bool)'
PlotWindow.o: In function `OMPlot::PlotWindow::setLogX(bool)':
PlotWindow.cpp:(.text+0x7966): undefined reference to `QwtPlot::setAxisAutoScale(int, bool)'
PlotWindow.cpp:(.text+0x7a1d): undefined reference to `QwtPlot::setAxisAutoScale(int, bool)'
PlotWindow.o: In function `OMPlot::PlotWindow::setLogY(bool)':
PlotWindow.cpp:(.text+0x7b16): undefined reference to `QwtPlot::setAxisAutoScale(int, bool)'
PlotWindow.o:PlotWindow.cpp:(.text+0x7bcd): more undefined references to `QwtPlot::setAxisAutoScale(int, bool)' follow
moc_Plot.o:(.data.rel.ro._ZTVN6OMPlot4PlotE[vtable for OMPlot::Plot]+0xec): undefined reference to `QwtPlot::drawItems(QPainter*, QRectF const&, QwtScaleMap const*) const'
moc_PlotZoomer.o:(.data.rel.ro._ZTVN6OMPlot10PlotZoomerE[vtable for OMPlot::PlotZoomer]+0x4c): undefined reference to `QwtPicker::adjustedPoints(QPolygon const&) const'
moc_PlotZoomer.o:(.data.rel.ro._ZTVN6OMPlot10PlotZoomerE[vtable for OMPlot::PlotZoomer]+0x60): undefined reference to `QwtPicker::remove()'
moc_PlotZoomer.o:(.data.rel.ro._ZTVN6OMPlot10PlotZoomerE[vtable for OMPlot::PlotZoomer]+0x8c): undefined reference to `QwtPicker::widgetEnterEvent(QEvent*)'
moc_PlotZoomer.o:(.data.rel.ro._ZTVN6OMPlot10PlotZoomerE[vtable for OMPlot::PlotZoomer]+0xa0): undefined reference to `QwtPlotPicker::trackerTextF(QPointF const&) const'
moc_PlotZoomer.o:(.data.rel.ro._ZTVN6OMPlot10PlotZoomerE[vtable for OMPlot::PlotZoomer]+0xac): undefined reference to `QwtPlotZoomer::moveTo(QPointF const&)'
moc_PlotPanner.o:(.data.rel.ro._ZTVN6OMPlot10PlotPannerE[vtable for OMPlot::PlotPanner]+0xf4): undefined reference to `QwtPlotPanner::contentsMask() const'
moc_PlotPanner.o:(.data.rel.ro._ZTVN6OMPlot10PlotPannerE[vtable for OMPlot::PlotPanner]+0xf8): undefined reference to `QwtPanner::grab() const'
collect2: ld gab 1 als Ende-Status zurück
make[2]: *** [../bin/OMPlot] Fehler 1
make[2]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMPlot/OMPlotGUI'
make[1]: *** [OMPlot] Fehler 2
make[1]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMPlot/OMPlotGUI'
make: *** [omplot] Fehler 2

Unfortunately, libqwt 5.2.1 is the earliest version 5 libqwt that is available for my distribution...

Is there any way to tell which version of libqwt is being used here?

sjoelund.se wrote:

You're using qwt 6.0 is what's wrong current/smile They changed the API.
And yes, 3D support was removed from builtin OpenModelica as it is now part of Modelica libraries instead (ModelicaServices packages, mostly commercial, but standardized).

Sorry to sound like a complainer -- but I have spent enough time trying to get this to work that I have earned my complaint time, so here I go current/smile

Why is this information,

  -about the qwt version
  -about deprecated 3D support

not in the readme?

Which version of qwt do I need, and how would I find that out if qwt is not mentioned in the readme at all? (I notice also that the readme is also more than a year old -- and that's in trunk!)

And now you say that I need commercial libraries to do 3D plots. OpenModelica is starting to sound less and less "open"...

I would like to try OpenModelica for my simulations, but I run Linux. I have tried to follow all the (available) instructions -- building from svn sources, getting all the required dependencies, yet I am getting the impression that the Linux version of OpenModelica is a bit like the neglected step-child. Is anybody still using it? Is it maintained? I am not keen on paying for additional commercial libraries before I have even tried it out, and already have a fully-licensed and paid-for MATLAB and Simulink that runs beautifully on Linux, even my "exotic" Gentoo installation.

I was introduced to OpenModelica by a passionate colleague who is running it on his Mac. He told me it was open source, freely available, and ran on Linux. While he is working on his simulation, I still can't get it installed and running, so I am beginning to think this isn't worth it...

which is too bad, because it certainly looks cool and useful.

Ok, I built omc and mosh successfully. Building qtclients fails:

Code:

g++ -c -pipe -w -fPIC -D_REENTRANT -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4 -I/usr/include/qwt -I. -I.. -I../GUI -I../GUI/Widgets -I../GUI/Tools -I../GUI/Dialogs -I../Units -I../Tools -I../Infos -I../FileData -I../Problems -I. -I. -o MOPlot.o ../GUI/Plots/MOPlot.cpp

In file included from ../GUI/Plots/MOPlot.cpp:41:
../GUI/Plots/MOPlot.h:76: Fehler: ISO-C++ verbietet Deklaration von »QwtDoublePoint« ohne Typ
../GUI/Plots/MOPlot.h:76: Fehler: expected »,« or »...« before »&« token
../GUI/Plots/MOPlot.h:99: Fehler: ISO-C++ verbietet Deklaration von »QwtPlotPrintFilter« ohne Typ
../GUI/Plots/MOPlot.h:99: Fehler: expected »,« or »...« before »&« token
../GUI/Plots/MOPlot.h:109: Fehler: ISO-C++ verbietet Deklaration von »QwtDoublePoint« ohne Typ
../GUI/Plots/MOPlot.h:109: Fehler: expected »,« or »...« before »&« token
../GUI/Plots/MOPlot.h:112: Fehler: ISO-C++ verbietet Deklaration von »QwtDoubleRect« ohne Typ
../GUI/Plots/MOPlot.h:112: Fehler: expected »,« or »...« before »&« token
../GUI/Plots/MOPlot.h: In constructor »MOPlot::MOPlot()«:
../GUI/Plots/MOPlot.h:136: Fehler: »class QwtPlotPicker« hat kein Element namens »setSelectionFlags«
../GUI/Plots/MOPlot.h:136: Fehler: »PointSelection« is not a member of »QwtPicker«
../GUI/Plots/MOPlot.h:155: Fehler: »class MOPlot« hat kein Element namens »setMargin«
../GUI/Plots/MOPlot.h:171: Fehler: »DragSelection« is not a member of »QwtPicker«
../GUI/Plots/MOPlot.h:171: Fehler: »CornerToCorner« is not a member of »QwtPicker«
../GUI/Plots/MOPlot.h: In member function »void MOPlot::clear()«:
../GUI/Plots/MOPlot.h:213: Fehler: »clear« is not a member of »QwtPlot«
../GUI/Plots/MOPlot.h: At global scope:
../GUI/Plots/MOPlot.h:303: Fehler: ISO-C++ verbietet Deklaration von »QwtDoublePoint« ohne Typ
../GUI/Plots/MOPlot.h:303: Fehler: expected »,« or »...« before »&« token
../GUI/Plots/MOPlot.h: In member function »int MOPlot::getNearestPointIndex(QwtPlotCurve*, int)«:
../GUI/Plots/MOPlot.h:309: Fehler: »point« wurde in diesem Gültigkeitsbereich nicht definiert
../GUI/Plots/MOPlot.h: At global scope:
../GUI/Plots/MOPlot.h:329: Fehler: ISO-C++ verbietet Deklaration von »QwtDoublePoint« ohne Typ
../GUI/Plots/MOPlot.h:329: Fehler: expected »,« or »...« before »&« token
../GUI/Plots/MOPlot.h:339: Fehler: ISO-C++ verbietet Deklaration von »QwtPlotPrintFilter« ohne Typ
../GUI/Plots/MOPlot.h:339: Fehler: expected »,« or »...« before »&« token
../GUI/Plots/MOPlot.h: In member function »virtual void MOPlot::drawItems(QPainter*, const QRect&, const QwtScaleMap*, int) const«:
../GUI/Plots/MOPlot.h:350: Fehler: »pfilter« wurde in diesem Gültigkeitsbereich nicht definiert
../GUI/Plots/MOPlot.h:350: Fehler: »QwtPlotPrintFilter« is not a class or namespace
../GUI/Plots/MOPlot.cpp: At global scope:
../GUI/Plots/MOPlot.cpp:69: Fehler: ISO-C++ verbietet Deklaration von »QwtDoubleRect« ohne Typ
../GUI/Plots/MOPlot.cpp:69: Fehler: expected »,« or »...« before »&« token
make[2]: *** [MOPlot.o] Fehler 1
make[2]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMOptim/OMOptimBasis/build'
make[1]: *** [OMOptimBasis] Fehler 2
make[1]: Leaving directory `/home/sfbosch/src/openmodelica/trunk/OMOptim/OMOptimBasis/build'
make: *** [omoptimbasis] Fehler 2

I'm using qwt 6.0.0. What's wrong here?

sjoelund.se wrote:

You don't need to use make install to use OpenModelica. You don't need any of the optional dependencies, such as CORBA (omniORB). But what you then end up with is an executable in trunk/build/bin/omc that you need to call via absolute path, and you get no GUI. If your OS supports sockets and readline you even get OMShell-terminal. Perfect according to me current/smile

Otherwise it's also quite easy to install the binary packages (if they match your shared libraries). I find rml-mmc and paradiseo harder to install than OpenModelica, because they do not work with all C-compilers.

Most of the deprecated things mentioned were deprecated for a reason - removal. In the current trunk none of them are useful anymore.

If that's so, then the readme is very confusing:

The latest OpenModelica uses Qt for potting and 3D functionality. You will also need:
    Qt 4.x.x (http://trolltech.com - >= 4.6)
    Coin3D   (http://www.coin3d.org - tested with 3.0.0; deprecated)
    SoQt     (http://www.coin3d.org - tested with 1.4.1; deprecated)

This implies that in order to have plotting and 3D capability, you need Coin3d and SoQt, and that if those are now deprecated, there is no plotting and 3D support (somehow I doubt that's true, though...)

Better wording:

"To use the older, bla bla plotting support, you need these packages...

but if you don't have special reasons to use the older bla bla plotting support, you can just set configure like so [etc] and use the newer, yadda yadda plotting support."

Based on what you wrote, I understand that

1. make install works
2. make install will put everything in the PREFIX I specify
3. I need to include omniORB if I want a GUI (that's the sort of thing that would be good to include in the readme current/wink )...

Correct?

(thanks current/smile )

sjoelund.se wrote:

Have you tried configure --without-paradiseo (only OMOptim uses it)? Also, paradiseo is used as a library, so your PATH does not matter. You need to use configure LDFLAGS="..." CPPFLAGS="..." to set the paths I believe (or maybe --with-paradiseo=/usr/local/paradiseo works).

I tried it with  --with-paradiseo=/usr/local/paradiseo, and configure was successful. I am running make omc right now, and so far it seems to be working.

A lot of things are assumed, but unfortunately not everybody who might want to use OpenModelica is a programmer current/smile It's not always clear from the readme what's absolutely necessary and what is a "nice to have" option. Do I need omniORB?

The readme does not mention "make install"; is that assumed also?

I think the readme could be made better by including this information and making it more structured. It's a bit scattered. Some things I noticed:

    It starts with "How to compile on Linux/BSD (all from source)", then there's just a list of dependencies. The next section is "How to compile on Ubuntu Linux (using available binary packages for dependencies)" which is again just a list of dependencies.

    First it says "How to compile on Linux/BSD", implying that FreeBSD is supported, then it says

You need:
    rml+mmc (http://www.ida.liu.se/~pelab/rml/)
        Just grab it from subversion:
        svn co https://openmodelica.org/svn/MetaModelica/trunk mmc
        user: anonymous
        pass: none
    rml needs smlnj: http://www.smlnj.org (working version v110.xx) and/or mlton (mlton.org)

followed by


Note:
    FreeBSD versions of smlnj/mlton only compile using 32-bit versions of the OS.
    The rml-mmc package needs some manual changes, too. It's not worth it current/wink

...so, that means... it is supported? Or is it not supported? Does it even work with FreeBSD? In any case, it's not clear.

    It also says

The latest OpenModelica uses Qt for potting and 3D functionality. You will also need:
    Qt 4.x.x (http://trolltech.com - >= 4.6)
    Coin3D   (http://www.coin3d.org - tested with 3.0.0; deprecated)
    SoQt     (http://www.coin3d.org - tested with 1.4.1; deprecated)

Is the plotting function deprecated? Coin3D? The Coin3D requirement?

    The next section is called "Setting your environment for compiling OpenModelica". Somewhere in there, the actual build instructions have been hidden. Also, by this point it is not clear if we're talking about Ubuntu, or a general installation from sources.


    Finally, there is this paragraph, which totally confused me:

For the deprecated Qt-based plotting functionality you will need to:
  - Configure with-sendData-Qt
  - Have Qt installed and qmake on the PATH.
        NOTE: if you don't, you won't be able to plot
              using plot and plotParameteric but it will work with
              plot2 and plotParametric2 functions.
  - Add coin3d/bin and soqt/bin to the PATH variable
  - Add coin3d/lib and soqt/lib to the LD_LIBRARY_PATH variable

Is it plotting that is deprecated? Or Qt support for plotting? I still want to make plots, so... does something replace it? I have no idea. In any case, configure does not recognize "--with-sendData-Qt", which leaves me wondering if that sentence is still valid.

Considering that a working installation is a prerequisite for doing the tutorials, it would be very helpful to explain some of these things in the readme itself. Even an experienced Linux user (and I count myself as one) will not necessarily understand all the dependencies and what they are needed for.

The best thing would be to have a section just for OpenModelica newbies: "What every new OpenModelica user should have" followed by a list of dependencies, a description of each one, what it does and why it is needed, then instructions on how to include it with LDFLAGS once it has been installed.

A big key to getting more people to adopt it is making the installation simple current/smile

I have been trying for many hours to install OpenModelica on Linux from sources. As I am running Gentoo, I cannot use the debian packages.

Perhaps someone can help me? I have had so many problems with dependencies that I can't even keep all the issues straight in my head anymore. I gave up trying to build it with omniORB because I couldn't get configure to see it, even though it is installed as a Gentoo ebuild. Unfortunately, I still cannot build OpenModelica.

For example, configure fails when looking for paradisEO:

checking for paradisEO... configure: error: not found (searched  /usr /opt //usr/local/openmodelica)

What puzzles me is that paradisEO is in the path:

/usr/local/paradiseo/libxml2/bin:/usr/local/paradiseo/mpich2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.4.5:/usr/local/bin:/usr/local/rml/bin

These sorts of problems are typical. Thus, instead of actually using OpenModelica (which does indeed sound very cool) I am wasting a lot of time just trying to install it. I am not normally someone who shies away from source installs, but I have to admit that OpenModelica is giving me real problems. It leaves the impression that the Linux release is somewhat neglected.

But maybe I just need better help? current/smile

  • Index
  • » Users
  • » stephen_bosch
  • » Profile
You are here: