mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-27 03:41:41 +01:00
f3c1eebfaf
This replaces the guts of the filename list and tag list, making those interfaces simple iterators over the generic string list. The directory, message filename, and tags-related code now build generic string lists and then wraps them in specific iterators. The real wins come in later patches, when we use these for even more generic functionality. As a nice side-effect, this also eliminates the annoying dependency on GList in the tag list.
99 lines
3.6 KiB
Makefile
99 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).
|
|
#
|
|
# Note: We don't currently have plans to increment this at this time.
|
|
# If we *do* want to make an incompatible change to the library
|
|
# interface, we'll have to decide whether to increment this (creating
|
|
# a new soname) or to introduce symbol versioning to be able to
|
|
# provide support for both old and new interfaces without having to
|
|
# increment this.
|
|
LIBNOTMUCH_VERSION_MAJOR = 1
|
|
|
|
# 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 = 3
|
|
|
|
# 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,-soname=$(SONAME)
|
|
ifeq ($(LIBDIR_IN_LDCONFIG),1)
|
|
ifeq ($(DESTDIR),)
|
|
LIBRARY_INSTALL_POST_COMMAND=ldconfig
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
dir := lib
|
|
extra_cflags += -I$(srcdir)/$(dir) -fPIC
|
|
|
|
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 \
|
|
$(dir)/xutil.c
|
|
|
|
libnotmuch_cxx_srcs = \
|
|
$(dir)/database.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)
|
|
$(call quiet,CXX $(CXXFLAGS)) $^ $(FINAL_LIBNOTMUCH_LDFLAGS) $(LIBRARY_LINK_FLAG) -o $@
|
|
|
|
$(dir)/$(SONAME): $(dir)/$(LIBNAME)
|
|
ln -sf $(LIBNAME) $@
|
|
|
|
$(dir)/$(LINKER_NAME): $(dir)/$(SONAME)
|
|
ln -sf $(LIBNAME) $@
|
|
|
|
install: install-$(dir)
|
|
|
|
# The (often-reused) $dir works fine within targets/pre-requisites,
|
|
# but cannot be used reliably within commands, so copy its value to a
|
|
# variable that is not reused.
|
|
lib := $(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 := $(CLEAN) $(libnotmuch_modules) $(dir)/$(SONAME) $(dir)/$(LINKER_NAME) $(dir)$(LIBNAME) libnotmuch.a
|