## 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)/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)/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 $@ $^