<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/Makefile.local, branch 0.13</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.13</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.13'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2012-04-15T12:42:15Z</updated>
<entry>
<title>Record dependencies during build instead of before</title>
<updated>2012-04-15T12:42:15Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2012-04-11T20:38:39Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=cddc27034687e1c3bc52204314dfa46219b5d6f9'/>
<id>urn:sha1:cddc27034687e1c3bc52204314dfa46219b5d6f9</id>
<content type='text'>
Previously, the makefile created dependency files in a separate, first
pass.  In particular, include-ing the dependency files would cause
make to attempt to rebuild those files using the dependency-generation
rules in the makefile.  Unfortunately, this approach required obtuse
rules and silently delayed the start of the build process (by quite a
bit on a clean tree without any dependency files).  Worse, this
required the dependency files to themselves depend on all of the
headers the source file depended on, which meant that, if a header
file was removed, the depedency file could not be updated because of a
missing dependency (!), which would cause make to silently fail.

This patch eliminates the dependency generation rules and instead
generates dependency files as a side-effect of the regular build rule.
On the first build, we don't need to know the dependencies beforehand;
the object file doesn't exist, so it will be built anyway.  On
subsequent builds, if a header file is updated, the dependency rules
generated by the previous build will force a rebuild.  If a source
file is updated, the dependency rules may be stale, but it doesn't
matter because the updated source file will force a rebuild.

In the final case above, the stale dependency rules may refer to a
header file that no longer exists but is also no longer needed.  In
order to prevent this from breaking the build, we also pass gcc the
-MP option, which generates phony targets for every depended-on header
file, so make won't complain if it can't find them during a later
build.
</content>
</entry>
<entry>
<title>Remove show-message.c</title>
<updated>2012-04-15T12:42:15Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2012-04-08T00:57:47Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=ae59f4ab4d6029dd1c3847d02a5928de207f7aa5'/>
<id>urn:sha1:ae59f4ab4d6029dd1c3847d02a5928de207f7aa5</id>
<content type='text'>
There are no more calls to show_message_body.
</content>
</entry>
<entry>
<title>Fix dependency generation for CLI sources</title>
<updated>2012-01-19T13:16:50Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2012-01-15T20:20:23Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=edd25db019ada82b2c7499fce337dbed033205cf'/>
<id>urn:sha1:edd25db019ada82b2c7499fce337dbed033205cf</id>
<content type='text'>
Previously, the dependency file list was generated before the CLI
sources were added to SRCS, so dependency files weren't generated for
CLI sources.  This moves that code to after the CLI sources are added.
</content>
</entry>
<entry>
<title>build-system: update for split man pages</title>
<updated>2011-12-31T19:16:32Z</updated>
<author>
<name>David Bremner</name>
<email>bremner@debian.org</email>
</author>
<published>2011-12-20T20:35:13Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=af12e5a3ac887cd7dde344f67d9d43688e78e295'/>
<id>urn:sha1:af12e5a3ac887cd7dde344f67d9d43688e78e295</id>
<content type='text'>
- We have to remove the installation of notmuch.1.gz from the top
level Makefile.local.

- Man pages with multiple names are handled by making relative
  symlinks in the install-man target.

- update version tests and convenience rules for split man pages

  The man page version test still only checks notmuch.1, but the
  location is updated.

  update-man-versions is longer than the one-line previously in
  update-versions mainly because I decided to take the high road and
  stick to POSIX sed (thus, no sed -i). The sed regex itself is more
  complicated to cope with variations in the headers.
</content>
</entry>
<entry>
<title>Introduce a generic tree-like abstraction for MIME traversal.</title>
<updated>2011-12-26T02:19:12Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2011-12-24T18:52:44Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=bb189220a323e3140198161234ed54bf98175469'/>
<id>urn:sha1:bb189220a323e3140198161234ed54bf98175469</id>
<content type='text'>
This wraps all of the complex MIME part handling in a single, simple
function that gets part N from *any* MIME object, so traversing a MIME
part tree becomes a two-line for loop.  Furthermore, the MIME node
structure provides easy access to envelopes for message parts as well
as cryptographic information.

