mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
- 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
16 lines
529 B
Plaintext
16 lines
529 B
Plaintext
#------------------------------------------------------------------------------
|
|
include $(DEFAULT_RULES)/rpath
|
|
|
|
LINK_LIBS = $(c++DBUG)
|
|
|
|
LINKLIBSO = $(CC) $(c++FLAGS) \
|
|
$(PROJECT_RPATH) -dynamiclib \
|
|
-install_name @rpath/$(notdir $(LIB)$(EXT_SO)) \
|
|
-Wl,-dylib,-undefined,dynamic_lookup
|
|
|
|
LINKEXE = $(CC) $(c++FLAGS) \
|
|
$(subst @loader_path,@executable_path/../lib,$(PROJECT_RPATH)) \
|
|
-Wl,-execute,-undefined,dynamic_lookup
|
|
|
|
#------------------------------------------------------------------------------
|