mirror of
https://github.com/TREX-CoE/Sherman-Morrison.git
synced 2024-12-26 06:15:08 +01:00
7e42a000c4
vfc_probes used to be built along the code in the previous versions. This has been removed so that the verison used is the one provided system wide by Verificarlo. Moreover, vfc_test_h5.cpp has been update to reflect the name changes of vfc_probes functions.
111 lines
3.0 KiB
Makefile
111 lines
3.0 KiB
Makefile
## Compilers
|
|
H5CXX = h5c++
|
|
CXX = verificarlo-c++
|
|
FC = verificarlo-f
|
|
|
|
## Compiler flags
|
|
H5FLAGS = "-I/usr/include/hdf5/serial \
|
|
-L/usr/lib/x86_64-linux-gnu/hdf5/serial \
|
|
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_hl_cpp.a \
|
|
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_cpp.a \
|
|
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_hl.a \
|
|
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.a \
|
|
-lpthread -lsz -lz -ldl -lm -lvfc_probes \
|
|
-Wl,-rpath -Wl,/usr/lib/x86_64-linux-gnu/hdf5/serial"
|
|
CXXFLAGS = -O0 -g $(H5FLAGS)
|
|
## MKL linker flags
|
|
ifeq ($(MKL),-DMKL)
|
|
CXXFLAGS += $(MKL)
|
|
H5LFLAGS = -L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl
|
|
ifeq ($(ENV),INTEL)
|
|
LFLAGS = -mkl=sequential # implicit
|
|
else
|
|
LFLAGS = $(H5LFLAGS)
|
|
endif
|
|
endif
|
|
H5CXXFLAGS = $(CXXFLAGS)
|
|
FFLAGS = $(CXXFLAGS) -lvfc_probes_f
|
|
|
|
INCLUDE = -I $(INC_DIR)/
|
|
DEPS_CXX = $(OBJ_DIR)/SM_Maponi.o \
|
|
$(OBJ_DIR)/SM_Standard.o \
|
|
$(OBJ_DIR)/Woodbury.o \
|
|
$(OBJ_DIR)/SMWB.o \
|
|
$(OBJ_DIR)/Helpers.o
|
|
DEPS_F = $(DEPS_CXX) \
|
|
$(OBJ_DIR)/finterface_mod.o \
|
|
$(OBJ_DIR)/helpers_mod.o
|
|
FLIBS = -lstdc++
|
|
|
|
SRC_DIR := src
|
|
TST_DIR := tests
|
|
INC_DIR := include
|
|
OBJ_DIR := build
|
|
BIN_DIR := bin
|
|
|
|
EXEC := $(BIN_DIR)/cMaponiA3_test_3x3_3 \
|
|
$(BIN_DIR)/test_h5 \
|
|
$(BIN_DIR)/vfc_test_h5 \
|
|
$(BIN_DIR)/fMaponiA3_test_3x3_3 \
|
|
$(BIN_DIR)/fMaponiA3_test_4x4_2 \
|
|
$(BIN_DIR)/QMCChem_dataset_test
|
|
|
|
#$(BIN_DIR)/test_external_h5 \
|
|
|
|
## Build tagets
|
|
.PHONY: all clean distclean
|
|
|
|
all: $(EXEC)
|
|
|
|
clean:
|
|
@rm -vrf $(OBJ_DIR) .*.o *.dbg *.cmdx *.cmod *.ilm *.stb
|
|
|
|
distclean: clean
|
|
@rm -vrf $(BIN_DIR) \
|
|
Slater* Updates.dat
|
|
|
|
|
|
#### COMPILING
|
|
$(BIN_DIR) $(OBJ_DIR):
|
|
mkdir -p $@
|
|
|
|
### IMPLICIT BUILD RULES
|
|
## C++ objects
|
|
$(OBJ_DIR)/%.o: $(TST_DIR)/%.cpp $(INC_DIR)/* | $(OBJ_DIR)
|
|
$(CXX) $(CXXFLAGS) $(ARCH) $(INCLUDE) -c -o $@ $<
|
|
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp $(INC_DIR)/* | $(OBJ_DIR)
|
|
$(CXX) $(CXXFLAGS) $(INCLUDE) -c -o $@ $<
|
|
|
|
## HDF5/C++ objects
|
|
$(OBJ_DIR)/%_h5.o: $(TST_DIR)/%_h5.cpp $(INC_DIR)/* | $(OBJ_DIR)
|
|
$(H5CXX) $(H5CXXFLAGS) $(INCLUDE) -c -o $@ $<
|
|
|
|
## Fortran modules
|
|
$(OBJ_DIR)/%_mod.o: $(SRC_DIR)/%_mod.f90 | $(OBJ_DIR)
|
|
$(FC) $(FFLAGS) $(ARCH) -J $(OBJ_DIR)/ -c -o $@ $<
|
|
|
|
## Fortran objects
|
|
$(OBJ_DIR)/%.o: $(TST_DIR)/%.f90 | $(OBJ_DIR)
|
|
$(FC) $(FFLAGS) $(ARCH) -I $(OBJ_DIR)/ -c -o $@ $<
|
|
|
|
|
|
#### LINKING
|
|
$(BIN_DIR)/cMaponiA3_test_3x3_3: $(OBJ_DIR)/cMaponiA3_test_3x3_3.o $(DEPS_CXX) | $(BIN_DIR)
|
|
$(CXX) $(LFLAGS) -o $@ $^
|
|
|
|
$(BIN_DIR)/test_h5: $(OBJ_DIR)/test_h5.o $(DEPS_CXX) | $(BIN_DIR)
|
|
$(CXX) $(H5LFLAGS) -o $@ $^ $(H5FLAGS)
|
|
|
|
$(BIN_DIR)/vfc_test_h5: $(OBJ_DIR)/vfc_test_h5.o $(DEPS_CXX) | $(BIN_DIR)
|
|
$(CXX) $(H5LFLAGS) -o $@ $^ $(H5FLAGS)
|
|
|
|
$(BIN_DIR)/fMaponiA3_test_3x3_3: $(DEPS_F) $(OBJ_DIR)/fMaponiA3_test_3x3_3.o | $(BIN_DIR)
|
|
$(FC) $(LFLAGS) $(FLIBS) -o $@ $^
|
|
|
|
$(BIN_DIR)/fMaponiA3_test_4x4_2: $(DEPS_F) $(OBJ_DIR)/fMaponiA3_test_4x4_2.o | $(BIN_DIR)
|
|
$(FC) $(LFLAGS) $(FLIBS) -o $@ $^
|
|
|
|
$(BIN_DIR)/QMCChem_dataset_test: $(DEPS_F) $(OBJ_DIR)/QMCChem_dataset_test.o | $(BIN_DIR)
|
|
$(FC) $(LFLAGS) $(FLIBS) -o $@ $^
|