support make goals after initial {'', dist, data}clean goal(s) Now make goal combinations starting with *clean goals, ending with *clean coals, and having non-*clean goals in between should work. What does not expected to work are non-*clean - *clean - *non-clean goal combinations. Also, if first goals are *clean goals, re-creation of Makefile.config is inhibited when Makefile.config exists and ./configure is newer.
build: Move variable definitions to Makefile.global I noticed when trying to use VERSION (and derived variables) in a subdirectory that the top level Makefile.local needed to be included first. But according to c10085c77b407d9ea704f8b4f9e0a805f63e72cb it actually needs to be last. To break this conflict, move the variables definitions into a new Makefile.global.
build: move canonical list of subdirectories to configure script The configure script needs this list for out of tree builds. Grabbing it from the Makefile via sed was fragile and broken.
test: add machinery to download and verify databases Note that it is intentional that the checksum file is not downloaded. The intent is to check those into git.
doc: install sphinx version of man pages The python script mkdocdeps.py is used to import the list of man pages from the sphinx configuration to make. This will delete the (release only) target update-man-versions. This will be replaced in a followup commit.
doc: convert sphinx based docs This is the output from sphinx-quickstart, massaged a bit, along with our existing man pages converted to rst. A skeleton notmuch-emacs manual is also included. It is not suitable for end user use yet.
build: fix out-of-tree builds Support for out-of-tree builds was added in commit 3e4a9d60a9419621b08c647a306843d76c47c2cb Author: Carl Worth <cworth@cworth.org> Date: Wed Mar 9 15:02:42 2011 -0800 build: Add support for non-source-directory builds. and broken in commit 7beeb8c88a014ecbc53d8241f10683b3c4c16228 Author: David Bremner <bremner@debian.org> Date: Sat Nov 17 12:28:15 2012 -0400 test: initial performance testing infrastructure Fix the build breakage. Out-of-tree 'make test' has been broken since earlier than the above, and remains broken, as does out-of-tree perf test, but at least the build now works.
test: initial performance testing infrastructure This is not near as fancy as as the unit tests, on the theory that the code should typically be crashing when performance tuning. Nonetheless, there is plenty of room for improvement. Several more of the pieces of the test infrastructure (e.g. the option parsing) could be factored out into test/test-lib-common.sh
parse-time-string: add a date/time parser to notmuch Add a date/time parser to notmuch, to be used for adding date range query support for notmuch lib later on. Add the parser to a directory of its own to make it independent of the rest of the notmuch code base. Signed-off-by: Jani Nikula <jani@nikula.org>
build-system: update for split man pages - 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.
xutil.c: remove duplicate copies, create new library libutil.a to contain xutil. We keep the lib/xutil.c version. As a consequence, also factor out _internal_error and associated macros. It might be overkill to make a new file error_util.c for this, but _internal_error does not really belong in database.cc.
build: Save configure options and re-use them for automatic runs of configure This supports the case of a user running "configure --prefix=/foo" then later updating the soruce (including the configure script) and re-running make. In this case, the make invocation will re-run configure. Before this change, this run of configure would lose the user's carefully chosen prefix. This is now fixed so that configrue is re-run with the user's options.
build: Fix a plain "make" to automatically run configure. The recent change to support non-source-directory builds broke this case.
build: Add support for non-source-directory builds. Such as: mkdir build cd build ../configure make This is implemented by having the configure script set a srcdir variable in Makefile.config, and then sprinkling $(srcdir) into various make rules. We also use vpath directives to convince GNU make to find the source files from the original source directory.
test: Fix test suite to integrate with our non-recursive Makefile system. This avoids "make test" emitting messages from three (3!) recursive invocations of make. We change the invocations of the tests themselves to occur directly from the shell script rather than having the shell script invoke make again and using wildcards in the Makefile.
Makefile: Move include of Makefile.config up from Makefile.local The recent change to include sub-directory Makefile.local files before the top-level Makefile.local means that we need to include the Makefile.config before those. So move it up from Makefile.local to Makefile.
Fix up Makefile for build. Must set extra_c(xx)flags before including subdir Makefile.local's, so that there is a blank slate that the subdirs can add on to. Must include subdir Makefile.local's before global one, otherwise the compat sources are not added to the list of those to be compiled. Signed-off-by: Aaron Ecay <aaronecay@gmail.com>
Makefile: Move the completion-specific commands to completion/Makefile.local For much better modularity.
Move bulk of rules from Makefile to Makefile.local. Before it was impossible to know whether any particular setting or rule definition was in Makefile or Makefile.local. So we strip the Makefile down to little more than the list of sub-directories and the logic to include all of the sub-directories' Makefile.local fragments. Then, all of the real work can happen inside of Makefile.local.
Build and link against notmuch shared library, install notmuch.h Signed-off-by: Ingmar Vanhassel <ingmar@exherbo.org>