Ticket #707: bindings.patch

File bindings.patch, 9.6 KB (added by James Aylett, 8 years ago)

Build and test against non-system languages on OS X; untested for breaking system or non-OS X

  • xapian-bindings/csharp/Makefile.am

    diff --git a/xapian-bindings/csharp/Makefile.am b/xapian-bindings/csharp/Makefile.am
    index 8ac3d1d..85cf8be 100644
    a b include ../generic/generic.mk  
    44
    55## Test programs to be run
    66TESTS = SmokeTest.exe
    7 LOG_COMPILER = $(RUN_CSHARP)
     7AM_TESTS_ENVIRONMENT = \
     8        RUN_CSHARP=$(RUN_CSHARP) ;\
     9        export RUN_CSHARP ;
     10LOG_COMPILER = '$(srcdir)'/run-csharp-test
    811
    912ASSEMBLY=XapianSharp
    1013
  • new file xapian-bindings/csharp/run-csharp-test

    diff --git a/xapian-bindings/csharp/run-csharp-test b/xapian-bindings/csharp/run-csharp-test
    new file mode 100755
    index 0000000..4cbc262
    - +  
     1#!/bin/sh
     2DYLD_LIBRARY_PATH="$INTREE_DYLD_PATH" ${RUN_CSHARP-mono} "$@"
     3exit $?
  • xapian-bindings/generic/generic.mk

    diff --git a/xapian-bindings/generic/generic.mk b/xapian-bindings/generic/generic.mk
    index d63a99d..e80e62e 100644
    a b endif  
    1111if NEED_INTREE_DYLD
    1212# This is a hack for Mac OS X to enable tests to work when built against an
    1313# uninstalled xapian-core tree.  See https://trac.xapian.org/ticket/322
    14 export DYLD_LIBRARY_PATH=$(INTREE_DYLD_PATH)
     14# From El Capitan onward, System Integrity Protection means that DYLD
     15# variables are cleared on exec from a "protected process", so we cannot
     16# just set and export it directly; instead we set it as late as possible,
     17# on the actual make lines that need it. See for instance
     18# xapian-bindings/python/Makefile.am.
     19#
     20# We export INTREE_DYLD_PATH (the actual path used) so it can be used
     21# in scripts invoked by make without having to generate them via autoconf.
     22export INTREE_DYLD_PATH
     23export SET_DYLD_LIBRARY_PATH_IF_NEEDED=DYLD_LIBRARY_PATH="$(INTREE_DYLD_PATH)"
    1524endif
    1625
    1726if OVERRIDE_MACOSX_DEPLOYMENT_TARGET
  • xapian-bindings/lua/Makefile.am

    diff --git a/xapian-bindings/lua/Makefile.am b/xapian-bindings/lua/Makefile.am
    index a103214..2c679d3 100644
    a b TESTS = smoketest.lua  
    77AM_TESTS_ENVIRONMENT = \
    88        LUA_CPATH='.libs/?$(LUA_SO)' ;\
    99        export LUA_CPATH ;
    10 LOG_COMPILER = $(LUA)
     10LOG_COMPILER = '$(srcdir)'/run-lua-test
    1111
    1212installcheck-local:
    1313        $(MAKE) check AM_TESTS_ENVIRONMENT=
  • new file xapian-bindings/lua/run-lua-test

    diff --git a/xapian-bindings/lua/run-lua-test b/xapian-bindings/lua/run-lua-test
    new file mode 100755
    index 0000000..22b3580
    - +  
     1#!/bin/sh
     2DYLD_LIBRARY_PATH="$INTREE_DYLD_PATH" ${LUA-lua} "$@"
     3exit $?
  • xapian-bindings/perl/Makefile.am

    diff --git a/xapian-bindings/perl/Makefile.am b/xapian-bindings/perl/Makefile.am
    index 82b7977..f5fc35e 100644
    a b AM_TESTS_ENVIRONMENT = \  
    3333        CPPFLAGS="$(CPPFLAGS)" ;\
    3434        CXX="$(CXX)" ;\
    3535        CXXFLAGS="$(CXXFLAGS)" ;\
     36        PROVE="$(PROVE)" ;\
    3637        XAPIAN_CONFIG="$(XAPIAN_CONFIG)" ;\
    3738        export CPPFLAGS ;\
    3839        export CXX ;\
    3940        export CXXFLAGS ;\
     41        export PROVE ;\
    4042        export XAPIAN_CONFIG ;
    41 LOG_COMPILER = $(PROVE)
     43LOG_COMPILER = '$(srcdir)'/run-perl-test
    4244AM_LOG_FLAGS = -I. -I'$(srcdir)'
    4345
    4446installcheck-local:
  • new file xapian-bindings/perl/run-perl-test

    diff --git a/xapian-bindings/perl/run-perl-test b/xapian-bindings/perl/run-perl-test
    new file mode 100755
    index 0000000..9ae388e
    - +  
     1#!/bin/sh
     2DYLD_LIBRARY_PATH="$INTREE_DYLD_PATH" ${PROVE-prove} "$@"
     3exit $?
  • xapian-bindings/php/Makefile.am

    diff --git a/xapian-bindings/php/Makefile.am b/xapian-bindings/php/Makefile.am
    index 2305361..8e9bb7f 100644
    a b abs_builddir = @abs_builddir@  
    66
    77## Test programs to be run
    88TESTS = smoketest.php
    9 LOG_COMPILER = $(PHP)
     9LOG_COMPILER = '$(srcdir)'/run-php-test
    1010# Use -n to disable use of the system php.ini (which might prevent php from
    1111# using dl() which would make our test fail).  It would be nicer to use "-c"
    1212# and provide an alternative php.ini but with "-c" it seems PHP still loads the
  • new file xapian-bindings/php/run-php-test

    diff --git a/xapian-bindings/php/run-php-test b/xapian-bindings/php/run-php-test
    new file mode 100755
    index 0000000..a9c9d7b
    - +  
     1#!/bin/sh
     2
     3DYLD_LIBRARY_PATH="$INTREE_DYLD_PATH" ${PHP-php} "$@"
     4exit $?
  • xapian-bindings/python/Makefile.am

    diff --git a/xapian-bindings/python/Makefile.am b/xapian-bindings/python/Makefile.am
    index 5ecebca..0031ee1 100644
    a b xapian/__init__.py: xapian.py  
    7777# We "import _xapian" first so that if we fail to import the glue library
    7878# we don't generate a broken .pyc or .pyo.
    7979xapian/__init__.pyc: xapian/__init__.py xapian/_xapian$(PYTHON2_SO)
    80         PYTHONPATH="xapian:$$PYTHONPATH" $(PYTHON2) -c "import _xapian"
    81         PYTHONPATH=".:$$PYTHONPATH" $(PYTHON2) -c "import xapian"
     80        $(SET_DYLD_LIBRARY_PATH_IF_NEEDED) PYTHONPATH="xapian:$$PYTHONPATH" $(PYTHON2) -c "import _xapian"
     81        $(SET_DYLD_LIBRARY_PATH_IF_NEEDED) PYTHONPATH=".:$$PYTHONPATH" $(PYTHON2) -c "import xapian"
    8282
    8383xapian/__init__.pyo: xapian/__init__.py xapian/_xapian$(PYTHON2_SO)
    84         PYTHONPATH="xapian:$$PYTHONPATH" $(PYTHON2) -O -c "import _xapian"
    85         PYTHONPATH=".:$$PYTHONPATH" $(PYTHON2) -O -c "import xapian"
     84        $(SET_DYLD_LIBRARY_PATH_IF_NEEDED) PYTHONPATH="xapian:$$PYTHONPATH" $(PYTHON2) -O -c "import _xapian"
     85        $(SET_DYLD_LIBRARY_PATH_IF_NEEDED) PYTHONPATH=".:$$PYTHONPATH" $(PYTHON2) -O -c "import xapian"
    8686
    8787xapian/_xapian$(PYTHON2_SO): _xapian.la
    8888        $(MKDIR_P) xapian
    install-data-local:  
    154154all-local: $(sphinxdocs)
    155155
    156156$(sphinxdocs): xapian/__init__.py docs/conf.py $(RST_DOCS) $(dist_exampledata_DATA)
    157         PYTHONPATH=..:$$PYTHONPATH $(PYTHON2) $(SPHINX_BUILD) -b html -d doctrees -c docs $(srcdir)/docs docs/html
     157        $(SET_DYLD_LIBRARY_PATH_IF_NEEDED) PYTHONPATH=..:$$PYTHONPATH $(PYTHON2) $(SPHINX_BUILD) -b html -d doctrees -c docs $(srcdir)/docs docs/html
  • xapian-bindings/python/run-python-test

    diff --git a/xapian-bindings/python/run-python-test b/xapian-bindings/python/run-python-test
    index a02ea8a..45edd6f 100755
    a b  
    33# versions we set a trap which will delete any generated .pyc files after
    44# the test, or upon a signal.
    55trap 'rm -f "${srcdir-.}/*.pyc"' 0 1 2 13 15
    6 PYTHONPATH=".:$PYTHONPATH" PYTHONDONTWRITEBYTECODE=1 ${PYTHON-python} "$@"
     6DYLD_LIBRARY_PATH="$INTREE_DYLD_PATH" PYTHONPATH=".:$PYTHONPATH" PYTHONDONTWRITEBYTECODE=1 ${PYTHON-python} "$@"
    77exit $?
  • xapian-bindings/python3/Makefile.am

    diff --git a/xapian-bindings/python3/Makefile.am b/xapian-bindings/python3/Makefile.am
    index cb9afba..c2282e8 100644
    a b xapian/__init__.py: xapian.py  
    7676# We "import _xapian" first so that if we fail to import the glue library
    7777# we don't generate a broken .pyc or .pyo.
    7878xapian/__pycache__/__init__.@PYTHON3_CACHE_TAG@.pyc: xapian/__init__.py xapian/_xapian$(PYTHON3_SO)
    79         PYTHONPATH="xapian:$$PYTHONPATH" $(PYTHON3) -c "import _xapian"
    80         PYTHONPATH=".:$$PYTHONPATH" $(PYTHON3) -c "import xapian"
     79        $(SET_DYLD_LIBRARY_PATH_IF_NEEDED) PYTHONPATH="xapian:$$PYTHONPATH" $(PYTHON3) -c "import _xapian"
     80        $(SET_DYLD_LIBRARY_PATH_IF_NEEDED) PYTHONPATH=".:$$PYTHONPATH" $(PYTHON3) -c "import xapian"
    8181
    8282xapian/__pycache__/__init__.@PYTHON3_CACHE_OPT1_EXT@: xapian/__init__.py xapian/_xapian$(PYTHON3_SO)
    83         PYTHONPATH="xapian:$$PYTHONPATH" $(PYTHON3) -O -c "import _xapian"
    84         PYTHONPATH=".:$$PYTHONPATH" $(PYTHON3) -O -c "import xapian"
     83        $(SET_DYLD_LIBRARY_PATH_IF_NEEDED) PYTHONPATH="xapian:$$PYTHONPATH" $(PYTHON3) -O -c "import _xapian"
     84        $(SET_DYLD_LIBRARY_PATH_IF_NEEDED) PYTHONPATH=".:$$PYTHONPATH" $(PYTHON3) -O -c "import xapian"
    8585
    8686xapian/_xapian$(PYTHON3_SO): _xapian.la
    8787        $(MKDIR_P) xapian
    install-data-local:  
    159159all-local: $(sphinxdocs)
    160160
    161161$(sphinxdocs): xapian/__init__.py docs/conf.py $(RST_DOCS) $(dist_exampledata_DATA)
    162         PYTHONPATH=..:$$PYTHONPATH $(PYTHON3) $(SPHINX_BUILD) -b html -d doctrees -c docs $(srcdir)/docs docs/html
     162        $(SET_DYLD_LIBRARY_PATH_IF_NEEDED) PYTHONPATH=..:$$PYTHONPATH $(PYTHON3) $(SPHINX_BUILD) -b html -d doctrees -c docs $(srcdir)/docs docs/html
  • xapian-bindings/python3/run-python-test

    diff --git a/xapian-bindings/python3/run-python-test b/xapian-bindings/python3/run-python-test
    index b186ab8..7e085b4 100755
    a b PYTHONPATH=".:$PYTHONPATH"  
    33export PYTHONPATH
    44PYTHONDONTWRITEBYTECODE=1
    55export PYTHONDONTWRITEBYTECODE
    6 exec ${PYTHON3-python3} "$@"
     6DYLD_LIBRARY_PATH="$INTREE_DYLD_PATH" ${PYTHON3-python3} "$@"
     7exit $?
  • xapian-bindings/ruby/Makefile.am

    diff --git a/xapian-bindings/ruby/Makefile.am b/xapian-bindings/ruby/Makefile.am
    index 8484443..851ad6c 100644
    a b include ../generic/generic.mk  
    44
    55## Test programs to be run
    66TESTS = smoketest.rb
    7 LOG_COMPILER = $(RUBY)
     7LOG_COMPILER = '$(srcdir)'/run-ruby-test
    88AM_LOG_FLAGS = -I.libs -I'$(srcdir)'
    99
    1010installcheck-local:
  • new file xapian-bindings/ruby/run-ruby-test

    diff --git a/xapian-bindings/ruby/run-ruby-test b/xapian-bindings/ruby/run-ruby-test
    new file mode 100755
    index 0000000..b531e36
    - +  
     1#!/bin/sh
     2
     3DYLD_LIBRARY_PATH="$INTREE_DYLD_PATH" ${RUBY-ruby} "$@"
     4exit $?
  • xapian-bindings/tcl8/run-tcl-test

    diff --git a/xapian-bindings/tcl8/run-tcl-test b/xapian-bindings/tcl8/run-tcl-test
    index 1362f5e..c6e54cb 100755
    a b tclshlibext=`echo 'puts [info sharedlibextension]'|${TCLSH-tclsh}`  
    99
    1010rm -f xapian$tclshlibext
    1111ln -s $objdir/xapian$shlibext xapian$tclshlibext
    12 ${TCLSH-tclsh} ${srcdir-.}/runtest.tcl ${srcdir-.}/smoketest.tcl
     12DYLD_LIBRARY_PATH="$INTREE_DYLD_PATH" ${TCLSH-tclsh} ${srcdir-.}/runtest.tcl ${srcdir-.}/smoketest.tcl
    1313rc=$?
    1414rm -f xapian$tclshlibext
    1515exit $rc