ac-macros

Checkout Tools
  • last updated 5 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
configure: Add new option to specify path to swig bindings targets

Before this commit, it was not possible to use distinct Python

installations for the build system and test suite on the one hand,

and for building language bindings against on the other hand.

So we introduce new variable "SWIG_PY_PYTHON" for a target of

the SWIG Python bindings and a configure option to specify it.

Also, for the symmetry we introduce "SWIG_PL_PERL" and

"SWIG_RB_RUBY" for the Perl and Ruby SWIG bindings, and options

to specify them.

* configure.ac ():

- Use variables "SWIG_PL_PERL", "SWIG_PY_PYTHON", "SWIG_RB_RUBY" for

targets of the SWIG Perl, Python, Ruby bindings instead of "PERL",

"PYTHON", "RUBY".

- Introduce --with-swig-perl, --with-swig-python, --with-swig-ruby

options for setting variables "SWIG_PL_PERL", "SWIG_PY_PYTHON",

"SWIG_RB_RUBY".

* Makefile.in, build/ac-macros/swig.m4 ():

Use variables "SWIG_PL_PERL", "SWIG_PY_PYTHON", "SWIG_RB_RUBY" for

targets of the SWIG Perl, Python, Ruby bindings instead of "PERL",

"PYTHON", "RUBY".

* subversion/bindings/swig/INSTALL

(BUILDING SWIG BINDINGS FOR SVN ON UNIX step 2):

- Describe how to specify the path to the target language interpreters

with the new options, instead of using environment variables.

- Fix the name of glue libraries.

Review by: danielsh

  1. … 3 more files in changeset.
Avoid check for SWIG version for Python bindings when --witout-swig is passed.

* build/ac-macros/swig.m4 (SVN_FIND_SWIG):

Found by: brane

Review by: cmpilato

jamessan

Remove incorrect include paths from svn_cv_ruby_includes.

Files under ruby/ and ruby/backward/ should be included using "#include

<ruby/...>", if needed, instead of adding those directories to the include

path.

* build/ac-macros/swig.m4

(SVN_FIND_SWIG): Remove "-I$rbconfig_rubyhdrdir/ruby

-I$rbconfig_rubyhdrdir/ruby/backward"

* build/ac-macros/utf8proc.m4

(SVN_UTF8PROC): When --with-utf8proc was not given, or given without an

argument, and utf8proc was not found, have the error message suggest

using --with-utf8proc=internal.

Found by: gstein

Support building with SWIG 4 on Python 3.x

* build/ac-macros/swig.m4

(SVN_FIND_SWIG): Allow building with SWIG 4+, and add -modern option

when Python 3 and SWIG 3.x are detected.

* subversion/bindings/swig/include/proxy.py

Use _get_instance_attr and _set_instance_attr.

* subversion/bindings/swig/include/proxy.swg

(_get_instance_attr): New function to get an instance attribute

without metadata for new-style and old-style classes.

(_set_instance_attr): New function to set an instance attribute for

new-style and old-style classes.

* subversion/bindings/swig/INSTALL

(BUILDING SWIG BINDINGS FOR SVN ON UNIX, Step 1): Update supported

SWIG versions for Python 3 bindings (remove the note that SWIG 4+

is not supported).

Patch by: Jun Omae <jun66j5_{AT}_gmail.com>

Review by: brane

futatuki

julianfoad

  1. … 3 more files in changeset.
Restrict SWIG version for Python bindings

* Makefile.in (copy-swig-py:):

Make symbolic links to C extension modules in build/test directory

(for check-swig-py with SWIG 3.0.9 and SWIG 4.0 or later)

* build/ac-macros/swig.m4:

Add SWIG version check for Python 2 and Python 3 to check its version

is suitable for Python bindings, and to set up appropriate SWIG option.

Review by: hartmannathan

* subversion/bindings/swig/INSTALL

(BUILDING SWIG BINDINGS FOR SVN ON UNIX, Step1):

- Add description that SWIG installation is optional.

- Update suitable SWIG version information per language bindings.

(BUILDING SWIG BINDINGS FOR SVN ON UNIX, Step1a): Fold long line.

(USING SWIG BINDINGS, Python): Update URLs for ViewVC and Trac.

  1. … 2 more files in changeset.
Merge the swig-py3 branch to trunk.
  1. … 60 more files in changeset.
Get rid of apr_int64_t format string check in swig py configure.

