Tomi Ollila <too@guru.guru-group.fi> writes: > From: Tomi Ollila <tomi.ollila@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.ollila@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 <alip@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 I guess I have the same question about the non-absolute path case here. Are we assuming some convention?