This code is directly derived from the current show_message_body code
(much of it is identical), but the control relation is inverted:
instead of show_message_body controlling the traversal of the MIME
structure and invoking callbacks, the caller controls the traversal of
the MIME structure.
</content>
</entry>
<entry>
<title>build-system: use a shell variable for TMPFILE in debian-snapshot</title>
<updated>2011-12-18T10:39:53Z</updated>
<author>
<name>David Bremner</name>
<email>bremner@debian.org</email>
</author>
<published>2011-12-18T03:16:51Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=47b5797261f4d0f1dcf74e507452e120788964cf'/>
<id>urn:sha1:47b5797261f4d0f1dcf74e507452e120788964cf</id>
<content type='text'>
Aaron Ecay points out in
id:"1324136185-4509-1-git-send-email-aaronecay@gmail.com" that the
mktemp in

     debian-snapshot: TMPFILE := $(shell mktemp)

Is being evaluated for every target. As best I can tell, this is
because make is evaluating the right hand side, even though it is not
doing the assignment.

Of course, it isn't quite as nice to edit with the line continuations,
but it is ideomatic make.
</content>
</entry>
<entry>
<title>cli: introduce the concept of user defined hooks</title>
<updated>2011-12-11T17:57:31Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2011-12-08T22:48:29Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d399b6b909fe6e2c6073464006061382c8bb31d5'/>
<id>urn:sha1:d399b6b909fe6e2c6073464006061382c8bb31d5</id>
<content type='text'>
Add mechanism for running user defined hooks. Hooks are executables or
symlinks to executables stored under the new notmuch hooks directory,
&lt;database-path&gt;/.notmuch/hooks.

No hooks are introduced here, but adding support for a hook is now a simple
matter of calling the new notmuch_run_hook() function at an appropriate
location with the hook name.

Signed-off-by: Jani Nikula &lt;jani@nikula.org&gt;
</content>
</entry>
<entry>
<title>command-line-arguments.[ch]: new argument parsing framework for notmuch.</title>
<updated>2011-12-09T00:24:24Z</updated>
<author>
<name>David Bremner</name>
<email>bremner@debian.org</email>
</author>
<published>2011-12-01T00:27:26Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=2cf7b27a0c4b4e746e2e40752c55ddb4d54798b2'/>
<id>urn:sha1:2cf7b27a0c4b4e746e2e40752c55ddb4d54798b2</id>
<content type='text'>
As we noticed when Jani kindly converted things to getopt_long, much
of the work in argument parsing in notmuch is due to the the key-value
style arguments like --format=(raw|json|text).

The framework here provides positional arguments, simple switches,
and --key=value style arguments that can take a value being an integer,
a string, or one of a set of keywords.
</content>
</entry>
<entry>
<title>Merge branch 'release'</title>
<updated>2011-12-06T23:39:33Z</updated>
<author>
<name>David Bremner</name>
<email>bremner@debian.org</email>
</author>
<published>2011-12-06T23:39:33Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f0e0053149bb3b51f4a0cd43371292b639f236a8'/>
<id>urn:sha1:f0e0053149bb3b51f4a0cd43371292b639f236a8</id>
<content type='text'>
Conflicts:
	NEWS

Conflicts resolved by inserting the 0.10.2 stanza before 0.11
</content>
</entry>
<entry>
<title>make release: remove LATEST-$(PACKAGE)-*</title>
<updated>2011-12-06T13:37:45Z</updated>
<author>
<name>Tomi Ollila</name>
<email>tomi.ollila@iki.fi</email>
</author>
<published>2011-12-05T11:39:32Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=2551c7013126964f5403ab8933e6f3ef524d1cb1'/>
<id>urn:sha1:2551c7013126964f5403ab8933e6f3ef524d1cb1</id>
<content type='text'>
The tar file of particular package (notmuch in this case) is named
as $(PACKAGE)-$(VERSION).tar.gz. Therefore the best way to remove
previous link to LATEST is to remove all files beginning with
LATEST-$(PACKAGE)- and not relying how $(VERSION) string is constructed.
</content>
</entry>
</feed>
