From 8c3d19313e590590db3ecfe0fb7177f4f6aee023 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Mon, 20 May 2013 07:24:23 -0500 Subject: [PATCH] ruby: use in-tree notmuch library Currently it simply finds any library available, and if notmuch is installed in the system, it would give priority to that library. Let's implement our own helper functions to link directly to the local library, and give priority to the local header file. Also, add an option to properly check if there are missing symbols. Signed-off-by: Felipe Contreras --- bindings/ruby/extconf.rb | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/bindings/ruby/extconf.rb b/bindings/ruby/extconf.rb index 7b9750f2..6160db26 100644 --- a/bindings/ruby/extconf.rb +++ b/bindings/ruby/extconf.rb @@ -5,9 +5,26 @@ require 'mkmf' -# Notmuch Library -find_header('notmuch.h', '../../lib') -find_library('notmuch', 'notmuch_database_create', '../../lib') +dir = File.join('..', '..', 'lib') + +# includes +$INCFLAGS = "-I#{dir} #{$INCFLAGS}" + +# make sure there are no undefined symbols +$LDFLAGS += ' -Wl,--no-undefined' + +def have_local_library(lib, path, func, headers = nil) + checking_for checking_message(func, lib) do + lib = File.join(path, lib) + if try_func(func, lib, headers) + $LOCAL_LIBS += lib + end + end +end + +if not have_local_library('libnotmuch.so', dir, 'notmuch_database_create', 'notmuch.h') + exit 1 +end # Create Makefile dir_config('notmuch')