mirror of
https://github.com/TREX-CoE/Sherman-Morrison.git
synced 2024-12-25 22:03:57 +01:00
18d1e2b785
With the current setup, the CI should be able to be deployed correcly. However, we still ned to find the best solution to pull the dataset on the runner so the tests can be executed on it.
99 lines
2.6 KiB
Makefile
99 lines
2.6 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 \
|
|
-Wl,-rpath -Wl,/usr/lib/x86_64-linux-gnu/hdf5/serial"
|
|
CXXFLAGS = -O0 -g $(H5FLAGS)
|
|
FFLAGS = $(CXXFLAGS)
|
|
|
|
INCLUDE = -I $(INC_DIR)/
|
|
DEPS_CXX = $(OBJ_DIR)/SM_MaponiA3.o \
|
|
$(OBJ_DIR)/SM_MaponiA3S.o \
|
|
$(OBJ_DIR)/SM_Standard.o \
|
|
$(OBJ_DIR)/SM_Helpers.o
|
|
DEPS_F = $(DEPS_CXX) \
|
|
$(OBJ_DIR)/SM_MaponiA3_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) -o $@ $^
|
|
|
|
$(BIN_DIR)/test_h5: $(OBJ_DIR)/test_h5.o $(DEPS_CXX) | $(BIN_DIR)
|
|
$(CXX) -o $@ $^ $(H5FLAGS)
|
|
|
|
$(BIN_DIR)/vfc_test_h5: $(OBJ_DIR)/vfc_test_h5.o $(DEPS_CXX) | $(BIN_DIR)
|
|
$(CXX) -o $@ $^ $(H5FLAGS)
|
|
|
|
$(BIN_DIR)/fMaponiA3_test_3x3_3: $(DEPS_F) $(OBJ_DIR)/fMaponiA3_test_3x3_3.o | $(BIN_DIR)
|
|
$(FC) $(FLIBS) -o $@ $^
|
|
|
|
$(BIN_DIR)/fMaponiA3_test_4x4_2: $(DEPS_F) $(OBJ_DIR)/fMaponiA3_test_4x4_2.o | $(BIN_DIR)
|
|
$(FC) $(FLIBS) -o $@ $^
|
|
|
|
$(BIN_DIR)/QMCChem_dataset_test: $(DEPS_F) $(OBJ_DIR)/QMCChem_dataset_test.o | $(BIN_DIR)
|
|
$(FC) $(FLIBS) -o $@ $^
|