Skip to content

Commit

Permalink
xapian-bindings: Fix build with slibtool
Browse files Browse the repository at this point in the history
With slibtool the --config argument works differently than in GNU
libtool which results in 'auto/Xapian/Xapian$(PERL_SO)' failing to be
created. This can be worked around by using libtool --mode=install where
slibtool can copy the module to the intended location.

However GNU libtool still requires using --config otherwise it fails
during --mode=install with the following error.

  /bin/bash ../libtool --mode=install cp Xapian.la /home/runner/work/xapian/xapian/xapian-bindings/perl/auto/Xapian/Xapian.la
  libtool:   error: error: cannot install 'Xapian.la' to a directory not ending in /usr/local/lib/x86_64-linux-gnu/perl/5.26.1/auto/Xapian

gentoo issue: https://bugs.gentoo.org/793428
  • Loading branch information
orbea committed Jul 20, 2022
1 parent 02cc478 commit d7d1d04
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
9 changes: 7 additions & 2 deletions xapian-bindings/perl/Makefile.am
Expand Up @@ -55,9 +55,14 @@ BUILT_SOURCES = Xapian.pm xapian_wrap.cc \

auto/Xapian/Xapian$(PERL_SO): Xapian.la
@$(MKDIR_P) auto/Xapian
$(LIBTOOL) --config > libtoolconfig.tmp
## GNU libtool and slibtool have different and incompatible usage for --config.
if $(LIBTOOL) --config > libtoolconfig.tmp 2>/dev/null; then \
## ksh requires a path on the sourced file.
. ./libtoolconfig.tmp; cp "$$objdir/Xapian$(PERL_SO)" auto/Xapian
. ./libtoolconfig.tmp; \
cp "$$objdir/Xapian$(PERL_SO)" auto/Xapian; \
else \
$(LIBTOOL) --mode=install cp $< $@; \
fi;
rm -f libtoolconfig.tmp

EXTRA_DIST = perl.i except.i extra.i $(TESTS) \
Expand Down
9 changes: 7 additions & 2 deletions xapian-bindings/python3/Makefile.am
Expand Up @@ -88,9 +88,14 @@ xapian/__pycache__/__init__.@PYTHON3_CACHE_OPT1_EXT@: xapian/__init__.py xapian/

xapian/_xapian$(PYTHON3_EXT_SUFFIX): _xapian.la
$(MKDIR_P) xapian
$(LIBTOOL) --config > libtoolconfig.tmp
## GNU libtool and slibtool have different and incompatible usage for --config.
if $(LIBTOOL) --config > libtoolconfig.tmp 2>/dev/null; then \
## ksh requires a path on the sourced file.
. ./libtoolconfig.tmp; cp $$objdir/_xapian$(PYTHON3_EXT_SUFFIX) xapian
. ./libtoolconfig.tmp; \
cp $$objdir/_xapian$(PYTHON3_EXT_SUFFIX) xapian; \
else \
$(LIBTOOL) --mode=install cp $< $@; \
fi;
rm -f libtoolconfig.tmp

CLEANFILES = \
Expand Down

0 comments on commit d7d1d04

Please sign in to comment.