diff options
-rw-r--r-- | ghc.mk | 9 | ||||
-rw-r--r-- | libffi/ghc.mk | 12 | ||||
-rw-r--r-- | mk/config.mk.in | 8 | ||||
-rw-r--r-- | rts/ghc.mk | 4 | ||||
-rw-r--r-- | rules/build-dependencies.mk | 8 | ||||
-rw-r--r-- | rules/build-prog.mk | 4 | ||||
-rw-r--r-- | utils/ghc-cabal/ghc.mk | 4 | ||||
-rw-r--r-- | utils/touchy/ghc.mk | 9 |
8 files changed, 34 insertions, 24 deletions
@@ -553,6 +553,11 @@ BUILD_DIRS += \ $(GHC_MKDIRHIER_DIR) endif +ifeq "$(Windows)" "YES" +BUILD_DIRS += \ + $(GHC_TOUCHY_DIR) +endif + BUILD_DIRS += \ docs/users_guide \ docs/ext-core \ @@ -609,10 +614,6 @@ BUILD_DIRS += \ utils/hpc \ utils/runghc \ ghc -ifeq "$(Windows)" "YES" -BUILD_DIRS += \ - $(GHC_TOUCHY_DIR) -endif ifneq "$(BINDIST)" "YES" BUILD_DIRS += \ diff --git a/libffi/ghc.mk b/libffi/ghc.mk index 8162c81874..85a2822ab2 100644 --- a/libffi/ghc.mk +++ b/libffi/ghc.mk @@ -39,7 +39,7 @@ LIBFFI_PATH_MANGLE = PATH=$$(cygpath "$(TOP)")/libffi:$$PATH; export PATH; endif ifneq "$(BINDIST)" "YES" -$(libffi_STAMP_CONFIGURE): +$(libffi_STAMP_CONFIGURE): $(TOUCH_DEP) $(call removeFiles,$(libffi_STAMP_STATIC_CONFIGURE)) $(call removeFiles,$(libffi_STAMP_STATIC_BUILD)) $(call removeFiles,$(libffi_STAMP_STATIC_INSTALL)) @@ -88,15 +88,15 @@ $(libffi_STAMP_CONFIGURE): mv libffi/build/Makefile libffi/build/Makefile.orig sed "s#wc -w#wc -w | sed 's/ //g'#" < libffi/build/Makefile.orig > libffi/build/Makefile - touch $@ + "$(TOUCH_CMD)" $@ -$(libffi_STAMP_BUILD): $(libffi_STAMP_CONFIGURE) +$(libffi_STAMP_BUILD): $(libffi_STAMP_CONFIGURE) $(TOUCH_DEP) $(MAKE) -C libffi/build MAKEFLAGS= - touch $@ + "$(TOUCH_CMD)" $@ -$(libffi_STAMP_INSTALL): $(libffi_STAMP_BUILD) +$(libffi_STAMP_INSTALL): $(libffi_STAMP_BUILD) $(TOUCH_DEP) $(MAKE) -C libffi/build MAKEFLAGS= install - touch $@ + "$(TOUCH_CMD)" $@ $(libffi_STATIC_LIB): $(libffi_STAMP_INSTALL) @test -f $@ || { echo "$< exists, but $@ does not."; echo "Suggest removing $<."; exit 1; } diff --git a/mk/config.mk.in b/mk/config.mk.in index f45404abdf..04ee71c789 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -740,6 +740,14 @@ TAR_CMD = @TarCmd@ BZIP2_CMD = bzip2 GZIP_CMD = gzip +ifeq "$(Windows)" "YES" +TOUCH_CMD = $(utils/touchy_dist_INPLACE) +TOUCH_DEP = $(TOUCH_CMD) +else +TOUCH_CMD = touch +TOUCH_DEP = +endif + HSCOLOUR_CMD = @HSCOLOUR@ TIME_CMD = @TimeCmd@ diff --git a/rts/ghc.mk b/rts/ghc.mk index 40ff02fcc4..a18bec9e89 100644 --- a/rts/ghc.mk +++ b/rts/ghc.mk @@ -107,9 +107,9 @@ endif ifneq "$(BINDIST)" "YES" rts_ffi_objs_stamp = rts/dist/ffi/stamp rts_ffi_objs = rts/dist/ffi/*.o -$(rts_ffi_objs_stamp): $(libffi_STATIC_LIB) | $$(dir $$@)/. +$(rts_ffi_objs_stamp): $(libffi_STATIC_LIB) $(TOUCH_DEP) | $$(dir $$@)/. cd rts/dist/ffi && $(AR) x ../../../$(libffi_STATIC_LIB) - touch $@ + "$(TOUCH_CMD)" $@ # This is a little hacky. We don't know the SO version, so we only # depend on libffi.so, but copy libffi.so* diff --git a/rules/build-dependencies.mk b/rules/build-dependencies.mk index c9c62cdcdc..6ab2edcde0 100644 --- a/rules/build-dependencies.mk +++ b/rules/build-dependencies.mk @@ -31,9 +31,9 @@ ifneq "$$(NO_GENERATED_MAKEFILE_RULES)" "YES" # indirectly) include the generated includes files. $$($1_$2_depfile_haskell) : $$(includes_H_CONFIG) $$(includes_H_PLATFORM) -$$($1_$2_depfile_haskell) : $$($1_$2_HS_SRCS) $$($1_$2_HS_BOOT_SRCS) $$($1_$2_HC_MK_DEPEND_DEP) | $$$$(dir $$$$@)/. +$$($1_$2_depfile_haskell) : $$($1_$2_HS_SRCS) $$($1_$2_HS_BOOT_SRCS) $$($1_$2_HC_MK_DEPEND_DEP) $$(TOUCH_DEP) | $$$$(dir $$$$@)/. $$(call removeFiles,$$@.tmp) - touch $$@.tmp + "$$(TOUCH_CMD)" $$@.tmp ifneq "$$($1_$2_HS_SRCS)" "" "$$($1_$2_HC_MK_DEPEND)" -M $$($1_$2_MKDEPENDHS_FLAGS) \ $$(filter-out -split-objs, $$($1_$2_v_ALL_HC_OPTS)) \ @@ -54,9 +54,9 @@ endif # includes files. $$($1_$2_depfile_c_asm) : $$(includes_H_CONFIG) $$(includes_H_PLATFORM) -$$($1_$2_depfile_c_asm) : $$($1_$2_C_FILES_DEPS) $$($1_$2_S_FILES) | $$$$(dir $$$$@)/. +$$($1_$2_depfile_c_asm) : $$($1_$2_C_FILES_DEPS) $$($1_$2_S_FILES) $$(TOUCH_DEP) | $$$$(dir $$$$@)/. $$(call removeFiles,$$@.tmp) - touch $$@.tmp + "$$(TOUCH_CMD)" $$@.tmp ifneq "$$(strip $$($1_$2_C_FILES_DEPS)$$($1_$2_S_FILES))" "" # We ought to actually do this for each way in $$($1_$2_WAYS), but then # it takes a long time to make the C deps for the RTS (30 seconds rather diff --git a/rules/build-prog.mk b/rules/build-prog.mk index 1f43169ce3..aa66516a11 100644 --- a/rules/build-prog.mk +++ b/rules/build-prog.mk @@ -94,9 +94,9 @@ $(call all-target,$1_$2,$1/$2/build/tmp/$$($1_$2_PROG)) # INPLACE_BIN might be empty if we're distcleaning ifeq "$(findstring clean,$(MAKECMDGOALS))" "" ifneq "$$($1_$2_INSTALL_INPLACE)" "NO" -$$($1_$2_INPLACE) : $1/$2/build/tmp/$$($1_$2_PROG) | $$$$(dir $$$$@)/. +$$($1_$2_INPLACE) : $1/$2/build/tmp/$$($1_$2_PROG) $$(TOUCH_DEP) | $$$$(dir $$$$@)/. "$$(CP)" -p $$< $$@ - touch $$@ + "$$(TOUCH_CMD)" $$@ endif endif diff --git a/utils/ghc-cabal/ghc.mk b/utils/ghc-cabal/ghc.mk index 9af611c8b9..20d05704d2 100644 --- a/utils/ghc-cabal/ghc.mk +++ b/utils/ghc-cabal/ghc.mk @@ -25,7 +25,7 @@ $(GHC_CABAL_DIR)/dist/build/tmp/ghc-cabal$(exeext): $(wildcard libraries/Cabal/C $(GHC_CABAL_DIR)/dist/build/tmp/ghc-cabal$(exeext): $(wildcard libraries/Cabal/Cabal/Distribution/*/*.hs) $(GHC_CABAL_DIR)/dist/build/tmp/ghc-cabal$(exeext): $(wildcard libraries/Cabal/Cabal/Distribution/*.hs) -$(GHC_CABAL_DIR)/dist/build/tmp/ghc-cabal$(exeext): $(GHC_CABAL_DIR)/Main.hs | $$(dir $$@)/. bootstrapping/. +$(GHC_CABAL_DIR)/dist/build/tmp/ghc-cabal$(exeext): $(GHC_CABAL_DIR)/Main.hs $(TOUCH_DEP) | $$(dir $$@)/. bootstrapping/. "$(GHC)" $(SRC_HC_OPTS) --make $(GHC_CABAL_DIR)/Main.hs -o $@ \ -no-user-package-conf \ -Wall $(WERROR) \ @@ -36,7 +36,7 @@ $(GHC_CABAL_DIR)/dist/build/tmp/ghc-cabal$(exeext): $(GHC_CABAL_DIR)/Main.hs | $ -ilibraries/filepath \ -ilibraries/hpc \ $(utils/ghc-cabal_dist_EXTRA_HC_OPTS) - touch $@ + "$(TOUCH_CMD)" $@ # touch is required, because otherwise if mkdirhier is newer, we # repeatedly rebuild ghc-cabal. diff --git a/utils/touchy/ghc.mk b/utils/touchy/ghc.mk index fc9c845c8d..458f80e5ed 100644 --- a/utils/touchy/ghc.mk +++ b/utils/touchy/ghc.mk @@ -10,8 +10,9 @@ # # ----------------------------------------------------------------------------- -utils/touchy_dist_C_SRCS = touchy.c -utils/touchy_dist_PROG = $(GHC_TOUCHY_PGM) -utils/touchy_dist_TOPDIR = YES -utils/touchy_dist_INSTALL = YES +utils/touchy_dist_C_SRCS = touchy.c +utils/touchy_dist_PROG = $(GHC_TOUCHY_PGM) +utils/touchy_dist_TOPDIR = YES +utils/touchy_dist_INSTALL = YES +utils/touchy_dist_INSTALL_INPLACE = YES $(eval $(call build-prog,utils/touchy,dist,0)) |