Use := when assigning the result of $(wildcard ...)
authorIan Lynagh <igloo@earth.li>
Sat, 22 Jan 2011 22:45:32 +0000 (22:45 +0000)
committerIan Lynagh <igloo@earth.li>
Sat, 22 Jan 2011 22:45:32 +0000 (22:45 +0000)
Avoids repeated evaluations of things that need system calls etc

rts/ghc.mk
utils/ghc-cabal/Main.hs

index 0721e45..4303656 100644 (file)
@@ -35,12 +35,13 @@ else
 ALL_DIRS += posix
 endif
 
+EXCLUDED_SRCS :=
 EXCLUDED_SRCS += rts/Main.c
 EXCLUDED_SRCS += rts/parallel/SysMan.c
 EXCLUDED_SRCS += $(wildcard rts/Vis*.c)
 
-rts_C_SRCS = $(filter-out $(EXCLUDED_SRCS),$(wildcard rts/*.c $(foreach dir,$(ALL_DIRS),rts/$(dir)/*.c)))
-rts_CMM_SRCS = $(wildcard rts/*.cmm)
+rts_C_SRCS := $(filter-out $(EXCLUDED_SRCS),$(wildcard rts/*.c $(foreach dir,$(ALL_DIRS),rts/$(dir)/*.c)))
+rts_CMM_SRCS := $(wildcard rts/*.cmm)
 
 # Don't compile .S files when bootstrapping a new arch
 ifneq "$(PORTING_HOST)" "YES"
@@ -67,7 +68,7 @@ rts/dist/build/sm/Evac_thr.c : rts/sm/Evac.c | $$(dir $$@)/.
 rts/dist/build/sm/Scav_thr.c : rts/sm/Scav.c | $$(dir $$@)/.
        cp $< $@
 
-rts_H_FILES = $(wildcard includes/*.h) $(wildcard rts/*.h)
+rts_H_FILES := $(wildcard includes/*.h) $(wildcard rts/*.h)
 
 ifeq "$(USE_DTRACE)" "YES"
 DTRACEPROBES_H = rts/dist/build/RtsProbes.h
index 5ebca2a..a4566f1 100644 (file)
@@ -358,7 +358,7 @@ generate config_args distdir directory
                 variablePrefix ++ "_EXTRA_LIBRARIES = " ++ unwords (extraLibs bi),
                 variablePrefix ++ "_EXTRA_LIBDIRS = " ++ unwords (extraLibDirs bi),
                 variablePrefix ++ "_C_SRCS  = " ++ unwords (cSources bi),
-                variablePrefix ++ "_CMM_SRCS  = $(addprefix cbits/,$(notdir $(wildcard " ++ directory ++ "/cbits/*.cmm)))",
+                variablePrefix ++ "_CMM_SRCS  := $(addprefix cbits/,$(notdir $(wildcard " ++ directory ++ "/cbits/*.cmm)))",
                 variablePrefix ++ "_DATA_FILES = "    ++ unwords (dataFiles pd),
                 -- XXX This includes things it shouldn't, like:
                 -- -odir dist-bootstrapping/build