mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
f689c83af4
The idea here is to allow a new user of notmuch to be able to run notmuch immediately after compiling, (without having to install the shared library first). This also ensures that the test suite tests the locally compiled library, and not whatever installled version of the library the dynamic linker happens to find.
64 lines
2.2 KiB
Text
64 lines
2.2 KiB
Text
# 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 = 1
|
|
|
|
# The minor version of the library interface. This should be incremented at
|
|
# the time of release for any additions to the library interface.
|
|
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
|
|
|
|
LINKER_NAME = libnotmuch.so
|
|
SONAME = $(LINKER_NAME).$(LIBNOTMUCH_VERSION_MAJOR)
|
|
LIBNAME = $(SONAME).$(LIBNOTMUCH_VERSION_MINOR).$(LIBNOTMUCH_VERSION_RELEASE)
|
|
|
|
dir := lib
|
|
extra_cflags += -I$(dir) -fPIC
|
|
|
|
libnotmuch_c_srcs = \
|
|
$(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,$(LDFLAGS)) $^ $(FINAL_LDFLAGS) -shared -Wl,-soname=$(SONAME) -o $@
|
|
|
|
$(dir)/$(SONAME): $(dir)/$(LIBNAME)
|
|
$(call quiet_symlink, $(LIBNAME) $@)
|
|
|
|
$(dir)/$(LINKER_NAME): $(dir)/$(SONAME)
|
|
$(call quiet_symlink, $(LIBNAME) $@)
|
|
|
|
install: install-$(dir)
|
|
|
|
install-$(dir):
|
|
$(call quiet_mkdir, $(DESTDIR)$(libdir)/)
|
|
$(call quiet_install_data, $(dir)/$(LIBNAME) $(DESTDIR)$(libdir)/)
|
|
$(call quiet_symlink, $(LIBNAME) $(DESTDIR)$(libdir)/$(SONAME))
|
|
$(call quiet_symlink, $(LIBNAME) $(DESTDIR)$(libdir)/$(LINKER_NAME))
|
|
$(call quiet_mkdir, $(DESTDIR)$(prefix)/include/)
|
|
$(call quiet_install_data, $(dir)/notmuch.h $(DESTDIR)$(prefix)/include/)
|
|
|
|
SRCS := $(SRCS) $(libnotmuch_c_srcs) $(libnotmuch_cxx_srcs)
|
|
CLEAN := $(CLEAN) $(libnotmuch_modules) $(dir)/$(SONAME) $(dir)/$(LINKER_NAME) $(dir)$(LIBNAME) libnotmuch.a
|