diff --git a/.gitignore b/.gitignore index 0378ae6..023a0af 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ !/build-aux/git-version-gen !/build-aux/gitlab-ci.yml !/build-aux/gitlog-to-changelog +!/build-aux/guile-rules.am !/build-aux/pre-inst-env.in /config.log /config.status diff --git a/Makefile.am b/Makefile.am index f57be1c..19c0221 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,24 +1,4 @@ -moddir=$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION) -godir=$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/ccache - -GOBJECTS = $(MODULES:%.scm=%.go) - -nobase_mod_DATA = $(MODULES) $(NOCOMP_SOURCES) -nobase_go_DATA = $(GOBJECTS) - -# Make sure source files are installed first, so that the mtime of -# installed compiled files is greater than that of installed source -# files. See -# -# for details. -guile_install_go_files = install-nobase_nodist_guileobjectDATA -$(guile_install_go_files): install-nobase_dist_guilemoduleDATA - -GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat -SUFFIXES = .scm .go -.scm.go: - $(AM_V_GEN)$(top_builddir)/pre-inst-env \ - $(GUILE_TOOLS) compile $(GUILE_WARNINGS) -o "$@" "$<" +include $(top_srcdir)/build-aux/guile-rules.am TEST_EXTENSIONS = .scm .sh SCM_LOG_COMPILER = $(top_builddir)/pre-inst-env $(GUILE) @@ -60,7 +40,7 @@ gen-ChangeLog: mv $(distdir)/ChangeLog-t $(distdir)/ChangeLog -MODULES = \ +GUILE_MODULES = \ gash/built-ins/break.scm \ gash/built-ins/cd.scm \ gash/built-ins/colon.scm \ @@ -104,8 +84,8 @@ bin_SCRIPTS = \ do_subst = sed \ -e 's,[@]GUILE[@],$(GUILE),g' \ - -e 's,[@]MODDIR[@],$(moddir),g' \ - -e 's,[@]GODIR[@],$(godir),g' + -e 's,[@]MODDIR[@],$(guilemoduledir),g' \ + -e 's,[@]GODIR[@],$(guileobjectdir),g' scripts/gash: scripts/gash.in Makefile $(do_subst) < $(srcdir)/scripts/gash.in > scripts/gash @@ -246,11 +226,10 @@ XFAIL_TESTS = \ BROKEN_TESTS = \ tests/50-redirect-merge.sh -EXTRA_DIST = \ +EXTRA_DIST += \ scripts/gash.in -CLEANFILES = \ - $(GOBJECTS) \ +CLEANFILES += \ $(bin_SCRIPTS) \ $(FULL_TESTS:tests/%.sh=tests/%.log) \ $(FULL_TESTS:tests/%.sh=tests/%.trs) \ diff --git a/build-aux/guile-rules.am b/build-aux/guile-rules.am new file mode 100644 index 0000000..2314964 --- /dev/null +++ b/build-aux/guile-rules.am @@ -0,0 +1,25 @@ +guilemoduledir=$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION) +guileobjectdir=$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache + +GUILE_OBJECTS = $(GUILE_MODULES:%.scm=%.go) + +nobase_guilemodule_DATA = $(GUILE_MODULES) +nobase_guileobject_DATA = $(GUILE_OBJECTS) + +# Make sure source files are installed first, so that the mtime of +# installed compiled files is greater than that of installed source +# files. See +# +# for details. +guile_install_go_files = install-nobase_nodist_guileobjectDATA +$(guile_install_go_files): install-nobase_dist_guilemoduleDATA + +GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat +SUFFIXES = .scm .go +.scm.go: + $(AM_V_GEN)$(top_builddir)/pre-inst-env \ + $(GUILD) compile $(GUILE_WARNINGS) -o "$@" "$<" + +EXTRA_DIST = $(GUILE_MODULES) + +CLEANFILES = $(GUILE_OBJECTS)