1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00

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.
This commit is contained in:
Rob Browning 2024-06-30 12:38:35 -05:00
parent e134a1a6b1
commit 1c96e4ab6d
2 changed files with 17 additions and 18 deletions

View file

@ -26,6 +26,8 @@
# #
AUTOMAKE_OPTIONS = 1.10 AUTOMAKE_OPTIONS = 1.10
# The test-suite goes last so that it can depend on everything else
# (e.g. guile-procedures.txt).
SUBDIRS = \ SUBDIRS = \
lib \ lib \
meta \ meta \
@ -36,8 +38,9 @@ SUBDIRS = \
stage2 \ stage2 \
guile-readline \ guile-readline \
examples \ examples \
test-suite \ doc \
doc . \
test-suite
DIST_SUBDIRS = $(SUBDIRS) prebuilt DIST_SUBDIRS = $(SUBDIRS) prebuilt
@ -57,15 +60,9 @@ BUILT_SOURCES = libguile/scmconfig.h
libguile/scmconfig.h: libguile/scmconfig.h:
$(MAKE) -C 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 here so that (given SUBDIRS order) the modules are available
# build it. libguile/guile-procedures.txt:
libguile/guile-procedures.txt: libguile/guile-procedures.texi $(MAKE) -C libguile guile-procedures.txt
$(AM_V_GEN) \
$(top_builddir)/meta/guile --no-auto-compile \
"$(srcdir)/libguile/texi-fragments-to-docstrings" \
"$(builddir)/libguile/guile-procedures.texi" \
> $@.tmp
@mv $@.tmp $@
EXTRA_DIST = LICENSE HACKING GUILE-VERSION \ EXTRA_DIST = LICENSE HACKING GUILE-VERSION \
am/maintainer-dirs \ am/maintainer-dirs \
@ -87,7 +84,6 @@ EXTRA_DIST = LICENSE HACKING GUILE-VERSION \
ACLOCAL_AMFLAGS = -I m4 ACLOCAL_AMFLAGS = -I m4
CLEANFILES = libguile/guile-procedures.txt
DISTCLEANFILES = check-guile.log DISTCLEANFILES = check-guile.log
DISTCHECK_CONFIGURE_FLAGS = --enable-error-on-warning --enable-mini-gmp DISTCHECK_CONFIGURE_FLAGS = --enable-error-on-warning --enable-mini-gmp

View file

@ -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) \ BUILT_SOURCES = cpp-E.c cpp-SIG.c $(BUILT_INCLUDES) \
$(DOT_X_FILES) $(EXTRA_DOT_X_FILES) $(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 = \ EXTRA_libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES = \
syscalls.h \ syscalls.h \
dynl.c regex-posix.c \ dynl.c regex-posix.c \
@ -734,8 +730,6 @@ EXTRA_DIST = ChangeLog-scm ChangeLog-threads \
unidata_to_charset.awk UnicodeData.txt \ unidata_to_charset.awk UnicodeData.txt \
vm-operations.h libguile-@GUILE_EFFECTIVE_VERSION@-gdb.scm \ vm-operations.h libguile-@GUILE_EFFECTIVE_VERSION@-gdb.scm \
$(lightening_c_files) $(lightening_extra_files) $(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. ## FIXME: Consider using timestamp file, to avoid unnecessary rebuilds.
if MINGW_LIBPATH if MINGW_LIBPATH
@ -853,6 +847,15 @@ guile.texi: $(alldotdocfiles) guile$(EXEEXT)
guile-procedures.texi: $(alldotdocfiles) guile$(EXEEXT) guile-procedures.texi: $(alldotdocfiles) guile$(EXEEXT)
$(AM_V_GEN)$(dotdoc2texi) > $@ || { rm $@; false; } $(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 c-tokenize.c: c-tokenize.lex
flex -t $(srcdir)/c-tokenize.lex > $@ || { rm $@; false; } flex -t $(srcdir)/c-tokenize.lex > $@ || { rm $@; false; }