CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Installation (
-   -   Windows Installation Petrbs Port Redux Patches and Binary Distribution (

brooksmoses February 10, 2006 18:35

As promised, I've been working
As promised, I've been working through Petr Vita's Cygwin patch, including the changes needed to make it work on a non-managed (ordinary) mount, and with tcsh as well as bash.

The result, in short, is a tarball of the official distribution with some filenames changed so that it will unpack correctly on a case-insensitive filesystem (I'll post more details on that elsewhere, or look in the changelog.cygwin file I included), and a set of six patches which go through various parts of the port. And, at the end, some packages of the resulting source files and compiled binaries, such that one can have a working OpenFOAM-on-Cygwin installation simply by unpackaging them -- no aspirin needed!

I've put everything online at, including the binary packages and installation instructions; if you just want to install OpenFOAM, go there. The following is a description of the patches and changes, which I hope will be useful to the OpenFOAM developers in deciding whether and how to include Petr's changes in the core distribution:

First, as mentioned, I've renamed some files to deal with case-insensitivity problems. The problems have been discussed quite a bit elsewhere; I'll just note that this only involved 34 source files. The tarball of the renamed files to start with (no file contents have been changed at all yet) is:

The first change is to fix all of the file references that just got broken by renaming files; in particular, #include lines and entries in Make/files configurations. In addition, the wmakeLnInclude script does not properly handle .cc and .hh files, and so it must be adapted to link those as well. The following patch file (which should be applied to the cygwin-src-0.0 files) includes these changes:

Now that the case-sensitivity problems are addressed, we can begin with the real meat of the patch, which comes from Petr and his colleagues. We start with the most important piece of this: the changes to the wmake build system that are required for adapting to the Windows linker. This is explained in considerably more detail in the OpenFOAM-Cygwin-HOWTO.txt file, so I will simply provide the changes in patch-file form:

Next, there are various changes to the cshrc and bashrc scripts in order to add architecture options for the Cygwin environment, and to account for some minor differences in the environment itself.

There are also a few minor bug-fixes in the build scripts, which are not Cygwin-specific at all, but are needed for a correct build; we include those now:

The changes to the wmake architecture require some changes to a number of the build files, in order to resolve what would otherwise be some dependency loops in Windows for the Pstream and triSurface libraries. Those are included here, along with a couple of additional #include statements in other files, and some changes to the build scripts so that MICO and programs that depend on it (FoamX, patchTool, and foamDebugSwitches) are not built on Cygwin, as that part of the port has not yet been worked out:

Finally, Windows requires additional libraries to be included at link time instead of being left until runtime in many cases, and this requires changes to a large number of the Make/options files:

At this point, the port can be compiled; change to the OpenFOAM-1.2 directory, source .OpenFOAM-1.2/cshrc or bashrc depending on your preferences, and then run ./Allwmake.

(Also, there are some Cygwin prerequisites that aren't installed by default: sed, patch, make, flex, and bison are the ones I've noticed in my testing on various machines.)

All times are GMT -4. The time now is 06:38.