notmuch/lib/Makefile.local
David Edmondson d3884a5984 Makefile.local: Automatically use makefile mode
We add a magic line to the beginning of each Makefile.local file to
help the editor know that it should use makefile mode for editing the
file, (even though the filename isn't exactly "Makefile").

Edited-by: Carl Worth <cworth@cworth.org>: Expand treatment from
emacs/Makefile.local to each instance of Makefile.local.
2010-04-03 12:31:49 -07:00

66 lines
2.2 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 = 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