From 7c312e8871b15a818229039e4d7e37c3aa402650 Mon Sep 17 00:00:00 2001 From: titeup Date: Mon, 29 Mar 2021 10:49:57 +0200 Subject: [PATCH] inital commit of Makefile.verificarlo --- Makefile.verificarlo | 104 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 Makefile.verificarlo diff --git a/Makefile.verificarlo b/Makefile.verificarlo new file mode 100644 index 0000000..217afe8 --- /dev/null +++ b/Makefile.verificarlo @@ -0,0 +1,104 @@ +## Compilers +#ARCH = -xCORE-AVX2 +H5CXX = h5c++ +#CXX = icpc +#FC = ifort + +#CXX = ~/intel/compilers_and_libraries_2020.3.275/linux/bin/icpx +#FC = ~/intel/compilers_and_libraries_2020.3.275/linux/bin/intel64/ifort + +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" +CXX = verificarlo-c++ +FC = verificarlo-f + + + +## Compiler flags +#H5CXXFLAGS = -O0 -g +CXXFLAGS = -O0 -g $(H5FLAGS) +FFLAGS = -O0 -g $(H5FLAGS) + +INCLUDE = -I $(INC_DIR)/ +DEPS_CXX = $(OBJ_DIR)/SM_MaponiA3.o $(OBJ_DIR)/SM_Standard.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_internal_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) + +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 $@ $< + +## 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) -module $(OBJ_DIR)/ -c -o $@ $< + +## Fortran objects +$(OBJ_DIR)/%.o: $(TST_DIR)/%.f90 | $(OBJ_DIR) + $(FC) $(FFLAGS) $(ARCH) -I $(OBJ_DIR)/ -c -o $@ $< + +### EXPLICIT BUILD RULES +## special compiler flag -fPIC otherwise h5c++ builds fail +$(OBJ_DIR)/SM_MaponiA3.o: $(SRC_DIR)/SM_MaponiA3.cpp $(INC_DIR)/* | $(OBJ_DIR) + $(CXX) $(CXXFLAGS) -fPIC $(ARCH) $(INCLUDE) -c -o $@ $< + +$(OBJ_DIR)/SM_Standard.o: $(SRC_DIR)/SM_Standard.cpp $(INC_DIR)/* | $(OBJ_DIR) + $(CXX) $(CXXFLAGS) -fPIC $(ARCH) $(INCLUDE) -c -o $@ $< + + +#### LINKING +$(BIN_DIR)/cMaponiA3_test_3x3_3: $(OBJ_DIR)/cMaponiA3_test_3x3_3.o $(DEPS_CXX) | $(BIN_DIR) + $(CXX) -o $@ $^ + +#begin H5 +$(BIN_DIR)/test_internal_h5: $(OBJ_DIR)/test_internal_h5.o $(DEPS_CXX) | $(BIN_DIR) + $(CXX) -o $@ $^ $(H5FLAGS) +#$(BIN_DIR)/test_external_h5: $(OBJ_DIR)/test_external_h5.o $(DEPS_CXX) | $(BIN_DIR) +# $(CXX) -o $@ $^ $(H5FLAGS) +#end H5 + + +$(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 $@ $^ + +