Commit graph

168 commits

Author SHA1 Message Date
Daniel Kahn Gillmor
0ff13f862c configure: session key handling in gmime maps to built_with("session_key")
This flag should make it easier to write the code for session-key
handling.

Note that this only works for GMime 2.6.21 and later (the session key
interface wasn't available before then).  It should be fine to build
the rest of notmuch if this functionality isn't available.

Note that this also adds the "session_key" built_with() aspect to
libnotmuch.
2017-12-04 21:39:50 -04:00
Jani Nikula
d6929040a4 build: don't copy the test directory for out-of-tree builds
It should now work without.
2017-10-21 16:34:55 -03:00
Jan Malakhovski
46bda291ba build: fix unbound variable in configure
Commentary by db:

This missing initialization caused configure to crash, and hence the
build to fail in environments without cppcheck.
2017-08-31 10:09:02 -03:00
David Bremner
af64530d3f build: add target to run cppcheck
The advantage of having a target as opposed to running cppcheck by
hand

  - reuse list of source files
  - output errors in a format parsable, e.g. by emacs
  - returns exit code 1 on any error, for possibly use in other
    targets.

For the moment, leave this as an optional target. If desired, it can
be added to e.g. the release targets in the same way as the test
target.

Using two levels of directory for the stamps is arguably
overengineering, but it doesn't really cost anything, and leaves open
the possibility of putting other kinds of stamp files there.

This only checks "new" source files (w.r.t. their last check). A future target
(cppcheck-all ?) could blow away the stamp files first.
2017-08-29 22:05:37 -03:00
David Bremner
6ac3d8c27f test: define GMime version dependant breakage
We have some tests where the gmime 3 behaviour seems like a bug fix,
others where it's less clear, so we allow both possibilities.
2017-05-31 21:54:08 -03:00
David Bremner
6977316a5f configure: add optional support for gmime-3.0
This is only the changes to make configure work; it won't compile with
gmime-3.0 yet.
2017-05-31 21:52:15 -03:00
Tomi Ollila
807a9cb8aa configure: Be more verbose when compiler sanity checks fail
When configure could not get past initial compiler sanity check
the user was left with no explanation why this happened (usually
the reason is that compilers are not installed).

By printing the executed command line and re-executing it without
output redirection user gets better information how to proceed
(or ask for help) to resolve this problem.

The shell builtin 'printf' is used to print the executed command
line to ensure verbatim output.
2017-04-14 16:14:26 -03:00
David Bremner
949a5ac4d4 configure: change default bash completion location to /usr/share
At least Fedora and Debian now use
/usr/share/bash-completion/completions now. Apparently
/etc/bash_completion.d will be phased out at some point in the future.
2017-03-25 12:01:22 -03:00
Mikhail
9b7dbed58e tests: add compatibility layer
Make test-lib-common.sh load test-lib-<$PLATFORM>.sh to create
additional shim for platform specifics.

Use test-lib-FREEBSD.sh to call GNU utilities instead of native ones.

- amended by db following Tomi's suggestions
2017-03-25 07:56:52 -03:00
Tomi Ollila
35cdebdad0 fix out of tree build
In addition to use ${srcdir} and deliver ${NOTMUCH_SRCDIR} where needed,
source from ruby bindings had to be copied to the out-of-tree target
directory -- if the source files in source directory were referenced
in build and there were also built object files there, those could have
been considered as target files (and then not found when attempting
to create bindings/ruby/notmuch.so).
2017-03-12 09:17:29 -03:00
Tomi Ollila
18914c725b configure: add ${NOTMUCH_SRCDIR} -- absolute path to notmuch source
The ${srcdir} -- usually relative path to notmuch source -- works fine
in current ./configure and all makefiles. To have simple access to
notmuch source in tests and out of tree builds holding absolute path to
the source directory is useful.
2017-03-12 09:16:54 -03:00
Tomi Ollila
b7763c94e2 configure: removed $zlib_(cflags|ldflags) from compat code build
When pkg-config does not find configure, a compat version of the
zlib.pc is created. In creation of that configure attempted to
read values of $zlib_cflags and $zlib_ldflags. In the usual case
those were undefined, and with `set -a` now in the beginning of
configure, configure broke.

Even if $zlib_cflags and $zlib_ldflags had values which were used
to create zlib.pc, the values were overwritten (with static content)
a few lines later in next pkg-config --cflags and --libs run. These
values would not be different and probably useless -- the following
boild would probably fail.

But instead of using those, CPATH and LIBRARY_PATH environment
variables can be used successfully (both while configuring and
building).
2017-03-09 10:20:01 -04:00
David Bremner
508b5c20fa Merge branch 'release'
Second gnugpg test suite fix
2017-02-28 21:21:07 -04:00
David Bremner
a4ddc63b23 Revert "configure: add test for gpgconf --create-socketdir"
This reverts commit 12f7d4e61d.

Since we're not using gpgconf anymore, drop the unneeded test in
configure.
2017-02-27 18:27:49 -04:00
David Bremner
9951598d11 Merge branch 'release'
Merge changes to use gpgconf --create-socketdir
2017-02-21 08:16:07 -04:00
David Bremner
12f7d4e61d configure: add test for gpgconf --create-socketdir
This is primarily intended for use in the test suite (since notmuch
builds fine without gnupg installed). Thus we only write the variable
to sh.config.
2017-02-21 07:43:15 -04:00
Jani Nikula
7d162e1b05 configure: remove leftover byte order test cleanup
Removing the removal of byteorder configure test files was overlooked
in commit 5a957c3f33 ("build & util: drop byte order configure check
and endian util header"). Finish the job.
2017-01-09 06:44:48 -04:00
Jani Nikula
5a957c3f33 build & util: drop byte order configure check and endian util header
With the removal of the embedded libsha1, we lost the first and last
user of the platform byte order checks. Remove them from configure,
and remove the endian util header.
2017-01-08 10:50:49 -04:00
David Bremner
b15b96f846 Merge branch 'release'
These are the (tentative) changes for 0.23.5
2017-01-08 08:42:26 -04:00
Tomi Ollila
c893480654 configure: fix $prefix expansion for libdir_expanded
Since the sed expansion line which did $prefix expansion for
libdir_expanded was changed from the legacy `...` format to the
new $(...) expression, the subtle backslash expansion change went
unnoticed -- \\$ which used to escape '$' now escapes '\' and the
following '$prefix' was attempted to expand as a variable. So
changing \\$ to \$ fixes this.

Also, replaced echo with printf %s -- echo does expansions of its own.

While at it, the following 2 inconsistencies were fixed:
 1) the /g flag was removed from first expression; second didn't have it
 2) first expression did not end with /, so "dropped" it from second

 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
