Commit Graph

49 Commits

Author SHA1 Message Date
Mark Olesen
d4a0dc631c CONFIG: relax requirement on C compile option
- with 1906, OpenFOAM is purely C++ code and the last toolchain bits C
  code have been avoided. Thus relax the wmake C rule for including
  WM_COMPILE_OPTION. This makes it much easier to add different
  compiler options with fewer files.

  For example, for Broadwell-specific options:

      cd wmake/rules/linux64Gcc
      cp c++Opt c++OptBdw

      edit this file and then use WM_COMPILE_OPTION=OptBdw

- ensure that WM_COMPILE_OPTION is always non-empty
2019-08-07 09:22:09 +02:00
Mark Olesen
787325a916 COMP: manage cpu architecture with cARCH, c++ARCH internal make variables
- allows better separation from compiler settings

- use -fPIC instead of legacy -KPIC for intel compiler
2019-04-12 12:59:11 +02:00
Mark Olesen
fd8379fdbe CONFIG: update MPICH and MVAPICH versions/rules
- 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.
2019-02-14 18:09:37 +01:00
Andrew Heather
cab94a5d0a Merge remote-tracking branch 'origin/master' into develop 2019-02-04 10:55:34 +00:00
Mark Olesen
473e000bed ENH: enable MPI library variants (#1153)
- 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
2019-01-28 19:19:09 +01:00
Mark Olesen
ef6c2ef590 CONFIG: combine wmake rules for KNL architecture as a compile option
- 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.
2019-01-25 17:39:05 +01:00
Mark Olesen
2db4b0867e CONFIG: consolidate C++ flags per compiler type
- easier to ensure that flags are consistent
2018-03-21 11:50:57 +01:00
Mark Olesen
664685f7fe CONFIG: bump API version number to 1803 to account for removal of Xfer
- primary points for an external user are the polyMesh constructor

- add config info for gcc-7.3.0

COMP: intel-2017. Ignore unknown pragmas. Disambiguate method resolution.
2018-03-05 20:18:26 +01:00
Mark Olesen
995c55b60e CONFIG: add clang third-party lib to LD_LIBRARY_PATH
- required if there is no system openmp and libomp or libgomp are
  only found in the clang hierarchy

STYLE: add some notes in the openmp rules.

- the _OPENMP macro is now used in low-level testing files
2017-12-19 16:07:15 +01:00
Mark Olesen
405cf8129a CONFIG: update some wmake rules
- initial settings for ADIOS2, linuxARM64Gcc, linuxARM64Clang
2017-12-07 15:41:58 +00:00
Mark Olesen
e1167d9592 ENH: provide openmp compile and link flags.
- the USE_OMP preprocessor symbol is also defined with the openmp
  compile flag to allow conditional compilation of openmp-specific
  code.
2017-10-23 09:38:43 +02:00
Mark Olesen
a531168ae4 COMP: reinstate rules for various C++ suffixes (issue #607) 2017-09-29 18:07:42 +02:00
Henry Weller
0fdcb12759 Updated to avoid warnings from gcc-7.1.1 2017-07-31 13:46:42 +01:00
Henry Weller
6c3c2f1399 icpc rules: removed another unimportant warning 2016-10-04 08:10:28 +01:00
Henry Weller
82aa78a4d4 wmake/rules/linux.*Icc: Removed a new unhelpful warning message 2016-08-11 16:25:53 +01:00
Henry Weller
7996a9138f C++11: Update compilation rules to specify C++11 support and conformance
The change from C++0x to C++11 allows all of C++11 functionality to be
used in OpenFOAM, in particular constructor delegation which avoids code
duplication or constructor helper functions.  However, this also means a
change to the minimum gcc version supported which is now 4.7 rather than
4.5.

Note that gcc-4.7 does not support the entire C++11 standard but does
support all of the functionality currently needed for further OpenFOAM
development.  The minimum gcc-version which supports the entire C++11
standard is 4.8 which is now the recommended minimum gcc version.
2016-08-05 16:28:19 +01:00
Henry Weller
3a3966d400 wmake/rules/linux.*Icc: Updated for icpc (ICC) 16.0.3 20160415 2016-07-28 13:47:44 +01:00
Henry Weller
4107d312fa wmake/rules/linux.*Icc: Remove -xHost option which causes surfaceFeatureExtract to fail for some cases 2016-04-25 22:29:22 +01:00
Henry Weller
5312f6c7f0 wmake/rules/linux64Icc: avoid uninteresting warning messages and change to -O3 2016-04-01 14:53:43 +01:00
Henry Weller
c3a03105c4 wmake: Add support for compiler type default rules
which may be optionally overridden by version-specific rules.

For example the default rules for gcc on GNU/Linux x86_64 are in the
wmake/rules/linux64Gcc directory.  If there is a need to change any of
the rules for a specific version of gcc, e.g. gcc-4.8.4 the directory
wmake/rules/linux64Gcc48 may be created into which any of the language
files may be provided containing the rules to override the defaults.
2016-01-24 14:10:07 +00:00
Henry Weller
91e04d69c1 Resolve various unimportant warning messages from Gcc, Clang and Icpc 2015-07-19 11:31:49 +01:00
Henry Weller
a96bfa5f49 Icpc 15: -no-prec-div optimization causes snappyHexMesh to fail -- removed 2015-07-17 19:34:19 +01:00
Henry Weller
6d4422f4b0 wmake rules for icpc: suppress warnings from CGAL 2015-07-17 18:27:30 +01:00
Henry Weller
6b706cfa78 Upgrade Intel C++ compiler to icpc (ICC) 15.0.3 20150407
This resolves a whole range of issues and work-arounds with earlier
releases.  This version of icpc is more or less compatible with the
latest gcc and clang compilers and only required one hack to avoid
warnings from PackedBoolList.H.
2015-07-17 16:50:40 +01:00
Henry
656dc54f71 Icc support: added floating-point exception trapping and accurate maths
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1432
2015-01-28 09:18:47 +00:00
Henry
844b283030 New version of wmake supporting out-of-tree object and dependency files 2014-12-14 21:42:18 +00:00
Henry
b9311f0507 Icc: filter yet more spurious warning messages 2014-01-14 12:42:35 +00:00
Henry
5d4073b8a3 Icc support: changed optimisation switch to account for the architecture automatically 2013-03-14 10:51:21 +00:00
mattijs
8f28740568 COMP: Intel: add add-needed link flags for modern linux platforms 2012-07-09 09:06:41 +01:00
Henry
95a5facaf0 wmake: Added support for Intel MPI 2011-11-22 17:51:57 +00:00
Henry
32d7d05192 Icc: changed the default optimisation level to O2 2011-10-19 12:17:28 +01:00
Henry
e2ad6d4032 Icc: lower the optimisation level to avoid memory aliasing problems in lagrangian 2011-06-10 12:15:46 +01:00
Henry
1d69807a3a wmake rules: Remove dependency on libiberty which is no longer needed 2011-03-07 12:57:41 +00:00
Henry
c8314956da wmake: Updated rules for Icc 2010-12-06 12:21:16 +00:00
Mark Olesen
350df4db3f STYLE: remove trailing space from wmake rules
- To-do:
      wmake/rules/General/bison
      wmake/rules/General/btyacc
      wmake/rules/General/btyacc++
      wmake/rules/General/byacc
      wmake/rules/General/moc
      wmake/rules/General/yacc

  but these files have <TAB>
2010-11-17 11:22:31 +01:00
graham
7faf359bc1 COMP: adding -traditional-cpp to CPP variable. 2010-07-21 10:58:53 +01:00
Mark Olesen
0d44584112 ENH: rationalize wmake rules to avoid unnecessary duplication
- main mplib rules located in GENERAL_RULES with specializations
  (if any) under RULES. Modest change in a few options files, but
  cleans up the rules directories.

  previously in options:
      include $(RULES)/mplib$(WM_MPLIB)

  now in options:
      sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
      sinclude $(RULES)/mplib$(WM_MPLIB)

  For GNU make it would be permissible to write both in a single line.
2010-04-22 15:01:07 +02:00
Mark Olesen
0686bdf1e9 ENH: simplify cpp rules to avoid absolute paths and multiple GFLAGS.
- otherwise /lib/cpp may need a different library binding than
  currently available and results in this type of error:

  /usr/lib64/gcc/x86_64-suse-linux/4.4/cc1:
  /data/app/OpenFOAM/ThirdParty-1.6.x/platforms/linux64/gcc-4.3.3/lib64/libstdc++.so.6:
  version `GLIBCXX_3.4.11' not found (required by
  /usr/lib64/libppl_c.so.2)

ENH: remove unused flex++ rule for SiCortex that was identical to the
general one anyhow.
2010-03-29 10:59:35 +02:00
Mark Olesen
0b9e5ea11a ENH: link to general mplib* rules where possible.
ENH: generalize rule for X11

ENH: Avoid move in flex/flex++ rule.
2010-03-26 11:48:23 +01:00
mattijs
85a481906a ENH: Added new WM_MPLIB setting.
This signals that we are using the system installed openmpi version.
2010-03-01 15:14:03 +00:00
mattijs
192f8ae542 Changed tecio build options to use local file 2009-12-14 11:20:22 +00:00
mattijs
db34f04131 added tecio compilation rules to wmake 2009-12-08 11:40:00 +00:00
henry
f686c8d531 Remove spurious warnings from the Icc compiler concerning casting NULL. 2009-12-02 16:39:12 +00:00
mattijs
9c1d1dc7b9 skip c++ include for mpi.h 2009-10-06 14:43:42 +01:00
Mark Olesen
0e5e84f4ed removed last remnants of LAM support 2009-07-15 12:26:12 +02:00
henry
16e9f10e22 Added support for HP-MPI. 2008-11-19 14:57:06 +00:00
Mark Olesen
0d3eec3dc4 removed more derived files from repo 2008-07-01 13:09:04 +02:00
Mark Olesen
14fefb0554 Use uniform MPI_ARCH_PATH instead of {OPENMPI,LAM,..}_ARCH_PATH 2008-06-05 10:53:44 +02:00
henry
c0a6360f0b Corrected the setting of WM_COMPILER and renamed I32 and I64 to Icc. 2008-05-29 16:02:39 +01:00