summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
685cfcc)
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.
FINAL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(CONFIGURE_CXXFLAGS) $(extra_cflags) $(extra_cxxflags)
FINAL_LDFLAGS = $(LDFLAGS) $(CONFIGURE_LDFLAGS)
FINAL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(CONFIGURE_CXXFLAGS) $(extra_cflags) $(extra_cxxflags)
FINAL_LDFLAGS = $(LDFLAGS) $(CONFIGURE_LDFLAGS)
-all: notmuch notmuch.1.gz
+all: notmuch notmuch-shared notmuch.1.gz
ifeq ($(MAKECMDGOALS),)
@echo ""
@echo "Compilation of notmuch is now complete. You can install notmuch with:"
ifeq ($(MAKECMDGOALS),)
@echo ""
@echo "Compilation of notmuch is now complete. You can install notmuch with:"
json.c
notmuch_client_modules = $(notmuch_client_srcs:.c=.o)
json.c
notmuch_client_modules = $(notmuch_client_srcs:.c=.o)
-notmuch: $(notmuch_client_modules) lib/libnotmuch.so
+
+notmuch: $(notmuch_client_modules) lib/libnotmuch.a
+ $(call quiet,CC,$(LDFLAGS)) $^ $(FINAL_LDFLAGS) -o $@
+
+notmuch-shared: $(notmuch_client_modules) lib/libnotmuch.so
$(call quiet,CC,$(LDFLAGS)) -Llib -lnotmuch $(notmuch_client_modules) $(FINAL_LDFLAGS) -o $@
notmuch.1.gz: notmuch.1
$(call quiet,CC,$(LDFLAGS)) -Llib -lnotmuch $(notmuch_client_modules) $(FINAL_LDFLAGS) -o $@
notmuch.1.gz: notmuch.1
$(call quiet_mkdir, $(DESTDIR)$(libdir)/)
$(call quiet_mkdir, $(DESTDIR)$(prefix)/include/)
$(call quiet_mkdir, $(DESTDIR)$(prefix)/share/man/man1)
$(call quiet_mkdir, $(DESTDIR)$(libdir)/)
$(call quiet_mkdir, $(DESTDIR)$(prefix)/include/)
$(call quiet_mkdir, $(DESTDIR)$(prefix)/share/man/man1)
- $(call quiet_install_bin, notmuch $(DESTDIR)$(prefix)/bin/)
+ $(call quiet_install_bin, notmuch-shared $(DESTDIR)$(prefix)/bin/notmuch)
$(call quiet_install_data, notmuch.1.gz $(DESTDIR)$(prefix)/share/man/man1/)
ifeq ($(MAKECMDGOALS), install)
@echo ""
$(call quiet_install_data, notmuch.1.gz $(DESTDIR)$(prefix)/share/man/man1/)
ifeq ($(MAKECMDGOALS), install)
@echo ""
$(call quiet_install_data, contrib/notmuch-completion.zsh $(DESTDIR)$(zsh_completion_dir)/notmuch)
SRCS := $(SRCS) $(notmuch_client_srcs)
$(call quiet_install_data, contrib/notmuch-completion.zsh $(DESTDIR)$(zsh_completion_dir)/notmuch)
SRCS := $(SRCS) $(notmuch_client_srcs)
-CLEAN := $(CLEAN) notmuch $(notmuch_client_modules) notmuch.elc notmuch.1.gz
+CLEAN := $(CLEAN) notmuch notmuch-shared $(notmuch_client_modules) notmuch.elc notmuch.1.gz
libnotmuch_modules = $(libnotmuch_c_srcs:.c=.o) $(libnotmuch_cxx_srcs:.cc=.o)
libnotmuch_modules = $(libnotmuch_c_srcs:.c=.o) $(libnotmuch_cxx_srcs:.cc=.o)
-$(dir)/$(LIBNAME) : $(libnotmuch_modules)
+$(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,CXX,$(LDFLAGS)) $^ $(FINAL_LDFLAGS) -shared -Wl,-soname=$(SONAME) -o $@
$(dir)/$(SONAME): $(dir)/$(LIBNAME)
$(call quiet_install_data, $(dir)/notmuch.h $(DESTDIR)$(prefix)/include/)
SRCS := $(SRCS) $(libnotmuch_c_srcs) $(libnotmuch_cxx_srcs)
$(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)
+CLEAN := $(CLEAN) $(libnotmuch_modules) $(dir)/$(SONAME) $(dir)/$(LINKER_NAME) $(dir)$(LIBNAME) libnotmuch.a