From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
To: Notmuch Mail <notmuch@notmuchmail.org>
Subject: subsequent rebuilds of notmuch always re-build sphinx and ruby
Date: Sat, 20 Apr 2019 16:43:01 -0400 [thread overview]
Message-ID: <87r29wwgq2.fsf@fifthhorseman.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 5169 bytes --]
Hi folks--
when i run "make" from my source tree, and it succeeds, i typically
expect that running "make" again will show that nothing needs to be
done.
but that's not the case. Both the sphinx-based documentation and the
ruby notmuch.so are always rebuilt, i think due to some sort of
dependency loop.
But i don't really understand the dependencies there. Maybe someone who
understands either ruby or sphinx better than i do can clean it up?
Having clean dependency tracking and quick rebuilds makes a project a
lot more fun to hack on.
Here's a trace of the rebuild process:
0 dkg@alice:~/src/notmuch/notmuch$ ./configure && make
[…]
make[1]: Leaving directory '/home/dkg/src/notmuch/notmuch/bindings/ruby'
0 dkg@alice:~/src/notmuch/notmuch$ make --trace
doc/Makefile.local:53: update target 'sphinx-html' due to: docstring.stamp
sphinx-build -b html -d doc/_build/doctrees -q ./doc doc/_build/html
doc/Makefile.local:56: update target 'sphinx-texinfo' due to: docstring.stamp
sphinx-build -b texinfo -d doc/_build/doctrees -q ./doc doc/_build/texinfo
doc/Makefile.local:59: update target 'sphinx-info' due to: sphinx-texinfo
make -C doc/_build/texinfo info
make[1]: Entering directory '/home/dkg/src/notmuch/notmuch/doc/_build/texinfo'
Makefile:32: update target 'notmuch-search-terms.info' due to: notmuch-search-terms.texi
makeinfo --no-split -o 'notmuch-search-terms.info' 'notmuch-search-terms.texi'
Makefile:32: update target 'notmuch-compact.info' due to: notmuch-compact.texi
makeinfo --no-split -o 'notmuch-compact.info' 'notmuch-compact.texi'
Makefile:32: update target 'notmuch-show.info' due to: notmuch-show.texi
makeinfo --no-split -o 'notmuch-show.info' 'notmuch-show.texi'
Makefile:32: update target 'notmuch-reply.info' due to: notmuch-reply.texi
makeinfo --no-split -o 'notmuch-reply.info' 'notmuch-reply.texi'
Makefile:32: update target 'notmuch-hooks.info' due to: notmuch-hooks.texi
makeinfo --no-split -o 'notmuch-hooks.info' 'notmuch-hooks.texi'
Makefile:32: update target 'notmuch-config.info' due to: notmuch-config.texi
makeinfo --no-split -o 'notmuch-config.info' 'notmuch-config.texi'
Makefile:32: update target 'notmuch-reindex.info' due to: notmuch-reindex.texi
makeinfo --no-split -o 'notmuch-reindex.info' 'notmuch-reindex.texi'
Makefile:32: update target 'notmuch-restore.info' due to: notmuch-restore.texi
makeinfo --no-split -o 'notmuch-restore.info' 'notmuch-restore.texi'
Makefile:32: update target 'notmuch-new.info' due to: notmuch-new.texi
makeinfo --no-split -o 'notmuch-new.info' 'notmuch-new.texi'
Makefile:32: update target 'notmuch-dump.info' due to: notmuch-dump.texi
makeinfo --no-split -o 'notmuch-dump.info' 'notmuch-dump.texi'
Makefile:32: update target 'notmuch-address.info' due to: notmuch-address.texi
makeinfo --no-split -o 'notmuch-address.info' 'notmuch-address.texi'
Makefile:32: update target 'notmuch-tag.info' due to: notmuch-tag.texi
makeinfo --no-split -o 'notmuch-tag.info' 'notmuch-tag.texi'
Makefile:32: update target 'notmuch-count.info' due to: notmuch-count.texi
makeinfo --no-split -o 'notmuch-count.info' 'notmuch-count.texi'
Makefile:32: update target 'notmuch-search.info' due to: notmuch-search.texi
makeinfo --no-split -o 'notmuch-search.info' 'notmuch-search.texi'
Makefile:32: update target 'notmuch-emacs-mua.info' due to: notmuch-emacs-mua.texi
makeinfo --no-split -o 'notmuch-emacs-mua.info' 'notmuch-emacs-mua.texi'
Makefile:32: update target 'notmuch-emacs.info' due to: notmuch-emacs.texi
makeinfo --no-split -o 'notmuch-emacs.info' 'notmuch-emacs.texi'
Makefile:32: update target 'notmuch-properties.info' due to: notmuch-properties.texi
makeinfo --no-split -o 'notmuch-properties.info' 'notmuch-properties.texi'
Makefile:32: update target 'notmuch-insert.info' due to: notmuch-insert.texi
makeinfo --no-split -o 'notmuch-insert.info' 'notmuch-insert.texi'
Makefile:32: update target 'notmuch.info' due to: notmuch.texi
makeinfo --no-split -o 'notmuch.info' 'notmuch.texi'
make[1]: Leaving directory '/home/dkg/src/notmuch/notmuch/doc/_build/texinfo'
bindings/Makefile.local:8: update target 'ruby-bindings' due to: lib/libnotmuch.so
cd bindings/ruby && \
EXTRA_LDFLAGS="-Wl,--no-undefined" \
LIBNOTMUCH="../../lib/libnotmuch.so" \
NOTMUCH_SRCDIR='/home/dkg/src/notmuch/notmuch' \
ruby extconf.rb --vendor
creating Makefile
make -C bindings/ruby
make[1]: Entering directory '/home/dkg/src/notmuch/notmuch/bindings/ruby'
Makefile:258: update target 'notmuch.so' due to: Makefile
echo linking shared-object notmuch.so
linking shared-object notmuch.so
rm -f notmuch.so
gcc -shared -o notmuch.so database.o directory.o filenames.o init.o message.o messages.o query.o status.o tags.o thread.o threads.o -L. -L/usr/lib/x86_64-linux-gnu -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,--compress-debug-sections=zlib ../../lib/libnotmuch.so -lruby-2.5 -lpthread -lgmp -ldl -lcrypt -lm -lc
make[1]: Leaving directory '/home/dkg/src/notmuch/notmuch/bindings/ruby'
0 dkg@alice:~/src/notmuch/notmuch$
--dkg
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
next reply other threads:[~2019-04-20 20:43 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-20 20:43 Daniel Kahn Gillmor [this message]
2019-04-21 0:12 ` subsequent rebuilds of notmuch always re-build sphinx and ruby David Bremner
2019-04-21 3:14 ` Daniel Kahn Gillmor
2019-04-21 19:29 ` David Bremner
2019-04-22 23:19 ` Daniel Kahn Gillmor
2019-04-23 0:03 ` David Bremner
2019-04-23 21:43 ` Daniel Kahn Gillmor
2019-04-24 1:09 ` David Bremner
2019-04-24 5:11 ` Daniel Kahn Gillmor
2021-12-24 16:20 ` [PATCH] doc: add dep. on stamp file for rebuilding gzipped man pages David Bremner
2021-12-25 9:39 ` Tomi Ollila
2021-12-25 11:37 ` David Bremner
2021-10-30 20:48 ` Add stamp files to prevent rebuilds David Bremner
2021-10-30 20:48 ` [PATCH 1/3] doc: introduce stamp file for info build David Bremner
2021-10-30 20:48 ` [PATCH 2/3] ruby: don't use a directory as a target David Bremner
2021-10-30 20:48 ` [PATCH 3/3] python-cffi: introduce stamp file David Bremner
2021-12-04 23:44 ` Add stamp files to prevent rebuilds David Bremner
2021-12-04 23:47 ` [PATCH 1/2] doc: replace phony target with variable David Bremner
2021-12-04 23:47 ` [PATCH 2/2] doc: introduce stamp file for info build David Bremner
2021-12-23 12:24 ` [PATCH 1/2] doc: replace phony target with variable David Bremner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r29wwgq2.fsf@fifthhorseman.net \
--to=dkg@fifthhorseman.net \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).