2017-01-01 18:15:58 -04:00
Jani Nikula
459989b7ef build: install notmuch-emacs-mua.desktop file with emacs
There is really no need to have a separate install target for the
desktop file. Just install the desktop file with emacs, with a
configure option to opt out.
2016-11-28 22:01:45 -04:00
David Bremner
0abcad7c0e lib: optionally silence Xapian deprecation warnings
This is not ideal, but the new API is not available in Xapian 1.2.x, and
it seems to soon to depend on Xapian >= 1.4
2016-11-15 07:47:55 -04:00
David Bremner
af8903df34 require xapian >= 1.2.6
It seems that no-one tried to compile without Xapian compact support
since March of 2015, since that's when I introduced a syntax error in
that branch of the ifdef.

Given the choice of maintaining this underused branch of code, or
bumping the Xapian dependency to a version from 2011, it seems
reasonable to do the latter.
2016-10-06 22:45:46 -03:00
Tomi Ollila
fde846cf7d configure: set platform variables also when uname is unrecognized
Since commit

124a67e96e: configure: add set -u

all variables must be set before their expansion are attempted. These
2 variables: "platform" and "linker_resolves_library_dependencies" were
not given value in the final 'else' branch when platform check failed
due to unrecognized kernel name (output of `uname`). Now those two are
given reasonable non-empty values.
2016-09-30 07:15:49 -03:00
Mikhail
188fccd84f configure: add --without-api-docs option
Add option to explicitly disable API man page build even if doxygen
binary is available. --without-docs also implies not building API
manpage.

This change intended to add more distinctness into build system and
allow user not to build unwanted man pages.
2016-08-11 20:13:46 +09:00
Istvan Marko
9b60dc3cd9 Use the Xapian::DB_RETRY_LOCK flag when available
Xapian 1.3 has introduced the DB_RETRY_LOCK flag (Xapian bug
275). Detect it in configure and optionally use it. With this flag
commands that need the write lock will wait for their turn instead of
aborting when it's not immediately available.

