Build and link against notmuch shared library, install notmuch.h
authorBen Gamari <bgamari.foss@gmail.com>
Fri, 12 Mar 2010 13:47:34 +0000 (14:47 +0100)
committerCarl Worth <cworth@cworth.org>
Thu, 1 Apr 2010 00:38:27 +0000 (17:38 -0700)
Signed-off-by: Ingmar Vanhassel <ingmar@exherbo.org>
.gitignore
Makefile
Makefile.local
lib/Makefile.local

index efa98fbbe03db365f815fa9c1107f792af5172b0..daf80945d109bb18065e748d70787e4b6128242f 100644 (file)
@@ -5,6 +5,7 @@ tags
 .deps
 notmuch
 notmuch.1.gz
+libnotmuch.so*
 *.[ao]
 *~
 .*.swp
index 46f001ce2fa5d2523ff08c577b4aadbecae853fa..80eedd0c52d72dbab471bd83452e5e4d30b405a2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,4 @@
+SONAME = libnotmuch.so.1
 WARN_CXXFLAGS=-Wall -Wextra -Wwrite-strings -Wswitch-enum
 WARN_CFLAGS=$(WARN_CXXFLAGS) -Wmissing-declarations
 
index 3c2a629963ffad204a8f5e3c9006ae55e722bb12..31ab534f82491f60b784ec872aaedf2206605b74 100644 (file)
@@ -20,18 +20,22 @@ notmuch_client_srcs =               \
        json.c
 
 notmuch_client_modules = $(notmuch_client_srcs:.c=.o)
-notmuch: $(notmuch_client_modules) lib/notmuch.a
-       $(call quiet,CXX,$(LDFLAGS)) $^ $(FINAL_LDFLAGS) -o $@
+notmuch: $(notmuch_client_modules) lib/libnotmuch.so
+       $(call quiet,CC,$(LDFLAGS)) -Llib -lnotmuch $(filter-out lib/libnotmuch.so,$^) $(FINAL_LDFLAGS) -o $@
 
 notmuch.1.gz: notmuch.1
        $(call quiet,gzip) --stdout $^ > $@
 
 install: all notmuch.1.gz
-       for d in $(DESTDIR)$(prefix)/bin/ $(DESTDIR)$(prefix)/share/man/man1 ; \
+       for d in $(DESTDIR)$(prefix)/bin/ $(DESTDIR)$(prefix)/lib/ \
+               $(DESTDIR)$(prefix)/include/ $(DESTDIR)$(prefix)/share/man/man1 ; \
        do \
                install -d $$d ; \
        done ;
        install notmuch $(DESTDIR)$(prefix)/bin/
+       install lib/$(SONAME) $(DESTDIR)$(prefix)/lib/
+       install lib/notmuch.h $(DESTDIR)$(prefix)/include/
+       ln -sf $(SONAME) $(DESTDIR)$(prefix)/lib/libnotmuch.so
        install -m0644 notmuch.1.gz $(DESTDIR)$(prefix)/share/man/man1/
 ifeq ($(MAKECMDGOALS), install)
        @echo ""
index 495b27e06eebd225fdf3958d219103e6ac2cd208..f8489468eea069691eb372955f8445860a3bb78e 100644 (file)
@@ -1,5 +1,5 @@
 dir := lib
-extra_cflags += -I$(dir)
+extra_cflags += -I$(dir) -fPIC
 
 libnotmuch_c_srcs =            \
        $(dir)/libsha1.c        \
@@ -18,8 +18,9 @@ libnotmuch_cxx_srcs =         \
        $(dir)/thread.cc
 
 libnotmuch_modules = $(libnotmuch_c_srcs:.c=.o) $(libnotmuch_cxx_srcs:.cc=.o)
-$(dir)/notmuch.a: $(libnotmuch_modules)
-       $(call quiet,AR) rcs $@ $^
+$(dir)/libnotmuch.so : $(libnotmuch_modules)
+       $(call quiet,CXX,$(LDFLAGS)) $^ $(FINAL_LDFLAGS) -shared -Wl,-soname=$(SONAME) -o $@
+       ln -sf $(SONAME) $@
 
 SRCS  := $(SRCS) $(libnotmuch_c_srcs) $(libnotmuch_cxx_srcs)
-CLEAN := $(CLEAN) $(libnotmuch_modules) $(dir)/notmuch.a
+CLEAN := $(CLEAN) $(libnotmuch_modules) $(dir)/libnotmuch.so *.so