diff options
author | Rob Browning <rlb@defaultvalue.org> | 2024-06-30 12:38:35 -0500 |
---|---|---|
committer | Rob Browning <rlb@defaultvalue.org> | 2024-09-27 19:51:00 -0500 |
commit | 1c96e4ab6dde18c69f1493a8e1560e80a347cd21 (patch) | |
tree | 3928532bf791abe030eb9a6a7489122f4ad92a02 | |
parent | e134a1a6b1f4108abecc7c7a19d4c34f8a8a1dd0 (diff) | |
download | guile-1c96e4ab6dde18c69f1493a8e1560e80a347cd21.tar.gz |
Ensure tests have guile-procedures.txt
The tests depend on libguile/guile-procedures.txt, for example via
documented? in bit-operations.test. Previously "make check -j..." in a
clean tree would fail because libguile/guile-procedures.txt is built by
./Makefile.am (rather than libguile/Makefile.am) so that it will have a
built module/ available, but when "." is not listed in SUBDIRS, it
builds last, and so the test-suite runs before guile-procedures.txt is
built.
To fix the problem add "." to SUBDIRS before the test-suite so that the
tests will be able depend on everything else, and move the existing
guile-procedures.txt target into libguile/ next to its
guile-procedures.texi dependency. That gives a better overview and
simplifies the recipe a bit. It also allows us to drop the explict
"all-local:" dependency, and to let the existing libguile/ code handle
the cleanup.
* Makefile.am (SUBDIRS): add . just before the test-suite.
(libguile/guile-procedures.txt): rely on libguile/Makefile.am.
(CLEANFILES): Drop libguile/procedures.txt.
* libguile/Makefile.am: (all-local): drop.
(libguile/guile-procedures.txt): move Makefile.am recipe here.
-rw-r--r-- | Makefile.am | 20 | ||||
-rw-r--r-- | libguile/Makefile.am | 15 |
2 files changed, 17 insertions, 18 deletions
diff --git a/Makefile.am b/Makefile.am index c74761628..6d73625c7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -26,6 +26,8 @@ # AUTOMAKE_OPTIONS = 1.10 +# The test-suite goes last so that it can depend on everything else +# (e.g. guile-procedures.txt). SUBDIRS = \ lib \ meta \ @@ -36,8 +38,9 @@ SUBDIRS = \ stage2 \ guile-readline \ examples \ - test-suite \ - doc + doc \ + . \ + test-suite DIST_SUBDIRS = $(SUBDIRS) prebuilt @@ -57,15 +60,9 @@ BUILT_SOURCES = libguile/scmconfig.h libguile/scmconfig.h: $(MAKE) -C libguile scmconfig.h -# Build it from here so that all the modules are compiled by the time we -# build it. -libguile/guile-procedures.txt: libguile/guile-procedures.texi - $(AM_V_GEN) \ - $(top_builddir)/meta/guile --no-auto-compile \ - "$(srcdir)/libguile/texi-fragments-to-docstrings" \ - "$(builddir)/libguile/guile-procedures.texi" \ - > $@.tmp - @mv $@.tmp $@ +# Build it here so that (given SUBDIRS order) the modules are available +libguile/guile-procedures.txt: + $(MAKE) -C libguile guile-procedures.txt EXTRA_DIST = LICENSE HACKING GUILE-VERSION \ am/maintainer-dirs \ @@ -87,7 +84,6 @@ EXTRA_DIST = LICENSE HACKING GUILE-VERSION \ ACLOCAL_AMFLAGS = -I m4 -CLEANFILES = libguile/guile-procedures.txt DISTCLEANFILES = check-guile.log DISTCHECK_CONFIGURE_FLAGS = --enable-error-on-warning --enable-mini-gmp diff --git a/libguile/Makefile.am b/libguile/Makefile.am index 0890acc18..59fb5f5fc 100644 --- a/libguile/Makefile.am +++ b/libguile/Makefile.am @@ -468,10 +468,6 @@ BUILT_INCLUDES = vm-operations.h scmconfig.h libpath.h srfi-14.i.c BUILT_SOURCES = cpp-E.c cpp-SIG.c $(BUILT_INCLUDES) \ $(DOT_X_FILES) $(EXTRA_DOT_X_FILES) -# Force the generation of `guile-procedures.texi' because the top-level -# Makefile expects it to be built. -all-local: guile-procedures.texi - EXTRA_libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES = \ syscalls.h \ dynl.c regex-posix.c \ @@ -734,8 +730,6 @@ EXTRA_DIST = ChangeLog-scm ChangeLog-threads \ unidata_to_charset.awk UnicodeData.txt \ vm-operations.h libguile-@GUILE_EFFECTIVE_VERSION@-gdb.scm \ $(lightening_c_files) $(lightening_extra_files) -# $(DOT_DOC_FILES) $(EXTRA_DOT_DOC_FILES) \ -# guile-procedures.txt guile.texi ## FIXME: Consider using timestamp file, to avoid unnecessary rebuilds. if MINGW_LIBPATH @@ -853,6 +847,15 @@ guile.texi: $(alldotdocfiles) guile$(EXEEXT) guile-procedures.texi: $(alldotdocfiles) guile$(EXEEXT) $(AM_V_GEN)$(dotdoc2texi) > $@ || { rm $@; false; } +# Requires meta to be listed before libguile in SUBDIRS +guile-procedures.txt: guile-procedures.texi + $(AM_V_GEN) \ + $(top_builddir)/meta/guile --no-auto-compile \ + "$(srcdir)/texi-fragments-to-docstrings" \ + "$(builddir)/guile-procedures.texi" \ + > $@.tmp + @mv $@.tmp $@ + c-tokenize.c: c-tokenize.lex flex -t $(srcdir)/c-tokenize.lex > $@ || { rm $@; false; } |