openfoam/wmake/rules
Alexey Matveichev e4f2efec18 COMP: add rpath information to MacOS compilation rules (#2948)
- since the Apple SIP (System Integrity Protection) clears environment
  variables such as DYLD_LIBRARY_PATH, a number of workarounds have
  been used to provide shadow values. However, for a more robust
  installation using -rpath at compilation time appears to be the
  better solution.

  In addition to the usual -rpath specification with absolute file
  paths, MacOS supports (@loader_path, @executable_path) as well.
  Now default to link with rpath information for MacOS, which can be
  disabled by adding `~rpath` in WM_COMPILE_CONTROL

  Explicit library paths handled:
    - FOAM_FOAM_EXT_LIBBIN, FOAM_EXT_LIBBIN/FOAM_MPI

  The executable rpaths are handled assuming a structure of
     install-path/bin
     install-path/lib/$(FOAM_MPI)
     install-path/lib

  Absolute compile-time paths for FOAM_USER_LIBBIN, FOAM_SITE_LIBBIN
  and FOAM_LIBBIN are not handled since these are either too fragile
  (FOAM_USER_LIBBIN and FOAM_SITE_LIBBIN values) or covered via
  @loader_path anyhow (FOAM_LIBBIN).

  Since the value of FOAM_MPI is a compile-time value, this rpath
  treatment makes the installation less suitable for runtime changes
  to the MPI vendor/version.

  Note: no rpath added for c-only compilations since there are
  currently no c-only libraries or executables with dynamic loading
2023-08-18 15:46:12 +02:00
..
darwin64Clang COMP: add rpath information to MacOS compilation rules (#2948) 2023-08-18 15:46:12 +02:00
General CONFIG: update compiler minimums (gcc-7.5.0) and standard (c++14) 2023-08-11 10:50:13 +02:00
linux64Amd ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linux64Clang ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linux64Cray ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linux64Gcc ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linux64Icc ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linux64Icx ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linux64Mingw COMP: add static libgcc, libstdc++ linking for mingw (fixes #2680) 2023-01-24 18:21:05 +01:00
linux64Nvidia ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linuxARM64Arm ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linuxARM64Clang ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linuxARM64Fujitsu ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linuxARM64Gcc ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linuxARM64Nvidia ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linuxClang ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linuxGcc ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linuxIcc ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linuxPPC64Gcc ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
linuxPPC64leGcc ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00
solaris64Gcc ENH: support libz disabling via WM_COMPILE_CONTROL (as ~libz) 2022-11-15 14:00:18 +01:00