summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Browning <rlb@defaultvalue.org>2024-06-30 12:38:35 -0500
committerRob Browning <rlb@defaultvalue.org>2024-09-27 19:51:00 -0500
commit1c96e4ab6dde18c69f1493a8e1560e80a347cd21 (patch)
tree3928532bf791abe030eb9a6a7489122f4ad92a02
parente134a1a6b1f4108abecc7c7a19d4c34f8a8a1dd0 (diff)
downloadguile-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.am20
-rw-r--r--libguile/Makefile.am15
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; }