summaryrefslogtreecommitdiff
path: root/Makefile.local
AgeCommit message (Collapse)Author
2017-03-12build: replace remaining uses of SHA1_FILE0.24David Bremner
oops. If only there was some editor facility that allowed replacing all instances of a string.
2017-03-02build: use sha256sum instead of sha1sum to sign releasesDavid Bremner
2016-11-26notmuch.desktop: move under emacs as notmuch-emacs-mua.desktopJani Nikula
The notmuch.desktop file is part of notmuch-emacs. Move it under emacs, and rename as notmuch-emacs-mua.desktop to reflect this.
2016-11-26build: Move variable definitions to Makefile.globalDavid Bremner
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.
2016-11-16emacs: generate notmuch-pkg.elDavid Bremner
This file contains metadata for the built in (as of emacs 24) packaging system.
2016-09-21build system: choose gnu99 as a C standardDavid Bremner
Apparently pre 5.1 gcc defaulted to gnu89, but we decided it was ok to use some c99 features. '-std=c99' by itself is not enough for notmuch to compile. '-std=gnu99' seems to work with clang and gcc, so I'm not convinced configuration support is needed.
2016-09-04Makefile.local: use $(wildcard) to check existence of ${srcdir}/.gitTomi Ollila
With this GNU Make construct one shell invocation can be skipped and code looks shorter (narrower). This would now match to .git being other file type than regular file or directory (or symlink to those), but that is not a use case anyone should expect users to do.
2016-09-04Makefile.local: make IS_GIT simply expandedTomi Ollila
By using ':=' while setting IS_GIT it is expanded to 'yes' or 'no' at that point (and not every time when $(IS_GIT) is referenced).
2016-06-11Makefile.local: set IS_GIT = yes when regular file $srcdir/.git existsTomi Ollila
$srcdir/.git may also be file. E.g. `git worktree` creates .git file while new working tree is populated.
2016-06-05Use https instead of http where possibleDaniel Kahn Gillmor
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.
2015-10-30release: disable wget certificate checkdebian/0.21-10.21David Bremner
this is a minor security hole, but no worse than what we had before. In particular the worst that happens is someone prevents us from making a release. Which is hardly worth the trouble of jacking the URL.
2015-09-20cli: add utility routine to print error status.David Bremner
No attention to formatting here, initially just focus on getting the relevant strings out of the library.
2015-06-12build: integrate building ruby bindings into notmuch build processDavid Bremner
Because ruby generates a Makefile, we have to use recursive make. Because mkmf.rb hardcodes the name Makefile, put our Makefile{.local} in the parent directory.
2015-03-08python: replace hardcoding of SONAME versionDavid Bremner
Failing to update this string in globals.py causes failures when the SONAME changes. In order to hopefully reduce the number of such errors, automate the process of setting the SONAME in the python bindings.
2014-07-13build: generate sh.config for feeding configure results to shell scriptsJani Nikula
Only include the relevant information. Amended by David Bremner: Use a prefix NOTMUCH_ to minimize collisions with other variables.
2014-07-09build: check .git directory existence in srcdir (for out-of-tree builds)Tomi Ollila
So that $(VERSION) and version.stamp uses the git-describe -based version data instead of the content of `version' file. For consistency also the git commands in Makefile[.local] target `verify-no-dirty-code' uses the git --git-dir=$srcdir/.git ... commands (inside ifeq($(IS_GIT),yes)). Attempting to make this target outside of the tree will fail in any case.
2014-05-28build: add datacleanDavid Bremner
It turns out to be inconvenient to delete the downloaded datafiles with distclean, so I propose a new target which does that instead. The closest conventional target is 'maintainer-clean'; the difference here is that having the original source tarball is not enough to reconstruct these files.
2014-05-28build: remove .tar.gz.tmp files in cleanDavid Bremner
Most people won't see these, but they annoy anyone running release or pre-release targets.
2014-05-28Merge branch 'release'David Bremner
A point release is slowly being built on branch release. Merge those changes into master.
2014-05-28build: fix order of rpathFelipe Contreras
In my system `pkg-config --libs talloc` returns 'Wl,-rpath,/usr/lib -ltalloc' (probably wrongly) which causes the final LDFLAGS to be something like '-Wl,-rpath,/usr/lib -Wl,-rpath,/opt/notmuch/lib', which causes the RUNPATH to be '/usr/lib:/opt/notmuch/lib', so basically defeating the whole purpose of RUNPATH. I noticed this when my /opt/notmuch/bin/notmuch (0.17) started updating the database after I updated the system (which updated the system's notmuch). This shouldn't happen. Let's move the RUNPATH flags before other external flags have a chance of screwing the build. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2014-05-04Merge tag '0.18_rc1'David Bremner
notmuch 0.18~rc1 release
2014-05-04build: use UPSTREAM_TAG and not VERSION to generate tarballdebian/0.18_rc1-10.18_rc1David Bremner
The latter can have "~" in it, which is not legal for a git tag.
2014-04-24building from git: use --abbrev=7 for version stringTomi Ollila
Users may have set core.abbrev=n, where n != 7 in their git config file(s) which would give them different than expected version strings when building notmuch from git. This fixes the commit hash part of version string to 7 hexadecimal values.
2014-04-12dump: support gzipped and atomic outputDavid Bremner
The main goal is to support gzipped output for future internal calls (e.g. from notmuch-new) to notmuch_database_dump. The additional dependency is not very heavy since xapian already pulls in zlib. We want the dump to be "atomic", in the sense that after running the dump file is either present and complete, or not present. This avoids certain classes of mishaps involving overwriting a good backup with a bad or partial one.
2014-04-10build: write version.stamp file containing $(VERSION) stringTomi Ollila
This version file will be as prerequisite to the target files that use the version info for some purpose, like printing it for the user to examine. The contents of the version.stamp file is seldom read by the build system itself as the $(VERSION) variable has the same information. Thanks to Trevor, David and Mark for their contributions.
2014-03-18doc: build man pages at build time; introduce HAVE_SPHINX, HAVE_RST2MANDavid Bremner
This helps avoid build artifacts (namely, nroff and gzipped-nroff man pages) owned by root. The variables allow choosing which generator to use for the man page. These will be hooked to configure in a following commit.
2014-03-09doc: install sphinx version of man pagesDavid Bremner
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.
2014-01-25build: delete the default .SUFFIXESTomi Ollila
All implicit rules in notmuch Makefiles are "pattern rules"; Deleting the default suffixes (to support obsolete, old-fashioned "suffix rules") from make reduces the output of 'make -d' by 40 to 90 percent, helping e.g. debugging make problems.
2014-01-13build: remove trailing '/.' when doing mkdir -p .deps/.Tomi Ollila
When make variable $@ does not contain directory part, $(@D) resolves as '.'. In this case .deps/$(@D) is '.deps/.' In some systems `mkdir [-p] directory/.` fails. To make this compatible with more system substitute trailing '/.' (slashdot) with '' (empty string) whenever it occurs there.
2013-10-25Place extra_cflags before CONFIGURE_CFLAGSMoritz Wilhelmy
This ensures that the build will not attempt to use an existing notmuch.h when an older version of notmuch is already installed elsewhere (e.g. in /usr/local) and /usr/local/include is added to CONFIGURE_CFLAGS by one of the libraries (talloc, in my case)
2013-10-09notmuch-compact: Initial commit of CLIBen Gamari
Introduce the user command exposing the new compaction facility. Signed-off-by: Ben Gamari <bgamari.foss@gmail.com>
2013-08-17reply: Use RFC 2822/MIME wholly for text format templateAustin Clements
Previously, reply's default text format used an odd mix of RFC 2045 MIME encoding for the reply template's body and some made-up RFC 2822-like UTF-8 format for the headers. The intent was to present the headers to the user in a nice, un-encoded format, but this assumed that whatever ultimately sent the email would RFC 2047-encode the headers, while at the same time the body was already RFC 2045 encoded, so it assumed that whatever sent the email would *not* re-encode the body. This can be fixed by either producing a fully decoded UTF-8 reply template, or a fully encoded MIME-compliant RFC 2822 message. This patch does the latter because it is a) Well-defined by RFC 2822 and MIME (while any UTF-8 format would be ad hoc). b) Ready to be piped to sendmail. The point of the text format is to be minimal, so a user should be able to pop up the template in whatever editor they want, edit it, and push it to sendmail. c) Consistent with frontend capabilities. If a frontend has the smarts to RFC 2047 encode the headers before sending the mail, it probably has the smarts to RFC 2047 decode them before presenting the template to a user for editing. Also, as far as I know, nothing automated consumes the reply text format, so changing this should not cause serious problems. (And if anything does still consume this format, it probably gets these encoding issues wrong anyway.)
2013-06-29cli: add insert commandPeter Wang
The notmuch insert command reads a message from standard input, writes it to a Maildir folder, and then incorporates the message into the notmuch database. Essentially it moves the functionality of notmuch-deliver into notmuch. Though it could be used as an alternative to notmuch new, the reason I want this is to allow my notmuch frontend to add postponed or sent messages to the mail store and notmuch database, without resorting to another tool (e.g. notmuch-deliver) nor directly modifying the maildir.
2013-06-02build: pass CPPFLAGS to C and C++ compilersDavid Bremner
This is used in particular by hardening flags.
2012-12-09tag-util.[ch]: New files for common tagging routinesDavid Bremner
These are meant to be shared between notmuch-tag and notmuch-restore. The bulk of the routines implement a "tag operation list" abstract data type act as a structured representation of a set of tag operations (typically coming from a single tag command or line of input).
2012-12-08Adding an S-expression structured output printer.Peter Feigl
This commit adds a structured output printer for Lisp S-Expressions. Later commits will use this printer in notmuch search, show and reply. The structure is the same as json, but: - arrays are written as lists: ("foo" "bar" "baaz" 1 2 3) - maps are written as p-lists: (:key "value" :other-key "other-value") - true is written as t - false is written as nil - null is written as nil [ whitespace changes by db ]
2012-10-31build: build parse-time-string as part of the notmuch lib and static cliJani Nikula
2012-09-05{., man}/Makefile.local: edit/remove release-checks.sh related targetsTomi Ollila
Use new target release-checks in place of verify-version-debian, verify-version-python verify-version-manpage. This target executes devel/release-checks.sh which does all the verifications the three dropped targets did, and some more.
2012-08-12cli: Remove now-unused json.cAustin Clements
The string buffer quoting functions in json.c have been superseded by the new sprinter interface and are no longer used. Remove them.
2012-08-02build system: remove configure output in Make distclean.David Bremner
Create a variable DISTCLEAN which contains a list of things to clean in the distclean target (in addition to running the clean target). The deleted comment seems to be false these days, since we do create files during configuration. Use "rm -rf" here as well in case we want to add directories to DISTCLEAN.
2012-08-02build system: remove directories created by tests in "make clean"David Bremner
These extra directories cause problems for building on Debian twice in a row. In order to remove directories, we need to us "rm -rf" instead of "rm -f". So now we should be extra careful what we add to the variable CLEAN.
2012-07-24Add structured output formatter for JSON and plain text (but don't use them yet).craven@gmx.net
Using the new structured printer support in sprinter.h, implement sprinter_json_create, which returns a new JSON structured output formatter. The formatter prints output similar to the existing JSON, but with differences in whitespace (mostly newlines, --output=summary prints the entire message summary on one line, not split across multiple lines). Also implement a "structured" formatter for plain text that prints prefixed strings, to be used with notmuch-search.c plain text output.
2012-06-10cli: new crypto structure to store crypto contexts and parameters, and functions to support itJameson Graef Rollins
This new structure, notmuch_crypto_t, keeps all relevant crypto contexts and parameters together, and will make it easier to pass the stuff around and clean it up. The name of the crypto context inside this new struct will change, to reflect that it is actually a GPG context, which is a sub type of Crypto context. There are other types of Crypto contexts (Pkcs7 in particular, which we hope to support) so we want to be clear. The new crypto.c contains functions to return the proper context from the struct for a given protocol (and initialize it if needed), and to cleanup a struct by releasing the crypto contexts.
2012-04-15Record dependencies during build instead of beforeAustin Clements
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.
2012-04-15Remove show-message.cAustin Clements
There are no more calls to show_message_body.
2012-01-19Fix dependency generation for CLI sourcesAustin Clements
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.
2011-12-31build-system: update for split man pagesDavid Bremner
- 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.
2011-12-25Introduce a generic tree-like abstraction for MIME traversal.Austin Clements
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.
2011-12-18build-system: use a shell variable for TMPFILE in debian-snapshotDavid Bremner
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.
2011-12-11cli: introduce the concept of user defined hooksJani Nikula
Add mechanism for running user defined hooks. Hooks are executables or symlinks to executables stored under the new notmuch hooks directory, <database-path>/.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 <jani@nikula.org>