This check relied on APR implementation details and broke with APR 1.7.0.

Rather than trying to guess a perfect format string to use, just use the

largest possible format and cast the argument accordingly.

Should fix build against APR 1.7.0 and later.

Suggested by: brane

* build/ac-macros/swig.m4: Remove code related to SVN_APR_INT64_T_PYCFMT.

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c

(svn_swig_py_client_blame_receiver_func): Stop relying on the

SVN_APR_INT64_T_PYCFMT constant from configure. Use "L" and

acast to PY_LONG_LONG instead.

  1. … 1 more file in changeset.
Switch all SVN++ tests to Boost.Test.

* build/ac-macros/ax_boost_unit_test_framework.m4: New; imported from the Autoconf Archive.

* LICENSE: Add entry for ax_boost_unit_test_framework.m4.

* aclocal.m4: Include ax_boost_unit_test_framework.m4.

* Makefile.in

(BOOST_TEST_CPPFLAGS): Rename from BOOST_CPPFLAGS, redefine.

(BOOST_TEST_LDFLAGS): Rename from BOOST_LDFLAGS, redefine.

(COMPILE_SVNXX): Rename from COMPILE_SVNXX_CXX, redefine.

(COMPILE_SVNXX_TEST): Rename from COMPILE_SVNXX_CXX_BOOST, redefine.

(LINK_SVNXX_TEST): Rename from LINK_CXX_BOOST, redefine.

* build.conf

(libsvnxx, svnxx-tests): Update compile and link commands.

* configure.ac: Update SVN++ bits.

* subversion/bindings/cxx/src/aprwrap/array.hpp:

Add comments to mark obsolete constructs that should change to C++11 idiom.

* subversion/bindings/cxx/src/aprwrap/hash.hpp: Likewise.

* subversion/bindings/cxx/tests/cxxhl-tests.cpp.

* subversion/bindings/cxx/tests/test_aprwrap.cpp: Removed.

* subversion/bindings/cxx/tests/svnxx-tests.cpp,

* subversion/bindings/cxx/tests/fixture_initialize_apr.hpp,

* subversion/bindings/cxx/tests/test_aprwrap_array_helpers.hpp: New.

* subversion/bindings/cxx/tests/test_aprwrap_arrays.cpp,

* subversion/bindings/cxx/tests/test_aprwrap_const_arrays.cpp,

* subversion/bindings/cxx/tests/test_aprwrap_hashes.cpp,

* subversion/bindings/cxx/tests/test_aprwrap_pools.cpp: New; extracted from the

removed test_aprwrap.cpp and reworked for Boost.Test.

* subversion/bindings/cxx/tests/test_exceptions.cpp: Renamed from test_exception.cpp

and reworked for Boost.Test.

  1. … 18 more files in changeset.
Add optional dependency on the Boost C++ libraries for the SVN++ test suite.

* build/ac-macros/ax_boost_base.m4: New; imported from The Autoconf Archive.

* LICENSE, NOTICE: Document the license for ax_boost_base.m4.

* aclocal.m4: Inlcude build/ac-macros/ax_boost_base.m4

* build.conf

(options.private-includes): Add headers from subversion/bindings/cxx/tests.

(svnxx-tests): Declare test target for SVN++.

* configure.ac: Check for Boost availability.

* Makefile.in

(BOOST_CPPFLAGS, BOOST_LDFLAGS, SVN_HAVE_CXX_BOOST): New substitutions.

(COMPILE_SVNXX_CXX_BOOST, LINK_CXX_BOOST): New compile and link commands.

  1. … 6 more files in changeset.
Switch default C++ language level to C++11 on Unix.

- "Modern" C++ (C++11 and later) has become ubiquitous.

- We already need C++11 to compile the KWallet plugin.

- JavaHL compiles in C++11 mode, otherwise it would not build on Windows

with newer versions of MSVC.

- Our core code is not affected at all.

* configure.ac: Display the C and C++ language level flags.

* build/ac-macros/compiler.m4

(SVN_CXX_MODE_SETUP): Switch to C++11.

(SVN_CXX_MODE_SETUP11): Remove; it's now obsolete.

* build/ac-macros/kwallet.m4

(SVN_LIB_KWALLET): Remove reference to SVN_CXX_MODE_SETUP11.

* subversion/bindings/javahl/native/RemoteSession.cpp

