
- 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
32 lines
872 B
Plaintext
32 lines
872 B
Plaintext
#------------------------------------------------------------------------------
|
|
include $(GENERAL_RULES)/Clang/c++
|
|
|
|
c++ARCH := -m64 -pthread -ftrapping-math
|
|
|
|
ifneq (,$(strip $(WM_COMPILE_OPTION)))
|
|
sinclude $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
|
|
endif
|
|
|
|
c++FLAGS = \
|
|
$(c++ARCH) $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) \
|
|
$(FOAM_EXTRA_CXXFLAGS) $(LIB_HEADER_DIRS) -fPIC
|
|
|
|
Ctoo = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $< -o $@
|
|
cctoo = $(Ctoo)
|
|
cpptoo = $(Ctoo)
|
|
cxxtoo = $(Ctoo)
|
|
|
|
|
|
# Linking:
|
|
# with or without rpath components on MacOS
|
|
# - current default is with rpath unless explicitly disabled
|
|
|
|
ifneq (,$(findstring ~rpath,$(WM_COMPILE_CONTROL)))
|
|
include $(DEFAULT_RULES)/link-c++
|
|
|
|
else
|
|
include $(DEFAULT_RULES)/link-rpath-c++
|
|
endif
|
|
|
|
#------------------------------------------------------------------------------
|