From 68584d9c99101e75c14aad6f1466bac4f61fa22a Mon Sep 17 00:00:00 2001 From: Francois Coppens Date: Fri, 21 May 2021 16:19:08 +0200 Subject: [PATCH] - Fixed bug in Makefile so everything compiles against MKL for all compilers. - Updates Makefile.verificarlo to enable linking against MKL --- Makefile | 22 ++++++++++++++-------- Makefile.verificarlo | 23 +++++++++++++++++------ smvars.sh | 2 +- 3 files changed, 32 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 29134de..d69bd40 100644 --- a/Makefile +++ b/Makefile @@ -21,16 +21,22 @@ else $(error No valid compiler environment set in $$ENV. \ First run: $$ source smvars.sh {intel | llvm | gnu}) endif -CXXFLAGS = $(OPT) $(ARCH) $(DEBUG) $(THRESHOLD) -fPIC -ifeq ($(MKL),-DMKL) -CXXFLAGS += $(MKL) -LFLAGS = -mkl=sequential -H5LFLAGS = -L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl -endif -FFLAGS = $(CXXFLAGS) H5CXX = h5c++ -H5CXXFLAGS = $(CXXFLAGS) FLIBS = -lstdc++ +CXXFLAGS = $(OPT) $(ARCH) $(DEBUG) $(THRESHOLD) -fPIC + +## 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) ## Includes and dependencies INCLUDE = -I $(INC_DIR)/ diff --git a/Makefile.verificarlo b/Makefile.verificarlo index ec35224..09bd973 100644 --- a/Makefile.verificarlo +++ b/Makefile.verificarlo @@ -13,6 +13,17 @@ H5FLAGS = "-I/usr/include/hdf5/serial \ -lpthread -lsz -lz -ldl -lm \ -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) INCLUDE = -I $(INC_DIR)/ @@ -79,19 +90,19 @@ $(OBJ_DIR)/%.o: $(TST_DIR)/%.f90 | $(OBJ_DIR) #### LINKING $(BIN_DIR)/cMaponiA3_test_3x3_3: $(OBJ_DIR)/cMaponiA3_test_3x3_3.o $(DEPS_CXX) | $(BIN_DIR) - $(CXX) -o $@ $^ + $(CXX) $(LFLAGS) -o $@ $^ $(BIN_DIR)/test_h5: $(OBJ_DIR)/test_h5.o $(DEPS_CXX) | $(BIN_DIR) - $(CXX) -o $@ $^ $(H5FLAGS) + $(CXX) $(H5LFLAGS) -o $@ $^ $(H5FLAGS) $(BIN_DIR)/vfc_test_h5: $(OBJ_DIR)/vfc_test_h5.o $(DEPS_CXX) | $(BIN_DIR) - $(CXX) -o $@ $^ $(H5FLAGS) + $(CXX) $(H5LFLAGS) -o $@ $^ $(H5FLAGS) $(BIN_DIR)/fMaponiA3_test_3x3_3: $(DEPS_F) $(OBJ_DIR)/fMaponiA3_test_3x3_3.o | $(BIN_DIR) - $(FC) $(FLIBS) -o $@ $^ + $(FC) $(LFLAGS) $(FLIBS) -o $@ $^ $(BIN_DIR)/fMaponiA3_test_4x4_2: $(DEPS_F) $(OBJ_DIR)/fMaponiA3_test_4x4_2.o | $(BIN_DIR) - $(FC) $(FLIBS) -o $@ $^ + $(FC) $(LFLAGS) $(FLIBS) -o $@ $^ $(BIN_DIR)/QMCChem_dataset_test: $(DEPS_F) $(OBJ_DIR)/QMCChem_dataset_test.o | $(BIN_DIR) - $(FC) $(FLIBS) -o $@ $^ + $(FC) $(LFLAGS) $(FLIBS) -o $@ $^ diff --git a/smvars.sh b/smvars.sh index 3159bd9..6e846ee 100644 --- a/smvars.sh +++ b/smvars.sh @@ -93,4 +93,4 @@ then echo "* Threshold of '$2' will be used in next build." export THRESHOLD="-DTHRESHOLD=$2" fi -fi \ No newline at end of file +fi