(compare_c_strings::operator()): Make this method const to avoid a warning.

  1. … 2 more files in changeset.
Make only libsvn_subr directly depend on some macOS frameworks.

The comment in build/ac-macros/macosx.m4, which said that libtool 1.5.x

doesn't track transitive dependencies for macOS frameworks, has not been

true since libtlool-1.5.24.

Consequently, take the daring step of updating the requred libtool

version to 2.0, which is (*gasp!*) only 11 years old.

* Makefile.in

(SVN_MACOS_PLIST_LIBS, SVN_MACOS_KEYCHAIN_LIBS): New variables.

* build.conf

(macos-plist, macos-keychain): New external libraries.

(libsvn_subr): Links with macos-plist and macos-keychain.

* build/ac-macros/macosx.m4

(SVN_LIB_MACOS_PLIST): Remove obsolete comment.

Do not update LIBS, define SVN_MACOS_PLIST_LIBS instead.

(SVN_LIB_MACOS_KEYCHAIN): As above, but for SVN_MACOS_KEYCHAIN_LIBS.

* build/buildcheck.sh:

(LIBTOOL_WANTED_MAJOR, LIBTOOL_WANTED_MINOR, LIBTOOL_WANTED_VERSION): Update.

Remove the special version check for libtool on Solaris.

  1. … 3 more files in changeset.
Fix search for Serf via pkg-config when the include directory contains '-D'.

* build/ac-macros/serf.m4

(SVN_SERF_PKG_CONFIG): Use "pkg-config --cflags-only-I".

Patch by: Ian Miller

Fixes #4670

* build/ac-macros/swig.m4

(SVN_FIND_SWIG): Warn on the combination of swig-3.0.8 --with-ruby due to

a known issue.

Bump minimum JDK version required for JavaHL to 1.8, in preparation for the

changes needed to support Java 10

* subversion/bindings/javahl/README

(): Update JDK version requirements.

* configure.ac

(JAVA_OLDEST_WORKING_VER): Set to 1.8

* build/ac-macros/java.m4

(SVN_FIND_JDK): Set Java source version to 1.8.

* build/generator/gen_win.py

(get_proj_sources): Set Java source and target version to 1.8.

  1. … 3 more files in changeset.
Fixes libsvn_auth_gnome_keyring.pc when configured with libsecret, and

make dependencies private.

* configure.ac, build/ac-macros/libsecret.m4:

Set SVN_GNOME_KEYRING_PCLIBS to libsecret/gnome-keyring as appropriate.

* build.conf (gnome-keyring):

Substitute SVN_GNOME_KEYRING_PCLIBS as private deps of

libsvn_auth_gnome_keyring in generated pkg-config file.

Reviewed by: philip

  1. … 2 more files in changeset.
LZ4 and UTF8PROC are build requirements and so attempts to disable them

via configure options such as --without-lz4 should result in an error.

* build/ac-macros/lz4.m4

(SVN_LZ4): Produce an error if disabled.

* build/ac-macros/utf8proc.m4:

(SVN_UTF8PROC): Produce an error if disabled.

* build/ac-macros/swig.m4: Revert r1751167, since it broke use of pre-generated

Swig bindings in release builds.

Update our copies of APR utility files to those in our recommended APR version.
  1. … 1 more file in changeset.
* build/ac-macros/swig.m4: Filter standard library directories from

SWIG_PL_LINK, as already done for the other swig bindings.

Don't use a prefix of "yes" for lz4/utf8proc detection

The --with-{lz4,utf8proc} configure switches have 3 supported uses

(--with-<lib>, --with-<lib>=internal, --with-<lib>=PREFIX). Using

"--with-<lib>" was setting the prefix to "yes", when it should have

been using the "std" detection.

* build/ac-macros/lz4.m4

(SVN_LZ4): Correctly set lz4_prefix with "--with-lz4"

* build/ac-macros/utf8proc.m4

(SVN_UTF8PROC): Correctly set utf8proc_prefix with "--with-utf8proc"

Bump minimum lz4 version to r129 for LZ4_compress_default

* INSTALL

(C.22.LZ4): Bump minimum version to r129

* build/ac-macros/lz4.m4

(SVN_LZ4, SVN_LZ4_STD): Bump minimum version to r129

(SVN_LZ4_STD, SVN_LZ4_PREFIX): Check for LZ4_compress_default symbol

  1. … 1 more file in changeset.
