openfoam/wmake/rules/General/general
Mark Olesen 2698cab01c ENH: extend use of WM_COMPILER_CONTROL to manage compiler versions
- for compilers such as gcc and clang, may have several different
  variants installed on the computer. Use WM_COMPILER_CONTROL to
  specify the preferred variant.

  Eg,
      WM_COMPILER=Gcc
      WM_COMPILER_CONTROL="version=8"

      will compile with "gcc-8" and "g++-8"

  Good practice would be to tag output directory names with the
  version too. Eg

      WM_COMPILER=Clang110
      WM_COMPILER_CONTROL="version=11.0"

STYLE: modify message for change of gcc -> clang (darwin)
2021-11-02 17:30:06 +01:00

55 lines
1.5 KiB
Makefile

#-------------------------------*- makefile -*---------------------------------
WM_VERSION = OPENFOAM=2108
AR = ar
ARFLAGS = cr
RANLIB = ranlib
CPP = cpp
LD = ld
GFLAGS = -D$(WM_VERSION) \
-DWM_$(WM_PRECISION_OPTION) -DWM_LABEL_SIZE=$(WM_LABEL_SIZE)
GINC =
GLIBS = -lm
GLIB_LIBS =
ARCHITECTURE_RULES = $(WM_DIR)/rules/$(WM_ARCH)
COMPILER_FAMILY = $(shell echo "$(WM_COMPILER)" | sed -e 's/[-+.0-9~].*//')
DEFAULT_RULES = $(ARCHITECTURE_RULES)$(COMPILER_FAMILY)
RULES = $(ARCHITECTURE_RULES)$(WM_COMPILER)
WMAKE_BIN = $(WM_PROJECT_DIR)/platforms/tools/$(WM_ARCH)$(WM_COMPILER)
# --------
# Extract compiler version suffix.
# Most (all?) compilers use the convention <compiler>-<version>
#
# Thus (for example) version=11 -> gcc-11
# --------
ifneq (,$(findstring version=,$(WM_COMPILE_CONTROL)))
COMPILER_VERSION := $(shell echo "$(WM_COMPILE_CONTROL)" | sed -ne 's/^.*version=-*\([0-9][.0-9]*\).*/-\1/p')
else
COMPILER_VERSION :=
endif
# Default compilation is 'Opt' - never permit an empty value
ifeq (,$(WM_COMPILE_OPTION))
WM_COMPILE_OPTION = Opt
endif
ifeq (,$(WM_SCHEDULER))
AND = &&
else
AND = '&&'
endif
include $(DEFAULT_RULES)/general
sinclude $(DEFAULT_RULES)/override
ifneq ("$(COMPILER_FAMILY)","$(WM_COMPILER)")
sinclude $(RULES)/general
sinclude $(RULES)/c++
endif
include $(GENERAL_RULES)/transform
#------------------------------------------------------------------------------