aboutsummaryrefslogtreecommitdiff
path: root/emacs/Makefile.local
AgeCommit message (Collapse)Author
2026-01-14emacs: Generate and install autoloadsPengji Zhang
Previously when installed with 'make install', autoloads in sources were not scraped. So users still had to load the full library beforehand in order to use Notmuch. Now we generate and install such a file for 'make install-emacs'. With this change, users can replace in their Emacs configuration: (require 'notmuch) with a much cheaper: (require 'notmuch-autoloads) but are still able to use 'M-x notmuch'. Note that this new file is not included in the 'make elpa' package, so it does not break for those users, who have already been enjoying autoloads generated by 'package.el'. Besides, this should not break packaging for most distros. Even if they have generated and maintained such a file using their package managers, Emacs does not choke on an existing output file when scraping autoloads. Re: thread starting at id:87o75yl4u5.fsf@pengjiz.com Amended-By: db; add comment about autoload-excludes
2021-12-23emacs: add notmuch-logo.svg and use it in emacs mua on graphic displaysTomi Ollila
emacs/notmuch-logo.svg is handcrafted scalable vector graphics version of the notmuch logo. Emacs on graphic displays render this image four times in size compared to the emacs/notmuch-logo.png, and the image is much sharper. The rendered image size, 100x100 pixels, fits reasonably well with text shown in various font sizes. Scaling the image -- if desired -- may come in the future. For now this is improvement on how the logo looked in notmuch-hello window.
2020-08-09emacs: Use makefile-gmake-mode in Makefile*sJonas Bernoulli
Use `makefile-gmake-mode' instead of `makefile-mode' because the former also highlights ifdef et al. while the latter does not. "./Makefile.global" and one "Makefile.local" failed to specify any major mode at all but doing so is necessary because Emacs does not automatically figure out that these are Makefiles (of any flavor).
2019-06-12build: drop variable HAVE_EMACS. use WITH_EMACS insteadDavid Bremner
The extra flexibility of having both HAVE_EMACS (for yes, there is an emacs we can use) and WITH_EMACS (the user wants emacs support) lead to confusion and bugs. We now just force WITH_EMACS to 0 if no suitable emacs is detected.
2019-04-24build: only try to build .rsti files if we have emacs and sphinxDavid Bremner
Emacs is needed to build them, and sphinx is needed to use them
2018-12-08emacs: build docstring (rsti) filesDavid Bremner
These are intended to included in the sphinx manual for notmuch-emacs. The stamp file makes it easier to depend on the docstrings from other parts of the build
2018-09-18build: install notmuch-emacs-mua with absolute shebangDavid Bremner
Follow distro-centric rules to reduce the chance of surprising behaviour due to PATH changes
2018-05-26doc: install info files in elpa packageDavid Bremner
The duplication of effort in installing into different places seems unavoidable; or more precisely not worth avoiding by more extensive gnu-make-isms.
2016-11-28build: update the desktop database after installing the desktop fileJani Nikula
This makes the option to choose Notmuch as mailto: handler show up in the desktop environment settings. Ignore errors.
2016-11-28build: install notmuch-emacs-mua.desktop file with emacsJani Nikula
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-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: install notmuch-emacs-mua with notmuch-emacsJani Nikula
notmuch-emacs-mua is good enough to be installed with notmuch-emacs.
2016-11-26build/emacs: add target to create elpa packageDavid Bremner
This package can be created without emacs, but will only be usable in versions of emacs supporting package.el
2016-11-17Merge branch 'release'David Bremner
Updates for 0.23.2
2016-11-16emacs: generate notmuch-pkg.elDavid Bremner
This file contains metadata for the built in (as of emacs 24) packaging system.
2016-11-16emacs: add compatibility functions for emacs 23Mark Walters
Some of the recent changes to the emacs code have used functions introduced in emacs 24. The functions used are read-char-choice and setq-local. This changeset adds a file notmuch-compat.el which contains compatibility functions so that it should work on emacs 23. Note, since these functions are taken almost unchanged from the emacs source they are copyright the Free Software Foundation, and the header in the file reflects that.
2016-11-13emacs: postpone a messageMark Walters
This provides initial support for postponing in the emacs frontend; resuming will follow in a later commit. On saving/postponing it uses notmuch insert to put the message in the notmuch database Current bindings are C-x C-s to save a draft, C-c C-p to postpone a draft (save and exit compose buffer). Previous drafts get tagged deleted on subsequent saves, or on the message being sent. Each draft gets its own message-id, and we use the namespace draft-.... for draft message ids (so, at least for most people, drafts are easily distinguisable).
2015-11-23emacs/Makefile.local: notmuch-lib.elc depend on notmuch-version.elcTomi Ollila
emacs/make-depend.el will compute all other related dependencies except this one: notmuch-version is not top-level `require' expression in notmuc-lib.el[c] but conditional based on the existence of notmuch-version.el[c]. emacs/make-depend.el does not know now notmuch-version.el[c] becomes into existence but emacs/Makefile.local does know.
2015-10-27Emacs: Add address completion based on company-modeMichal Sojka
When company-mode is available (Emacs >= 24), address completion candidates are shown in a nice popup box. This is triggered either by pressing TAB or by waiting a while during typing an address. The completion is based entirely on the asynchronous address harvesting from notmuch-address.el so the GUI is theoretically not blocked for long time. The completion works similarly as the TAB-initiated completion from notmuch-address.el, i.e. quick harvest based on user input is executed first and only after full harvesting is finished, in-memory cached data is used. [Improved by David Bremner]
2014-08-05emacs: Introduce notmuch-jump: shortcut keys to saved searchesAustin Clements
This introduces notmuch-jump, which is like a user-friendly, user-configurable global prefix map for saved searches. This provides a non-modal and much faster way to access saved searches than notmuch-hello. A user configures shortcut keys in notmuch-saved-searches, which are immediately accessible from anywhere in Notmuch under the "j" key (for "jump"). When the user hits "j", the minibuffer immediately shows a helpful table of bindings reminiscent of a completions buffer. This code is a combination of work from myself (originally, "notmuch-go"), David Edmondson, and modifications from Mark Walters.
2014-06-15emacs install: make sure all components to be installed are thereTomi Ollila
`make install-emacs` will copy $(emacs_sources), $(emacs_images) and $(emacs_bytecode) to their target directories. $(emacs_bytecode) was already a prerequisite of make install-emacs as these obviously needed to be build. Until a while ago all of $(emacs_sources) was available in the repository, but now it includes `notmuch-version.el` which is generated. In the future we may have generated emacs images too.
2014-04-13emacs: add $(srcdir) to notmuch-version.el.tmpl dependencyTomi Ollila
This fixes out-of-tree build when generating emacs/notmuch-version.el.
2014-04-10emacs: add notmuch-version.el.tmpl and create notmuch-version.el from itTomi Ollila
The notmuch cli program and emacs lisp versions may differ (especially in remote usage). It helps to resolve problems if we can determine the versions of notmuch cli and notmuch emacs mua separately. The build process now creates notmuch-version.el from template file by filling the version info to notmuch-emacs-version variable.
2014-02-21emacs: Avoid rebuilding .eldeps even when there's nothing to doAustin Clements
Previously, we updated .eldeps only if the file contents actually needed to change. This was done to avoid unnecessary make restarts (if the .eldeps rule changes the mtime of .eldeps, make has to restart to collect the new dependencies). However, this meant that, after a modification to any .el file that did not change dependencies, .eldeps would always be out of date, so every make invocation would run the .eldeps rule, which is both expensive because it starts up Emacs and noisy. This was true even when there was nothing to do. E.g., $ make clean && make ... $ touch emacs/notmuch-lib.el && make ... $ make Use "make V=1" to see the verbose compile lines. EMACS emacs/.eldeps make: Nothing to be done for `all'. $ make Use "make V=1" to see the verbose compile lines. EMACS emacs/.eldeps make: Nothing to be done for `all'. Fix this by replacing .eldeps with two files with identical content. One tracks the mtime of the dependency information and triggers the Emacs call to rebuild dependencies only when it may be necessary. The other tracks the content only; this rule over-triggers in the same way the old rule did, but this rule is cheap and quiet.
2014-01-13emacs: Makefile.local: HAVE_EMACS usage fixesTomi Ollila
If we don't have emacs, disable targets that used EMACS while doing the recipes of that target. If we do have emacs, make install-emacs depend on *.elc files, as making the target will attempt to install those.
2013-11-07emacs: add tree to the makefileMark Walters
2013-06-01emacs: Streaming S-expression parserAustin Clements
This provides the same interface as the streaming JSON parser, but reads S-expressions incrementally. The only difference is that the `notmuch-sexp-parse-partial-list' helper does not handle interleaved error messages (since we now have the ability to separate these out at the invocation level), so it no longer takes an error function and does not need to do the horrible resynchronization that the JSON parser had to. Some implementation improvements have been made over the JSON parser. This uses a vector instead of a list for the parser data structure, since this allows faster access to elements (and modern versions of Emacs handle storage of small vectors efficiently). Private functions follow the "prefix--name" convention. And the implementation is much simpler overall because S-expressions are much easier to parse.
2013-05-23emacs: Compute build dependencies to fix byte compile issuesAustin Clements
Previously, we simply byte compiled each Elisp source file independently. This is actually the wrong thing to do and can lead to issues with macros and performance issues with substitutions because 1) when the byte compiler encounters a (require 'x) form, it will load x.elc in preference to x.el, even if x.el is newer, and as a result may load old macro and substitution definitions and 2) if we update a macro or substitution definition in one file, we currently won't re-compile other files that depend on the file containing the definition. This patch addresses these problems by computing make dependency rules from the (require 'x) forms in the Elisp source files, which we inject into make's dependency database.
2012-04-29emacs: create notmuch-tag.el, and move appropriate functions from notmuch.elJameson Graef Rollins
Tagging functions are used in notmuch.el, notmuch-show.el, and notmuch-message.el. There are enough common functions for tagging that it makes sense to put them all in their own library. No code is modified, just moved around.
2012-01-21emacs: Improved printing support.David Edmondson
Add various functions to print notmuch messages and tie them together with a simple frontend. Add a binding ('#') in `notmuch-show-mode' to print the current message. one trailing space removed by db.
2011-10-28Separate Emacs misc. files dir. from Emacs code dir.Amadeusz Żołnowski
New option --emacsetcdir was added, but it's set default to the same value as --emacslispdir for backward compatibility.
2011-06-28Makefile: Make emacs compilation depend on global dependencies.Carl Worth
We call these "global_deps" for a reason, after all! Without this, emacs compilation would proceed even if the configure script failed, (such as for a missing dependency). That's undesirable as it can cause the helpful error messages from the configure failure to scroll away.
2011-05-27emacs: Add support for PGP/MIME verification/decryptionJameson Graef Rollins
A new emacs configuration variable "notmuch-crypto-process-mime" controls the processing of PGP/MIME signatures and encrypted parts. When this is set true, notmuch-query will use the notmuch show --decrypt flag to decrypt encrypted messages and/or calculate the sigstatus of signed messages. If sigstatus is available, notmuch-show will place a specially color-coded header at the begining of the signed message. Also included is the ability to switch decryption/verification on/off on the fly, which is bound to M-RET in notmuch-search-mode.
2011-03-09build: Add support for non-source-directory builds.Carl Worth
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.
2011-01-26Makefile: Quote variables used as filenames in shell commandsCarl Worth
This allows support for filenames with spaces in them.
2011-01-26configure: add options to disable emacs/zsh/bash and choose install dir.Cédric Cabessa
add --bashcompletiondir and --zshcompletiondir (like --emacslispdir) to choose installation dir for bash/zsh completion files Make some features optional: --without-emacs / --with-emacs=no do not install lisp file --without-bash-completion / --with-bash-completion=no do not install bash files --without-zsh-completion / --with-zsh-completion=no do not install zsh files By default, everything is enabled. You can reenable something with --with-feature=yes
2010-04-27Add notmuch-message.el to emacs/Makefile.localJesse Rosenthal
When notmuch-message.el was added to the emacs directory, I neglected to add it to the makefile as one of the emacs_sources. This patch adds it.
2010-04-26Integrate notmuch-maildir-fcc into notmuchSebastian Spaeth
Require notmuch-maildir-fcc and also install it. Rename all jkr/* functions to notmuch-maildir-fcc-* Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
2010-04-26emacs: Add more functions to clean up text/plain partsDavid Edmondson
Add: - notmuch-wash-wrap-long-lines: Wrap lines longer than the width of the current window whilst maintaining any citation prefix. - notmuch-wash-tidy-citations: Tidy up citations by: - compress repeated otherwise blank citation lines, - remove otherwise blank citation lines at the head and tail of a citation, - notmuch-wash-elide-blank-lines: Compress repeated blank lines and remove leading and trailing blank lines. None of these is enabled by default - add them to `notmuch-show-insert-text/plain-hook' to use. Reviewed-by: Carl Worth <cworth@cworth.org>: I previously committed a stale version of this patch.
2010-04-26Revert "emacs: Add more functions to clean up text/plain parts"Carl Worth
This reverts commit 97570954cb583cacac35b0235cbe449a07630ae3.
2010-04-24emacs: Add more functions to clean up text/plain partsDavid Edmondson
Add: - notmuch-wash-wrap-long-lines: Wrap lines longer than the width of the current window whilst maintaining any citation prefix. - notmuch-wash-tidy-citations: Tidy up citations by: - compress repeated otherwise blank citation lines, - remove otherwise blank citation lines at the head and tail of a citation and remove blank lines between attribution statements and the citation, - notmuch-wash-compress-blanks: Compress repeated blank lines and remove leading and trailing blank lines. Enable `notmuch-wash-tidy-citations' and `notmuch-wash-compress-blanks' by default by adding them to `notmuch-show-insert-text/plain-hook'. `notmuch-wash-wrap-long-lines' is not enabled by default. If `notmuch-wash-wrap-long-lines' is enabled, word wrapping of the buffer leads to an unappealing display of text, so provide a function to disable it and add it to the list of `notmuch-show-mode' hook functions.
2010-04-23emacs: Add notmuch-address.el for address completion using notmuchDavid Edmondson
A tool `notmuch-addresses' is required to produce addresses which match a query string. An example of a suitable script can be found in the git repository at http://jkr.acm.jhu.edu/git/notmuch_addresses.git There are no doubt others.
2010-04-23emacs: Re-arrange message sending codeDavid Edmondson
Define a new `mail-user-agent' (`notmuch-user-agent') and use it by default. Re-arrange various routines that send mail to use this (compose, reply, forward). Insert a `User-Agent:' header by default.
2010-04-23emacs: Add notmuch-hello.el, a friendly frontend to notmuchDavid Edmondson
This is based on the prototype that Carl Worth described in the TODO file. It provides a search bar as well as support for recent searches, saved searches, and a list of all tags in the database (as well as the number of messages with each tag).
2010-04-21emacs: Move body markup to a separate fileDavid Edmondson
Move the citation and signature markup for text/plain parts to a new file (notmuch-wash.el) and call it using a hook mechanism rather than directly.
2010-04-06Install emacs lisp files into a notmuch sub-directory of site-lisp.Carl Worth
Now that we have multiple emacs-lisp source files, it's just more polite this way.
2010-04-06Makefile: Eliminate the "make install-emacs" target.Carl Worth
Instead, simply byte-compile the emacs source files as part of "make" and install them as part of "make install". The byte compilation is made conditional on the configure script finding the emacs binary. That way, "make; make install" will still work for someone that doesn't have emacs installed, (which was the only reason we had made a separate "make install-emacs" target in the first place).
2010-04-06Makefiles: Eliminate the useless quiet_* functions.Carl Worth
With the original quiet function, there's an actual purpose (hiding excessively long compiler command lines so that warnings and errors from the compiler can be seen). But with things like quiet_symlink there's nothing quieter. In fact "SYMLINK" is longer than "ln -sf". So all this is doing is hiding the actual command from the user for no real benefit. The only actual reason we implemented the quiet_* functions was to be able to neatly right-align the command name and left-align the arguments. Let's give up on that, and just left-align everything, simplifying the Makefiles considerably. Now, the only instances of a captialized command name in the output is if there's some actually shortening of the command itself.
2010-04-05Makfiles: Make the top-level targets PHONYCarl Worth
Just to avoid any clash with files of the same names.
2010-04-05notmuch-query.el: new file to support access to the notmuch database.David Bremner
Initially this file provides one main function notmuch-query-get-threads, which takes a set of search terms, and returns a parsed set of matching threads as a lisp data structure. A set of notmuch-query-map-* functions are provided to help map functions over the data structure. The function notmuch-query-get-message-ids uses this machinery to get the set of message-ids matching a query. Edited-by: Carl Worth <cworth@cworth.org>: Change comment syntax, (";;" rather than ";" to make emacs-lisp mode happy), and eliminate some excess whitespace, as suggested by David Edmonson.