From f689c83af4e1d271d056b24da9e46e7b679ff978 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Thu, 1 Apr 2010 15:03:40 -0700 Subject: [PATCH] Compile a static notmuch binary (but only install the shared version) 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. --- Makefile.local | 12 ++++++++---- lib/Makefile.local | 7 +++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Makefile.local b/Makefile.local index 32b8f4a8..c7f4719a 100644 --- a/Makefile.local +++ b/Makefile.local @@ -22,7 +22,7 @@ FINAL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(CONFIGURE_CFLAGS) $(extra_cflags) 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:" @@ -106,7 +106,11 @@ notmuch_client_srcs = \ 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 @@ -117,7 +121,7 @@ install: all notmuch.1.gz $(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 "" @@ -145,4 +149,4 @@ install-zsh: $(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 diff --git a/lib/Makefile.local b/lib/Makefile.local index 85b010e6..f5d61883 100644 --- a/lib/Makefile.local +++ b/lib/Makefile.local @@ -38,7 +38,10 @@ libnotmuch_cxx_srcs = \ 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) @@ -58,4 +61,4 @@ install-$(dir): $(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 -- 2.43.0