AboutSummaryRefsLogTreeCommitDiffStats
path: root/scm/mcron/makefile.am
diff options
context:
space:
mode:
authorDale Mellor <dale@rdmp.org>2015-10-22 06:59:21 +0100
committerDale Mellor <dale@rdmp.org>2015-10-22 06:59:21 +0100
commitc0a6eb14c257a47e9573631e5ac09e6528fba377 (patch)
treea36115815cf89f6bdfd745fb8c7ddd3ae252334c /scm/mcron/makefile.am
parent024027ae2dcc425f7a3bf5bf3ff3671833b02ce6 (diff)
downloadmcron-c0a6eb14c257a47e9573631e5ac09e6528fba377.tar.gz
mcron-c0a6eb14c257a47e9573631e5ac09e6528fba377.tar.bz2
mcron-c0a6eb14c257a47e9573631e5ac09e6528fba377.zip
Taken on board suggestions of Mathieu Lirzin as per e-mails to the bug-mcron@gnu.org mailing list around September 2015.
Diffstat (limited to 'scm/mcron/makefile.am')
-rw-r--r--scm/mcron/makefile.am65
1 files changed, 55 insertions, 10 deletions
diff --git a/scm/mcron/makefile.am b/scm/mcron/makefile.am
index 931b03b..e371311 100644
--- a/scm/mcron/makefile.am
+++ b/scm/mcron/makefile.am
@@ -1,15 +1,60 @@
-EXTRA_DIST = main.scm mcron-core.scm vixie-specification.scm \
- crontab.scm environment.scm job-specifier.scm redirect.scm \
- vixie-time.scm
+## Makefile for the scm/mcron directory of mcron.
-pkgdata_DATA = core.scm environment.scm job-specifier.scm redirect.scm \
- vixie-time.scm vixie-specification.scm config.scm
+# Copyright (C) 2015 Mathieu Lirzin
+#
+# This file is part of GNU mcron.
+#
+# GNU mcron is free software: you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later
+# version.
+#
+# GNU mcron is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# GNU mcron. If not, see <http://www.gnu.org/licenses/>.
+## Process this file with automake to produce makefile.in.
-# If you're wondering, the configure script keeps deleting all files with a name
-# like core.*, so we have to keep re-making it (I lost a good day's work because
-# of this).
-core.scm : mcron-core.scm
- $(CP) mcron-core.scm core.scm
+MODULES = environment.scm \
+ job-specifier.scm \
+ main.scm \
+ mcron-core.scm \
+ redirect.scm \
+ vixie-specification.scm \
+ vixie-time.scm
+GOBJECTS = $(MODULES:%.scm=%.go) config.go
+
+nobase_dist_guilemodule_DATA = $(MODULES) crontab.scm
+nobase_nodist_guilemodule_DATA = $(GOBJECTS) config.scm
+
+CLEANFILES = $(GOBJECTS)
+
+AM_V_GUILEC = $(AM_V_GUILEC_$(V))
+AM_V_GUILEC_ = $(AM_V_GUILEC_$(AM_DEFAULT_VERBOSITY))
+AM_V_GUILEC_0 = @echo " GUILEC" $@;
+
+# Unset 'GUILE_LOAD_COMPILED_PATH' altogether while compiling. Otherwise, if
+# $GUILE_LOAD_COMPILED_PATH contains $(moduledir), we may find .go files in
+# there that are newer than the local .scm files (for instance because the
+# user ran 'make install' recently). When that happens, we end up loading
+# those previously-installed .go files, which may be stale, thereby breaking
+# the whole thing.
+#
+# XXX: Use the C locale for when Guile lacks
+# <http://git.sv.gnu.org/cgit/guile.git/commit/?h=stable-2.0&id=e2c6bf3866d1186c60bacfbd4fe5037087ee5e3f>.
+.scm.go:
+ $(AM_V_GUILEC)$(MKDIR_P) `dirname "$@"` ; \
+ unset GUILE_LOAD_COMPILED_PATH ; \
+ LC_ALL=C \
+ $(GUILD) compile \
+ -L "$(top_builddir)/scm" -L "$(top_srcdir)/scm" \
+ -Wformat -Wunbound-variable -Warity-mismatch \
+ --target="$(host)" \
+ -o "$@" "$<"
+
+SUFFIXES = .go