mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-01 23:24:11 +01:00
90cd1bac4e
Add a custom value range processor to enable date and time searches of the form date:since..until, where "since" and "until" are expressions understood by the previously added date/time parser, to restrict the results to messages within a particular time range (based on the Date: header). If "since" or "until" describes date/time at an accuracy of days or less, the values are rounded according to the accuracy, towards past for "since" and towards future for "until". For example, date:november..yesterday would match from the beginning of November until the end of yesterday. Expressions such as date:today..today means since the beginning of today until the end of today. Open-ended ranges are supported (since Xapian 1.2.1), i.e. you can specify date:..until or date:since.. to not limit the start or end date, respectively. CAVEATS: Xapian does not support spaces in range expressions. You can replace the spaces with '_', or (in most cases) '-', or (in some cases) leave the spaces out altogether. Entering date:expr without ".." (for example date:yesterday) will not work as you might expect. You can achieve the expected result by duplicating the expr both sides of ".." (for example date:yesterday..yesterday). Open-ended ranges won't work with pre-1.2.1 Xapian, but they don't produce an error either. Signed-off-by: Jani Nikula <jani@nikula.org>
102 lines
3.6 KiB
Makefile
102 lines
3.6 KiB
Makefile
# -*- makefile -*-
|
|
|
|
# The major version of the library interface. This will control the soname.
|
|
# As such, this number must be incremented for any incompatible change to
|
|
# the library interface, (such as the deletion of an API or a major
|
|
# semantic change that breaks formerly functioning code).
|
|
#
|
|
LIBNOTMUCH_VERSION_MAJOR = 3
|
|
|
|
# The minor version of the library interface. This should be incremented at
|
|
# the time of release for any additions to the library interface,
|
|
# (and when it is incremented, the release version of the library should
|
|
# be reset to 0).
|
|
LIBNOTMUCH_VERSION_MINOR = 0
|
|
|
|
# The release version the library interface. This should be incremented at
|
|
# the time of release if there have been no changes to the interface, (but
|
|
# simply compatible changes to the implementation).
|
|
LIBNOTMUCH_VERSION_RELEASE = 0
|
|
|
|
ifeq ($(PLATFORM),MACOSX)
|
|
LIBRARY_SUFFIX = dylib
|
|
# On OS X, library version numbers go before suffix.
|
|
LINKER_NAME = libnotmuch.$(LIBRARY_SUFFIX)
|
|
SONAME = libnotmuch.$(LIBNOTMUCH_VERSION_MAJOR).$(LIBRARY_SUFFIX)
|
|
LIBNAME = libnotmuch.$(LIBNOTMUCH_VERSION_MAJOR).$(LIBNOTMUCH_VERSION_MINOR).$(LIBNOTMUCH_VERSION_RELEASE).$(LIBRARY_SUFFIX)
|
|
LIBRARY_LINK_FLAG = -dynamiclib -install_name $(SONAME) -compatibility_version $(LIBNOTMUCH_VERSION_MAJOR).$(LIBNOTMUCH_VERSION_MINOR) -current_version $(LIBNOTMUCH_VERSION_MAJOR).$(LIBNOTMUCH_VERSION_MINOR).$(LIBNOTMUCH_VERSION_RELEASE)
|
|
else
|
|
LIBRARY_SUFFIX = so
|
|
LINKER_NAME = libnotmuch.$(LIBRARY_SUFFIX)
|
|
SONAME = $(LINKER_NAME).$(LIBNOTMUCH_VERSION_MAJOR)
|
|
LIBNAME = $(SONAME).$(LIBNOTMUCH_VERSION_MINOR).$(LIBNOTMUCH_VERSION_RELEASE)
|
|
LIBRARY_LINK_FLAG = -shared -Wl,--version-script=notmuch.sym,-soname=$(SONAME) -Wl,--no-undefined
|
|
ifeq ($(PLATFORM),OPENBSD)
|
|
LIBRARY_LINK_FLAG += -lc
|
|
endif
|
|
ifeq ($(LIBDIR_IN_LDCONFIG),1)
|
|
ifeq ($(DESTDIR),)
|
|
LIBRARY_INSTALL_POST_COMMAND=ldconfig
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
dir := lib
|
|
extra_cflags += -I$(srcdir)/$(dir) -fPIC
|
|
|
|
# The (often-reused) $dir works fine within targets/prerequisites,
|
|
# but cannot be used reliably within commands, so copy its value to a
|
|
# variable that is not reused.
|
|
lib := $(dir)
|
|
|
|
libnotmuch_c_srcs = \
|
|
$(notmuch_compat_srcs) \
|
|
$(dir)/filenames.c \
|
|
$(dir)/string-list.c \
|
|
$(dir)/libsha1.c \
|
|
$(dir)/message-file.c \
|
|
$(dir)/messages.c \
|
|
$(dir)/sha1.c \
|
|
$(dir)/tags.c
|
|
|
|
libnotmuch_cxx_srcs = \
|
|
$(dir)/database.cc \
|
|
$(dir)/parse-time-vrp.cc \
|
|
$(dir)/directory.cc \
|
|
$(dir)/index.cc \
|
|
$(dir)/message.cc \
|
|
$(dir)/query.cc \
|
|
$(dir)/thread.cc
|
|
|
|
libnotmuch_modules := $(libnotmuch_c_srcs:.c=.o) $(libnotmuch_cxx_srcs:.cc=.o)
|
|
|
|
$(dir)/libnotmuch.a: $(libnotmuch_modules)
|
|
$(call quiet,AR) rcs $@ $^
|
|
|
|
$(dir)/$(LIBNAME): $(libnotmuch_modules) notmuch.sym
|
|
$(call quiet,CXX $(CXXFLAGS)) $(libnotmuch_modules) $(FINAL_LIBNOTMUCH_LDFLAGS) $(LIBRARY_LINK_FLAG) -o $@ util/libutil.a parse-time-string/libparse-time-string.a
|
|
|
|
notmuch.sym: $(srcdir)/$(dir)/notmuch.h $(libnotmuch_modules)
|
|
sh $(srcdir)/$(lib)/gen-version-script.sh $< $(libnotmuch_modules) > $@
|
|
|
|
$(dir)/$(SONAME): $(dir)/$(LIBNAME)
|
|
ln -sf $(LIBNAME) $@
|
|
|
|
$(dir)/$(LINKER_NAME): $(dir)/$(SONAME)
|
|
ln -sf $(LIBNAME) $@
|
|
|
|
install: install-$(dir)
|
|
|
|
install-$(dir): $(dir)/$(LIBNAME)
|
|
mkdir -p "$(DESTDIR)$(libdir)/"
|
|
install -m0644 "$(lib)/$(LIBNAME)" "$(DESTDIR)$(libdir)/"
|
|
ln -sf $(LIBNAME) "$(DESTDIR)$(libdir)/$(SONAME)"
|
|
ln -sf $(LIBNAME) "$(DESTDIR)$(libdir)/$(LINKER_NAME)"
|
|
mkdir -p "$(DESTDIR)$(includedir)"
|
|
install -m0644 "$(srcdir)/$(lib)/notmuch.h" "$(DESTDIR)$(includedir)/"
|
|
$(LIBRARY_INSTALL_POST_COMMAND)
|
|
|
|
SRCS := $(SRCS) $(libnotmuch_c_srcs) $(libnotmuch_cxx_srcs)
|
|
CLEAN += $(libnotmuch_modules) $(dir)/$(SONAME) $(dir)/$(LINKER_NAME)
|
|
CLEAN += $(dir)/$(LIBNAME) $(dir)/libnotmuch.a notmuch.sym
|
|
CLEAN += $(dir)/notmuch.h.gch
|