-i/-I/--info argument to show details of configuratio...
# This is the Makefile of ABACUSABACUS_ROOT := $(dir $(firstword $(MAKEFILE_LIST)))BUILD_DIR ?= buildOBJ_DIR = $(BUILD_DIR)/objBIN_DIR = $(BUILD_DIR)/binBUILD_INFO_DIR = $(BUILD_DIR)/source_ioinclude $(ABACUS_ROOT)Makefile.vars#==========================# Compiler information#==========================INCLUDES = -I$(ABACUS_ROOT) -I$(ABACUS_ROOT)source_main -I$(ABACUS_ROOT)source_main/commands -I$(ABACUS_ROOT)commands -I$(BUILD_INFO_DIR) -I$(ABACUS_ROOT)../ -I$(ABACUS_ROOT)source_base/module_containerLIBS = -lm -lpthreadOPTS = -std=c++14 -pedantic -m64 ${INCLUDES}HONG = -D__LCAOHONG += -D__ELPA# An FFT-based spherical Bessel transform algorithm has become# the default since v3.3.4. Comment out the following line to use# the original Simpson-based spherical Bessel transform.HONG += -DUSE_NEW_TWO_CENTERifeq ($(OPENMP), ON)ELPA_NAME = elpa_openmpelseELPA_NAME = elpaendifSOURCE_DIR = $(ABACUS_ROOT)ifeq ($(findstring mpi, $(CXX)), mpi)# We do not support EXX in sequential version temporarily.HONG += -D__MPI -DUSE_CEREAL_SERIALIZATIONMPI = ONTESTNP = 4suffix = mpiifeq ($(findstring mpii, $(CXX)), mpii)INTEL=ONendifelseTESTNP = 1suffix = serialifeq ($(findstring i, $(CXX)), i)INTEL=ONendifendififeq ($(DEBUG), ON)INTEL = OFFHONG += -DDEBUGifeq ($(MPI), ON)CXX = mpicxxelseCXX = g++endifOPTS += -O0 -fsanitize=address -fno-omit-frame-pointer -Wall -g #It can check segmental defaultselse# FIXME -Ofast is not compatible with the new two-center integration algorithmHONG += -O3 -march=native -DNDEBUGendififeq ($(INTEL), ON)OPTS += -lifcore -qopenmp##==========================## MKL package##==========================HONG += -D__FFTW3LIBS += -L${MKLROOT}/lib/intel64 -Wl,--start-group -lmkl_intel_lp64\-lmkl_intel_thread -lmkl_core -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -Wl,--end-group -Wl,-rpath=${MKLROOT}/lib/intel64INCLUDES += -I${MKLROOT}/include/fftw#==========================# ELPA package#==========================ELPA_LIB_DIR = ${ELPA_DIR}/libLIBS += -L${ELPA_LIB_DIR} -l${ELPA_NAME} -Wl,-rpath=${ELPA_LIB_DIR}INCLUDES += -I${ELPA_INCLUDE_DIR}elseOPTS += -fpermissiveifeq ($(OPENMP), ON)OPTS += -fopenmpendif##==========================## FFTW package##==========================FFTW_INCLUDE_DIR = ${FFTW_DIR}/includeFFTW_LIB_DIR = ${FFTW_DIR}/libHONG += -D__FFTW3LIBS += -L${FFTW_LIB_DIR} -lfftw3 -Wl,-rpath=${FFTW_LIB_DIR}INCLUDES += -I${FFTW_INCLUDE_DIR}#==========================# OPENBLAS, SCALAPACK, ELPA#==========================LIBS += -L${OPENBLAS_LIB_DIR} -L${SCALAPACK_LIB_DIR} -L${ELPA_DIR}/lib -l${ELPA_NAME} -lscalapack -lopenblas -lgfortran\-Wl,-rpath=${ELPA_DIR}/lib -Wl,-rpath=${SCALAPACK_LIB_DIR} -Wl,-rpath=${OPENBLAS_LIB_DIR}INCLUDES += -I${ELPA_INCLUDE_DIR}endif#==========================# Cereal package#==========================INCLUDES += -I${CEREAL_DIR}/include##==========================## CUDA needed##==========================ifeq ($(GPU), CUDA)CUDA_COMPILE = nvccCUDA_DIR = /usr/local/cuda-11.0CUDA_INCLUDE_DIR = ${CUDA_DIR}/includeCUDA_LIB_DIR = ${CUDA_DIR}/lib64CUDA_LIB = -L${CUDA_LIB_DIR} -lcufft -lcublas -lcudartHONG += -D__CUDAOPTS_CUDA = ${INCLUDES} -std=c++11INCLUDES += -I${CUDA_INCLUDE_DIR}LIBS += ${CUDA_LIB}endififdef LIBXC_DIR##==========================## LIBXC package##==========================LIBXC_INCLUDE_DIR = ${LIBXC_DIR}/includeLIBXC_LIB_DIR = ${LIBXC_DIR}/libHONG += -DUSE_LIBXCINCLUDES += -I${LIBXC_INCLUDE_DIR}LIBS += -L${LIBXC_LIB_DIR} -Wl,-rpath=${LIBXC_LIB_DIR} -lxcPWTAG += 'LIBXC_DIR=${LIBXC_DIR}'endififdef LIBRI_DIRINCLUDES += -I${LIBRI_DIR}/includeINCLUDES += -I${LIBCOMM_DIR}/includeHONG += -DUSE_LIBRIHONG += -D__EXX -DEXX_H_COMM=2 -DEXX_DM=3 -DTEST_EXX_LCAO=0 -DTEST_EXX_RADIAL=1endififdef LIBNPY_DIRCNPY_INCLUDE_DIR = -I${LIBNPY_DIR}/includeifeq ($(ENABLE_MLALGO), ON)HONG += -D__MLALGO# HONG += -D__MLALGOendifINCLUDES += $(CNPY_INCLUDE_DIR)endififdef LIBTORCH_DIRLIBTORCH_INCLUDE_DIR = -I${LIBTORCH_DIR}/include -I${LIBTORCH_DIR}/include/torch/csrc/api/includeINCLUDES += $(LIBTORCH_INCLUDE_DIR)LIBTORCH_LIB_DIR= ${LIBTORCH_DIR}/libLIBS += -L${LIBTORCH_LIB_DIR} -ltorch -lc10 -Wl,-rpath,${LIBTORCH_LIB_DIR} -Wl,--no-as-needed,"${LIBTORCH_LIB_DIR}/libtorch_cpu.so" -Wl,--as-needed ${LIBTORCH_LIB_DIR}/libc10.so -lpthread -Wl,--no-as-needed,"${LIBTORCH_LIB_DIR}/libtorch.so" -Wl,--as-neededendififdef DeePMD_DIRHONG += -D__DPMD -DHIGH_PRECOPTS += -Wl,--no-as-needed##==========================## DeePMD-kit package##==========================DeeP_LIB_DIR = ${DeePMD_DIR}/libDeeP_INCLUDE_DIR = ${DeePMD_DIR}/includeINCLUDES += -I${DeeP_INCLUDE_DIR}ifneq ($(wildcard ${DeePMD_DIR}/include/deepmd/deepmd.hpp), )HONG += -D__DPMDCLIBS += -L${DeeP_LIB_DIR} -ldeepmd_c -Wl,-rpath=${DeeP_LIB_DIR}elseLIBS += -L${DeeP_LIB_DIR} -ldeepmd_cc -Wl,-rpath=${DeeP_LIB_DIR}endifendififdef TensorFlow_DIR#==========================# TensorFlow package#==========================TensorFlow_LIB_DIR = ${TensorFlow_DIR}/libLIBS += -L${TensorFlow_LIB_DIR} -ltensorflow_cc -Wl,-rpath=${TensorFlow_LIB_DIR}TensorFlow_INCLUDE_DIR = ${TensorFlow_DIR}/includeINCLUDES += -I${TensorFlow_INCLUDE_DIR}endififdef PEXSI_DIROBJS_ABACUS += ${OBJS_HSOLVER_PEXSI}INCLUDES += -I${PEXSI_DIR}/include -I${PARMETIS_DIR}/include -I${DSUPERLU_DIR}/includeLIBS += -L${PEXSI_DIR}/lib -lpexsi -L${DSUPERLU_DIR}/lib -lsuperlu_dist -L${PARMETIS_DIR}/lib -lparmetis -lmetisHONG += -D__PEXSIendifinclude $(ABACUS_ROOT)Makefile.ObjectsVPATH := $(patsubst ./%,$(ABACUS_ROOT)%,$(VPATH))HEADERS := $(patsubst %,$(ABACUS_ROOT)%,$(HEADERS))#==========================# Optional HONG#==========================HONG += -D__SELINV -DMETIS# ifeq ($(MEM_CHECK), ON)# HONG += -D_MCD_CHECK -DWIN32 -DMCD_VERBOSE# endif#==========================# OBJECTS NEEDED#==========================ifeq ($(MPI), ON)ifdef LIBRI_DIROBJS_ABACUS += $(OBJS_MODULE_RI) ${OBJS_SRC_RI}endifendifFP_OBJS=$(patsubst %.o, ${OBJ_DIR}/%.o, ${OBJS_ABACUS})###### START of ABACUS INFO PART ####### Rule to generate the build_info.h file using the shell script.# This rule is executed whenever build_info.h.in, the script, or any of the# relevant Makefile variables change.$(BUILD_INFO_DIR)/build_info.h:$(ABACUS_ROOT)source_io/build_info.h.in $(ABACUS_ROOT)../generate_build_info.sh@echo "Generating build information header..."@# Make sure directory is available@mkdir -p $(dir $@)@# Export all necessary Makefile variables as environment for the script@export BUILD_TYPE="Release"; \if [ "$(DEBUG)" = "ON" ]; then export BUILD_TYPE="Debug"; export ENABLE_ASAN="yes"; else export ENABLE_ASAN="no"; fi; \export CXX="${CXX}"; \export CXXFLAGS="${OPTS}${HONG}"; \export MKLROOT="${MKLROOT}"; \export ELPA_DIR="${ELPA_DIR}"; \export FFTW_DIR="${FFTW_DIR}"; \export CEREAL_DIR="${CEREAL_DIR}"; \export LIBXC_DIR="${LIBXC_DIR}"; \export LIBRI_DIR="${LIBRI_DIR}"; \export DeePMD_DIR="${DeePMD_DIR}"; \export TensorFlow_DIR="${TensorFlow_DIR}"; \export PEXSI_DIR="${PEXSI_DIR}"; \export ENABLE_MPI="no"; \if [ "$(MPI)" = "ON" ]; then export ENABLE_MPI="ON"; fi; \export USE_CUDA="no"; \if [ "$(GPU)" = "CUDA" ]; then export USE_CUDA="ON"; fi; \$(ABACUS_ROOT)../generate_build_info.sh $@@echo "Build information header generated."# Specific rule for parse_args.o to enforce dependency on build_info.h.# This overrides the generic %.o:%.cpp rule for this specific file.${OBJ_DIR}/parse_args.o: $(ABACUS_ROOT)source_io/parse_args.cpp $(BUILD_INFO_DIR)/build_info.h@mkdir -p $(dir $@)${CXX} ${OPTS} ${OPTS_MPI} -c ${HONG} $< -o $@###### END of ABACUS INFO PART #######==========================# MAKING OPTIONS#==========================abacus:@ if [ ! -d $(OBJ_DIR) ]; then mkdir $(OBJ_DIR); fi@ if [ ! -d $(BIN_DIR) ]; then mkdir $(BIN_DIR); fi@ $(MAKE) $(BIN_DIR)/${VERSION}.$(suffix)test:@ $(MAKE) abacus@ cd $(ABACUS_ROOT)../tests/integrate/;sh Autotest.sh -a $(realpath $(BIN_DIR))/ABACUS.mpi -n $(TESTNP)pw $(BIN_DIR)/${VERSION}-PW.x:@ if [ ! -d $(BIN_DIR) ]; then mkdir $(BIN_DIR); fi@ cd $(ABACUS_ROOT)source_pw/module_pwdft; $(MAKE) CXX=${CXX} GPU=${GPU} DEBUG=$(DEBUG) FFTW_DIR=$(FFTW_DIR) OPENBLAS_LIB_DIR=$(OPENBLAS_LIB_DIR) ${PWTAG}@ cp $(ABACUS_ROOT)source_pw/module_pwdft/${VERSION}-PW.x $(realpath $(BIN_DIR))/${VERSION}-PW.x$(BIN_DIR)/${VERSION}.$(suffix) : ${FP_OBJS} ${PDIAG_OBJS} ${HEADERS}@mkdir -p $(dir $@)${CXX} ${OPTS} ${OPTS_MPI} $(FP_OBJS) ${PDIAG_OBJS} ${LIBS} -o $(BIN_DIR)/${VERSION}.$(suffix)#==========================# rules#==========================# Note: The specific rule for parse_args.o above is more precise.# This generic rule will apply to all other .cpp files.${OBJ_DIR}/%.o:$(realpath $(BIN_DIR))%.cpp${CXX} ${OPTS} ${OPTS_MPI} -c ${HONG} $< -o $@.PHONY:clean testclean:@ echo "Cleaning build directory: $(BUILD_DIR)"@ rm -rf $(BUILD_DIR)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。