Raw File
modules.mk
################################################################################
############################ COMMON MODULES ####################################
################################################################################

# When building an individual module, you should define MODULE_NAME (lower case)
# to the module you want to build before including this file. When doing that,
# there is no need to duplicate the dependencies in the individual module's
# Makefile.

ifneq (,$(MODULE_NAME))
  # Exec will automatically be built for the given MODULE_NAME
  SKIP_LOADER := yes
  UC_APP = $(shell echo $(MODULE_NAME) | tr a-z A-Z)
  $(eval $(UC_APP):=yes)
endif

ifeq ($(ALL_MODULES),yes)
        CHEMICAL_REACTIONS          := yes
        CONTACT                     := yes
        EXTERNAL_PETSC_SOLVER       := yes
        FLUID_PROPERTIES            := yes
        FSI                         := yes
        FUNCTIONAL_EXPANSION_TOOLS  := yes
        GEOCHEMISTRY                := yes
        HEAT_CONDUCTION             := yes
        LEVEL_SET                   := yes
        MISC                        := yes
        NAVIER_STOKES               := yes
        PERIDYNAMICS                := yes
        PHASE_FIELD                 := yes
        POROUS_FLOW                 := yes
        RAY_TRACING                 := yes
        RDG                         := yes
        RICHARDS                    := yes
        STOCHASTIC_TOOLS            := yes
        TENSOR_MECHANICS            := yes
        XFEM                        := yes
endif

ifeq ($(HEAT_CONDUCTION),yes)
        RAY_TRACING                 := yes
endif

ifeq ($(PERIDYNAMICS),yes)
        TENSOR_MECHANICS           := yes
endif

ifeq ($(POROUS_FLOW),yes)
        TENSOR_MECHANICS            := yes
        FLUID_PROPERTIES            := yes
        CHEMICAL_REACTIONS          := yes
endif

ifeq ($(NAVIER_STOKES),yes)
        FLUID_PROPERTIES            := yes
				RAY_TRACING                 := yes
        RDG                         := yes
        HEAT_CONDUCTION             := yes
endif

ifeq ($(PHASE_FIELD),yes)
        TENSOR_MECHANICS            := yes
endif

ifeq ($(CONTACT),yes)
        TENSOR_MECHANICS            := yes
endif

ifeq ($(XFEM),yes)
        TENSOR_MECHANICS            := yes
endif

ifeq ($(FSI),yes)
        TENSOR_MECHANICS            := yes
        NAVIER_STOKES               := yes
endif

# The master list of all moose modules
MODULE_NAMES := "chemical_reactions contact external_petsc_solver fluid_properties fsi functional_expansion_tools geochemistry heat_conduction level_set misc navier_stokes peridynamics phase_field porous_flow ray_tracing rdg richards stochastic_tools tensor_mechanics xfem"

################################################################################
########################## MODULE REGISTRATION #################################
################################################################################
GEN_REVISION  := no

# The ordering of the following is important! This is processed from the top down,
# therefore any modules with dependencies must have their dependent module's
# application(s) defined first.

ifeq ($(CHEMICAL_REACTIONS),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/chemical_reactions
  APPLICATION_NAME   := chemical_reactions
  SUFFIX             := cr
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(FLUID_PROPERTIES),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/fluid_properties
  APPLICATION_NAME   := fluid_properties
  SUFFIX             := fp
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(FUNCTIONAL_EXPANSION_TOOLS),yes)
  APPLICATION_NAME   := functional_expansion_tools
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/$(APPLICATION_NAME)
  SUFFIX             := fet
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(GEOCHEMISTRY),yes)
  APPLICATION_NAME   := geochemistry
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/$(APPLICATION_NAME)
  SUFFIX             := gc
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(RAY_TRACING),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/ray_tracing
  APPLICATION_NAME   := ray_tracing
  SUFFIX             := ray
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(HEAT_CONDUCTION),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/heat_conduction
  APPLICATION_NAME   := heat_conduction

	DEPEND_MODULES     := ray_tracing
  SUFFIX             := hc
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(LEVEL_SET),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/level_set
  APPLICATION_NAME   := level_set
  SUFFIX             := ls
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(MISC),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/misc
  APPLICATION_NAME   := misc
  SUFFIX             := misc
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(RDG),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/rdg
  APPLICATION_NAME   := rdg
  SUFFIX             := rdg
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(NAVIER_STOKES),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/navier_stokes
  APPLICATION_NAME   := navier_stokes

  # Dependency on fluid properties and rdg
  DEPEND_MODULES     := fluid_properties rdg heat_conduction ray_tracing
  SUFFIX             := ns
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(TENSOR_MECHANICS),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/tensor_mechanics
  APPLICATION_NAME   := tensor_mechanics
  SUFFIX             := tm
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(PERIDYNAMICS),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/peridynamics
  APPLICATION_NAME   := peridynamics

  # Dependency on tensor mechanics
  DEPEND_MODULES     := tensor_mechanics

  SUFFIX             := pd
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(PHASE_FIELD),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/phase_field
  APPLICATION_NAME   := phase_field

  # Dependency on tensor mechanics
  DEPEND_MODULES     := tensor_mechanics

  SUFFIX             := pf
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(POROUS_FLOW),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/porous_flow
  APPLICATION_NAME   := porous_flow

  DEPEND_MODULES     := tensor_mechanics fluid_properties chemical_reactions
  SUFFIX             := pflow
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(RICHARDS),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/richards
  APPLICATION_NAME   := richards
  SUFFIX             := rich
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(STOCHASTIC_TOOLS),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/stochastic_tools
  APPLICATION_NAME   := stochastic_tools
  SUFFIX             := st
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(XFEM),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/xfem
  APPLICATION_NAME   := xfem

  DEPEND_MODULES     := tensor_mechanics
  SUFFIX             := xfem
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(EXTERNAL_PETSC_SOLVER),yes)
  APPLICATION_NAME   := external_petsc_solver
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/${APPLICATION_NAME}

  SUFFIX             := eps
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(CONTACT),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/contact
  APPLICATION_NAME   := contact

	# Dependency on tensor mechanics
  DEPEND_MODULES     := tensor_mechanics
  SUFFIX             := con
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(FSI),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/fsi
  APPLICATION_NAME   := fsi

  DEPEND_MODULES     := tensor_mechanics navier_stokes
  SUFFIX             := fsi
  include $(FRAMEWORK_DIR)/app.mk
endif

ifeq ($(ALL_MODULES),yes)
  ifneq ($(INCLUDE_COMBINED),no)
    APPLICATION_DIR    := $(MOOSE_DIR)/modules/combined
    APPLICATION_NAME   := combined
    SUFFIX             := comb
    include $(FRAMEWORK_DIR)/app.mk
  endif
endif

# The loader should be used for all applications. We
# only skip it when compiling individual modules
ifneq ($(SKIP_LOADER),yes)
  APPLICATION_DIR    := $(MOOSE_DIR)/modules/module_loader
  APPLICATION_NAME   := module_loader
  LIBRARY_SUFFIX     := yes
  include $(FRAMEWORK_DIR)/app.mk
endif

# Default to Generating revision for most applications
GEN_REVISION := yes
back to top