Building xapian-bindings
Samuel Williams
space.ship.traveller at gmail.com
Mon Jan 16 01:21:20 GMT 2017
I'm posting this here to help others who might be having the same issue.
I maintain xapian-core ruby gem.
I was trying to upgrade to 1.4.2 and had some issues.
The generated makefile doesn’t work because of the following:
docs/rdocs/index.html: docs/xapian.rb
rm -rf docs/rdocs
$(MKDIR_P) docs
cd docs && $(RDOC) --op rdocs `test -f xapian.rb||echo
'$(abs_srcdir)/'`xapian.rb
@DOCUMENTATION_RULES_TRUE at docs/xapian.rb: generate-rdoc-stubs
xapian.rb ../doxygen-xml/index.xml
@DOCUMENTATION_RULES_TRUE@ $(PERL) $(srcdir)/generate-rdoc-stubs
@DOCUMENTATION_RULES_TRUE at .rst.html:
@DOCUMENTATION_RULES_TRUE@ -case "$@" in */*) d=`echo "$@"|sed
's,/[^/]*$$,,'`; $(MKDIR_P) "$$d" ;; esac
@DOCUMENTATION_RULES_TRUE@ $(RST2HTML) --exit-status=warning $< $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
When it tries to build:
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in .
Making all in ruby
make[2]: *** No rule to make target `docs/xapian.rb', needed by
`docs/rdocs/index.html'. Stop.
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
I found the problem was because I was running `make clean all` which
deletes docs/xapian.rb and then make all fails because it can't build
that file.
> make clean
Making clean in .
rm -rf .libs _libs
rm -f *.lo
Making clean in ruby
test -z " docs/xapian.rb" || rm -f docs/xapian.rb
rm -rf .libs _libs
test -z "_xapian.la" || rm -f _xapian.la
rm -f ./so_locations
rm -f *.o
test -z "smoketest.rb.log" || rm -f smoketest.rb.log
test -z "smoketest.rb.trs" || rm -f smoketest.rb.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
> make all
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in .
make[2]: Nothing to be done for `all-am'.
Making all in ruby
make[2]: *** No rule to make target `docs/xapian.rb', needed by
`docs/rdocs/index.html'. Stop.
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Perhaps this is a bug?
The solution I found which avoids this problem all together is to move
the line `if DOCUMENTATION_RULES` to line 101 of ruby/Makefile.am
which avoids building documentation unless you request it. I'd suggest
this change is merged into the next release which corrects this issue,
e.g.
***if DOCUMENTATION_RULES*** (move here)
EXTRA_DIST += generate-rdoc-stubs docs/xapian.rb
BUILT_SOURCES += docs/rdocs/index.html
docs/rdocs/index.html: docs/xapian.rb
rm -rf docs/rdocs
$(MKDIR_P) docs
cd docs && $(RDOC) --op rdocs `test -f xapian.rb||echo
'$(abs_srcdir)/'`xapian.rb
docs/xapian.rb: generate-rdoc-stubs xapian.rb ../doxygen-xml/index.xml
$(PERL) $(srcdir)/generate-rdoc-stubs
Kind regards,
Samuel
More information about the Xapian-discuss
mailing list