Skip to content

Instantly share code, notes, and snippets.

@smhr
Created January 17, 2021 11:21
Show Gist options
  • Save smhr/fc9ae84ac661dea6948b5ce51e1c2f36 to your computer and use it in GitHub Desktop.
Save smhr/fc9ae84ac661dea6948b5ce51e1c2f36 to your computer and use it in GitHub Desktop.
ENZO Make.config.assemble for scicluster
#-----------------------------------------------------------------------
#
# This make include file is used for assigning appropriate values to
# the following variables given CONFIG_* and MACH_* variables:
#
# Compilers
#
# CPP C preprocessor
# CC C compiler
# CXX C++ compiler
# FC Fortran 77 compiler
# F90 Fortran 90 compiler
# LD Linker
#
# Compiler flags
#
# CPPFLAGS Flags for the C preprocessor
# CFLAGS Flags for the C compiler
# CXXFLAGS Flags for the C++ compiler
# FFLAGS Flags for the Fortran 77 compiler
# F90FLAGS Flags for the Fortran 90 compiler
# LDFLAGS Flags for the Linker
#
# Object files
#
# OBJS List of all object files to compile
# OBJS_LIB Same list, without X_Main.o
#
#
# Libraries
#
# LIBS List of all libraries to link
#
#-----------------------------------------------------------------------
#-----------------------------------------------------------------------
# SET PARAMETER DEFINES FOR HARKNESS VERSION 2008-05-15
#-----------------------------------------------------------------------
ASSEMBLE_PARAMETER_DEFINES = \
-D__max_subgrids=$(PARAMETER_MAX_SUBGRIDS) \
-D__max_baryons=$(PARAMETER_MAX_BARYONS) \
-D__max_cpu_per_node=$(PARAMETER_MAX_TASKS_PER_NODE) \
-D__memory_pool_size=$(PARAMETER_MEMORY_POOL_SIZE)
#-----------------------------------------------------------------------
# DETERMINE INTEGER SIZE SETTINGS FOR PARTICLE INDICES
#-----------------------------------------------------------------------
ERROR_IDS = 1
# Settings for 32-bit integers
ifeq ($(CONFIG_PARTICLE_IDS),32)
ERROR_IDS = 0
ASSEMBLE_IDS_DEFINES = -DCONFIG_PINT_4
endif
# Settings for 64-bit integers
ifeq ($(CONFIG_PARTICLE_IDS),64)
ERROR_IDS = 0
ASSEMBLE_IDS_DEFINES = -DCONFIG_PINT_8
endif
# error if CONFIG_INTEGERS is incorrect
ifeq ($(ERROR_IDS),1)
.PHONY: error_ids
error_ids:
$(error Illegal value '$(CONFIG_PARTICLE_IDS)' for $$(CONFIG_PARTICLE_IDS))
endif
#-----------------------------------------------------------------------
# DETERMINE INTEGER SIZE SETTINGS
#-----------------------------------------------------------------------
ERROR_INTEGERS = 1
# Settings for 32-bit integers
ifeq ($(CONFIG_INTEGERS),32)
ERROR_INTEGERS = 0
ASSEMBLE_INTEGER_DEFINES = -DSMALL_INTS
endif
# Settings for 64-bit integers
ifeq ($(CONFIG_INTEGERS),64)
ERROR_INTEGERS = 0
ASSEMBLE_INTEGER_DEFINES = -DLARGE_INTS
endif
# error if CONFIG_INTEGERS is incorrect
ifeq ($(ERROR_INTEGERS),1)
.PHONY: error_integers
error_integers:
$(error Illegal value '$(CONFIG_INTEGERS)' for $$(CONFIG_INTEGERS))
endif
#-----------------------------------------------------------------------
# DETERMINE FLOATING POINT PRECISION SETTINGS
#-----------------------------------------------------------------------
ERROR_PRECISION = 1
# Settings for 32-bit floating point baryon precision
ifeq ($(CONFIG_PRECISION),32)
ERROR_PRECISION = 0
ASSEMBLE_PRECISION_DEFINES = -DCONFIG_BFLOAT_4
ASSEMBLE_PRECISION_NUMBER = 4
endif
# Settings for 64-bit floating point baryon precision
ifeq ($(CONFIG_PRECISION),64)
ERROR_PRECISION = 0
ASSEMBLE_PRECISION_DEFINES = -DCONFIG_BFLOAT_8
ASSEMBLE_PRECISION_NUMBER = 8
endif
# error if CONFIG_PRECISION is incorrect
ifeq ($(ERROR_PRECISION),1)
.PHONY: error_precision
error_precision:
$(error Illegal value '$(CONFIG_PRECISION)' for $$(CONFIG_PRECISION))
endif
#-----------------------------------------------------------------------
# DETERMINE PARTICLE PRECISION SETTINGS
#-----------------------------------------------------------------------
ERROR_PARTICLES = 1
# Settings for 32-bit particle position precision
ifeq ($(CONFIG_PARTICLES),32)
ERROR_PARTICLES = 0
ASSEMBLE_PARTICLES_DEFINES = -DCONFIG_PFLOAT_4
ASSEMBLE_PARTICLE_NUMBER = 4
endif
# Settings for 64-bit particle position precision
ifeq ($(CONFIG_PARTICLES),64)
ERROR_PARTICLES = 0
ASSEMBLE_PARTICLES_DEFINES = -DCONFIG_PFLOAT_8
ASSEMBLE_PARTICLE_NUMBER = 8
endif
# Settings for 128-bit particle position precision
ifeq ($(CONFIG_PARTICLES),128)
ERROR_PARTICLES = 0
ASSEMBLE_PARTICLES_DEFINES = -DCONFIG_PFLOAT_16
ASSEMBLE_PARTICLE_NUMBER = 16
endif
# error if CONFIG_PARTICLES is incorrect
ifeq ($(ERROR_PARTICLES),1)
.PHONY: error_particles
error_particles:
$(error Illegal value '$(CONFIG_PARTICLES)' for $$(CONFIG_PARTICLES))
endif
#-----------------------------------------------------------------------
# DETERMINE INITS PRECISION
#-----------------------------------------------------------------------
ERROR_INITS = 1
# Settings for 32-bit inits
ifeq ($(CONFIG_INITS),32)
ERROR_INITS = 0
ASSEMBLE_INITS_DEFINES = -DINITS32
endif
# Settings for 64-bit inits
ifeq ($(CONFIG_INITS),64)
ERROR_INITS = 0
ASSEMBLE_INITS_DEFINES = -DINITS64
endif
# error if CONFIG_INITS is incorrect
ifeq ($(ERROR_INITS),1)
.PHONY: error_inits
error_inits: ; $(error Illegal value $(CONFIG_INITS) for $$(CONFIG_INITS))
endif
#-----------------------------------------------------------------------
# DETERMINE IO PRECISION SETTINGS
#-----------------------------------------------------------------------
ERROR_IO = 1
# Settings for 32-bit I/O
ifeq ($(CONFIG_IO),32)
ERROR_IO = 0
ASSEMBLE_IO_DEFINES = -DIO_32
endif
# Settings for 64-bit io
ifeq ($(CONFIG_IO),64)
ERROR_IO = 0
ASSEMBLE_IO_DEFINES = -DIO_64
endif
# error if CONFIG_IO is incorrect
ifeq ($(ERROR_IO),1)
.PHONY: error_io
error_io:
$(error Illegal value '$(CONFIG_IO)' for $$(CONFIG_IO))
endif
#=======================================================================
# DETERMINE MPI USAGE
#=======================================================================
ERROR_USE_MPI = 1
ASSEMBLE_CPP = $(MACH_CPP)
# compilers and settings if USE_MPI is yes
ifeq ($(CONFIG_USE_MPI),yes)
ERROR_USE_MPI = 0
ASSEMBLE_CC = $(MACH_CC_MPI)
ASSEMBLE_CXX = $(MACH_CXX_MPI)
ASSEMBLE_FC = $(MACH_FC_MPI)
ASSEMBLE_F90 = $(MACH_F90_MPI)
ASSEMBLE_LD = $(MACH_LD_MPI)
ASSEMBLE_MPI_DEFINES = -DUSE_MPI
ASSEMBLE_MPI_INCLUDES = $(MACH_INCLUDES_MPI)
ASSEMBLE_MPI_LIBS = $(MACH_LIBS_MPI)
endif
# compilers and settings if USE_MPI is no
ifeq ($(CONFIG_USE_MPI),no)
ERROR_USE_MPI = 0
ASSEMBLE_CC = $(MACH_CC_NOMPI)
ASSEMBLE_CXX = $(MACH_CXX_NOMPI)
ASSEMBLE_FC = $(MACH_FC_NOMPI)
ASSEMBLE_F90 = $(MACH_F90_NOMPI)
ASSEMBLE_LD = $(MACH_LD_NOMPI)
endif
# error if CONFIG_USE_MPI is incorrect
ifeq ($(ERROR_USE_MPI),1)
.PHONY: error_compilers
error_compilers:
$(error Illegal value '$(CONFIG_USE_MPI)' for $$(CONFIG_USE_MPI))
endif
#-----------------------------------------------------------------------
# Determine CUDA compiler
#-----------------------------------------------------------------------
ASSEMBLE_CUDACOMPILER = $(MACH_CUDACOMPILER)
ASSEMBLE_CUDAFLAGS = $(MACH_OPT_CUDA)
#-----------------------------------------------------------------------
# DETERMINE TASKMAP SETTINGS
#-----------------------------------------------------------------------
ERROR_TASKMAP = 1
# Settings for using TASKMAP mods
ifeq ($(CONFIG_TASKMAP),yes)
ERROR_TASKMAP = 0
ASSEMBLE_TASKMAP_DEFINES = -DTASKMAP -DENABLE_TASKMAP
endif
# Settings for not using TASKMAP mods
ifeq ($(CONFIG_TASKMAP),no)
ERROR_TASKMAP = 0
ASSEMBLE_TASKMAP_DEFINES =
endif
# error if CONFIG_TASKMAP is incorrect
ifeq ($(ERROR_TASKMAP),1)
.PHONY: error_taskmap
error_taskmap:
$(error Illegal value '$(CONFIG_TASKMAP)' for $$(CONFIG_TASKMAP))
endif
#-----------------------------------------------------------------------
# DETERMINE PACKED_AMR SETTINGS
#-----------------------------------------------------------------------
ERROR_PACKED_AMR = 1
# Settings for using PACKED_AMR mods
ifeq ($(CONFIG_PACKED_AMR),yes)
ERROR_PACKED_AMR = 0
ASSEMBLE_PACKED_AMR_DEFINES = \
-DUSE_HDF5_GROUPS
# -DSINGLE_HDF5_OPEN_ON_INPUT
endif
# Settings for not using PACKED_AMR mods
ifeq ($(CONFIG_PACKED_AMR),no)
ERROR_PACKED_AMR = 0
ASSEMBLE_PACKED_AMR_DEFINES =
endif
# error if CONFIG_PACKED_AMR is incorrect
ifeq ($(ERROR_PACKED_AMR),1)
.PHONY: error_packed_amr
error_packed_amr:
$(error Illegal value '$(CONFIG_PACKED_AMR)' for $$(CONFIG_PACKED_AMR))
endif
#-----------------------------------------------------------------------
# DETERMINE PACKED_MEM SETTINGS
#-----------------------------------------------------------------------
ERROR_PACKED_MEM = 1
# Settings for using PACKED_MEM mods
ifeq ($(CONFIG_PACKED_MEM),yes)
ERROR_PACKED_MEM = 0
ASSEMBLE_PACKED_MEM_DEFINES = -DUSE_HDF5_OUTPUT_BUFFERING
endif
# Settings for not using PACKED_MEM mods
ifeq ($(CONFIG_PACKED_MEM),no)
ERROR_PACKED_MEM = 0
ASSEMBLE_PACKED_MEM_DEFINES =
endif
# error if CONFIG_PACKED_MEM is incorrect
ifeq ($(ERROR_PACKED_MEM),1)
.PHONY: error_packed_mem
error_packed_mem:
$(error Illegal value '$(CONFIG_PACKED_MEM)' for $$(CONFIG_PACKED_MEM))
endif
#-----------------------------------------------------------------------
# DETERMINE LCAPERF SETTINGS
#-----------------------------------------------------------------------
ERROR_LCAPERF = 1
# Settings to turn lcaperf ON
ifeq ($(CONFIG_LCAPERF),yes)
ERROR_LCAPERF = 0
ASSEMBLE_LCAPERF_DEFINES = -DUSE_LCAPERF
ASSEMBLE_LCAPERF_INCLUDES = $(MACH_INCLUDES_LCAPERF)
ASSEMBLE_LCAPERF_LIBS = $(MACH_LIBS_LCAPERF)
OBJS_LCAPERF_LIB = lcaperf.o
endif
# Settings to turn lcaperf OFF
ifeq ($(CONFIG_LCAPERF),no)
ERROR_LCAPERF = 0
OBJS_LCAPERF_LIB =
endif
# error if CONFIG_LCAPERF is incorrect
ifeq ($(ERROR_LCAPERF),1)
.PHONY: error_lcaperf
error_lcaperf:
$(error Illegal value '$(CONFIG_LCAPERF)' for $$(CONFIG_LCAPERF))
endif
#-----------------------------------------------------------------------
# DETERMINE PYTHON SETTINGS
#-----------------------------------------------------------------------
ERROR_PYTHON = 1
# Settings to turn Python ON
ifeq ($(CONFIG_PYTHON),yes)
ERROR_PYTHON = 0
ASSEMBLE_PYTHON_DEFINES = -DUSE_PYTHON
ASSEMBLE_PYTHON_INCLUDES = $(MACH_INCLUDES_PYTHON)
ASSEMBLE_PYTHON_LIBS = $(MACH_LIBS_PYTHON)
PYTHON_INTERFACE_TARGETS += InitializePythonInterface_finderfunctions.inc
endif
# Settings to turn PYTHON OFF
ifeq ($(CONFIG_PYTHON),no)
ERROR_PYTHON = 0
endif
# error if CONFIG_PYTHON is incorrect
ifeq ($(ERROR_PYTHON),1)
.PHONY: error_PYTHON
error_PYTHON:
$(error Illegal value '$(CONFIG_PYTHON)' for $$(CONFIG_PYTHON))
endif
#-----------------------------------------------------------------------
# DETERMINE NEW_PROBLEM_TYPES SETTINGS
#-----------------------------------------------------------------------
ERROR_NEW_PROBLEM_TYPES = 1
# Settings to turn NEW_PROBLEM_TYPES ON
ifeq ($(CONFIG_NEW_PROBLEM_TYPES),yes)
ERROR_NEW_PROBLEM_TYPES = 0
ASSEMBLE_NEW_PROBLEM_TYPES_DEFINES = -DNEW_PROBLEM_TYPES
ASSEMBLE_NEW_PROBLEM_TYPES_INCLUDES = $(MACH_INCLUDES_NEW_PROBLEM_TYPES)
ASSEMBLE_NEW_PROBLEM_TYPES_LIBS = $(MACH_LIBS_NEW_PROBLEM_TYPES)
ifeq ($(CONFIG_PYTHON),yes)
OBJS_PYTHON += python_bridge/problemtype_handler.o
OBJS_PYTHON += ProblemType_Python.o
endif
endif
# Settings to turn NEW_PROBLEM_TYPES OFF
ifeq ($(CONFIG_NEW_PROBLEM_TYPES),no)
ERROR_NEW_PROBLEM_TYPES = 0
endif
# error if CONFIG_NEW_PROBLEM_TYPES is incorrect
ifeq ($(ERROR_NEW_PROBLEM_TYPES),1)
.PHONY: error_NEW_PROBLEM_TYPES
error_NEW_PROBLEM_TYPES:
$(error Illegal value '$(CONFIG_NEW_PROBLEM_TYPES)' for $$(CONFIG_NEW_PROBLEM_TYPES))
endif
#-----------------------------------------------------------------------
# DETERMINE PAPI SETTINGS
#-----------------------------------------------------------------------
ERROR_PAPI = 1
# Settings to turn papi ON
ifeq ($(CONFIG_PAPI),yes)
ERROR_PAPI = 0
ASSEMBLE_PAPI_DEFINES = -DUSE_PAPI
ASSEMBLE_PAPI_INCLUDES = $(MACH_INCLUDES_PAPI)
ASSEMBLE_PAPI_LIBS = $(MACH_LIBS_PAPI)
endif
# Settings to turn papi OFF
ifeq ($(CONFIG_PAPI),no)
ERROR_PAPI = 0
endif
# error if CONFIG_PAPI is incorrect
ifeq ($(ERROR_PAPI),1)
.PHONY: error_papi
error_papi:
$(error Illegal value '$(CONFIG_PAPI)' for $$(CONFIG_PAPI))
endif
#-----------------------------------------------------------------------
# DETERMINE OOC_BOUNDARY SETTINGS
#-----------------------------------------------------------------------
ERROR_OOC_BOUNDARY = 1
# Settings to turn out-of-core boundary conditions ON
ifeq ($(CONFIG_OOC_BOUNDARY),yes)
ERROR_OOC_BOUNDARY = 0
ASSEMBLE_OOC_BOUNDARY_DEFINES = -DOOC_BOUNDARY
endif
# Settings to turn out-of-core boundary conditions OFF
ifeq ($(CONFIG_OOC_BOUNDARY),no)
ERROR_OOC_BOUNDARY = 0
ASSEMBLE_OOC_BOUNDARY_DEFINES =
endif
# error if CONFIG_OOC_BOUNDARY is incorrect
ifeq ($(ERROR_OOC_BOUNDARY),1)
.PHONY: error_ooc_boundary
error_ooc_boundary:
$(error Illegal value '$(CONFIG_OOC_BOUNDARY)' for $$(CONFIG_OOC_BOUNDARY))
endif
#-----------------------------------------------------------------------
# DETERMINE SET ACCELERATION BOUNDARY SETTINGS
#-----------------------------------------------------------------------
ERROR_ACCELERATION_BOUNDARY = 1
# Settings to turn ON the setting of Acceleration Boundary
ifeq ($(CONFIG_ACCELERATION_BOUNDARY),yes)
ERROR_ACCELERATION_BOUNDARY = 0
ASSEMBLE_ACCELERATION_BOUNDARY_DEFINES = -DSAB
endif
# Settings to turn OFF the setting of Acceleration Boundary
ifeq ($(CONFIG_ACCELERATION_BOUNDARY),no)
ERROR_ACCELERATION_BOUNDARY = 0
ASSEMBLE_ACCELERATION_BOUNDARY_DEFINES =
endif
# error if CONFIG_ACCELERATION_BOUNDARY is incorrect
ifeq ($(ERROR_ACCELERATION_BOUNDARY),1)
.PHONY: error_sab
error_sab:
$(error Illegal value '$(CONFIG_ACCELERATION_BOUNDARY)' for $$(CONFIG_ACCELERATION_BOUNDARY))
endif
#-----------------------------------------------------------------------
# DETERMINE OPTIMIZATION LEVEL SETTINGS
#-----------------------------------------------------------------------
ERROR_OPT = 1
# Settings for verbose warnings
ifeq ($(CONFIG_OPT),warn)
ERROR_OPT = 0
ASSEMBLE_OPT_FLAGS = $(MACH_OPT_WARN)
endif
# Settings for debugging
ifeq ($(CONFIG_OPT),debug)
ERROR_OPT = 0
ASSEMBLE_OPT_FLAGS = $(MACH_OPT_DEBUG)
endif
# Settings for debugging CUDA
ifeq ($(CONFIG_OPT),cudadebug)
ERROR_OPT = 0
ASSEMBLE_OPT_FLAGS = $(MACH_OPT_DEBUG)
ASSEMBLE_CUDAFLAGS = $(MACH_OPT_CUDADEBUG)
ASSEMBLE_CUDADEBUG_DEFINES = -DECUDADEBUG
endif
# Settings for high conservative optimization
ifeq ($(CONFIG_OPT),high)
ERROR_OPT = 0
ASSEMBLE_OPT_FLAGS = $(MACH_OPT_HIGH)
endif
# Settings for aggressive optimization
ifeq ($(CONFIG_OPT),aggressive)
ERROR_OPT = 0
ASSEMBLE_OPT_FLAGS = $(MACH_OPT_AGGRESSIVE)
endif
# error if CONFIG_OPT is incorrect
ifeq ($(ERROR_OPT),1)
.PHONY: error_opt
error_opt:
$(error Illegal value '$(CONFIG_OPT)' for $$(CONFIG_OPT))
endif
#-----------------------------------------------------------------------
# DETERMINE TEST SUITE HOOK SETTINGS
#-----------------------------------------------------------------------
ERROR_TESTING = 1
# Settings for test suite hooks on
ifeq ($(CONFIG_TESTING),yes)
ERROR_TESTING = 0
ASSEMBLE_TESTING_DEFINES = -DCONFIG_TESTING
endif
# Settings for test suite hooks off
ifeq ($(CONFIG_TESTING),no)
ERROR_TESTING = 0
ASSEMBLE_TESTING_DEFINES =
endif
# error if CONFIG_TESTING is incorrect
ifeq ($(ERROR_TESTING),1)
.PHONY: error_testing
error_testing:
$(error Illegal value '$(CONFIG_TESTING)' for $$(CONFIG_TESTING))
endif
#-----------------------------------------------------------------------
# DETERMINE RADIATIVE TRANSFER SETTINGS
#-----------------------------------------------------------------------
ERROR_PHOTON = 1
# Settings to turn radiative transfer ON
ifeq ($(CONFIG_PHOTON),yes)
ERROR_PHOTON = 0
ASSEMBLE_PHOTON_DEFINES = -DTRANSFER
OBJS_PHOTON_LIB = $(POBJS_CONFIG_LIB)
endif
# Settings to turn radiative transfer OFF
ifeq ($(CONFIG_PHOTON),no)
ERROR_PHOTON = 0
ASSEMBLE_PHOTON_DEFINES =
OBJS_PHOTON_LIB =
endif
# error if CONFIG_PHOTON is incorrect
ifeq ($(ERROR_PHOTON),1)
.PHONY: error_transfer
error_transfer:
$(error Illegal value '$(CONFIG_PHOTON)' for $$(CONFIG_PHOTON))
endif
#-----------------------------------------------------------------------
# DETERMINE EMISSIVITY FIELD SETTINGS
#-----------------------------------------------------------------------
ERROR_EMISSIVITY = 1
# Settings to turn emissivity field ON
ifeq ($(CONFIG_EMISSIVITY),yes)
ERROR_EMISSIVITY = 0
ASSEMBLE_EMISSIVITY_DEFINES = -DEMISSIVITY
endif
# Settings to turn emissivity field OFF
ifeq ($(CONFIG_EMISSIVITY),no)
ERROR_EMISSIVITY = 0
ASSEMBLE_EMISSIVITY_DEFINES =
endif
# error if CONFIG_EMISSIVITY is incorrect
ifeq ($(ERROR_EMISSIVITY),1)
.PHONY: error_emissivity
error_emissivity:
$(error Illegal value '$(CONFIG_EMISSIVITY)' for $$(CONFIG_EMISSIVITY))
endif
#-----------------------------------------------------------------------
# DETERMINE GRID IO SETTINGS
#-----------------------------------------------------------------------
ERROR_NEW_GRID_IO = 1
# Settings to turn fast sibling search ON
ifeq ($(CONFIG_NEW_GRID_IO),yes)
ERROR_NEW_GRID_IO = 0
ASSEMBLE_NEW_GRID_IO_DEFINES = -DNEW_GRID_IO
endif
# Settings to turn new grid IO OFF
ifeq ($(CONFIG_NEW_GRID_IO),no)
ERROR_NEW_GRID_IO = 0
ASSEMBLE_NEW_GRID_IO_DEFINES =
endif
# error if CONFIG_NEW_GRID_IO is incorrect
ifeq ($(ERROR_NEW_GRID_IO),1)
.PHONY: error_NEW_GRID_IO
error_NEW_GRID_IO:
$(error Illegal value '$(CONFIG_NEW_GRID_IO)' for $$(CONFIG_NEW_GRID_IO))
endif
#-----------------------------------------------------------------------
# DETERMINE HYPRE SETTINGS
#-----------------------------------------------------------------------
ERROR_HYPRE = 1
# Settings to turn HYPRE bindings on
ifeq ($(CONFIG_HYPRE),yes)
ERROR_HYPRE = 0
ASSEMBLE_HYPRE_DEFINES = -DUSE_HYPRE
ASSEMBLE_HYPRE_INCLUDES = $(MACH_INCLUDES_HYPRE)
ASSEMBLE_HYPRE_LIBS = $(MACH_LIBS_HYPRE)
endif
# Settings to turn HYPRE bindings OFF
ifeq ($(CONFIG_HYPRE),no)
ERROR_HYPRE = 0
ASSEMBLE_HYPRE_DEFINES =
ASSEMBLE_HYPRE_INCLUDES =
ASSEMBLE_HYPRE_LIBS =
endif
# error if CONFIG_HYPRE is incorrect
ifeq ($(ERROR_HYPRE),1)
.PHONY: error_hypre
error_hypre:
$(error Illegal value '$(CONFIG_HYPRE)' for $$(CONFIG_HYPRE))
endif
#-----------------------------------------------------------------------
# DETERMINE FAST SIBLING SETTINGS
#-----------------------------------------------------------------------
ERROR_FAST_SIB = 1
# Settings to turn fast sibling search ON
ifeq ($(CONFIG_FAST_SIB),yes)
ERROR_FAST_SIB = 0
ASSEMBLE_FAST_SIB_DEFINES = -DFAST_SIB
endif
# Settings to turn fast sibling search OFF
ifeq ($(CONFIG_FAST_SIB),no)
ERROR_FAST_SIB = 0
ASSEMBLE_FAST_SIB_DEFINES =
endif
# error if CONFIG_FAST_SIBis incorrect
ifeq ($(ERROR_FAST_SIB),1)
.PHONY: error_fast_sib
error_fast_sib:
$(error Illegal value '$(CONFIG_FAST_SIB)' for $$(CONFIG_FAST_SIB))
endif
#-----------------------------------------------------------------------
# DETERMINE BITWISE IDENTICALITY SETTINGS
#-----------------------------------------------------------------------
ERROR_BITWISE_IDENTICALITY = 1
# Settings to turn blocking gravity ON
ifeq ($(CONFIG_BITWISE_IDENTICALITY),yes)
ERROR_BITWISE_IDENTICALITY = 0
ASSEMBLE_BITWISE_IDENTICALITY_DEFINES = -DBITWISE_IDENTICALITY
endif
# Settings to turn blocking gravity OFF
ifeq ($(CONFIG_BITWISE_IDENTICALITY),no)
ERROR_BITWISE_IDENTICALITY = 0
ASSEMBLE_BITWISE_IDENTICALITY_DEFINES =
endif
# error if CONFIG_BITWISE_IDENTICALITYis incorrect
ifeq ($(ERROR_BITWISE_IDENTICALITY),1)
.PHONY: error_BITWISE_IDENTICALITY
error_BITWISE_IDENTICALITY:
$(error Illegal value '$(CONFIG_BITWISE_IDENTICALITY)' for $$(CONFIG_BITWISE_IDENTICALITY))
endif
#-----------------------------------------------------------------------
# DETERMINE CUDA (GPU computing) Settings
# When compiling with CUDA support it just compiles the necessary routines.
# but only uses it if you set UseCUDA = 1 in your parameter files.
#-----------------------------------------------------------------------
ERROR_ECUDA = 1
# Settings to compile CUDA kernels
ifeq ($(CONFIG_ECUDA),yes)
ERROR_ECUDA = 0
ASSEMBLE_ECUDA_DEFINES = -DECUDA
ASSEMBLE_CUDA_LIBS = $(MACH_LIBS_CUDA)
ASSEMBLE_CUDA_INCLUDES = $(MACH_LIBS_INCLUDES)
OBJS_ECUDA_LIB = $(OBJS_ECUDA_ALL)
endif
# Settings to tell the make system not to compile CUDA routines
ifeq ($(CONFIG_ECUDA),no)
ERROR_ECUDA = 0
ASSEMBLE_ECUDA_DEFINES =
OBJS_ECUDA_LIB =
endif
# error if
ifeq ($(ERROR_ECUDA),1)
.PHONY: error_ecuda
error_ecuda:
$(error Illegal value '$(CONFIG_ECUDA)' for $$(CONFIG_ECUDA))
endif
#-----------------------------------------------------------------------
# DETERMINE HDF4 USAGE
#-----------------------------------------------------------------------
ERROR_USE_HDF4 = 1
# compilers and settings if USE_HDF4 is yes
ifeq ($(CONFIG_USE_HDF4),yes)
ERROR_USE_HDF4 = 0
ASSEMBLE_HDF4_DEFINES = -DUSE_HDF4
endif
# compilers and settings if USE_HDF4 is no
ifeq ($(CONFIG_USE_HDF4),no)
ERROR_USE_HDF4 = 0
ASSEMBLE_HDF4_DEFINES =
endif
# error if CONFIG_USE_HDF4 is incorrect
ifeq ($(ERROR_USE_HDF4),1)
.PHONY: error_compilers
error_compilers:
$(error Illegal value '$(CONFIG_USE_HDF4)' for $$(CONFIG_USE_HDF4))
endif
#-----------------------------------------------------------------------
# DETERMINE GRAVITY SOLVER
#-----------------------------------------------------------------------
ERROR_GRAVITY_4S = 1
# compilers and settings if GRAVITY_4S is yes
ifeq ($(CONFIG_GRAVITY_4S),yes)
ERROR_GRAVITY_4S = 0
ASSEMBLE_GRAVITY_4S_DEFINES = -DGRAVITY_4S
endif
# compilers and settings if GRAVITY_4S is no
ifeq ($(CONFIG_GRAVITY_4S),no)
ERROR_GRAVITY_4S = 0
ASSEMBLE_GRAVITY_4S_DEFINES =
endif
# error if CONFIG_GRAVITY_4S is incorrect
ifeq ($(ERROR_GRAVITY_4S),1)
.PHONY: error_compilers
error_compilers:
$(error Illegal value '$(CONFIG_GRAVITY_4S)' for $$(CONFIG_GRAVITY_4S))
endif
#-----------------------------------------------------------------------
# DETERMINE ENZO PERFORMANCE
#-----------------------------------------------------------------------
ERROR_ENZO_PERFORMANCE = 1
# compilers and settings if ENZO_PERFORMANCE is yes
ifeq ($(CONFIG_ENZO_PERFORMANCE),yes)
ERROR_ENZO_PERFORMANCE = 0
ASSEMBLE_ENZO_PERFORMANCE_DEFINES = -DENZO_PERFORMANCE
endif
# compilers and settings if GRAVITY_4S is no
ifeq ($(CONFIG_ENZO_PERFORMANCE),no)
ERROR_ENZO_PERFORMANCE = 0
ASSEMBLE_ENZO_PERFORMANCE_DEFINES =
endif
# error if CONFIG_ENZO_PERFORMANCE is incorrect
ifeq ($(ERROR_ENZO_PERFORMANCE),1)
.PHONY: error_compilers
error_compilers:
$(error Illegal value '$(CONFIG_ENZO_PERFORMANCE)' for $$(CONFIG_ENZO_PERFORMANCE))
endif
#-----------------------------------------------------------------------
# DETERMINE USE GRACKLE
#-----------------------------------------------------------------------
ERROR_GRACKLE = 1
# compilers and settings if GRACKLE is yes
ifeq ($(CONFIG_GRACKLE),yes)
ERROR_GRACKLE = 0
ASSEMBLE_GRACKLE_DEFINES = -DUSE_GRACKLE
ASSEMBLE_GRACKLE_INCLUDES = $(MACH_INCLUDES_GRACKLE)
ASSEMBLE_GRACKLE_LIBS = $(MACH_LIBS_GRACKLE)
endif
# compilers and settings if GRAVITY_4S is no
ifeq ($(CONFIG_GRACKLE),no)
ERROR_GRACKLE = 0
ASSEMBLE_GRACKLE_DEFINES =
endif
# error if CONFIG_GRACKLE is incorrect
ifeq ($(ERROR_GRACKLE),1)
.PHONY: error_compilers
error_compilers:
$(error Illegal value '$(CONFIG_GRACKLE)' for $$(CONFIG_GRACKLE))
endif
#-----------------------------------------------------------------------
# DETERMINE LOG2ALLOC SETTINGS
#-----------------------------------------------------------------------
ERROR_LOG2ALLOC = 1
# Settings to turn on log2 array allocations
ifeq ($(CONFIG_LOG2ALLOC),yes)
ERROR_LOG2ALLOC = 0
ASSEMBLE_LOG2ALLOC_DEFINES = -DUSE_LOG2ALLOC
endif
# Settings to turn off log2 array allocations
ifeq ($(CONFIG_LOG2ALLOC),no)
ERROR_LOG2ALLOC = 0
ASSEMBLE_LOG2ALLOC_DEFINES =
endif
# error if CONFIG_LOG2ALLOCis incorrect
ifeq ($(ERROR_LOG2ALLOC),1)
.PHONY: error_log2alloc
error_log2alloc:
$(error Illegal value '$(CONFIG_LOG2ALLOC)' for $$(CONFIG_LOG2ALLOC))
endif
#=======================================================================
# ASSIGN ALL OUTPUT VARIABLES
#=======================================================================
CPP = $(ASSEMBLE_CPP)
CC = $(ASSEMBLE_CC)
CXX = $(ASSEMBLE_CXX)
FC = $(ASSEMBLE_FC)
F90 = $(ASSEMBLE_F90)
LD = $(ASSEMBLE_LD)
CUDACOMPILER = $(ASSEMBLE_CUDACOMPILER)
CUDACOMPFLAGS = $(ASSEMBLE_CUDAFLAGS)
CPPFLAGS = $(MACH_CPPFLAGS)
CFLAGS = $(MACH_CFLAGS) \
$(ASSEMBLE_OPT_FLAGS)
CXXFLAGS = $(MACH_CXXFLAGS) \
$(ASSEMBLE_OPT_FLAGS)
FFLAGS = $(MACH_FFLAGS) \
$(ASSEMBLE_OPT_FLAGS)
F90FLAGS = $(MACH_F90FLAGS) \
$(ASSEMBLE_OPT_FLAGS)
LDFLAGS = $(MACH_LDFLAGS) \
$(ASSEMBLE_OPT_FLAGS)
DEFINES = $(MACH_DEFINES) \
$(MAKEFILE_DEFINES) \
$(ASSEMBLE_PARAMETER_DEFINES) \
$(ASSEMBLE_INITS_DEFINES) \
$(ASSEMBLE_INTEGER_DEFINES) \
$(ASSEMBLE_IDS_DEFINES) \
$(ASSEMBLE_IO_DEFINES) \
$(ASSEMBLE_LCAPERF_DEFINES) \
$(ASSEMBLE_PYTHON_DEFINES) \
$(ASSEMBLE_NEW_PROBLEM_TYPES_DEFINES) \
$(ASSEMBLE_MPI_DEFINES) \
$(ASSEMBLE_OOC_BOUNDARY_DEFINES) \
$(ASSEMBLE_PAPI_DEFINES) \
$(ASSEMBLE_PARTICLES_DEFINES) \
$(ASSEMBLE_PRECISION_DEFINES) \
$(ASSEMBLE_TASKMAP_DEFINES) \
$(ASSEMBLE_PACKED_AMR_DEFINES) \
$(ASSEMBLE_PACKED_MEM_DEFINES) \
$(ASSEMBLE_TESTING_DEFINES) \
$(ASSEMBLE_PHOTON_DEFINES) \
$(ASSEMBLE_HYPRE_DEFINES) \
$(ASSEMBLE_EMISSIVITY_DEFINES) \
$(ASSEMBLE_NEW_GRID_IO_DEFINES) \
$(ASSEMBLE_FAST_SIB_DEFINES) \
$(ASSEMBLE_BITWISE_IDENTICALITY_DEFINES) \
$(ASSEMBLE_ECUDA_DEFINES) \
$(ASSEMBLE_CUDADEBUG_DEFINES) \
$(ASSEMBLE_HDF4_DEFINES) \
$(ASSEMBLE_GRAVITY_4S_DEFINES) \
$(ASSEMBLE_ENZO_PERFORMANCE_DEFINES) \
$(ASSEMBLE_GRACKLE_DEFINES) \
$(ASSEMBLE_LOG2ALLOC_DEFINES) \
$(ASSEMBLE_ACCELERATION_BOUNDARY_DEFINES)
INCLUDES = -I/home/modules/software/HDF5/1.10.2-foss-2018b-serial -I/home/modules/software/CUDA/10.1.243-GCC-7.3.0-2.30/include -I.
OBJS_LIB = $(OBJS_CONFIG_LIB) \
$(OBJS_PHOTON_LIB) \
$(OBJS_LCAPERF_LIB) \
$(OBJS_HYDRO_RK) \
$(OBJS_ECUDA_LIB) \
$(OBJS_PYTHON)
LIBS = $(MACH_LIBS) \
$(ASSEMBLE_MPI_LIBS) \
$(ASSEMBLE_HYPRE_LIBS) \
$(ASSEMBLE_LCAPERF_LIBS) \
$(ASSEMBLE_PAPI_LIBS) \
$(ASSEMBLE_PYTHON_LIBS) \
$(ASSEMBLE_NEW_PROBLEM_TYPES_LIBS) \
$(ASSEMBLE_CUDA_LIBS) \
$(ASSEMBLE_GRACKLE_LIBS)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment