From: Tomi Ollila <tomi.oll...@iki.fi> Ruby bindings source files had to be copied to the out-of-tree target directory -- final obstacle avoiding that was that if there were built object files in source directory, new target object files were not built (caused link failure, fortunately). ---
The ruby-part fix of id:1479146030-17083-1-git-send-email-tomi.oll...@iki.fi bindings/Makefile.local | 2 +- bindings/ruby/extconf.rb | 12 +++++++++++- configure | 6 ++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/bindings/Makefile.local b/bindings/Makefile.local index 11d11d4..61fe412 100644 --- a/bindings/Makefile.local +++ b/bindings/Makefile.local @@ -8,7 +8,7 @@ ifeq ($(HAVE_RUBY_DEV),1) cd $(dir)/ruby && \ EXTRA_LDFLAGS="$(NO_UNDEFINED_LDFLAGS)" \ LIBNOTMUCH="../../lib/$(LINKER_NAME)" \ - ruby extconf.rb --vendor + SRCDIR=$(srcdir) ruby extconf.rb --vendor $(MAKE) -C $(dir)/ruby endif diff --git a/bindings/ruby/extconf.rb b/bindings/ruby/extconf.rb index ddaa684..ed57d33 100644 --- a/bindings/ruby/extconf.rb +++ b/bindings/ruby/extconf.rb @@ -1,11 +1,21 @@ #!/usr/bin/env ruby # coding: utf-8 # Copyright 2010, 2011, 2012 Ali Polatel <a...@exherbo.org> +# Out of tree build update: 2016 Tomi Ollila # Distributed under the terms of the GNU General Public License v3 require 'mkmf' -dir = File.join('..', '..', 'lib') +# ENV['SRCDIR'] is build system's vision of source dir... +srcroot = ENV['SRCDIR'] +# ...so fix it; expect hardcoded ../.. to work +if srcroot == '.' + srcroot = File.join('..', '..') +elsif srcroot[0] != '/' + srcroot = File.join('..', '..', srcroot) +end + +dir = File.join(srcroot, 'lib') # includes $INCFLAGS = "-I#{dir} #{$INCFLAGS}" diff --git a/configure b/configure index f0fc466..22767c5 100755 --- a/configure +++ b/configure @@ -42,6 +42,12 @@ if [ "$srcdir" != "." ]; then # Emacs only likes to generate compiled files next to the .el files # by default so copy these as well (which is not ideal). cp -a "$srcdir"/emacs/*.el emacs + + # We were not able to create fully working Makefile using ruby mkmf.rb + # so ruby bindings source files are copied as well (ditto -- not ideal). + mkdir bindings/ruby + cp -a "$srcdir"/bindings/ruby/*.[ch] bindings/ruby + cp -a "$srcdir"/bindings/ruby/extconf.rb bindings/ruby fi # Set several defaults (optionally specified by the user in -- 2.10.0 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch