|
[Sponsors] |
OpenFOAM on MinGW crosscompiler hosted on Linux |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
January 3, 2009, 15:57 |
No Avail...
Guess this is a
|
#101 |
Senior Member
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 17 |
No Avail...
Guess this is a harder quirk... Here is my make/options EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/turbulenceModels \ -I$(LIB_SRC)/LESmodels \ -I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude LIB_LIBS = \ -lfiniteVolume \ -lbasicThermophysicalModels \ -lspecie \ -lcompressibleTurbulenceModels \ -lcompressibleLESmodels \ -lLESdeltas after cd..&&wclean&&wmake the result was Making dependency list for source file cLiftDrag/cLiftDrag.C SOURCE=cLiftDrag/cLiftDrag.C ; mingw32-g++ -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -O3 -DNDEBUG -DNoRepository -ftemplate-depth-40 -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/finiteVolume/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/specie/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/basic/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/turbulenceModels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels/LESdeltas/lnInclude -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OSspecific/MSwindows/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/cLiftDrag.o mingw32-g++ -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -O3 -DNDEBUG -DNoRepository -ftemplate-depth-40 -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/finiteVolume/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/specie/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/basic/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/turbulenceModels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels/LESdeltas/lnInclude -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OSspecific/MSwindows/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude -Wl,--enable-auto-import,--force-exe-suffix Make/linuxmingw32DPOpt/cLiftDrag.o -L/home/alex/OpenFOAM/OpenFOAM-1.4.1/lib/linuxmingw32DPOpt \ -lOpenFOAM -lm -o OpenFOAM.out.exe Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x1fa): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x223): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x466): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x946): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x96f): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0xc8e): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0xd85): undefined reference to `Foam::fvMesh::magSf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x179a): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x17c3): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x198a): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x1a34): undefined reference to `Foam::fvMesh::Cf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x1faa): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x1fd3): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x225f): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x230f): undefined reference to `Foam::fvMesh::Cf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x2419): undefined reference to `Foam::fvMesh::magSf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x2531): undefined reference to `Foam::fvMesh::Cf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x3126): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x314f): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x34df): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x35d6): undefined reference to `Foam::fvMesh::magSf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x3936): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x468a): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x46b3): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x4a43): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x4b3a): undefined reference to `Foam::fvMesh::magSf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x4e9a): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x5be6): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x5c0f): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x5e12): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x62f2): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x631b): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x65b8): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x66af): undefined reference to `Foam::fvMesh::magSf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x712a): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x7153): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x7551): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x7648): undefined reference to `Foam::fvMesh::magSf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x79a8): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x86fa): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x8723): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x8b21): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x8c18): undefined reference to `Foam::fvMesh::magSf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x8f78): undefined reference to `Foam::fvMesh::Sf() const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text$_ZN4Foam14GeometricFieldINS_10SymmTensorIdEE NS_12fvPatchFieldENS_7volMeshE EeqERKNS_3tmpIS5_EE[Foam::GeometricField<foam::symmtensor<double>, Foam::fvPatchField, Foam::volMesh>::operator==(Foam::tmp<foam::geometr icfield<foam::symmtensor<doubl e>, Foam::fvPatchField, Foam::volMesh> > const&)]+0x2b): undefined reference to `Foam::fvMesh::operator!=(Foam::fvMesh const&) const' Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text$_ZNK4Foam14GeometricFieldINS_10SymmTensorIdE ENS_12fvPatchFieldENS_7volMesh EE12storeOldTimeEv[Foam::GeometricField<foam::symmtensor<double>, Foam::fvPatchField, Foam::volMesh>::storeOldTime() const]+0x5c): undefined reference to `Foam::GeometricField<foam::symmtensor<double>, Foam::fvPatchField, Foam::volMesh>::debug' /home/alex/projects/win32compiler/gcc4.2.3/install/bin/../lib/gcc/mingw32/4.2.3/ ../../../../mingw32/lib/libmingw32.a(main.o):main.c.text+0x104): undefined reference to `_WinMain@16' collect2: ld returned 1 exit status make: *** [OpenFOAM.out.exe] Error 1 But one thing is funny here... since i am compiling a lib (dll) shouldn't it force the build of libCompressible.dll in the lib/linuxmingw32 the same way it built libCompressible.so in the native system... ? Why does it state that --force-exe-suffix and -lOpenFOAM -lm -o OpenFOAM.out.exe... ? I do not know enough about mingw32 or gcc but i think that the problem lies here... Best regards Alex BTW, I am trying to compile the OF-1.5.x so as to view the diffs between this and the OF-1.5-dev ( which compiled cleanly from source ) but somehow the making of OF-1.5.x fails even after having installed flex and binutils... |
|
January 3, 2009, 18:12 |
...Trying again to compile OF-
|
#102 |
Senior Member
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 17 |
...Trying again to compile OF-1.5.x... let's wait and see...
Why is it that snappyHexMesh is not supposed to compile under mingw32...? Is it because the cyclic dependency issue that you refered to...? ...man, it is in these moments that wish I knew ( a lot more ) C++... Just to be able to solve these issues... I mean... I have no difficulty with the algorythmic aspects of CFD, FEA, optimization techniques, either gradient based or heuristics... but when it comes to implementation issues..., I am stuck with the Fortran90 paradigm... doesn't help much when you want to be a c++ coder huh...?! :-( Regards Alex |
|
January 3, 2009, 19:20 |
snappyHex depends directly on
|
#103 |
Senior Member
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 17 |
snappyHex depends directly on ParMetis, which I didn't try to compile for Windows.
__________________
Symscape, Computational Fluid Dynamics for all |
|
January 3, 2009, 19:23 |
,,,Ok... Now I understand, pa
|
#104 |
Senior Member
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 17 |
,,,Ok... Now I understand, parmetis Is also the library required for parallel computations in Foam, none of the apps of 1.4.1 depending on it compiled also...
|
|
January 3, 2009, 19:35 |
...By what I have seen it depe
|
#105 |
Senior Member
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 17 |
...By what I have seen it depends on MPI... I think there is no MPI port for windows, and a port of parmetis for windows would require a major rewriting of the code in terms of the substitution of MPI for MPICH... am i right here..?
|
|
January 4, 2009, 09:17 |
Hi Richard,
I have successf
|
#106 |
Senior Member
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 17 |
Hi Richard,
I have successfully compiled OpenFOAM-1.5.x, but when I patch using the last patch from http://www.symscape.com/openfoam-1-5-x-on-windows there are some errors : alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ patch -p1 -i v2-mingw-openfoam-1-5-x.patch patching file applications/solvers/combustion/Xoodles/Xoodles.C patching file applications/solvers/compressible/rhoCentralFoam/BCs/Make/options patching file applications/solvers/compressible/rhopSonicFoam/BCs/Make/options patching file applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/Make/options patching file applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModels/Make/optio ns patching file applications/solvers/multiphase/twoPhaseEulerFoam/phaseModel/Make/options patching file applications/utilities/mesh/generation/blockMesh/curvedEdges/lineEdge.C patching file applications/utilities/mesh/generation/extrudeMesh/extrudeModel/Make/options patching file applications/utilities/mesh/manipulation/setSet/Allwmake patching file applications/utilities/miscellaneous/foamDebugSwitches/Make/options patching file applications/utilities/postProcessing/dataConversion/foamToVTK/Make/options patching file etc/bashrc Hunk #1 succeeded at 63 (offset 1 line). Hunk #2 FAILED at 91. 1 out of 2 hunks FAILED -- saving rejects to file etc/bashrc.rej patching file etc/bashrc-mingw32 patching file etc/settings.sh Hunk #1 FAILED at 93. 1 out of 1 hunk FAILED -- saving rejects to file etc/settings.sh.rej patching file src/Allwmake patching file src/autoMesh/Make/options patching file src/conversion/ensight/part/ensightPart.C patching file src/conversion/ensight/part/ensightPartIO.C patching file src/conversion/Make/options patching file src/decompositionAgglomeration/Allwmake patching file src/decompositionAgglomeration/decompositionMethods/Make/files patching file src/decompositionAgglomeration/decompositionMethods/Make/options patching file src/dynamicFvMesh/Make/options patching file src/dynamicMesh/Make/options patching file src/edgeMesh/Make/options patching file src/engine/Make/options patching file src/errorEstimation/Make/options patching file src/finiteVolume/Make/options patching file src/fvMotionSolver/Make/options patching file src/lagrangian/basic/Make/options patching file src/lagrangian/dieselSpray/Make/options patching file src/lagrangian/dieselSpray/parcel/parcel.H patching file src/lagrangian/intermediate/Make/options patching file src/lagrangian/molecularDynamics/molecule/Make/options patching file src/lagrangian/molecularDynamics/potential/Make/options patching file src/lagrangian/solidParticle/Make/options patching file src/meshTools/Make/files patching file src/meshTools/Make/options patching file src/meshTools/triSurface/octreeData/octreeDataTriSurfaceTreeLeaf.H patching file src/ODE/Make/options patching file src/OpenFOAM/containers/Lists/PtrList/PtrList.C patching file src/OpenFOAM/db/dlLibraryTable/dlLibraryTable.C patching file src/OpenFOAM/db/IOobject/IOobject.C patching file src/OpenFOAM/db/IOobject/IOobject.H patching file src/OpenFOAM/db/IOobject/IOobjectI.H patching file src/OpenFOAM/db/IOstreams/Fstreams/IFstream.C patching file src/OpenFOAM/db/IOstreams/Fstreams/OFstream.C patching file src/OpenFOAM/global/global.C patching file src/OpenFOAM/include/OSspecific.H patching file src/OpenFOAM/Make/files patching file src/OpenFOAM/Make/options patching file src/OpenFOAM/primitives/Lists/stringListTemplates.C patching file src/OpenFOAM/primitives/random/Random.C Hunk #1 succeeded at 38 with fuzz 2 (offset 5 lines). patching file src/OpenFOAM/primitives/Scalar/doubleFloat.H patching file src/OpenFOAM/primitives/strings/fileName/fileNameI.H patching file src/OpenFOAM/primitives/uint/uintIO.C Hunk #1 FAILED at 66. 1 out of 1 hunk FAILED -- saving rejects to file src/OpenFOAM/primitives/uint/uintIO.C.rej patching file src/OpenFOAM/primitives/ulong/ulongIO.C patching file src/OSspecific/MSwindows/clockTime/clockTime.C patching file src/OSspecific/MSwindows/clockTime/clockTime.H patching file src/OSspecific/MSwindows/cpuTime/cpuTime.C patching file src/OSspecific/MSwindows/cpuTime/cpuTime.H patching file src/OSspecific/MSwindows/deelx.h patching file src/OSspecific/MSwindows/fileStat.C patching file src/OSspecific/MSwindows/fileStat.H patching file src/OSspecific/MSwindows/Make/files patching file src/OSspecific/MSwindows/MSwindows.C patching file src/OSspecific/MSwindows/MSwindows.H patching file src/OSspecific/MSwindows/OSspecific.C patching file src/OSspecific/MSwindows/printStack.C patching file src/OSspecific/MSwindows/regularExpression.C patching file src/OSspecific/MSwindows/regularExpression.H patching file src/OSspecific/MSwindows/signals/sigFpe.C patching file src/OSspecific/MSwindows/signals/sigFpe.H patching file src/OSspecific/MSwindows/signals/sigInt.C patching file src/OSspecific/MSwindows/signals/sigInt.H patching file src/OSspecific/MSwindows/signals/sigQuit.C patching file src/OSspecific/MSwindows/signals/sigQuit.H patching file src/OSspecific/MSwindows/signals/sigSegv.C patching file src/OSspecific/MSwindows/signals/sigSegv.H patching file src/OSspecific/MSwindows/timer.C patching file src/OSspecific/MSwindows/timer.H patching file src/OSspecific/Unix/Make/files patching file src/OSspecific/Unix/regularExpression.C patching file src/OSspecific/Unix/regularExpression.H patching file src/OSspecific/Unix/Unix.C patching file src/postProcessing/fieldAverage/Make/options patching file src/postProcessing/foamCalcFunctions/Make/options patching file src/postProcessing/forces/Make/options patching file src/postProcessing/postCalc/Make/options patching file src/Pstream/dummy/Make/options patching file src/randomProcesses/Make/options patching file src/sampling/Make/options patching file src/thermophysicalModels/Allwmake patching file src/thermophysicalModels/barotropicCompressibilityModel/Make/options patching file src/thermophysicalModels/basic/Make/options patching file src/thermophysicalModels/chemistryModel/Make/options patching file src/thermophysicalModels/combustion/Make/options patching file src/thermophysicalModels/laminarFlameSpeed/Make/options patching file src/thermophysicalModels/liquidMixture/Make/options patching file src/thermophysicalModels/liquids/Make/options patching file src/thermophysicalModels/pdfs/Make/options patching file src/thermophysicalModels/radiation/Make/options patching file src/thermophysicalModels/solidMixture/Make/options patching file src/thermophysicalModels/solids/Make/options patching file src/thermophysicalModels/specie/Make/options patching file src/thermophysicalModels/thermophysicalFunctions/Make/options patching file src/topoChangerFvMesh/Make/options patching file src/transportModels/incompressible/Make/options patching file src/transportModels/interfaceProperties/Make/options patching file src/triSurface/Make/options patching file src/turbulenceModels/LES/compressible/Make/options patching file src/turbulenceModels/LES/incompressible/Make/options patching file src/turbulenceModels/LES/LESdeltas/Make/options patching file src/turbulenceModels/LES/LESfilters/Make/options patching file src/turbulenceModels/RAS/compressible/Make/options patching file src/turbulenceModels/RAS/incompressible/Make/options patching file svn_ignore.txt patching file wmake/Makefile patching file wmake/wmake Hunk #1 succeeded at 164 (offset -1 lines). patching file wmake/wmakeLnInclude Hunk #2 FAILED at 126. 1 out of 2 hunks FAILED -- saving rejects to file wmake/wmakeLnInclude.rej Has anyone reported those already...? Best regards Alex |
|
January 4, 2009, 10:48 |
Ran into the same problem. Tr
|
#107 |
Member
Michael Roth
Join Date: Mar 2009
Location: Guelph, Ontario, Canada
Posts: 50
Rep Power: 17 |
Ran into the same problem. Try using the same git version that the patch was designed for as alluded to in step #3 in the Symscape build process. i.e. the following steps worked for me:
1. git clone git://repo.or.cz/OpenFOAM-1.5.x.git 2. cd OpenFOAM-1.5.x 3. git checkout 2fee2240cb5c6e2ecbfa65af95c8a10232f9d5d5 Then patch as you normally would. Mike |
|
January 4, 2009, 12:21 |
Hi Michael
Thanks for the h
|
#108 |
Senior Member
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 17 |
Hi Michael
Thanks for the hint :-) Alex |
|
January 7, 2009, 19:36 |
Hi Michael,
After following
|
#109 |
Senior Member
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 17 |
Hi Michael,
After following exactly the instructions on Symscape web page, and using your hint, I have finally patched OpenFOAM-1.5.x... but when I run ./Allwmake the first library, zlib.dll gets compiled... but the process fails in hoard, with this message ... alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ ./Allwmake + cd . + cd wmake/src + make make: Nothing to be done for `all'. + cd /home/alex/OpenFOAM/ThirdParty + ./Allwmake + [ -n mingw32-gcc ] + export CC=mingw32-gcc + [ -n mingw32-g++ ] + export CXX=mingw32-g++ + [ -n ] + [ -n ] + [ -n ] + wmake libso zlib-1.2.3 Making dependency list for source file adler32.c Making dependency list for source file compress.c Making dependency list for source file crc32.c Making dependency list for source file deflate.c Making dependency list for source file gzio.c Making dependency list for source file infback.c Making dependency list for source file inffast.c Making dependency list for source file inflate.c Making dependency list for source file inftrees.c Making dependency list for source file trees.c Making dependency list for source file uncompr.c Making dependency list for source file zutil.c SOURCE=adler32.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/adler32.o SOURCE=compress.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/compress.o SOURCE=crc32.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/crc32.o SOURCE=deflate.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/deflate.o SOURCE=gzio.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/gzio.o SOURCE=infback.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/infback.o SOURCE=inffast.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/inffast.o SOURCE=inflate.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/inflate.o SOURCE=inftrees.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/inftrees.o SOURCE=trees.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/trees.o SOURCE=uncompr.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/uncompr.o SOURCE=zutil.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/zutil.o Creating library file: /home/alex/OpenFOAM/OpenFOAM-1.5.x/lib/linuxmingw32DPOpt/libz.a '/home/alex/OpenFOAM/OpenFOAM-1.5.x/lib/linuxmingw32DPOpt/libz.dll' is up to date. + cd malloc + ./Allwmake + wmake libso hoard Making dependency list for source file hoard-371/src/libhoard.cpp SOURCE=hoard-371/src/libhoard.cpp ; mingw32-g++ -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -O3 -DNDEBUG -DNoRepository -ftemplate-depth-40 -DNDEBUG -D_REENTRANT=1 -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/libhoard.o hoard-371/src/libhoard.cpp:45: warning: ignoring #pragma inline_depth hoard-371/src/libhoard.cpp:49: warning: ignoring #pragma warning In file included from lnInclude/mmapheap.h:48, from hoard-371/src/alignedsuperblockheap.h:6, from hoard-371/src/hoard.h:52, from hoard-371/src/libhoard.cpp:94: lnInclude/spinlock.h:70:1: warning: "_WIN32_WINNT" redefined In file included from /home/alex/projects/win32compiler/gcc4.2.3/install/bin/../lib/gcc/mingw32/4.2.3/ ../../../../mingw32/include/windows.h:48, from lnInclude/cpuinfo.h:33, from hoard-371/src/libhoard.cpp:93: /home/alex/projects/win32compiler/gcc4.2.3/install/bin/../lib/gcc/mingw32/4.2.3/ ../../../../mingw32/include/windef.h:20:1: warning: this is the location of the previous definition..... ...../home/alex/projects/win32compiler/gcc4.2.3/install/bin/../lib/gcc/mingw32/4 .2.3/../../../../mingw32/include/winnt.h:2397: error: expected unqualified-id before end of line /home/alex/projects/win32compiler/gcc4.2.3/install/bin/../lib/gcc/mingw32/4.2.3/ ../../../../mingw32/include/winnt.h:2397: error: expected `}' before end of line /home/alex/projects/win32compiler/gcc4.2.3/install/bin/../lib/gcc/mingw32/4.2.3/ ../../../../mingw32/include/winnt.h:2397: error: expected declaration before end of line make: *** [Make/linuxmingw32DPOpt/libhoard.o] Error 1 + wmake libo fbsdmalloc Making dependency list for source file fbsdmalloc.c could not open file libc_private.h for source file fbsdmalloc.c could not open file spinlock.h for source file fbsdmalloc.c........ ......Is this a normal continuation...? If you or someone ever managed to compile OpenFOAM-1.5.x for windows could he post the detailed howto here...? ... because I maybe missing something trivial, a stupid detail, but honestly i just cannot figure what... :-( OpenFOAM-1.4.1 compiles OK... ( excludind those parallel processing libraries issues and dependent execs... but OF-1.5.x is just... :-( .. ) thanks in advance Regards Alex |
|
January 7, 2009, 19:49 |
Hi Again,
My Foam environme
|
#110 |
Senior Member
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 17 |
Hi Again,
My Foam environment variables are those : alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ clear alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT_INST_DIR /home/alex/OpenFOAM alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT OpenFOAM alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT_VERSION 1.5.x alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT_DIR /home/alex/OpenFOAM/OpenFOAM-1.5.x alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT_USER_DIR /home/alex/OpenFOAM/alex-1.5.x alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_ARCH linux alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_COMPILER mingw32 alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_COMPILER_DIR alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_COMPILER_BIN alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_COMPILER_LIB alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_COMPILE_OPTION Opt alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_DIR /home/alex/OpenFOAM/OpenFOAM-1.5.x/wmake alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_JAVAC_OPTION Opt alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_LINK_LANGUAGE c++ alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_MPLIB NONE alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_OPTIONS linuxmingw32DPOpt alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT_LANGUAGE alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT_SHELL alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ To you think that the $WM_LINK_LANGUAGE=c++ is the one to blame for what is happening...? I will try changing this to see where does it get... Alex |
|
January 8, 2009, 15:17 |
You should only be compiling z
|
#111 |
Senior Member
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 17 |
You should only be compiling zlib from the Third Party source pack. According to:
4. Install the Third Party source pack and only compile the zlib library. from: http://www.symscape.com/openfoam-1-5-x-on-windows
__________________
Symscape, Computational Fluid Dynamics for all |
|
January 12, 2009, 17:56 |
Hi Richard,
I have tried to
|
#112 |
Senior Member
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 17 |
Hi Richard,
I have tried to port an application to win32O penFOAM, compiles trivially in OF-1.4.1, it depends on two libraries, libIcompressiblePostProcessing.dll and libCompressiblePostProcessing.dll, I have built them successfully... But when I try to build the exec, it finds undefined symbols in the object file... and fails to build... The message is : alex@iskandhar:~/Desktop/liftDragTool/liftDrag$ wmake Making dependency list for source file liftDrag.C SOURCE=liftDrag.C ; mingw32-g++ -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -O3 -DNDEBUG -DNoRepository -ftemplate-depth-40 -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/finiteVolume/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/cfdTools/general/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/specie/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/basic/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/turbulenceModels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/transportModels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels/LESdeltas/lnInclude -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OSspecific/MSwindows/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/liftDrag.o mingw32-g++ -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -O3 -DNDEBUG -DNoRepository -ftemplate-depth-40 -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/finiteVolume/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/cfdTools/general/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/specie/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/basic/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/turbulenceModels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/transportModels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels/LESdeltas/lnInclude -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OSspecific/MSwindows/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude -Wl,--enable-auto-import,--force-exe-suffix Make/linuxmingw32DPOpt/liftDrag.o -L/home/alex/OpenFOAM/OpenFOAM-1.4.1/lib/linuxmingw32DPOpt \ -lcompressiblePostProcessing -lincompressiblePostProcessing -lOpenFOAM -lm -o /home/alex/OpenFOAM/OpenFOAM-1.4.1/applications/bin/linuxmingw32DPOpt/liftDrag.e xe Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0xd46): undefined reference to `Foam::fvMesh::fvMesh(Foam::IOobject const&)' Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0xdb2): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0x2a24): undefined reference to `Foam::fvMesh::readUpdate()' ... and it continues complaining a bout missing lots of stuff... but the Make/files explicitly references them... : EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude/ \ -I$(LIB_SRC)/cfdTools/general/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/turbulenceModels \ -I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/postProcessing \ -I$(LIB_SRC)/LESmodels \ -I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude EXE_LIBS = \ -lcompressiblePostProcessing \ -lincompressiblePostProcessing And besides, the app compiles under linux OS... is this a cyclic dependency issue here...? both my libCompressiblePostProcessing.dll and my libIncompressiblePostprocessing.dll live in /home/alex/OpenFOAM/OpenFOAM-1.4.1/lib/linuxmingw32DPOpt, I have checked this... Why does the build of the exe logs as if all the other libs were not there... ? Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0xd46): undefined reference to `Foam::fvMesh::fvMesh(Foam::IOobject const&)' Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0xdb2): undefined reference to `Foam::fvMesh::boundary() const' Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0x2a24): undefined reference to `Foam::fvMesh::readUpdate()' Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0x2f5c): undefined reference to `Foam::basicThermo::New(Foam::fvMesh const&)' Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0x35cd): undefined reference to `Foam::momentCoefficient(Foam::GeometricField<foam ::vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double,> const&, Foam::dimensioned<double> const&, Foam::word const&, Foam::Vector<double> const&, double const&, double const&)' Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0x3673): undefined reference to `Foam::liftCoefficient(Foam::GeometricField<foam:: vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double,> const&, Foam::dimensioned<double> const&, Foam::word const&, Foam::Vector<double> const&, double const&)' Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0x3708): undefined reference to `Foam::dragCoefficient(Foam::Geometric..... Thanks in advance Best regards Alex |
|
January 14, 2009, 16:13 |
Hello Alex,
By what I've ma
|
#113 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Hello Alex,
By what I've managed to discover so far with mingw32, it needs for you to declare all of the libraries your application will require. In your case, I think you are missing -lOpenFOAM and the OpenFOAM's lnInclude. When in doubt, for example, got to src/OpenFOAM and type grep "fvMesh" -R * and you'll find out that some of the definitions for fvMesh are in there! Best regards, Bruno
__________________
|
|
January 15, 2009, 08:59 |
Hi Bruno,
But I have declar
|
#114 |
Senior Member
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 17 |
Hi Bruno,
But I have declared them... ( I guess...) therefore I feel that bash message when I run wmake is ... awkward... Just to clear Ideas... my Make/options is : EXE_INC = \ -I$(LIB_SRC)/OpenFOAM \ -I$(LIB_SRC)/OpenFOAM/lnInclude/ \ -I$(LIB_SRC)/finiteVolume \ -I$(LIB_SRC)/finiteVolume/lnInclude/ \ -I$(LIB_SRC)/cfdTools/general/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/turbulenceModels \ -I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/postProcessing \ -I$(LIB_SRC)/LESmodels \ -I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude EXE_LIBS = \ -lcompressiblePostProcessing \ -lincompressiblePostProcessing The exe requires that libCompressiblePostProcessing.dll and libIncompressiblePostProcessing.dll be built, and they are... they live in /home/alex/OpenFOAM/OpenFOAM-1.4.1/lib/linuxmingw32DPOpt I dont know what the heck is wmake missing here... :-( I will now try to set libCompressible...dll and libIncompressible...dll in Make /Options to see if this works... But I have a bad feeling about this... IF mingw32 can "see" all the other libs when it builds the exes, I am sude that it also "sees" those two libs... I guess that the problem is somewhere else... just dunno where... :-( Thanks anyway Regards Alex |
|
January 15, 2009, 09:32 |
Hello again Alex,
I see you
|
#115 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Hello again Alex,
I see you didn't get the full extent of my idea... it isn't just a question of having the header includes (EXE_INC), you also need to explicitly declare the necessary libraries (EXE_LIBS)! In your Make/options you should also be explicit in declaring: EXE_LIBS = \ -lcompressiblePostProcessing \ -lincompressiblePostProcessing \ -lOpenFOAM Actually, the near fire proof one should be: EXE_LIBS = \ -lcompressiblePostProcessing \ -lincompressiblePostProcessing \ -lOpenFOAM \ -lfiniteVolume \ -lthermophysicalModels \ -lpostProcessing and add as many as you suspect that might be necessary! When it finally builds, then by trial and error, exclude the libraries that you might think you don't need. In other words, mingw32 doesn't have smart library search... it only links with the libraries you tell it to! And by what I can figure out, "fvMesh basicThermo momentCoefficient liftCoefficient" and so on, are methods that belong to libOpenFOAM.dll. That's why I told you to use grep "fvMesh" -R * to figure out inside which lib should those methods be! Regards, Bruno
__________________
|
|
January 16, 2009, 17:41 |
Hello to all cross-compiling F
|
#116 | |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Hello to all cross-compiling FOAMers,
I've been going around cross-compiling OpenFOAM 1.4.1 and 1.5.x on a KUbuntu 8.04 virtual machine for a little over a month. I've got some developments I'm going to share with you, and I hope the good people at Symscape can later on clean up the rough edges my patches have got... because I managed to get most of the missing libraries fully built and -parallel up and running... although I didn't get mpirun to work with OpenFOAM in Windows . And on a note on compiling the 1st versions, at least for me, I had to install flex-2.5.34 and compile flex-2.5.35 on top of 2.5.34, in order for OpenFOAM (both versions) to compile. I'm just going to explain what I manage to do for OpenFOAM-1.5.x, because for 1.4.1 I just needed the addition of this information. And I'm so very sorry for this being a long post, but I thought it would be better to explain all of the stages undertaken, in order to share the know-how I gathered from this cross-compiling experience. OK, starting from the v1 patch that Symscape has for OpenFOAM 1.5.x available in their page (should also work with v2), I've done the following developments, over 3 stages: 1st - finish resolving the unbuilt libraries that don't depend on MPI; 2nd - get OpenFOAM to compile with some compatible MPI version, that is already available for Windows... because we needed snappyHexMesh to run in Windows; 3rd - get openFOAM to compile like in the 2nd stage, but this time use the Pstream/mpi, instead of the dummy version. I just didn't get the mallocs up and running, because for now I'm just worried at getting all of the basics up and running... and I can't see whether the linux version uses it! Hopefully I can get the patches up here onto the forum. Inside the attached tar.gz file, are the following files: openfoam15x_patch1 <- mentioned in stage 1 and 2patchesNbatches.tar.gz ---- 1st stage ---- I copied the following files: OpenFOAM-1.4.1/src/MGridGenGamgAgglomeration/ParMGridGen-1.0/MGridGen/IMlib/IMlib.h OpenFOAM-1.4.1/src/MGridGenGamgAgglomeration/ParMGridGen-1.0/MGridGen/Lib/mgridgen.c to ThirdParty/ParMGridGen-1.0/MGridGen/IMlib/IMlib.h ThirdParty/ParMGridGen-1.0/MGridGen/Lib/mgridgen.c I didn't get around to check the specific reason why mingw32 wouldn't build with the original version. Then run at ThirdParty: wmake libso ParMGridGen-1.0/MGridGen/Lib wmake libso ParMGridGen-1.0/MGridGen/IMlib And there are warnings about IMFree not being declared... but it built just the same. If you don't want them to appear, go to ThirdParty/ParMGridGen-1.0/MGridGen/IMlib/IMlib.h and remove the comments from void IMfree(void **, ...); Ok, now, source OpenFOAM-1.5.x/src/decompositionAgglomeration/Allwmake, and move up the wmake libso MGridGenGamgAgglomeration to before the MPIs if, because the if kills Allwmake at the endif. Now you can either run that Allmake, or wmake libso MGridGenGamgAgglomeration to build this missing library. Finally, OpenFOAM-1.5.x/applications/utilities/miscellaneous/foamDebugSwitches wasn't building because of a couple of glitches it has in Make/options. Check the openfoam15x_patch1 file for the correct settings, or just use it for patching things up. 1st stage Patch: The ThirdPartyDiff file will only patch for you IMlib.h and mgridgen.c. You'll have to do the rest! Run it at the ThirdParty folder. ---- 2nd stage ---- Now, for MPI: I couldn't find OpenMPI for Windows... nor LAM. All that was left was MPICH1 (I don't know if OpenFOAM will work with MPICH2). And so, I got the version available here. At the end of that page, download the mpich.nt.1.2.5.src.zip and unzip it to ThirdParty/, and rename the new folder mpich to mpich-1.2.5. The good thing about this MPI, is that it is already compiled for windows And has the gcc like library definition files! There is still one thing you've got to get: regex for mingw32. It is at sourceforge and you should get both the bin and the dev versions... to keep things simple ;) Extract both to your instalation of mingw... mine is at $HOME/mingwcc/install/mingw32/. Copy the files libgnurx-0.dll libregex.a libgnurx.dll.a inside mingw32/bin and mingw32/lib folders, to the $HOME/OpenFOAM/OpenFOAM-1.5.x/lib/linuxmingw32DPOpt/ folder. Now go to OpenFOAM-1.5.x/wmake/rules/linuxmingw32/mplibMPICH and remove the -lrt option. Source OpenFOAM-1.5.x/etc/settings.sh, find mpi_version=mpich-1.2.4 and change it to mpi_version=mpich-1.2.5. There are various file changes that I made in the ThirdParty folder, and the patch file is ThirdPartyDiff_mpi. (NOTE: I've uncommented GKfree in proto.h in ParMetis-3.1/ParMETISLib and ParMetis-3.1/METISLib, so if some application crashes due to memory issues... this might be the one to blame.) Once you patch up the ThirdParty folder, you can run ./Allwmake there. Keep in mind, that the malloc folder isn't builtable... at least not with this patch. In the patch openfoam15x_patch1 are the file changes I made to the OpenFOAM-1.5.x folder (including the ones mentioned above), thus enabling the possibility to build libparMetisDecomp.dll and snappyHexMesh.exe. After patching, go to OpenFOAM-1.5.x/src/decompositionAgglomeration and do a wclean all and wmake all, so it will build all the metis depending libraries. And finally, go to OpenFOAM-1.5.x/applications and run ./Allwmake to build the missing executables... or just go to OpenFOAM-1.5.x/applications/utilities/mesh/generation/ and run wmake all. And so, 2nd stage is complete! But keep in mind that this only enables you to run snappyHexMesh and others that rely on METIS to "get busy". Parallel processing is not enabled, because Pstream isn't MPI based. ---- 3rd stage ---- Now for the final stage: getting Pstream based on MPI. This is a bit more costly, because you'll have to rebuild everything again! At least I had to... I followed the Pstream comment at Symscape, but then somehow it got messy with the multiple builds and dll links. So I chose to go with the direct aproach: exclude libPstream.dll from the build, and build its files directly into OpenFOAM! Use the file openfoam15x_patch2 to patch up the final files in the folder OpenFOAM-1.5.x. After all of these stages, now you should have everything patched up and ready to rebuild most of it from scratch. I think a wcleanAll and then a ./Allwmake at OpenFOAM-1.5.x, should get everything built nicely... or so I hope. You could always just go with ./Allwmake, but that didn't go so well with me. Oh, and don't forget about Quote:
And also copy all the files from ThirdParty/mpich-1.2.5/lib to OpenFOAM-1.5.x/lib/linuxmingw32DPOpt/mpich-1.2.5, because the MPICH dlls are necessary. Once all is built, you can do as mentioned at Symscape's tutorial point 9. I went all the way to replicate the full structure mentioned in the etc/bashrc and etc/settings.sh files. That is why I also attached the setupcmd.bat and setvars.bat files. Anyway, also copy the *.bat files in the attached file to the bin folder in Windows. Remember, all of the OpenFOAM's *.dll and *.exe have to be visible in the PATH setting in the command prompt environment, including the ones inside the lib/mpich-1.2.5 folder. I tried installing the MPICH setup supplied at their site, but it didn't work with OpenFOAM, due to failed "env" settings, thus not indicating the correct PORT to use. So mpirun won't work... Finally I found out about how to manually launch the slaves and master processes, and thus created the gompi.bat and gocore.bat batch files. Together, they launch your foamExecutable with the -parallel argument, and launches individual command prompts running the foamExecutable, with all of the necessary arragements done. So, source gompi.bat, and change/add all of the local processor cores you want, by following the 2nd core and 3rd core existing lines. Now, in the command prompt, go to you favorite test case and use: gompi foamExec or gompi foamExec -case you_case_dir and you application will go full steam ahead! If you want to use more than one computer, use the gompi.bat and gocore.bat as references to launching manually in each computer. And there it is, all that I managed to sum up is finally over. Once again, sorry for the looong post. I hope the good people at Symscape can trim my rough edges. And I hope I didn't miss anything, because this is compiled information and I might have missing something along the way Oh, by the way, you can build applications/test/parallel, that goes into your OpenFOAM/user-1.5.x/application/bin folder. Run it with gompi parallelTest in a case folder, so you can test whether the mpi functions are working. It should show the following last lines: Create timeIt really bugs me that I couldn't get the full mpi extent up and running, and Pstream building without cyclic dependencies to OpenFOAM... Oh well «good is enemy of best». Disclaimer: I've only tested parallelTest, and snappyHexMesh with the motorBike tutorial so far. Best regards to all, and please warn me if pieces are missing!! Bruno Santos, at www.bluecape.com.pt
__________________
|
||
January 18, 2009, 13:26 |
Hi Bruno,
Great work gettin
|
#117 |
Senior Member
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 17 |
Hi Bruno,
Great work getting the MinGW parallel moving. I'm not a parallel expert (at least in the league you are) so I wouldn't be confident trying to incorporate your wirk into a new patch. I think the best approach for the time being is for you to issue and maintain a MinGW parallel patch, as you have. If it would be easier for your parallel patch to incoporate my patch then that's fine. Great job, regards, Rich
__________________
Symscape, Computational Fluid Dynamics for all |
|
January 19, 2009, 19:08 |
Hi Bruno
Your hint worked l
|
#118 |
Senior Member
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 17 |
Hi Bruno
Your hint worked like a charm for most of my apps... except one... http://mmpp.110mb.com/OpenFOAM/liftDragTool.tar.gz even after adding ALL the dll libraries existent to the make/options, EXE_LIBS , the wmake still misses something... This compiles under OF-1.4.1 linux... never tried it under OF-1.5... you can try... I guess it has to do with cyclic dependencies... ...even after addin all the libs it wont compile... :-( But I managed to compile most of my other apps... except this one... I will now to build OF-1.5.x for win32... my Nth try... :-( OF-1.4.1 built allright... so, this is not a cross compiler issue... Will have more news tomorrow... Best regards Alex |
|
January 20, 2009, 15:40 |
Hello Alex,
For OpenFOAM 1.
|
#119 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Hello Alex,
For OpenFOAM 1.5.x, you're going to need the version modified by the creator or the maintainer, which is on the README file in your tar.gz file. Because there were some serious restructuring from OpenFOAM 1.4.1 to 1.5.x, so I can't figure out the specific dependencies that your files depend on By what I can figure out, some of the classes it depends on no longer exist in 1.5.x or have been moved and renamed! As for OpenFOAM 1.4.1, you'll need to add to LIB_LIBS in each options file: >> postProcessing/compressible/Make/options -lOpenFOAM \ -lfiniteVolume >> postProcessing/incompressible/Make/options -lOpenFOAM \ -lfiniteVolume >> applications/utilities/postProcessing/liftDrag/Make/options (actually, it's in EXE_LIBS here) -lbasicThermophysicalModels \ -lOpenFOAM \ -lfiniteVolume In case you've followed the comment on Pstream to build Pstream separately, you'll need to add to LIB_LIBS or EXE_LIBS on those files: -L$(FOAM_LIBBIN)/dummy \ -lPstream And in certain situations, adding -L$(FOAM_LIBBIN) to the EXE_LIBS or LIB_LIBS solves the problem of "I can't find library -lstuff". Hope this helps. It should build correctly! Best regards, Bruno PS: Er, now that I've re-read your post, I think you've already solved for OpenFOAM 1.4.1... sooo, I guess no dice for OpenFOAM 1.5.x, at least not without having to look at the code and learning what it really needs and does
__________________
|
|
January 21, 2009, 10:37 |
Hello Richard,
Took me long
|
#120 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Hello Richard,
Took me longer to reply to your comment, because following your comment, I've cleaned up my patches into two patch files, one for OpenFOAM-1.5.x and another for ThirdParty. They've been updated to meet to your v2 patch version. So, very well, I'll do my best to keep these patches updated up to your patches! And so, I lay out the full scheme to apply these two patches. So, fellow cross-compiling FOAMers, here goes! Once again, I resort to a patchesNbatches.tar.gz file with the 2 new patches and the useful batch files, which is attached here: patchesNbatches2.tar.gz Inside the attached tar.gz file, are the following files: OpenFOAM_1.5.x_patch <- the patch for patching up the OpenFOAM-1.5.x folderI've just tried them on a clean OpenFOAM setup, and here goes the steps to be taken (have Symscape's tutorial opened, because I'll reference it many times): 1. Do Symscape's tutorial point 1. 1.1. Also get regex for mingw32. It is at sourceforge and you should get both the bin and the dev versions... to keep things simple ;) Extract both to your instalation of mingw... mine is at $HOME/mingwcc/install/mingw32/. I'm not going to lay here the commands, because the sourceforge links might change and your installation path is probably also different! 2. Do Symscape's tutorial point 2; 3. Do Symscape's tutorial point 3. I've done it the following way: 3.1. run the following commands in a bash: cd ~ 3.2. source $HOME/.bashrc and add the following line to the end of it: . $HOME/OpenFOAM/OpenFOAM-1.5.x/etc/bashrc 3.3 launch a new terminal and run the following commands, thus building wmkdep and dirToString: cd $HOME/OpenFOAM/OpenFOAM-1.5.x 4. Do Symscape's tutorial point 4, but don't build zlib! 4.1. Run the following commands on the terminal: cd $HOME/OpenFOAM 4.2. Patch the ThirdParty folder with ThirdParty_patch file. (Run patch -p0 < ThirdParty_patch, if the patch file is already the ThirdParty folder!) 5. Do Symscape's tutorial point 5. (Possibly, run patch -p1 < v2-mingw-openfoam-1-5-x.patch, inside the OpenFOAM-1.5.x folder) 5.1. Since we're in a patching spree, also patch the OpenFOAM-1.5.x folder with the OpenFOAM_1.5.x_patch, which is inside the attached file. You can do it by running patch -p0 < OpenFOAM_1.5.x_patch, as long as your bash is at the folder OpenFOAM-1.5.x 6. Do Symscape's tutorial point 6; 7. Do Symscape's tutorial point 7. 7.1. Additionally, I've added 2 additional items to bashrc-mingw32: - WM_PSTREAMLINK: this variable indicates whether OpenFOAM should be built with libPstream.dll, or have it's code directly integrated to libOpenFOAM.dll. (Personally, I've only tested this patch with the separated Pstream library, so I'm no 100% that the other options will also work...)7.2. Don't forget to source $HOME/.bashrc and change the line added in point 3.2. You might also want to launch a new terminal after that, so it updates the environment variables. 8. Do Symscape's tutorial point 8. This will build everything available with these patches for mingw32, both ThirdParty and OpenFOAM-1.5.x. 8.1. Also build applications/test/parallel, that goes into your OpenFOAM/user-1.5.x/application/bin folder. To build it, just run wmake in folder OpenFOAM-1.5.x/applications/test/parallel. 9. Do Symscape's tutorial point 9. 9.1. Also copy the file OpenFOAM/user-1.5.x/application/bin/linuxmingw32DPOpt/parallelTest.exe to Windows, so you can test the parallel mode. 9.Optional: I recreated the folder path inside an OpenFOAM folder, and copied the respective contents, as follows: This way it is easier to copy and update/upgrade or add new OpenFOAM built versions. 10. Do Symscape's tutorial point 10. 10.Optional: - Copy the files setvars.bat and setcmd.bat to the OpenFOAM-1.5.x folder.The batch files gompi.bat and gocore.bat files, together, they launch your foamExecutable with the -parallel argument. gompi.bat launches individual command prompts running the foamExecutable, with all of the necessary arragements done for you. In the command prompt, go to you favorite test case and use: gompi foamExec or gompi foamExec -case you_case_dir and you application will go full steam ahead! If you want to use more than one computer, use the gompi.bat and gocore.bat as references to launching manually in each computer. To test if it is working, as long as you've built and copied parallelTest.exe to Windows, run gompi parallelTest inside a case folder of yours, already decomposePar'er, and you should see something like this in the end of the terminal: Create timeSo there you go, parallel is up and running! If not, you should blame the firewall, or you haven't sourced properly setvars.bat. Stuff that isn't building nor working: - Currently libccmio is offline, because I don't need ccm26ToFoam, sorry . - ThirdParty's malloc isn't building either, because I don't know how it is suppose to link up to the OpenFOAM libraries. - mpirun is K.O., or at least I can't get it to work properly. In over 50 tries, only once did it run with OpenFOAM! Might be some issue with the firewall, not sure yet. - The scripts at OpenFOAM-1.5.x/bin won't work. I've managed to get them to partially working using msys in Windows, but without MPI and a working Paraview .foam plugin, I guess it is a bit pointless. Stuff I would like to get working: - faster I/O and malloc, but I haven't got a clue if this is the main bottleneck in this mingw32 OpenFOAM version; - MPICH2, since it already has a multi-platform building structure, and is able to transfer data between Linux and Windows, as long it is the same 32/64 bit type. I've already got a lead on it, which is here, but only time and patience will tell if it will be useful to us. Tips: - In Linux, run mingw32-strip -s *.exe inside your application/bin/linuxmingw32DPOpt/ folder. Also mingw32-strip -s lib*.dll inside lib/linuxmingw32DPOpt/, lib/linuxmingw32DPOpt/dummy/ and lib/linuxmingw32DPOpt/mpich-1.2.5/. This will strip useless symbols and will reduce occupied space in disk from 441+239 MiB to 165+149 MiB! I think it still works properly. Does it run faster? Psychologically, yes! - If your OpenFOAM application/library isn't building, very likely it's missing specific indication of libraries it has to link to. This is defined in files like Make/options. If you look to my patched versions of options files, you might get shocked, because it was a bit rough way to set linkage to each build mode... sorry. Look at the version patched by Symscape's patches, so you can get a better feel that mingw32 and Windows are a bit dumb, when it comes to libraries... "DLL hell" as some call it! So, if anyone has any questions, feel free to ask! Regards, Bruno
__________________
|
|
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
OpenFOAM 15x MinGW Windows Port | gocarts | OpenFOAM Installation | 1 | April 17, 2009 11:41 |
divide by zero FPE issue in OpenFOAM 141 MingW port | allenzhao | OpenFOAM Installation | 9 | September 22, 2008 18:13 |
OpenFOAM on SuSE Linux 100 | musahossein | OpenFOAM Installation | 4 | June 20, 2008 17:47 |
OpenFoam and Linux | Tomislav Maric | Main CFD Forum | 13 | October 25, 2007 05:45 |
OpenFOAM and linux distros | billy | OpenFOAM | 8 | September 8, 2005 02:43 |