define PREMAKE_SOURCE_COMPILER =
# Find the sources for each source-to-source language
$(foreach slang,$(SLANGS),
-$(eval SLANG_SRC := $(patsubst ./%,%,$(shell find -name "*.$(slang)")))
+$(eval SLANG_SRC := $(patsubst ./%,%,$(filter-out .%,$(shell find -name "*.$(slang)"))))
# Foreach target type in the source-to-source language, add this source's
# targets to the list of the current source-to-source language targets
$(foreach trg,$($(slang)_TRG),
$(eval BUILDGOALS := all))
$(if $(and $(BUILDGOALS),$(filter $(OLDER_TIME),$(NEWEST_TRG_TIME))),
$(eval SHELL_CMD := cd $(dir $(src)) && $($(slang)_C) $($(slang)_FLAGS) $(notdir $(src)))
+$(info SHELL_CMD := cd $(dir $(src)) && $($(slang)_C) $($(slang)_FLAGS) $(notdir $(src)))
$(info $(SHELL_CMD) $(shell $(SHELL_CMD)))
)
# Put these targets on the MAKE_TARGETS list to be removed during "clean",
define SRC_LANG_RULE =
$(if $($1),,$(eval $1 := t)\
$(eval MOD := $(filter $(MODULES),$(firstword $(subst /, ,$(dir $1)))))\
-$(eval FLG := $($2_FLAGS) $(MOD:%=-I% ))\
+$(eval FLG := $(MOD:%=-I% ))\
$(if $(wildcard $1),
$(eval DEPS := $(filter-out \ %:,$(shell $($2_C) $(FLG) -M -MG $1)))\
$(eval MDEPS := $(filter $(MODULES:%=%/%),$(DEPS)))\