Skip to content

Commit 13a2b36

Browse files
committed
In the miniapps/performance makefile, run compiler auto-detection
only when needed.
1 parent 7206a67 commit 13a2b36

File tree

1 file changed

+26
-22
lines changed

1 file changed

+26
-22
lines changed

miniapps/performance/makefile

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -45,24 +45,37 @@ else
4545
fi;
4646
printf "%s" "$$cxx_id"
4747
endef
48-
ifneq (,$(MFEM_HOST_CXX))
49-
MFEM_PERF_SW := $(shell $(cxx_detect))
50-
$(info Detected host compiler: $(MFEM_PERF_SW))
51-
ifeq (unknown,$(MFEM_PERF_SW))
52-
$(info -------------------------------------------)
53-
$(info Output from '$(MFEM_HOST_CXX) --version -c')
54-
$(info -------------------------------------------)
55-
$(shell $(MFEM_HOST_CXX) --version -c 1>&2)
56-
$(info -------------------------------------------)
48+
define DETECT_PERF_CXXFLAGS
49+
ifneq (,$$(MFEM_HOST_CXX))
50+
MFEM_PERF_SW := $$(shell $$(cxx_detect))
51+
$$(info Detected host compiler: $$(MFEM_PERF_SW))
52+
ifeq (unknown,$$(MFEM_PERF_SW))
53+
$$(info -------------------------------------------)
54+
$$(info Output from '$$(MFEM_HOST_CXX) --version -c')
55+
$$(info -------------------------------------------)
56+
$$(shell $$(MFEM_HOST_CXX) --version -c 1>&2)
57+
$$(info -------------------------------------------)
5758
endif
5859
endif
59-
ifeq (gcc,$(MFEM_PERF_SW))
60-
ifeq ($(MFEM_MACHINE),x86_64)
60+
ifeq (gcc,$$(MFEM_PERF_SW))
61+
ifeq ($$(MFEM_MACHINE),x86_64)
6162
MFEM_PERF_SW = gcc_x86_64
62-
else ifneq (,$(findstring ppc64,$(MFEM_MACHINE)))
63+
else ifneq (,$$(findstring ppc64,$$(MFEM_MACHINE)))
6364
MFEM_PERF_SW = gcc_ppc64
6465
endif
6566
endif
67+
# Choose MFEM_PERF_CXXFLAGS based on MFEM_PERF_SW:
68+
MFEM_PERF_CXXFLAGS = $$(MFEM_PERF_CXXFLAGS_$$(MFEM_PERF_SW))
69+
# Add MFEM_PERF_CXXFLAGS to MFEM_CXXFLAGS:
70+
ifeq (YES,$$(MFEM_USE_CUDA))
71+
ifneq (,$$(MFEM_PERF_CXXFLAGS))
72+
MFEM_CXXFLAGS += -Xcompiler="$$(MFEM_PERF_CXXFLAGS)"
73+
endif
74+
else
75+
MFEM_CXXFLAGS += $$(MFEM_PERF_CXXFLAGS)
76+
endif
77+
DETECT_PERF_CXXFLAGS_DONE = YES
78+
endef
6679

6780
# Compiler specific optimizations.
6881
# For best performance, GCC 5 (or newer) is recommended.
@@ -95,16 +108,6 @@ MFEM_PERF_CXXFLAGS_clang += -ffp-contract=fast
95108
# - Intel C++ compiler extra options:
96109
MFEM_PERF_CXXFLAGS_icc += -xHost
97110

98-
# Choose MFEM_PERF_CXXFLAGS based on MFEM_PERF_SW:
99-
MFEM_PERF_CXXFLAGS = $(MFEM_PERF_CXXFLAGS_$(MFEM_PERF_SW))
100-
# Add MFEM_PERF_CXXFLAGS to MFEM_CXXFLAGS:
101-
ifeq (YES,$(MFEM_USE_CUDA))
102-
ifneq (,$(MFEM_PERF_CXXFLAGS))
103-
MFEM_CXXFLAGS += -Xcompiler="$(MFEM_PERF_CXXFLAGS)"
104-
endif
105-
else
106-
MFEM_CXXFLAGS += $(MFEM_PERF_CXXFLAGS)
107-
endif
108111

109112
SEQ_MINIAPPS = ex1
110113
PAR_MINIAPPS = ex1p
@@ -123,6 +126,7 @@ endif
123126

124127
# Replace the default implicit rule for *.cpp files
125128
%: $(SRC)%.cpp $(MFEM_LIB_FILE) $(CONFIG_MK)
129+
$(if $(DETECT_PERF_CXXFLAGS_DONE),,$(eval $(DETECT_PERF_CXXFLAGS)))
126130
$(MFEM_CXX) $(MFEM_FLAGS) $< -o $@ $(MFEM_LIBS)
127131

128132
all: $(MINIAPPS)

0 commit comments

Comments
 (0)