Amended by db: allow disabling in configure
2016-06-29 09:03:34 +02:00
Daniel Kahn Gillmor
6a833a6e83 Use https instead of http where possible
Many of the external links found in the notmuch source can be resolved
using https instead of http.  This changeset addresses as many as i
could find, without touching the e-mail corpus or expected outputs
found in tests.
2016-06-05 08:32:17 -03:00
Tomi Ollila
2ee9351224 configure: combine common parts of CONFIGURE_C{,XX}FLAGS
By combining the common parts of CONFIGURE_CFLAGS and CONFIGURE_CXXFLAGS
to a separate make variable and using that as part of their
definitions makes setting of these easier, DRYer and less error prone
(especially as we cannot check potential typing errors there).
2016-05-19 07:45:09 -03:00
David Bremner
1aa6f90a10 configure: check directly for xapian compaction API
This is consistent with the check for FieldProcessor, and probably a bit
more robust.
2016-05-13 20:50:49 -03:00
David Bremner
1871be319a configure: detect Xapian:FieldProcessor
Rather than check versions, it seems more robust to do a test compile.
2016-05-08 08:17:07 -03:00
Tomi Ollila
124a67e96e configure: add set -u
In case of any unset variable, make ./configure exit with nonzero value;
an attempt to expand an unset variable is a bug in the script
(usually a spelling mistake) and those should not pass through
unnoticed.
2016-05-07 14:40:14 -03:00
Tomi Ollila
43eb32527b configure: replace ${CXXLAGS} with ${CXXFLAGS_for_sh}
Variable CXXLAGS expands to nothing, CXXFLAGS something unusable
here; CXXFLAGS_for_sh expands to what we expect here.
2016-05-07 14:38:01 -03:00
Jani Nikula
2c1a7321e9 configure: SC2016: Expressions don't expand in single quotes
Fix shellcheck warnings. Use double quotes but escape $ to make it
look more intentional.
2016-05-01 21:21:53 -03:00
Jani Nikula
b191de511e configure: SC2034: glib_cflags and glib_ldflags appear unused.
Fix shellcheck warnings.
2016-05-01 21:21:39 -03:00
Jani Nikula
8a75fcfa7b configure: SC2059: Don't use variables in the printf format string.
Fix shellcheck warnings. Use printf "..%s.." "$foo".
2016-05-01 21:20:54 -03:00
Jani Nikula
2b7b32fc47 configure: SC2006: Use $(..) instead of legacy ..
Fix shellcheck warnings.
2016-05-01 21:20:05 -03:00
David Bremner
deb4e5567c configure: add test for default xapian backend
This is mainly for the test suite.  We already expect the tests to be
run in the same environment as configure was run, at least to get the
name of the python interpreter. So we are not really imposing a new
restriction.
2016-04-12 20:14:43 -03:00
David Bremner
d93d3779b8 configure: autodetect xapian-1.3
Mimic the handling of python2 versus python3. In particular if both
xapian-config and xapian-config-1.3 are found, use xapian-config
2016-04-01 18:29:52 -03:00
Tomi Ollila
79856189a2 configure: pass HAVE_TIMEGM to build
Checking the existence of timegm() function and setting
configure internal variable ${have_timegm} was done, but
actually defining HAVE_TIMEGM in build was not done --
meaning that compat timegm() was always part of final
notmuch binaries.
2016-02-13 12:32:20 -04:00
David Bremner
88c0bc4cc6 configure: drop use of "pkg-config emacs"
This does not play well with --prefix. As Tomi notes in
id:m2k2p2rwth.fsf@guru.guru-group.fi, people still have the option of e.g.

% ./configure ---emacslispdir=`pkg-config emacs --variable sitepkglispdir`
2015-12-06 12:06:11 -04:00
David Bremner
005c2f0df1 cli/lib: remove support for GMime 2.4
It's becoming a maintenance burden to do anything things with the
crypto glue code twice, once for 2.4 and once for 2.6. I don't have
any 2.4 version available to test on my development machine anymore,
so the 2.4 specific code paths are likely not very well tested.
2015-08-26 20:01:45 -03:00
Jani Nikula
c9e1c4f1c4 configure: clean up messages around reading libnotmuch version
Clean up punctuation for consistency, and add newline for clean
configure output.
2015-08-10 21:24:40 +02:00
David Bremner
765556c1f1 build: extract library versions from notmuch.h
- Make lib/notmuch.h the canonical location for the library versioning
information.

- Since the release-check should never fail now, remove it to reduce
complexity.

- Make the version numbers in notmuch.h consistent with the (now
  deleted) ones in lib/Makefile.local
2015-08-10 13:53:55 +02:00
David Bremner
23d86773b9 test: use the python interpreter in sh.config
The configure script chooses "python" if both python and python{2,3}
exist exists, so this could change the version of python used to run
the test suite.

The checking for ${NOTMUCH_PYTHON} in the test suite is arguably
over-engineering, since the configure step will fail if it can't find
it.
2015-08-04 09:19:18 +02:00
David Bremner
2eb558fd9b configure: support --without-ruby
Apparently some ruby installs are broken in ways that prevent the ruby
bindings from building.
2015-07-30 08:16:29 +02:00
David Bremner
a57b3d4303 configure: support --with-docs=no
Since we promise --with-foo=no is equivalent to --without-foo
2015-07-30 08:08:31 +02:00
David Bremner
a63b5db873 configure: alphabetize --without help
Now that the "without" options seem to be multiplying, try to make it
easier for people to find the one they want.
2015-07-30 08:00:55 +02:00
David Bremner
b4e0c8320a configure: fix typo in comment
Some lazy person, probably me, forgot to press shift.
2015-07-30 07:57:04 +02:00
David Bremner
1fef811fd7 configure: whitespace cleanup
This is the result of running M-x whitespace-cleanup in emacs.  In
particular this replaces some spaces at the beginning of lines with
tabs.
2015-07-28 15:29:38 +02:00
Mikhail
edb485e0b9 configure: add --without-docs switch
Previously documentation was build automatically if sphinx/doxygen
executable were found. The switch is used to unconditionally disable
sphinx/doxygen detection and therefor, building of documentation
(including man pages).
2015-07-27 22:34:38 +02:00