diff options
author | Felipe Contreras <felipe.contreras@gmail.com> | 2013-05-20 07:24:23 -0500 |
---|---|---|
committer | David Bremner <bremner@debian.org> | 2013-05-23 08:15:20 -0300 |
commit | 8c3d19313e590590db3ecfe0fb7177f4f6aee023 (patch) | |
tree | 2fdb1f960ed5390d34f1260312644a2eccbbea7a /bindings | |
parent | 68720286ebc5bf53c2b89a3486b7fcd691443783 (diff) |
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 <felipe.contreras@gmail.com>
Diffstat (limited to 'bindings')
-rw-r--r-- | bindings/ruby/extconf.rb | 23 |
1 files 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') |