# expansion:
# If we are cleaning, stop. Else print the result of calling '1'. Then, unless
# we are in -n mode, invoke the result of calling '1' in the shell
-$(if $(filter clean,$(MAKECMDGOALS)),,$(eval S2S += $$(info $$(call $$1,$$2,$$3)))\
-$(if $(filter n,$(MAKEFLAGS)),,$(eval S2S += $$(shell $$(call $$1,$$2,$$3)))))
+ifeq (,$(filter clean,$(MAKECMDGOALS)))
+S2S = $(info $(call $1,$2,$3))
+ifeq (,$(filter n,$(MAKEFLAGS)))
+S2S += $(shell $(call $1,$2,$3))
+endif
+endif
# Rules
.SECONDEXPANSION: