mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 20:38:08 +01:00
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.
This commit is contained in:
parent
685cfcc9e8
commit
f689c83af4
2 changed files with 13 additions and 6 deletions
|
@ -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_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(CONFIGURE_CXXFLAGS) $(extra_cflags) $(extra_cxxflags)
|
||||||
FINAL_LDFLAGS = $(LDFLAGS) $(CONFIGURE_LDFLAGS)
|
FINAL_LDFLAGS = $(LDFLAGS) $(CONFIGURE_LDFLAGS)
|
||||||
|
|
||||||
all: notmuch notmuch.1.gz
|
all: notmuch notmuch-shared notmuch.1.gz
|
||||||
ifeq ($(MAKECMDGOALS),)
|
ifeq ($(MAKECMDGOALS),)
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "Compilation of notmuch is now complete. You can install notmuch with:"
|
@echo "Compilation of notmuch is now complete. You can install notmuch with:"
|
||||||
|
@ -106,7 +106,11 @@ notmuch_client_srcs = \
|
||||||
json.c
|
json.c
|
||||||
|
|
||||||
notmuch_client_modules = $(notmuch_client_srcs:.c=.o)
|
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 $@
|
$(call quiet,CC,$(LDFLAGS)) -Llib -lnotmuch $(notmuch_client_modules) $(FINAL_LDFLAGS) -o $@
|
||||||
|
|
||||||
notmuch.1.gz: notmuch.1
|
notmuch.1.gz: notmuch.1
|
||||||
|
@ -117,7 +121,7 @@ install: all notmuch.1.gz
|
||||||
$(call quiet_mkdir, $(DESTDIR)$(libdir)/)
|
$(call quiet_mkdir, $(DESTDIR)$(libdir)/)
|
||||||
$(call quiet_mkdir, $(DESTDIR)$(prefix)/include/)
|
$(call quiet_mkdir, $(DESTDIR)$(prefix)/include/)
|
||||||
$(call quiet_mkdir, $(DESTDIR)$(prefix)/share/man/man1)
|
$(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/)
|
$(call quiet_install_data, notmuch.1.gz $(DESTDIR)$(prefix)/share/man/man1/)
|
||||||
ifeq ($(MAKECMDGOALS), install)
|
ifeq ($(MAKECMDGOALS), install)
|
||||||
@echo ""
|
@echo ""
|
||||||
|
@ -145,4 +149,4 @@ install-zsh:
|
||||||
$(call quiet_install_data, contrib/notmuch-completion.zsh $(DESTDIR)$(zsh_completion_dir)/notmuch)
|
$(call quiet_install_data, contrib/notmuch-completion.zsh $(DESTDIR)$(zsh_completion_dir)/notmuch)
|
||||||
|
|
||||||
SRCS := $(SRCS) $(notmuch_client_srcs)
|
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
|
||||||
|
|
|
@ -38,6 +38,9 @@ libnotmuch_cxx_srcs = \
|
||||||
|
|
||||||
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)/libnotmuch.a: $(libnotmuch_modules)
|
||||||
|
$(call quiet,AR) rcs $@ $^
|
||||||
|
|
||||||
$(dir)/$(LIBNAME): $(libnotmuch_modules)
|
$(dir)/$(LIBNAME): $(libnotmuch_modules)
|
||||||
$(call quiet,CXX,$(LDFLAGS)) $^ $(FINAL_LDFLAGS) -shared -Wl,-soname=$(SONAME) -o $@
|
$(call quiet,CXX,$(LDFLAGS)) $^ $(FINAL_LDFLAGS) -shared -Wl,-soname=$(SONAME) -o $@
|
||||||
|
|
||||||
|
@ -58,4 +61,4 @@ install-$(dir):
|
||||||
$(call quiet_install_data, $(dir)/notmuch.h $(DESTDIR)$(prefix)/include/)
|
$(call quiet_install_data, $(dir)/notmuch.h $(DESTDIR)$(prefix)/include/)
|
||||||
|
|
||||||
SRCS := $(SRCS) $(libnotmuch_c_srcs) $(libnotmuch_cxx_srcs)
|
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
|
||||||
|
|
Loading…
Reference in a new issue