summaryrefslogtreecommitdiff
path: root/am
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2010-07-26 11:56:25 +0200
committerLudovic Courtès <ludo@gnu.org>2010-07-26 19:38:52 +0200
commitfefd60ba4ba751712c45c95362bbc2f858890678 (patch)
tree51e10f9bb0b2ea8dc822128e64363ce5255b07fc /am
parenta2a95453eb62dc489e6376f8e987db668837ba14 (diff)
Check for go/scm mtime ordering rather than equality.
* am/guilec (install-data-hook): Remove. (guile_install_go_files): New variable. ($(guile_install_go_files)): New dependency. * libguile/load.c (compiled_is_fresh): Check for ordering of STAT_SOURCE and STAT_COMPILED, not equality. * module/ice-9/boot-9.scm (load): Ditto. * module/system/base/compile.scm (call-with-output-file/atomic): Don't set the timestamp of TEMPLATE.
Diffstat (limited to 'am')
-rw-r--r--am/guilec25
1 files changed, 7 insertions, 18 deletions
diff --git a/am/guilec b/am/guilec
index 824f1057e..7e3471928 100644
--- a/am/guilec
+++ b/am/guilec
@@ -11,24 +11,13 @@ EXTRA_DIST = $(SOURCES) $(NOCOMP_SOURCES)
CLEANFILES = $(GOBJECTS)
-# Well, shit. We can't have install changing timestamps, can we? But
-# install_sh doesn't know how to preserve timestamps. Soooo, fondle
-# automake to make things happen.
-install-data-hook:
- @$(am__vpath_adj_setup) \
- list='$(nobase_mod_DATA)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- $(am__vpath_adj) \
- echo " touch -r '$$d$$p' '$(DESTDIR)$(moddir)/$$f'"; \
- touch -r "$$d$$p" "$(DESTDIR)$(moddir)/$$f"; \
- done
- @$(am__vpath_adj_setup) \
- list='$(nobase_ccache_DATA)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- $(am__vpath_adj) \
- echo " touch -r '$$d$$p' '$(DESTDIR)$(ccachedir)/$$f'"; \
- touch -r "$$d$$p" "$(DESTDIR)$(ccachedir)/$$f"; \
- done
+# Make sure source files are installed first, so that the mtime of
+# installed compiled files is greater than that of installed source
+# files. See
+# <http://lists.gnu.org/archive/html/guile-devel/2010-07/msg00125.html>
+# for details.
+guile_install_go_files = install-nobase_ccacheDATA
+$(guile_install_go_files): install-nobase_modDATA
AM_V_GUILEC = $(AM_V_GUILEC_$(V))
AM_V_GUILEC_ = $(AM_V_GUILEC_$(AM_DEFAULT_VERBOSITY))