- Jun 14, 2019
-
-
Mark OLESEN authored
- now only needed when specify compiling -m32 on a 64-bit system. Internally use the __SIZEOF_LONG__ compiler macro (gcc, icc, llvm) to define when long is actually an int32_t.
-
- Jun 13, 2019
-
-
mattijs authored
-
Mark OLESEN authored
- adjust copyright dates for manpages
-
- Jun 09, 2019
-
-
Mark OLESEN authored
- no use having wmkdepend on the target architecture when it will only be needed on the host architecture.
-
- Jun 07, 2019
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- remove make target for wmdep (flex-based scanner), which eliminates a bootstrap dependency on flex. As of OpenFOAM-v1806, wmdep has been superseded by wmdepend (ragel-based scanner). - replace dirToString binary with shell/awk equivalent for simpler maintenance. The utility is very rarely used (auto scanning to create Make/files) so there is no performance difference.
-
- Jun 04, 2019
-
-
Mark OLESEN authored
-
- Jun 03, 2019
-
-
Mark OLESEN authored
- forces c++DBUG='-DFULLDEBUG -g -O0' for the compilation, to allow localized debugging during development without file editing and while retaining the WM_COMPILE_OPTION (eg, Opt) Note that switching between 'wmake' and 'wmake -debug' will not cause existing targets to be rebuilt. As before, these are driven by the dependencies. An intermediate wclean may thus be required.
-
- Apr 29, 2019
-
-
Mark OLESEN authored
-
Mark OLESEN authored
-
- Apr 28, 2019
-
-
Mark OLESEN authored
- Eg, with surface writers now in surfMesh, there are fewer libraries depending on conversion and sampling. COMP: regularize linkage ordering and avoid some implicit linkage (#1238)
-
Mark OLESEN authored
-
- Apr 26, 2019
-
-
Mark OLESEN authored
- change internal naming from 'EXE_EXT' to 'EXT_EXE' for symmetry with 'EXT_SO'
-
- Apr 16, 2019
-
-
Mark OLESEN authored
- fix typo in makefiles/info that affected wmake -show-compile-c - additional safeguard in src/OpenFOAM/Make/options against self-linking. This is not normally required unless PROJECT_LIBS has been added into the link stage.
-
- Apr 12, 2019
-
-
Mark OLESEN authored
- replace (darwin) with (__APPLE__) - replace (solarisGcc) with (__sun__ && __GNUC__) - instead of 'darwin' -> '__APPLE' - cease with passing a -D$(WM_ARCH) define since this adds no useful additional information and isn't used anywhere. Reference http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system -- COMP: Extend size disambiguation on long (#1238)
-
Mark OLESEN authored
-
Mark OLESEN authored
- allows better separation from compiler settings - use -fPIC instead of legacy -KPIC for intel compiler
-
Mark OLESEN authored
solaris: - rename WM_ARCH from SunOS to solaris64 for consistency with wmake/rules - drop non-64 solaris from wmake/rules - remove automatic selection of FJMPI. This should be done in the bashrc or prefs.sh file instead. - remove old (likely inaccurate) exported flags, rely on wmake -show-xyz or user config instead darwin: - remove '-Ddarwin' from the exported WM_CFLAGS, WM_CXXFLAGS. Not used elsewhere (ThirdParty)
-
- Apr 10, 2019
-
-
Mark OLESEN authored
-
Mark OLESEN authored
-
- Apr 05, 2019
-
-
Mark OLESEN authored
- with the wmake rules we may have some compiler options bound to the internal compiler variable. For example, CC = g++ -std=c++11 -m64 c++FLAGS = ... So shift any flags from CC to CXXFLAGS for the output of 'wmake -show-cxx', 'wmake -show-cxxflags', etc. This makes it much easier to handle the values correctly elsewhere. Eg, CXX="$(wmake -show-cxx)" CXXFLAGS="$(wmake -show-cxxflags)" \ ./configure
-
Mark OLESEN authored
- provide dedicated detection 'have_ptscotch' function that can be used after the 'have_scotch' function. It sets the PTSCOTCH_ARCH_PATH, PTSCOTCH_INC_DIR, PTSCOTCH_LIB_DIR and helps when the serial and parallel versions are located with different logic.
-
- Apr 03, 2019
-
-
Mark OLESEN authored
- add an additional test for wmake pre-processing
-
- Apr 01, 2019
-
-
Mark OLESEN authored
- can be useful for retrieving the compilation flags for use with other make systems (eg, cmake) * wmake -show-compile (C++ not C) * wmake -show-cxx * wmake -show-cxxflags
-
- Mar 14, 2019
-
-
Mark OLESEN authored
- relocates some logic from makefiles/general into platform-specific overrides
-
- Mar 11, 2019
-
-
Mark OLESEN authored
-
Mark OLESEN authored
-
- Mar 01, 2019
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- with -mcpu=native for automatic detection and -armpl for linking in the performance libraries STYLE: relocate -mcpu into compiler instead of compiler-flags (#1225)
-
Mark OLESEN authored
- with -mcpu=native for automatic detection and -armpl for linking in the performance libraries
-
- May 25, 2019
-
-
Mark OLESEN authored
- when windows portable executables (.exe or .dll) files are loaded, their dependent libraries not fully loaded. For OpenFOAM this means that the static constructors which are responsible for populating run-time selection tables are not triggered, and most of the run-time selectable models will simply not be available. Possible Solution ================= Avoid this problem by defining an additional library symbol such as the following: extern "C" void libName_Load() {} in the respective library, and tag this symbol as 'unresolved' for the linker so that it will attempt to resolve it at run-time by loading the known libraries until it finds it. The link line would resemble the following: -L/some/path -llibName -ulibName_Load Pros: - Allows precise control of forced library loading Cons: - Moderately verbose adjustment of some source files (even with macro wrapping for the declaration). - Adjustment of numerous Make/options files and somewhat ad hoc in nature. - Requires additional care when implementing future libraries and/or applications. - This is the solution taken by the symscape patches (Richard Smith) Possible Solution ================= Avoid this problem by simply force loading all linked libraries. This is done by "scraping" the information out of the respective Make/options file (after pre-processing) and using that to define the library list that will be passed to Foam::dlOpen() at run-time. Pros: - One-time (very) minimal adjustment of the sources and wmake toolchain - Automatically applies to future applications Cons: - Possibly larger memory footprint of application (since all dependent libraries are loaded). - Possible impact on startup time (while loading libraries) - More sensitive to build failures. Since the options files are read and modified based on the existence of the dependent libraries as a preprocessor step, if the libraries are initially unavailable for the first attempt at building the application, the dependencies will be inaccurate for later (successful) builds. - This is solution taken by the bluecape patches (Bruno Santos) Adopted Solution ================ The approach taken by Bruno was adopted in a modified form since this appears to be the most easily maintained. Additional Notes ================ It is always possible to solve this problem by defining a corresponding 'libs (...)' entry in the case system/controlDict, which forces a dlOpen of the listed libraries. This is obviously less than ideal for large-scale changes, but can work to resolve an individual problem. The peldd utility (https://github.com/gsauthof/pe-util), which is also packaged as part of MXE could provide yet another alternative. Like ldd it can be used to determine the library dependencies of binaries or libraries. This information could be used to define an additional load layer for Windows.
-
- Jan 28, 2019
-
-
Mark OLESEN authored
- in addition to managing different vendors and versions, it may also be necessary or desirable to have a particular variant (eg, profiling, release, etc). Devise a new meaningful name for the variant and create a corresponding wmake rule. Eg, SYSTEMOPENMPI-profiling with a corresponding "wmake/rules/linux64Gcc/mplibSYSTEMOPENMPI-profiling" file that has suitable content for your system. CONFIG: intel-mpi use intel64/ paths only for config and wmake rules (#1153) - previously adjusted the config files, but missed the changes required for the wmake rules too. Now simply migrate to using "intel64/{include,bin,lib}" instead of the older naming "{include,bin,lib}64" These changes work since at least intel-mpi 2015 (5.x), but possibly earlier as well
-
- Jan 10, 2019
-
-
Mark OLESEN authored
- was WM_PROJECT_API in the environment and FOAM_API in dictionaries. Make these both consistently FOAM_API. This is a non-breaking change, since the value of WM_PROJECT_API (added in 1812) and/or FOAM_API is purely informative. For the current correct values, always use * foamEtcFile -show-api * wmakeBuildInfo -show-api
-
- Feb 14, 2019
-
-
Mark OLESEN authored
- Note: mpich now builds libmpi.so instead of libmpich.so - define both -DMPICH_SKIP_MPICXX and -DOMPI_SKIP_MPICXX regardless of using openmpi or mpich. This simplifies the files and does not harm.
-
- Feb 06, 2019
-
-
OpenFOAM bot authored
-
Mark OLESEN authored
- objectRegistry search, erase methods - clip, minMax - function object triggering ...
-
- Jan 26, 2019
-
-
Mark OLESEN authored
- older emacs tools into legacy - old process tools * Less frequently used scripts into bin/tools/ - findEmptyMake - foamAllHC - foamUpdateCaseFileHeader * Infrastructure file (only used by foamNewApp) - wmake/wmakeFilesAndOptions -> wmake/scripts/wmakeFilesAndOptions * Merge wmakeRoot convenience as 'wmake -pwd' * Remove obsolete wmakePrintBuild (superseded by wmakeBuildInfo) * Remove unused mergeHistory file
-
- Jan 25, 2019
-
-
Mark OLESEN authored
- instead of WM_COMPILER=GccKNL WM_COMPILE_OPTION=Opt -> linux64GccKNLDPInt32Opt now specify WM_COMPILER=Gcc WM_COMPILE_OPTION=OptKNL -> linux64GccDPInt32OptKNL This makes it easier (and more obvious) for adding different tweaks without needing to generate too many files. Eg, cd wmake/rules/linux64Gcc cp cOpt cOptBdw cp c++Opt c++OptBdw edit these two files and then use WM_COMPILE_OPTION=OptBdw CONFIG: provide some default c/c++ flags in General compiler rules - can make is easier when deriving new compile options, and ensures that '-02' is enabled as an initial default.
-
Mark OLESEN authored
- finds the correct root directory location before creating the lnInclude directory Eg, from within something like src/finiteVolume/fields/fvPatchFields/.. wmakeLnInclude -update -root it backtracks to find the top-level directory with Make/ and makes the lnInclude directory there: Using /home/mark/openfoam/OpenFOAM-plus/src/finiteVolume ln: /home/mark/openfoam/OpenFOAM-plus/src/finiteVolume/lnInclude
-
- Jan 23, 2019
-
-
Mark OLESEN authored
- was for parallel compilation across multiple hosts, but less useful with modern CPUs with higher number of cores and/or hyperthreading. Fragile use and dependent on a 'lockfile' utility that is not often installed.
-