From: Carl Worth Date: Thu, 1 Apr 2010 22:03:40 +0000 (-0700) Subject: Compile a static notmuch binary (but only install the shared version) X-Git-Tag: 0.1~21 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=f689c83af4e1d271d056b24da9e46e7b679ff978;hp=685cfcc9e876e9c611d2cb03e8ebd417a7f165b7 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. --- 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