#
# build.conf -- configuration information for building Subversion
#
######################################################################
#    Licensed to the Apache Software Foundation (ASF) under one
#    or more contributor license agreements.  See the NOTICE file
#    distributed with this work for additional information
#    regarding copyright ownership.  The ASF licenses this file
#    to you under the Apache License, Version 2.0 (the
#    "License"); you may not use this file except in compliance
#    with the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing,
#    software distributed under the License is distributed on an
#    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#    KIND, either express or implied.  See the License for the
#    specific language governing permissions and limitations
#    under the License.
######################################################################
#
# This file is processed by gen-make.py, creating build-outputs.mk
#

# ----------------------------------------------------------------------------
#
# PREDEFINED SECTION
#
# This [options] section is global in scope, providing information to the
# process, rather than defining a build target, as all other sections do.
#

[options]
includes = subversion/include/*.h
include-wildcards = *.h *.i *.swg
private-includes =
        subversion/include/private/*.h
        subversion/bindings/swig/include/*.swg
        subversion/libsvn_delta/compose_delta.c
        subversion/bindings/cxx/include/*.hpp
        subversion/bindings/cxx/include/svnxx/*.hpp
        subversion/bindings/cxx/include/svnxx/client/*.hpp
        subversion/bindings/cxx/include/svnxx/detail/*.hpp
        subversion/bindings/cxx/src/*.hpp
        subversion/bindings/cxx/src/aprwrap/*.hpp
        subversion/bindings/cxx/src/private/*.hpp
        subversion/bindings/cxx/tests/*.hpp
        subversion/bindings/javahl/native/*.hpp
        subversion/bindings/javahl/native/jniwrapper/jni_*.hpp
        subversion/libsvn_subr/utf8proc/utf8proc_internal.h
        subversion/libsvn_subr/utf8proc/utf8proc.c
        subversion/libsvn_subr/utf8proc/utf8proc_data.c
        subversion/svn/filesize.c
private-built-includes =
        subversion/svn_private_config.h
        subversion/libsvn_fs_fs/rep-cache-db.h
        subversion/libsvn_fs_x/rep-cache-db.h
        subversion/libsvn_wc/wc-metadata.h
        subversion/libsvn_wc/wc-queries.h
        subversion/libsvn_wc/wc-checks.h
        subversion/libsvn_subr/internal_statements.h
        subversion/tests/libsvn_wc/wc-test-queries.h
        subversion/bindings/swig/proxy/swig_python_external_runtime.swg
        subversion/bindings/swig/proxy/swig_perl_external_runtime.swg
        subversion/bindings/swig/proxy/swig_ruby_external_runtime.swg
        subversion/bindings/swig/proxy/rubyhead.swg
        subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitItemStateFlags.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_NativeResources.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_Path.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNRepos.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNClient.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeInputStream.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeOutputStream.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Version.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LinkedLib.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LinkedLibIterator.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LoadedLib.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LoadedLibIterator.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RuntimeVersion.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Revision.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RevisionRangeList.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_UserPasswordCallback.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteSession.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteFactory.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_CommitEditor.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_StateReporter.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigImpl_Category.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigLib.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_util_DiffLib.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_util_PropLib.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_util_SubstLib.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_util_TunnelChannel.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_util_RequestChannel.h
        subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ResponseChannel.h

test-scripts =
        subversion/tests/cmdline/*_tests.py

bdb-test-scripts =

swig-python-opts = $(SWIG_FEATURES) $(SWIG_PY_OPTS) $(SWIG_PY_FEATURES)
swig-perl-opts = $(SWIG_FEATURES) -perl $(SWIG_PL_FEATURES) -nopm -noproxy
swig-ruby-opts = $(SWIG_FEATURES) -ruby $(SWIG_RB_FEATURES)
swig-languages = python perl ruby
swig-dirs = 
        subversion/bindings/swig/python
        subversion/bindings/swig/perl
        subversion/bindings/swig/ruby
        subversion/bindings/swig/proxy

swig-proxy-dir = subversion/bindings/swig/proxy
swig-checkout-files = common.swg swigrun.swg runtime.swg
                      ruby/rubydef.swg ruby/rubyhead.swg ruby/rubytracking.swg
                      perl5/perlrun.swg python/pyrun.swg python/python.swg

# ----------------------------------------------------------------------------
#
# BUILD TARGETS
#
# Target parameters:
#    description      - optional build target description
#    type             - the target type, defines how to build it
#    when             - the name of an autoconf-substed variable that muset be
#                       defined to either "true" or "false", that determines
#                       whether this target should be built and installed.
#    path             - relative path to target sources
#    sources          - explicit list of target sources
#    install          - the installation group/type
#    manpages         - the man pages associated with this target
#    libs             - libraries that this target depends on
#    nonlibs          - dependencies that are not linked into the target
#    lang             - bindings for language $(lang)
#    msvc-libs        - additional libraries to link with on Windows
#    msvc-export      - additional list of files to expose in dsp/vc(x)proj
#    msvc-static      - visual studio target produces only a static lib
#    add-deps         - expands to additional autoconf-defined dependencies
#    add-install-deps - like add-deps, but for the install step
#    external-lib     - expands to additional autoconf-defined libs
#    external-project - visual studio project to depend on
#

# The subversion command-line client
[svn]
description = Subversion Client
type = exe
path = subversion/svn
libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff libsvn_subr
       apriconv apr
manpages = subversion/svn/svn.1
install = bin
msvc-libs = wsetargv.obj

# The subversion repository administration tool
[svnadmin]
description = Subversion Repository Administrator
type = exe
path = subversion/svnadmin
install = bin
manpages = subversion/svnadmin/svnadmin.1
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr
msvc-libs = wsetargv.obj

# The subversion repository dump filtering tool
[svndumpfilter]
description = Subversion Dumpfile Filter
type = exe
path = subversion/svndumpfilter
install = bin
manpages = subversion/svndumpfilter/svndumpfilter.1
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr

# The subversion repository inspection tool
[svnlook]
description = Subversion Repository Browser
type = exe
path = subversion/svnlook
install = bin
manpages = subversion/svnlook/svnlook.1
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_diff libsvn_subr apriconv apr

[svnserve]
description = Subversion Server
type = exe
path = subversion/svnserve
install = bin
manpages = subversion/svnserve/svnserve.8 subversion/svnserve/svnserve.conf.5
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr libsvn_ra_svn
       apriconv apr aprutil sasl
msvc-libs = advapi32.lib ws2_32.lib

[svnsync]
description = Subversion repository replicator
type = exe
path = subversion/svnsync
libs = libsvn_ra libsvn_delta libsvn_subr apr
install = bin
manpages = subversion/svnsync/svnsync.1

[svnversion]
description = Subversion Revision Extractor
type = exe
path = subversion/svnversion
libs = libsvn_wc libsvn_subr apriconv apr
install = bin
manpages = subversion/svnversion/svnversion.1

[svnrdump]
description = Subversion remote repository dumper and loader
type = exe
path = subversion/svnrdump
libs = libsvn_client libsvn_ra libsvn_repos libsvn_delta libsvn_subr aprutil apr
install = bin
manpages = subversion/svnrdump/svnrdump.1

[svnmucc]
description = Subversion Multiple URL Command Client
type = exe
path = subversion/svnmucc
libs = libsvn_client libsvn_ra libsvn_subr libsvn_delta apriconv apr
install = bin
manpages = subversion/svnmucc/svnmucc.1

# Support for GNOME Keyring
[libsvn_auth_gnome_keyring]
description = Subversion GNOME Keyring Library
type = shared-only-lib
install = gnome-keyring-lib
path = subversion/libsvn_auth_gnome_keyring
libs = libsvn_subr apr gnome-keyring

# Support for KWallet
[libsvn_auth_kwallet]
description = Subversion KWallet Library
type = shared-only-cxx-lib
install = kwallet-lib
path = subversion/libsvn_auth_kwallet
libs = libsvn_subr apr kwallet
link-cmd = $(LINK_CXX_LIB)

# Library needed by all subversion clients
[libsvn_client]
description = Subversion Client Library
type = lib
path = subversion/libsvn_client
libs = libsvn_wc libsvn_ra libsvn_delta libsvn_diff libsvn_subr apriconv apr
install = lib
msvc-export = svn_client.h private/svn_client_mtcc.h private/svn_client_private.h
              private/svn_client_shelf.h private/svn_client_shelf2.h
              ../libsvn_client/mergeinfo.h ../libsvn_client/client.h

# Routines for binary diffing and tree-deltas
[libsvn_delta]
description = Subversion Delta Library
type = lib
install = fsmod-lib
path = subversion/libsvn_delta
libs = libsvn_subr aprutil apriconv apr zlib
msvc-export = svn_delta.h private/svn_editor.h private/svn_delta_private.h

# Routines for diffing
[libsvn_diff]
description = Subversion Diff Library
type = lib
path = subversion/libsvn_diff
libs = libsvn_subr apriconv apr zlib
install = lib
msvc-export = svn_diff.h private/svn_diff_private.h private/svn_diff_tree.h

# The repository filesystem library
[libsvn_fs]
description = Subversion Repository Filesystem Library
type = lib
path = subversion/libsvn_fs
install = ramod-lib
libs = libsvn_fs_util libsvn_delta libsvn_subr fs-libs aprutil apr
# conditionally add more dependencies
add-deps = $(SVN_FS_LIB_DEPS)
add-install-deps = $(SVN_FS_LIB_INSTALL_DEPS)
msvc-export = svn_fs.h private/svn_fs_private.h

[libsvn_fs_base]
description = Subversion Filesystem Base Library
type = fs-module
path = subversion/libsvn_fs_base
sources = *.c bdb/*.c util/*.c
install = bdb-lib
libs = libsvn_delta libsvn_subr aprutil apriconv apr bdb libsvn_fs_util
add-install-deps = $(SVN_FS_LIB_INSTALL_DEPS)
msvc-export = ../libsvn_fs_base/fs_init.h ../libsvn_fs_base/fs.h
              ../libsvn_fs_base/id.h ../libsvn_fs_base/key-gen.h
              ../libsvn_fs_base/lock.h ../libsvn_fs_base/trail.h
              ../libsvn_fs_base/util/fs_skels.h ../libsvn_fs_base/bdb/changes-table.h
              ../libsvn_fs_base/bdb/txn-table.h ../libsvn_fs_base/bdb/nodes-table.h
              ../libsvn_fs_base/bdb/strings-table.h ../libsvn_fs_base/bdb/reps-table.h
msvc-delayload = yes

[libsvn_fs_fs]
description = Subversion FSFS Repository Filesystem Library
type = fs-module
path = subversion/libsvn_fs_fs
install = fsmod-lib
libs = libsvn_delta libsvn_subr aprutil apriconv apr libsvn_fs_util
msvc-export = private/svn_fs_fs_private.h ../libsvn_fs_fs/fs_init.h
              ../libsvn_fs_fs/fs_fs.h ../libsvn_fs_fs/fs.h
              ../libsvn_fs_fs/id.h ../libsvn_fs_fs/index.h
              ../libsvn_fs_fs/low_level.h ../libsvn_fs_fs/pack.h
              ../libsvn_fs_fs/rep-cache.h ../libsvn_fs_fs/rev_file.h
              ../libsvn_fs_fs/util.h
msvc-delayload = yes
msvc-libs = ws2_32.lib

[libsvn_fs_x]
description = Subversion FSX Repository Filesystem Library
type = fs-module
path = subversion/libsvn_fs_x
install = fsmod-lib
libs = libsvn_delta libsvn_subr aprutil apriconv apr libsvn_fs_util
msvc-export = ../libsvn_fs_x/fs_init.h ../libsvn_fs_x/batch_fsync.h
              ../libsvn_fs_x/fs_init.h ../libsvn_fs_x/fs_x.h ../libsvn_fs_x/fs.h
              ../libsvn_fs_x/hotcopy.h ../libsvn_fs_x/reps.h ../libsvn_fs_x/string_table.h
msvc-delayload = yes
msvc-libs = ws2_32.lib

# Low-level grab bag of utilities
[libsvn_fs_util]
description = Subversion Filesystem Utility Library
type = lib
install = fsmod-lib
path = subversion/libsvn_fs_util
libs = libsvn_subr aprutil apriconv apr
msvc-libs = advapi32.lib shfolder.lib
msvc-export = private/svn_fs_util.h

# General API for accessing repositories
[libsvn_ra]
description = Subversion General Repository Access Library
type = lib
path = subversion/libsvn_ra
libs = libsvn_delta libsvn_subr ra-libs apriconv apr aprutil
# conditionally add more dependencies
add-deps = $(SVN_RA_LIB_DEPS)
add-install-deps = $(SVN_RA_LIB_INSTALL_DEPS)
install = lib
msvc-export = svn_ra.h private/svn_ra_private.h
msvc-delayload = yes

# Accessing repositories via DAV through serf
[libsvn_ra_serf]
description = Subversion HTTP/WebDAV Protocol Repository Access Library
type = ra-module
path = subversion/libsvn_ra_serf
install = serf-lib
libs = libsvn_delta libsvn_subr aprutil apriconv apr serf zlib
add-install-deps = $(SVN_FS_LIB_INSTALL_DEPS)
msvc-static = yes
msvc-export = ../libsvn_ra_serf/ra_init.h ../libsvn_ra_serf/ra_serf.h

# Accessing repositories via SVN
[libsvn_ra_svn]
description = Subversion SVN Protocol Repository Access Library
type = ra-module
path = subversion/libsvn_ra_svn
install = ramod-lib
libs = libsvn_delta libsvn_subr aprutil apriconv apr sasl
msvc-static = yes
msvc-export = ../libsvn_ra_svn/ra_init.h svn_ra_svn.h private/svn_ra_svn_private.h

# Accessing repositories via direct libsvn_fs
[libsvn_ra_local]
description = Subversion Local Repository Access Library
type = ra-module
path = subversion/libsvn_ra_local
install = ramod-lib
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr
msvc-static = yes
msvc-export = ../libsvn_ra_local/ra_init.h ../libsvn_ra_local/ra_local.h

# Routines built on top of libsvn_fs
[libsvn_repos]
description = Subversion Repository Library
type = lib
path = subversion/libsvn_repos
install = ramod-lib
libs = libsvn_fs libsvn_delta libsvn_subr apriconv apr
msvc-export = svn_repos.h  private/svn_repos_private.h ../libsvn_repos/authz.h

# Low-level grab bag of utilities
[libsvn_subr]
description = Subversion General Utility Library
type = lib
install = fsmod-lib
path = subversion/libsvn_subr
sources = *.c lz4/*.c
libs = aprutil apriconv apr xml zlib apr_memcache
       sqlite magic intl lz4 utf8proc macos-plist macos-keychain
msvc-libs = kernel32.lib advapi32.lib shfolder.lib ole32.lib
            crypt32.lib version.lib ws2_32.lib
msvc-export = 
        svn_auth.h svn_base64.h svn_cache_config.h svn_checksum.h svn_cmdline.h
        svn_compat.h svn_config.h svn_ctype.h svn_dirent_uri.h svn_dso.h 
        svn_error.h svn_hash.h svn_io.h svn_iter.h svn_md5.h svn_mergeinfo.h 
        svn_nls.h svn_opt.h svn_path.h svn_pools.h svn_props.h svn_quoprint.h 
        svn_sorts.h svn_string.h svn_subst.h svn_time.h svn_types.h svn_user.h
        svn_utf.h svn_version.h svn_xml.h svn_x509.h
        private/svn_atomic.h private/svn_cache.h private/svn_cmdline_private.h
        private/svn_debug.h private/svn_error_private.h private/svn_fspath.h
        private/svn_log.h private/svn_mergeinfo_private.h
        private/svn_opt_private.h private/svn_skel.h private/svn_sqlite.h
        private/svn_utf_private.h private/svn_eol_private.h
        private/svn_token.h  private/svn_adler32.h
        private/svn_temp_serializer.h private/svn_io_private.h
        private/svn_sorts_private.h private/svn_auth_private.h
        private/svn_string_private.h private/svn_magic.h
        private/svn_subr_private.h private/svn_mutex.h  private/svn_task.h
        private/svn_thread_cond.h private/svn_waitable_counter.h
        private/svn_packed_data.h private/svn_object_pool.h private/svn_cert.h
        private/svn_config_private.h private/svn_dirent_uri_private.h
        private/svn_xml_private.h ../libsvn_subr/crypto.h

# Working copy management lib
[libsvn_wc]
description = Subversion Working Copy Library
type = lib
path = subversion/libsvn_wc
libs = libsvn_delta libsvn_diff libsvn_subr aprutil apriconv apr
install = lib
msvc-export = svn_wc.h private/svn_wc_private.h ../libsvn_wc/conflicts.h
              ../libsvn_wc/lock.h ../libsvn_wc/token-map.h
              ../libsvn_wc/tree_conflicts.h ../libsvn_wc/wc_db_private.h
              ../libsvn_wc/wc_db.h ../libsvn_wc/wc-queries.h
              ../libsvn_wc/wc.h ../libsvn_wc/workqueue.h
# Subversion plugin for Apache's mod_dav
[mod_dav_svn]
description = Subversion plug-in for the Apache DAV module
when = INSTALL_APACHE_MODS
type = apache-mod
path = subversion/mod_dav_svn
sources = *.c reports/*.c posts/*.c
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr libhttpd mod_dav
nonlibs = apr aprutil
install = apache-mod

[mod_authz_svn]
description = Subversion path-based authorization module for Apache
when = INSTALL_APACHE_MODS
type = apache-mod
path = subversion/mod_authz_svn
nonlibs = mod_dav_svn apr aprutil
libs = libsvn_repos libsvn_subr libhttpd
install = apache-mod

[mod_dontdothat]
description = Apache Httpd module to block certain kinds of Apache Subversion requests
when = INSTALL_APACHE_MODS
type = apache-mod
path = tools/server-side/mod_dontdothat
nonlibs = mod_dav_svn apr aprutil
libs = libsvn_subr libhttpd
install = tools

# The Subversion FSFS repository manipulation tool
[svnfsfs]
description = Subversion FSFS Repository Manipulation Tool
type = exe
path = subversion/svnfsfs
install = bin
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr
msvc-libs = ws2_32.lib

# ----------------------------------------------------------------------------
#
# CONSTRUCTED HEADERS
#

[rep_cache_fs_fs]
description = Schema for the FSFS rep-sharing feature
type = sql-header
path = subversion/libsvn_fs_fs
sources = rep-cache-db.sql

[rep_cache_fs_x]
description = Schema for the FSX rep-sharing feature
type = sql-header
path = subversion/libsvn_fs_x
sources = rep-cache-db.sql

[wc_queries]
description = Queries on the WC database
type = sql-header
path = subversion/libsvn_wc
sources = wc-queries.sql

[subr_sqlite]
description = Internal statements for SQLite interface
type = sql-header
path = subversion/libsvn_subr
sources = internal_statements.sql

[wc_test_queries]
description = Queries using working copy tests
type = sql-header
path = subversion/tests/libsvn_wc
sources = wc-test-queries.sql

# ----------------------------------------------------------------------------
#
# TARGETS FOR I18N SUPPORT
#
[locale]
type = i18n
path = subversion/po
install = locale
external-project = svn_locale

# ----------------------------------------------------------------------------
#
# TARGETS FOR SWIG SUPPORT
#

[swig_core]
type = swig
path = subversion/bindings/swig
sources = core.i
libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
       libsvn_diff libsvn_subr apr
description = Subversion core library bindings

[swig_client]
type = swig
path = subversion/bindings/swig
sources = svn_client.i
libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
       libsvn_client libsvn_subr apr
nonlibs = swig_core
description = Subversion client library bindings

[swig_delta]
type = swig
path = subversion/bindings/swig
sources = svn_delta.i
libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
       libsvn_delta libsvn_subr apr
nonlibs = swig_core
description = Subversion delta library bindings

[swig_diff]
type = swig
path = subversion/bindings/swig
sources = svn_diff.i
libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
       libsvn_diff libsvn_subr apr
nonlibs = swig_core
description = Subversion diff library bindings

[swig_fs]
type = swig
path = subversion/bindings/swig
sources = svn_fs.i
libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
       libsvn_fs libsvn_subr apr
nonlibs = swig_core
description = Subversion FS library bindings

[swig_ra]
type = swig
path = subversion/bindings/swig
sources = svn_ra.i
libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
       libsvn_ra libsvn_subr apr
nonlibs = swig_core
description = Subversion RA library bindings

[swig_repos]
type = swig
path = subversion/bindings/swig
sources = svn_repos.i
libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
       libsvn_repos libsvn_subr apr
nonlibs = swig_core
description = Subversion repository library bindings

[swig_wc]
type = swig
path = subversion/bindings/swig
sources = svn_wc.i
libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
       libsvn_wc libsvn_subr apr
nonlibs = swig_core
description = Subversion WC library bindings

# SWIG utility library for Python modules
[libsvn_swig_py]
type = swig_lib
lang = python
path = subversion/bindings/swig/python/libsvn_swig_py
libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr
       apriconv apr python swig
link-cmd = $(LINK)
install = swig-py-lib
# need special build rule to include -DSWIGPYTHON
compile-cmd = $(COMPILE_SWIG_PY)
msvc-static = no
msvc-export = ../bindings/swig/python/libsvn_swig_py/swigutil_py.h
description = Subversion utility library for Python bindings

# SWIG utility library for Perl modules
[libsvn_swig_perl]
type = swig_lib
lang = perl
path = subversion/bindings/swig/perl/libsvn_swig_perl
libs = libsvn_delta libsvn_subr apriconv apr perl swig
install = swig-pl-lib
# need special build rule to include
compile-cmd = $(COMPILE_SWIG_PL)
msvc-static = no
msvc-export = ../bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h

# SWIG utility library for Ruby modules
[libsvn_swig_ruby]
type = swig_lib
lang = ruby
path = subversion/bindings/swig/ruby/libsvn_swig_ruby
libs = libsvn_client libsvn_wc libsvn_delta libsvn_subr apriconv apr ruby swig
link-cmd = $(LINK) $(SWIG_RB_LIBS)
install = swig-rb-lib
# need special build rule to include
compile-cmd = $(COMPILE_SWIG_RB)
msvc-static = no
msvc-export = ../bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h

# ----------------------------------------------------------------------------
#
# JavaHL targets
#
[javahl-java]
type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl
sources = *.java
native = CommitItemStateFlags.java NativeResources.java SVNClient.java
         SVNRepos.java
install = javahl-java
add-install-deps = $(JAVAHL_JAR)
link-cmd = $(COMPILE_JAVAHL_JAVAC)
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl

[javahl-compat-java]
type = java
path = subversion/bindings/javahl/src/org/tigris/subversion/javahl
sources = *.java
install = javahl-compat-java
add-install-deps = $(JAVAHL_JAR)
link-cmd = $(COMPILE_JAVAHL_COMPAT_JAVAC)
classes = subversion/bindings/javahl/classes
add-deps = $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS)
           $(javahl_types_java_DEPS) $(javahl_util_java_DEPS)
           $(javahl_java_DEPS)
### Replace JAR call in INSTALL_EXTRA_JAVAHL_JAVA macro Makefile.in.
#jar = svn-javahl.jar
package = org.tigris.subversion.javahl

[javahl-tests]
type = java
path = subversion/bindings/javahl/tests/org/apache/subversion/javahl
sources = *.java
install = javahl-tests
add-install-deps = $(JAVAHL_JAR)
link-cmd = $(COMPILE_JAVAHL_JAVAC)
classes = subversion/bindings/javahl/classes
package = org.apache.subversion.javahl
### Java targets don't do up-to-date checks yet.
#add-deps = javahl-java
add-deps = $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS)
           $(javahl_types_java_DEPS) $(javahl_util_java_DEPS)
           $(javahl_java_DEPS)

[javahl-compat-tests]
type = java
path = subversion/bindings/javahl/tests/org/tigris/subversion/javahl
sources = *.java
install = javahl-compat-tests
add-install-deps = $(JAVAHL_JAR)
link-cmd = $(COMPILE_JAVAHL_COMPAT_JAVAC)
classes = subversion/bindings/javahl/classes
package = org.tigris.subversion.javahl
### Java targets don't do up-to-date checks yet.
#add-deps = javahl-compat-java
add-deps = $(javahl_compat_java_DEPS)

[javahl-callback-java]
type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl/callback
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl.callback
sources = *.java
native = UserPasswordCallback.java
install = javahl-callback-java
add-install-deps = $(JAVAHL_JAR)
link-cmd = $(COMPILE_JAVAHL_JAVAC)

[javahl-remote-java]
type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl/remote
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl.remote
sources = *.java
native = CommitEditor.java RemoteFactory.java RemoteSession.java
         StateReporter.java
install = javahl-remote-java
add-install-deps = $(JAVAHL_JAR)
link-cmd = $(COMPILE_JAVAHL_JAVAC)

[javahl-types-java]
type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl/types
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl.types
sources = *.java
native = NativeInputStream.java NativeOutputStream.java Revision.java
         RevisionRangeList.java RuntimeVersion.java VersionExtended.java
         Version.java
install = javahl-types-java
add-install-deps = $(JAVAHL_JAR)
link-cmd = $(COMPILE_JAVAHL_JAVAC)

[javahl-util-java]
type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl/util
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl.util
sources = *.java
native = ConfigImpl.java ConfigLib.java DiffLib.java PropLib.java
         RequestChannel.java ResponseChannel.java SubstLib.java
         TunnelChannel.java
install = javahl-util-java
add-install-deps = $(JAVAHL_JAR)
link-cmd = $(COMPILE_JAVAHL_JAVAC)

[libsvnjavahl]
description = Subversion Java HighLevel binding
type = lib
path = subversion/bindings/javahl/native
libs = libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff 
       libsvn_subr libsvn_fs aprutil apriconv apr java-sdk
sources = *.cpp jniwrapper/*.cpp
add-deps = $(javahl_java_DEPS) $(javahl_callback_java_DEPS)
           $(javahl_remote_java_DEPS) $(javahl_types_java_DEPS)
           $(javahl_util_java_DEPS) $(javahl_java_DEPS)
install = javahl-lib
# need special build rule to include -I$(JDK)/include/jni.h
compile-cmd = $(COMPILE_JAVAHL_CXX)
link-cmd = $(LINK_JAVAHL_CXX)

# ----------------------------------------------------------------------------
#
# SVN++ targets
#

[libsvnxx]
description = Subversion C++ bindings
when = SVN_BUILD_SVNXX
type = lib
path = subversion/bindings/cxx
libs = libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff
       libsvn_subr libsvn_fs aprutil apriconv apr
sources = src/*.cpp src/aprwrap/*.cpp
install = svnxx-lib
msvc-static = yes
compile-cmd = $(COMPILE_SVNXX)
link-cmd = $(LINK_CXX_LIB)

[svnxx-tests]
description = Unit tests for Subversion C++ bindings
when = SVN_BUILD_SVNXX_TESTS
type = exe
path = subversion/bindings/cxx
libs = libsvnxx
       libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff
       libsvn_subr libsvn_fs aprutil apriconv apr
sources = tests/*.cpp
install = svnxx-tests
compile-cmd = $(COMPILE_SVNXX_TEST)
link-cmd = $(LINK_SVNXX_TEST)

# ----------------------------------------------------------------------------
#
# TESTING TARGETS
#

# general library:  our C testing framework
[libsvn_test]
type = lib
path = subversion/tests
install = test
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_wc libsvn_subr aprutil apriconv apr
msvc-static = yes
undefined-lib-symbols = yes

# ----------------------------------------------------------------------------
# Tests for libsvn_fs_base

[fs-base-test]
description = Tests for *public* fs API (svn_fs.h)
type = exe
path = subversion/tests/libsvn_fs_base
sources = fs-base-test.c
install = bdb-test
libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_base libsvn_delta
       libsvn_fs_util libsvn_subr apriconv apr

[strings-reps-test]
description = Test strings/reps in libsvn_fs_base
type = exe
path = subversion/tests/libsvn_fs_base
sources = strings-reps-test.c
install = bdb-test
libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_base libsvn_delta
       libsvn_subr apriconv apr

[changes-test]
description = Test changes in libsvn_fs_base
type = exe
path = subversion/tests/libsvn_fs_base
sources = changes-test.c
install = bdb-test
libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_base libsvn_delta
       libsvn_subr apriconv apr

# ----------------------------------------------------------------------------
# Tests for libsvn_fs_fs
[fs-fs-pack-test]
description = Test fsfs packing in libsvn_fs_fs
type = exe
path = subversion/tests/libsvn_fs_fs
sources = fs-fs-pack-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_fs libsvn_delta
       libsvn_subr apriconv apr

[fs-fs-fuzzy-test]
description = Use fuzzying to test FSFS corruption resilience
type = exe
path = subversion/tests/libsvn_fs_fs
sources = fs-fs-fuzzy-test.c
install = sub-test
libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_fs libsvn_delta
       libsvn_repos libsvn_subr apriconv apr

[fs-fs-private-test]
description = Test FSFS private API
type = exe
path = subversion/tests/libsvn_fs_fs
sources = fs-fs-private-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_fs libsvn_delta
       libsvn_repos libsvn_subr apriconv apr

# ----------------------------------------------------------------------------
# Tests for libsvn_fs_x
[fs-x-pack-test]
description = Test fsx packing in libsvn_fs_x
type = exe
path = subversion/tests/libsvn_fs_x
sources = fs-x-pack-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_x libsvn_delta
       libsvn_subr apriconv apr

[string-table-test]
description = Test fsfs string tables
type = exe
path = subversion/tests/libsvn_fs_x
sources = string-table-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_fs_x libsvn_subr apr

# ----------------------------------------------------------------------------
# Tests for libsvn_fs

[locks-test]
description = Test locks in libsvn_fs
type = exe
path = subversion/tests/libsvn_fs
sources = locks-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_fs libsvn_delta libsvn_subr apriconv apr

[fs-test]
description = Tests in libsvn_fs
type = exe
path = subversion/tests/libsvn_fs
sources = fs-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_fs libsvn_delta
       libsvn_fs_util libsvn_subr aprutil apriconv apr

[fs-sequential-test]
description = Tests in libsvn_fs run sequentially
type = exe
path = subversion/tests/libsvn_fs
sources = fs-sequential-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_fs libsvn_delta
       libsvn_fs_util libsvn_subr aprutil apriconv apr

# ----------------------------------------------------------------------------
# Tests for libsvn_repos

[authz-test]
description = Test authz parsing in libsvn_repos
type = exe
path = subversion/tests/libsvn_repos
sources = authz-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr

[repos-test]
description = Test delta editor in libsvn_repos
type = exe
path = subversion/tests/libsvn_repos
sources = repos-test.c dir-delta-editor.c
install = test
libs = libsvn_test libsvn_wc libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr

[dump-load-test]
description = Test dumping/loading repositories in libsvn_repos
type = exe
path = subversion/tests/libsvn_repos
sources = dump-load-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr

# ----------------------------------------------------------------------------
# Tests for libsvn_subr

[auth-test]
description = Test platform-specific auth provider access
type = exe
path = subversion/tests/libsvn_subr
sources = auth-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apr

[bit-array-test]
description = Test packed bit arrays
type = exe
path = subversion/tests/libsvn_subr
sources = bit-array-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apr

[cache-test]
description = Test in-memory cache
type = exe
path = subversion/tests/libsvn_subr
sources = cache-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apr

[checksum-test]
description = Test checksum functions
type = exe
path = subversion/tests/libsvn_subr
sources = checksum-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apr zlib

[compat-test]
description = Test compatibility functions
type = exe
path = subversion/tests/libsvn_subr
sources = compat-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apr

[config-test]
description = Test svn_config utilities
type = exe
path = subversion/tests/libsvn_subr
sources = config-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[crypto-test]
description = Test svn_crypto utilities
type = exe
path = subversion/tests/libsvn_subr
sources = crypto-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr aprutil apr

[dirent_uri-test]
description = Test dirent_uri library
type = exe
path = subversion/tests/libsvn_subr
sources = dirent_uri-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[error-test]
description = Test error library
type = exe
path = subversion/tests/libsvn_subr
sources = error-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[error-code-test]
description = Test error library
type = exe
path = subversion/tests/libsvn_subr
sources = error-code-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[hashdump-test]
description = Test hashfile format for props
type = exe
path = subversion/tests/libsvn_subr
sources = hashdump-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[io-test]
description = Test I/O Operations
type = exe
path = subversion/tests/libsvn_subr
sources = io-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[opt-test]
description = Test options library
type = exe
path = subversion/tests/libsvn_subr
sources = opt-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apr

[mergeinfo-test]
description = Test mergeinfo library
type = exe
path = subversion/tests/libsvn_subr
sources = mergeinfo-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apr

[packed-data-test]
description = Test path library
type = exe
path = subversion/tests/libsvn_subr
sources = packed-data-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[path-test]
description = Test path library
type = exe
path = subversion/tests/libsvn_subr
sources = path-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[prefix-string-test]
description = Test path library
type = exe
path = subversion/tests/libsvn_subr
sources = prefix-string-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[priority-queue-test]
description = Test path library
type = exe
path = subversion/tests/libsvn_subr
sources = priority-queue-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[revision-test]
description = Test revision library
type = exe
path = subversion/tests/libsvn_subr
sources = revision-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apr

[root-pools-test]
description = Test time functions
type = exe
path = subversion/tests/libsvn_subr
sources = root-pools-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[skel-test]
description = Test skels in libsvn_subr
type = exe
path = subversion/tests/libsvn_subr
sources = skel-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[spillbuf-test]
description = Test spillbuf in libsvn_subr
type = exe
path = subversion/tests/libsvn_subr
sources = spillbuf-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[stream-test]
description = Test stream library
type = exe
path = subversion/tests/libsvn_subr
sources = stream-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[string-test]
description = Test svn_stringbuf_t utilities
type = exe
path = subversion/tests/libsvn_subr
sources = string-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[sqlite-test]
description = Test stream library
type = exe
path = subversion/tests/libsvn_subr
sources = sqlite-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[task-test]
description = Test concurrent tasks
type = exe
path = subversion/tests/libsvn_subr
sources = task-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apr

[time-test]
description = Test time functions
type = exe
path = subversion/tests/libsvn_subr
sources = time-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[utf-test]
description = Test UTF-8 functions
type = exe
path = subversion/tests/libsvn_subr
sources = utf-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[subst_translate-test]
description = Test the svn_subst_translate* functions
type = exe
path = subversion/tests/libsvn_subr
sources = subst_translate-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[translate-test]
description = Test eol conversion and keyword substitution routines
type = exe
path = subversion/tests/libsvn_subr
sources = translate-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[x509-test]
description = Test x509 parser
type = exe
path = subversion/tests/libsvn_subr
sources = x509-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[xml-test]
description = Test XML parser in libsvn_subr
type = exe
path = subversion/tests/libsvn_subr
sources = xml-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr

[compress-test]
description = Test compression functions
type = exe
path = subversion/tests/libsvn_subr
sources = compress-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apr

# ----------------------------------------------------------------------------
# Tests for libsvn_delta

[random-test]
description = Use random data to test delta processing
type = exe
path = subversion/tests/libsvn_delta
sources = random-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_delta libsvn_subr apriconv apr

[window-test]
description = Test delta window generation
type = exe
path = subversion/tests/libsvn_delta
sources = window-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_delta libsvn_subr apriconv apr

[svndiff-stream-test]
description = Test svndiff streams
type = exe
path = subversion/tests/libsvn_delta
sources = svndiff-stream-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_delta libsvn_subr apriconv apr

# ----------------------------------------------------------------------------
# Tests for libsvn_client

[client-test]
description = Test low-level functionality in libsvn_client
type = exe
path = subversion/tests/libsvn_client
sources = client-test.c
install = test
libs = libsvn_test libsvn_client libsvn_wc libsvn_repos libsvn_ra libsvn_fs libsvn_delta libsvn_subr apriconv apr

[mtcc-test]
description = Test Multi Command Context
type = exe
path = subversion/tests/libsvn_client
sources = mtcc-test.c
install = test
libs = libsvn_test libsvn_client libsvn_wc libsvn_repos libsvn_ra libsvn_fs libsvn_delta libsvn_subr apriconv apr

[conflicts-test]
description = Test libsvn_client conflict resolver
type = exe
path = subversion/tests/libsvn_client
sources = conflicts-test.c ../libsvn_wc/utils.c
install = test
libs = libsvn_test libsvn_client libsvn_wc libsvn_repos libsvn_ra libsvn_fs libsvn_delta libsvn_subr apriconv apr

# ----------------------------------------------------------------------------
# Tests for libsvn_diff

[diff-diff3-test]
description = Test the diff/diff3 library
type = exe
path = subversion/tests/libsvn_diff
sources = diff-diff3-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_diff libsvn_subr apriconv apr

[parse-diff-test]
description = Test unidiff parsing
type = exe
path = subversion/tests/libsvn_diff
sources = parse-diff-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_diff libsvn_subr apriconv apr

# ----------------------------------------------------------------------------
# Tests for libsvn_ra

[ra-test]
description = Test a few things in libsvn_ra
type = exe
path = subversion/tests/libsvn_ra
sources = ra-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_ra libsvn_ra_svn libsvn_fs libsvn_delta libsvn_subr
       apriconv apr

# ----------------------------------------------------------------------------
# Tests for libsvn_ra_local

[ra-local-test]
description = Test a few things in libsvn_ra_local
type = exe
path = subversion/tests/libsvn_ra_local
sources = ra-local-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_ra_local libsvn_ra libsvn_fs libsvn_delta libsvn_subr
       apriconv apr

# ----------------------------------------------------------------------------
# Tests for libsvn_wc

[conflict-data-test]
description = Test the storage of tree conflict data
type = exe
path = subversion/tests/libsvn_wc
sources = conflict-data-test.c utils.c
install = test
libs = libsvn_client libsvn_test libsvn_wc libsvn_subr apriconv apr

[db-test]
description = Test the wc-ng database subsystem
type = exe
path = subversion/tests/libsvn_wc
sources = db-test.c utils.c
install = test
libs = libsvn_client libsvn_test libsvn_wc libsvn_subr apriconv apr

[pristine-store-test]
description = Test the wc-ng pristine text storage subsystem
type = exe
path = subversion/tests/libsvn_wc
sources = pristine-store-test.c utils.c
install = test
libs = libsvn_client libsvn_test libsvn_wc libsvn_subr apriconv apr

[entries-compat-test]
description = Test backwards compat for the entry interface
type = exe
path = subversion/tests/libsvn_wc
sources = entries-compat.c utils.c
install = test
libs = libsvn_client libsvn_test libsvn_wc libsvn_subr apriconv apr

[op-depth-test]
description = Test layered tree changes
type = exe
path = subversion/tests/libsvn_wc
sources = op-depth-test.c utils.c
install = test
libs = libsvn_client libsvn_test libsvn_wc libsvn_subr apriconv apr

[wc-queries-test]
description = Test Sqlite query evaluation
type = exe
path = subversion/tests/libsvn_wc
sources = wc-queries-test.c ../../libsvn_subr/sqlite3wrapper.c
install = test
libs = libsvn_test libsvn_wc libsvn_subr apriconv apr sqlite

[wc-test]
description = Test the main WC API functions
type = exe
path = subversion/tests/libsvn_wc
sources = wc-test.c utils.c
install = test
libs = libsvn_client libsvn_test libsvn_wc libsvn_subr apriconv apr

# ----------------------------------------------------------------------------
# Tests for the client's internal functions

[filesize-test]
description = Test conversion of file sizes to human-readable form
type = exe
path = subversion/tests/client
sources = filesize-test.c
install = test
libs = libsvn_client libsvn_test libsvn_wc libsvn_subr apriconv apr

# ----------------------------------------------------------------------------
# These are not unit tests at all, they are small programs that exercise
# parts of the libsvn_delta API from the command line.  They are stuck here
# because of some historical association with the test-suite, but should
# really be put somewhere else.

# test our textdelta encoding
[svndiff-test]
type = exe
path = subversion/tests/libsvn_delta
sources = svndiff-test.c
install = test
libs = libsvn_delta libsvn_subr apriconv apr
testing = skip

# compare two files, print txdelta windows
[vdelta-test]
type = exe
path = subversion/tests/libsvn_delta
sources = vdelta-test.c
install = test
libs = libsvn_delta libsvn_subr apriconv apr
testing = skip

[entries-dump]
type = exe
path = subversion/tests/cmdline
sources = entries-dump.c
install = test
libs = libsvn_wc libsvn_subr apriconv apr
testing = skip

[atomic-ra-revprop-change]
type = exe
path = subversion/tests/cmdline
sources = atomic-ra-revprop-change.c
install = test
libs = libsvn_ra libsvn_subr apriconv apr
testing = skip

[lock-helper]
type = exe
path = subversion/tests/cmdline
sources = lock-helper.c
install = test
libs = libsvn_fs libsvn_subr apriconv apr
testing = skip

[wc-lock-tester]
type = exe
path = subversion/tests/libsvn_wc
sources = wc-lock-tester.c
install = test
libs = libsvn_wc libsvn_subr apriconv apr
testing = skip

[wc-incomplete-tester]
type = exe
path = subversion/tests/libsvn_wc
sources = wc-incomplete-tester.c
install = test
libs = libsvn_wc libsvn_subr apriconv apr
testing = skip

[svn-wc-db-tester]
type = exe
path = tools/dev/wc-ng
sources = svn-wc-db-tester.c
install = test
libs = libsvn_wc libsvn_subr apr
testing = skip

# ----------------------------------------------------------------------------
#
# EXTERNAL TARGETS (NO BUILD NEEDED)
#

[apr]
type = lib
external-lib = $(SVN_APR_LIBS)
msvc-libs = ws2_32.lib rpcrt4.lib mswsock.lib
pkg-config = apr-@SVN_APR_MAJOR_VERSION@

[aprutil]
type = lib
external-lib = $(SVN_APRUTIL_LIBS)
pkg-config = apr-util-@SVN_APR_MAJOR_VERSION@

[apriconv]
type = lib
external-lib = $(SVN_APRUTIL_LIBS)

[libhttpd]
type = lib
external-lib = $(SVN_HTTPD_LIBS)

[mod_dav]
type = lib
external-lib = $(SVN_MOD_DAV_LIBS)

[bdb]
type = lib
external-lib = $(SVN_DB_LIBS)

[gnome-keyring]
type = lib
external-lib = $(SVN_GNOME_KEYRING_LIBS)
pkg-config = @SVN_GNOME_KEYRING_PCLIBS@
pkg-config-private = yes

[kwallet]
type = lib
external-lib = $(SVN_KWALLET_LIBS)

[magic]
type = lib
external-lib = $(SVN_MAGIC_LIBS)

[macos-plist]
type = lib
external-lib = $(SVN_MACOS_PLIST_LIBS)

[macos-keychain]
type = lib
external-lib = $(SVN_MACOS_KEYCHAIN_LIBS)

[sasl]
type = lib
external-lib = $(SVN_SASL_LIBS)

[openssl]
type = lib
external-lib = $(SVN_OPENSSL_LIBS) $(SVN_LIBCRYPTO_LIBS)

[intl]
type = lib
external-lib = $(SVN_INTL_LIBS)

[zlib]
type = lib
external-lib = $(SVN_ZLIB_LIBS)
msvc-static = yes

[lz4]
type = lib
external-lib = $(SVN_LZ4_LIBS)

[utf8proc]
type = lib
external-lib = $(SVN_UTF8PROC_LIBS)

[apr_memcache]
type = lib
external-lib = $(SVN_APR_MEMCACHE_LIBS)

[serf]
type = lib
external-lib = $(SVN_SERF_LIBS)
libs = apr aprutil openssl zlib
msvc-libs = secur32.lib
pkg-config = serf-1
pkg-config-private = yes

[sqlite]
type = lib
external-lib = $(SVN_SQLITE_LIBS)
pkg-config = sqlite3
pkg-config-private = yes

[xml]
type = lib
external-lib = $(SVN_XML_LIBS)

[swig]
type = lib
external-lib = $(SVN_SWIG_LIBS)

[perl]
type = lib
external-lib = $(SVN_PERL_LIBS)

[python]
type = lib
external-lib = $(SVN_PYTHON_LIBS)

[ruby]
type = lib
external-lib = $(SVN_RUBY_LIBS)

[java-sdk]
type = lib
external-lib = $(SVN_JAVA_SDK_LIBS)

[ra-libs]
type = lib
external-lib = $(SVN_RA_LIB_LINK)
libs = libsvn_ra_serf libsvn_ra_local libsvn_ra_svn

[fs-libs]
type = lib
external-lib = $(SVN_FS_LIB_LINK)
libs = libsvn_fs_base libsvn_fs_fs libsvn_fs_x

[__ALL__]
type = project
path = build/win32
libs = svn svnadmin svndumpfilter svnlook svnmucc svnserve svnrdump svnsync
       svnversion
       mod_authz_svn mod_dav_svn mod_dontdothat
       svnauthz svnauthz-validate svnraisetreeconflict
       svnfsfs svnbench

[__ALL_TESTS__]
type = project
path = build/win32
libs = __ALL__
       fs-test fs-base-test fs-fsfs-test fs-fs-pack-test fs-fs-fuzzy-test
       fs-fs-private-test fs-x-pack-test string-table-test fs-sequential-test
       skel-test strings-reps-test changes-test locks-test
       repos-test authz-test dump-load-test
       checksum-test compat-test config-test hashdump-test mergeinfo-test
       opt-test packed-data-test path-test prefix-string-test
       priority-queue-test root-pools-test stream-test task-test
       string-test time-test utf-test bit-array-test filesize-test
       error-test error-code-test cache-test spillbuf-test crypto-test
       revision-test
       subst_translate-test io-test
       translate-test
       random-test window-test
       diff-diff3-test
       ra-test
       ra-local-test
       sqlite-test
       svndiff-test vdelta-test
       entries-dump atomic-ra-revprop-change wc-lock-tester wc-incomplete-tester
       lock-helper
       client-test conflicts-test mtcc-test
       conflict-data-test db-test pristine-store-test entries-compat-test
       op-depth-test dirent_uri-test wc-queries-test wc-test
       auth-test
       parse-diff-test x509-test xml-test afl-x509 afl-svndiff compress-test
       svndiff-stream-test

[__MORE__]
type = project
path = build/win32
libs = __ALL_TESTS__
       diff diff3 diff4 fsfs-access-map
       svn-populate-node-origins-index x509-parser svn-wc-db-tester
       svn-mergeinfo-normalizer svnconflict

[__LIBS__]
type = project
path = build/win32
libs = fs-libs ra-libs libsvn_client libsvn_subr libsvn_wc
       aprutil apriconv apr

[__CONFIG__]
type = lib
external-project = svn_config

[__SWIG_PYTHON__]
type = swig_project
path = build/win32
libs = swig_client swig_delta swig_diff swig_fs swig_ra swig_repos swig_wc swig_core
lang = python

[__SWIG_PERL__]
type = swig_project
path = build/win32
libs = swig_client swig_delta swig_diff swig_fs swig_ra swig_repos swig_wc swig_core
lang = perl

[__SWIG_RUBY__]
type = swig_project
path = build/win32
libs = swig_client swig_delta swig_diff swig_fs swig_ra swig_repos swig_wc swig_core
lang = ruby

[__JAVAHL__]
type = project
path = build/win32
libs = javahl-java libsvnjavahl

[__JAVAHL_TESTS__]
type = project
path = build/win32
libs = __JAVAHL__ javahl-tests javahl-compat-tests

# ----------------------------------------------------------------------------
# Contrib and tools

[fsfs-access-map]
type = exe
path = tools/dev
sources = fsfs-access-map.c
install = tools
libs = libsvn_subr apr

[diff]
type = exe
path = tools/diff
sources = diff.c
install = tools
libs = libsvn_diff libsvn_subr apriconv apr

[diff3]
type = exe
path = tools/diff
sources = diff3.c
install = tools
libs = libsvn_diff libsvn_subr apriconv apr

[diff4]
type = exe
path = tools/diff
sources = diff4.c
install = tools
libs = libsvn_diff libsvn_subr apriconv apr

[svnbench]
description = Benchmarking and diagnostics tool for the network layer
type = exe
path = subversion/svnbench
install = bin
libs = libsvn_client libsvn_wc libsvn_ra libsvn_subr libsvn_delta
       apriconv apr

[svnauthz]
description = Authz config file tool
type = exe
path = tools/server-side
sources = svnauthz.c
install = tools
libs = libsvn_repos libsvn_fs libsvn_subr apr

# svnauthz-validate is the compat mode of the new svnauthz tool.  It is
# exactly the same code as svnauthz.  This duplicated target is needed
# in order to easily test both commands as part of the build since libtool
# does not provide a way to set argv[0] different from the commands actual
# name in the wrapper script.
[svnauthz-validate]
description = Authz config file validator
type = exe
path = tools/server-side
sources = svnauthz.c
install = tools
libs = libsvn_repos libsvn_fs libsvn_subr apr

[svn-populate-node-origins-index]
description = Tool to populate the node origins index of a repository
type = exe
path = tools/server-side
sources = svn-populate-node-origins-index.c
install = tools
libs = libsvn_repos libsvn_fs libsvn_subr apr

[svnraisetreeconflict]
description = Tool to Flag a Tree Conflict
type = exe
path = tools/dev/svnraisetreeconflict
libs = libsvn_wc libsvn_subr apriconv apr
install = tools

[svn-mergeinfo-normalizer]
type = exe
path = tools/client-side/svn-mergeinfo-normalizer
install = tools
libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff libsvn_subr
       apriconv apr

[x509-parser]
description = Tool to verify x509 certificates
type = exe
path = tools/dev
sources = x509-parser.c
install = tools
libs = libsvn_subr apr

[svnconflict]
type = exe
path = tools/client-side/svnconflict
install = tools
libs = libsvn_client libsvn_wc libsvn_ra libsvn_subr apriconv apr

[afl-x509]
description = AFL fuzzer for x509 parser
type = exe
path = subversion/tests/afl
sources = afl-x509.c
install = test
libs = libsvn_subr apr
testing = skip

[afl-svndiff]
description = AFL fuzzer for svndiff to txdelta parser
type = exe
path = subversion/tests/afl
sources = afl-svndiff.c
install = test
libs = libsvn_delta libsvn_subr apr
testing = skip