Lower minimum required version of LZ4 to r120

* INSTALL

(C.22.LZ4): Change minimum version to r120

* build/ac-macros/lz4.m4

(SVN_LZ4): Change minimum version in "not found" error message to r120

(SVN_LZ4_STD): Adjust version check to handle both version schemes and use

120 as the minimum version. Replace check for LZ4_versionString symbol

with LZ4_versionNumber.

(SVN_LZ4_PREFIX): Replace check for LZ4_decompress_safe symbol with

LZ4_versionNumber.

  1. … 1 more file in changeset.
Follow-up to r1803127, improve system lz4 version detection

* build/ac-macros/lz4.m4

(SVN_LZ4_STD): Check for 1.7.5 version with pkg-config,

remove AC_MSG_RESULT from AC_CHECK_LIB, add missing "no",

check for LZ4_versionString in fallback, fall back correctly

* INSTALL: note versions and configure options

  1. … 1 more file in changeset.
Follow-up to r1803210, remove extra "yes" in utf8proc configure output

* build/ac-macros/utf8proc.m4: Remove AC_MSG_RESULT from AC_CHECK_LIB

Build against the system utf8proc library by default instead of the

internal copy of the utf8proc code. Add --with-utf8proc=PREFIX|internal

to allow the user to specify either where to find utf8proc or that the

internal copy be used. The Windows build will continue to use the

internal utf8proc code.

* build/ac-macros/utf8proc.m4: New.

* aclocal.m4: Include utf8proc.m4.

* configure.ac: Call SVN_UTF8PROC.

* Makefile.in

(SVN_UTF8PROC_LIBS, SVN_UTF8PROC_INCLUDES): New.

* build.conf

(libsvn_subr): Add utf8proc to link.

(utf8proc): New.

* subversion/libsvn_subr/utf8proc/utf8proc.h: Rename to ...

* subversion/libsvn_subr/utf8proc/utf8proc_internal.h: ... this.

* subversion/libsvn_subr/utf8proc/utf8proc.c: Include svn_private_config.h

and utf8proc_internal.h, protect with SVN_INTERNAL_UTF8PROC.

* subversion/libsvn_subr/utf8proc.c: Include system utf8proc.h or internal

utf8proc.c.

* subversion/svn_private_config.hw: Define SVN_INTERNAL_UTF8PROC to

enable internal copy of utf8proc.

* subversion/tests/libsvn_subr/utf-test.c

(test_utf_fuzzy_escape): Allow for small output difference between

utf8proc 1.x and 2.x.

  1. … 10 more files in changeset.
Build against the system LZ4 library by default instead of the

internal copy of the LZ4 code. Add --with-lz4=PREFIX|internal

to allow the user to specify either where to find LZ4 or that

the internal copy be used. The Windows build will continue to

use the internal LZ4 code.

* build/ac-macros/lz4.m4: New.

* aclocal.m4: Include lz4.m4.

* configure.ac: Call SVN_LZ4.

* Makefile.in

(SVN_LZ4_LIBS, SVN_LZ4_INCLUDES): New.

* build.conf

(libsvn_subr): Add lz4 to link.

(lz4): New.

* subversion/libsvn_subr/lz4/lz4.h: Rename to ...

* subversion/libsvn_subr/lz4/lz4internal.h: ... this, include

svn_private_config.h, protect with SVN_INTERNAL_LZ4.

* subversion/libsvn_subr/lz4/lz4.c: Include svn_private_config.h and

lz4internal.h, protect with SVN_INTERNAL_LZ4.

* subversion/libsvn_subr/compress.c: Include system lz4.h or lz4internal.h.

* subversion/svn_private_config.hw: Define SVN_INTERNAL_LZ4 to

enable internal copy of LZ4.

  1. … 9 more files in changeset.
Add --with-kwallet=INCDIR:LIBDIR to support KDE5 on platforms that do

not provide kf5-config. On FreeBSD 11 I can build with KDE5 using

--with-kwallet=/usr/local/include:/usr/local/lib.

* build/ac-macros/kwallet.m4: Add optional =INCDIR:LIBDIR.

Reinstate the compiler flag part of r1802536 as clang 3.8 requires it.

* build/ac-macros/kwallet.h: Set --std=c++11 if available.

Revert r1802536, the change from kf5-config to qtpaths breaks Fedora builds.

* build/ac-macros/kwallet.h: Revert.