Please check the following sites for additional information: General information: http://oss.deltares.nl/web/opendelft3d/source-code FAQ : http://oss.deltares.nl/web/opendelft3d/faq-compiling-code Compile forum : http://oss.deltares.nl/web/opendelft3d/general/-/message_boards?_19_mbCategoryId=22276 Compiling on Windows ==================== 0) Be sure that you have installed: Visual Studio 2008, including Fortran compiler Intel 11.0 (11.1) OR Visual Studio 2010, including Fortran compiler Intel 12.0 (Intel(R) Visual Fortran Composer XE 2011) 1) Open "src\d_hydro_open_source.sln" in Visual Studio 2008 OR Open "src\d_hydro_open_source_vs2010.sln" in Visual Studio 2010 2) Select the "solution configuration" you want: "Debug" or "Release" (normally "Release") 3) B 4) The binaries are installed in directory "bin\win32" (Release) or in the subdirectory of the executable, e.g. "src\engines_gpl\d_hydro\bin\Debug" (Debug) Compiling on Linux ================== 1) In directory "src", do one of the following two options: Option A): ./autogen.sh CFLAGS='-O2 -fPIC -m64' CXXFLAGS='-O2 -fPIC -m64' FFLAGS='-O2 -fPIC -m64' FCFLAGS='-O2 -fPIC -m64' ./configure --prefix=`pwd` make ds-install Option B): Use script build.sh. Executing "./build.sh" will show the usage. The following example line is used to create the latest fully tested version: ./build.sh -gnu -64bit 2) The binaries are installed in directory: - "src/bin" and "src/lib" (due to "--prefix=`pwd`" and default "install") - "bin/lnx", ready to copy to an existing Delft3D installation (due to "ds-install") 3) To clean (removing all files generated by autoreconf/configure/make): ./clean.sh 4) 64-bit version: - Be careful with tools/compilers located in different directories due to different revision/build numbers (e.q. /opt/mpich2) You have to take care of that yourself - Check both "common.am" and "build.sh" - Check http://oss.deltares.nl/web/opendelft3d/faq-compiling-code#How do I create a 64-bit executable? Compiling on OSX ================ The OSX version is only tested with Macports gcc45 + openmpi compilers. Make sure you also get libtool, autoconf, automake, gnu make from macports. The OSX version is very alpha (not tested) so please don't use it for anything serious and report any problems to the general forum. The steps to get it working are first install DelftOnline: 1) cd delft3dsrcdirectory 2) autoreconf -i 3) ./configure (*,**) 4) make 5) make install * If you don't want to install into /usr/local, use --prefix=abspath ** Set DYLD_LIBRARY_PATH to the directory containing DelftOnline if it's not in your default path Debugging in Microsoft Visual Studio ==================================== - Be sure to have compiled the "Debug configuration" (Build -> Configuration Manager...). All resulting binaries are copied automatically to directory "...\src\engines_gpl\d_hydro\bin\Debug". - In your model input directory: put a copy of file "...\oss\src\engines_gpl\d_hydro\scripts\config_flow2d3d.xml", open it in a text editor and fill in the correct name of the mdf-file. - In VisualStudio: 1) right-click on the project "d_hydro", Properties -> Configuration properties -> Debugging: Command Arguments: config_flow2d3d.xml Working directory: d:/full/path/to/your/model/input/directory OK 2) In the source code: add a breakpoint. Click some line, then click in the gray bar in front of this line (or press F9). A red dot will appear. 3) right-click on the project "d_hydro", Debug -> Start new instance. A window will allways appear saying source code has been changed. You can rebuild the source code or skip this if you are sure all source code is build correctly. Then the calculation starts. Directory structure =================== engines : Programs which perform a physical simulation engines_gpl : Open source engines under GPL conditions tools : Programs which support the engines tools_gpl : Open source tools under GPL conditions utils : Libraries which are used by the engines and/or tools, but at least by more than one engine/tool utils_lgpl : Open source utils under LGPL conditions Location where compiler flags are defined/added (Linux only) ============================================================ configure.ac ------------ Preprocessor: line 86: (AC_FC_PREPROCESS) OpenMP flags: line 66 and 95: (AX_OPENMP) -recursive -reentrancy threaded -traceback: line 112 and 120 -lirc, -lsvml, -lmcheck: line 176, 177 and 178 respectively pthread: line 182 (ACX_PTHREAD) common.am --------- F77 lines longer than 72 characters: line 57 (-extend-source 132) build.sh -------- debug or release: line 252/254: '-g -O0' resp. '-O2' position independent code: line 265-276: -fPIC 64bit: line 265-268: -m64 5 June 2012 adri.mourits@deltares.nl