#
# build.conf -- configuration information for building Subversion
#
######################################################################
#
# Copyright (c) 2000-2009 CollabNet.  All rights reserved.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution.  The terms
# are also available at http://subversion.tigris.org/license-1.html.
# If newer versions of this license are posted there, you may use a
# newer version instead, at your option.
#
######################################################################
#
# 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
private-built-includes =
        subversion/svn_private_config.h
        subversion/libsvn_fs_fs/rep-cache-db.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_tigris_subversion_javahl_CommitItemStateFlags.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_ConflictDescriptor_Kind.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_ConflictDescriptor_Action.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_ConflictDescriptor_Reason.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_ConflictResult.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_Depth.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_LockStatus.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_NodeKind.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_NotifyAction.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_NotifyStatus.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_NativeResources.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_Operation.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_Path.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_PromptUserPassword2.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_Revision.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_RevisionKind.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_SVNAdmin.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_SVNClient.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_SVNClientLogLevel.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_ScheduleKind.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_StatusKind.h
        subversion/bindings/javahl/include/org_tigris_subversion_javahl_Version.h


test-scripts =
        subversion/tests/cmdline/getopt_tests.py
        subversion/tests/cmdline/basic_tests.py
        subversion/tests/cmdline/checkout_tests.py
        subversion/tests/cmdline/commit_tests.py
        subversion/tests/cmdline/update_tests.py
        subversion/tests/cmdline/switch_tests.py
        subversion/tests/cmdline/prop_tests.py
        subversion/tests/cmdline/schedule_tests.py
        subversion/tests/cmdline/log_tests.py
        subversion/tests/cmdline/copy_tests.py
        subversion/tests/cmdline/diff_tests.py
        subversion/tests/cmdline/export_tests.py
        subversion/tests/cmdline/externals_tests.py
        subversion/tests/cmdline/merge_tests.py
        subversion/tests/cmdline/merge_authz_tests.py
        subversion/tests/cmdline/revert_tests.py
        subversion/tests/cmdline/mergeinfo_tests.py
        subversion/tests/cmdline/stat_tests.py
        subversion/tests/cmdline/trans_tests.py
        subversion/tests/cmdline/autoprop_tests.py
        subversion/tests/cmdline/blame_tests.py
        subversion/tests/cmdline/special_tests.py
        subversion/tests/cmdline/svnadmin_tests.py
        subversion/tests/cmdline/svnlook_tests.py
        subversion/tests/cmdline/svnversion_tests.py
        subversion/tests/cmdline/utf8_tests.py
        subversion/tests/cmdline/history_tests.py
        subversion/tests/cmdline/lock_tests.py
        subversion/tests/cmdline/cat_tests.py
        subversion/tests/cmdline/import_tests.py
        subversion/tests/cmdline/svnsync_tests.py
        subversion/tests/cmdline/authz_tests.py
        subversion/tests/cmdline/depth_tests.py
        subversion/tests/cmdline/svndumpfilter_tests.py
        subversion/tests/cmdline/changelist_tests.py
        subversion/tests/cmdline/info_tests.py
        subversion/tests/cmdline/tree_conflict_tests.py
        subversion/tests/cmdline/resolved_tests.py

bdb-test-scripts =

swig-python-opts = -python -classic
swig-perl-opts = -perl -nopm -noproxy
swig-ruby-opts = -ruby
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
#

# Explanation for the seemingly-spurious mention of 'neon' in the libs lines
# for svn, svnsync, ra-local-test, client-test, svn-push and svnmucc:
# This is a workaround for a libtool bug, which manifests on Linux and similar
# ELF platforms, when linking to an installed Neon, and there are old
# Subversion libraries in the same directory as the installed Neon.  In such
# cases, the run-before-installing version of the executables (.libs/lt-foo),
# gets given an ELF RPATH which includes the install directory *before* all the
# uninstalled libsvn_foo/.libs directories have been mentioned.  This occurs
# because when libtool is at the point of handling Neon, it adds an RPATH entry
# pointing to its directory, but fails to correctly consider that it should
# prioritize all the RPATH entries for *un*installed libraries before all those
# for installed libraries, to avoid this bug.  As a kludgy workaround, we add
# a mention of 'neon' to the end of the libs lines for executables which
# indirectly link to libsvn_ra_neon, which has the effect of 'pulling' the
# harmful RPATH entry toward the end of RPATH, enabling the executables to run
# correctly before installation, even when old versions of the Subversion
# libraries are present.
# This bug was last confirmed to be present in libtool 1.5.22.

# 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 neon
manpages = subversion/svn/svn.1
install = bin

# 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

# 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 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 neon
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

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

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

# 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

# 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

# Routines for diffing
[libsvn_diff]
description = Subversion Diff Library
type = lib
path = subversion/libsvn_diff
libs = libsvn_subr apriconv apr
install = lib
msvc-export = svn_diff.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_subr fs-libs 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]
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
msvc-static = yes

[libsvn_fs_fs]
type = fs-module
path = subversion/libsvn_fs_fs
install = fsmod-lib
libs = libsvn_delta libsvn_subr aprutil apriconv apr libsvn_fs_util
msvc-static = yes

# Low-level grab bag of utilities
[libsvn_fs_util]
type = lib
install = fsmod-lib
path = subversion/libsvn_fs_util
libs = libsvn_subr aprutil apriconv apr
msvc-libs = advapi32.lib shfolder.lib
msvc-static = yes

# General API for accessing repositories
[libsvn_ra]
description = Subversion Repository Access Library
type = lib
path = subversion/libsvn_ra
libs = libsvn_delta libsvn_subr ra-libs apriconv apr
# 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

# Accessing repositories via DAV through neon
[libsvn_ra_neon]
type = ra-module
path = subversion/libsvn_ra_neon
install = neon-lib
libs = libsvn_delta libsvn_subr aprutil apriconv apr neon
msvc-static = yes

# Accessing repositories via DAV through serf
[libsvn_ra_serf]
type = ra-module
path = subversion/libsvn_ra_serf
install = serf-lib
libs = libsvn_delta libsvn_subr aprutil apriconv apr serf
msvc-libs = secur32.lib
msvc-static = yes

# Accessing repositories via SVN
[libsvn_ra_svn]
type = ra-module
path = subversion/libsvn_ra_svn
install = ramod-lib
libs = libsvn_delta libsvn_subr aprutil apriconv apr sasl
msvc-static = yes

# Accessing repositories via direct libsvn_fs
[libsvn_ra_local]
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

# 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

# Low-level grab bag of utilities
[libsvn_subr]
description = Subversion General Utility Library
type = lib
install = fsmod-lib
path = subversion/libsvn_subr
libs = aprutil apriconv apr xml zlib apr_memcache sqlite
msvc-libs = advapi32.lib shfolder.lib ole32.lib crypt32.lib
msvc-export = svn_auth.h svn_base64.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 private\svn_atomic.h private\svn_cache.h private\svn_cmdline_private.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

# 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

# Subversion plugin for Apache's mod_dav
[mod_dav_svn]
description = Subversion plug-in for the Apache DAV module
type = apache-mod
path = subversion/mod_dav_svn
sources = *.c reports/*.c
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr
nonlibs = apr aprutil
install = apache-mod
msvc-libs = mod_dav.lib libhttpd.lib

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

# ----------------------------------------------------------------------------
#
# TARGETS FOR I18N SUPPORT
#
[locale]
type = i18n
path = subversion/po
install = locale
external-project = build/win32/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
include-runtime = yes

[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
link-cmd = $(LINK) $(SWIG_PY_LIBS)
install = swig-py-lib
# need special build rule to include -DSWIGPYTHON
compile-cmd = $(COMPILE_SWIG_PY)
msvc-static = no

# 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
install = swig-pl-lib
# need special build rule to include
compile-cmd = $(COMPILE_SWIG_PL)
msvc-static = yes

# 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
link-cmd = $(LINK) $(SWIG_RB_LIBS)
install = swig-rb-lib
# need special build rule to include
compile-cmd = $(COMPILE_SWIG_RB)
msvc-static = no

# ----------------------------------------------------------------------------
#
# JavaHL targets
#
[javahl-java]
type = java
path = subversion/bindings/javahl/src/org/tigris/subversion/javahl
sources = *.java
install = javahl-java
link-cmd = $(COMPILE_JAVAHL_JAVAC)
classes = subversion/bindings/javahl/classes
### Replace JAR call in INSTALL_EXTRA_JAVAHL_JAVA macro Makefile.in.
#jar = svn-javahl.jar
package-roots = org

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

[javahl-javah]
type = javah 
path = subversion/bindings/javahl/src/org/tigris/subversion/javahl
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.tigris.subversion.javahl
sources = *.java
add-deps = $(javahl_java_DEPS)
install = javahl-javah
link-cmd = $(COMPILE_JAVAHL_JAVAH) -force

[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 neon
sources = *.cpp *.c
add-deps = $(javahl_javah_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)

# ----------------------------------------------------------------------------
#
# 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_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_fs libsvn_fs_base libsvn_delta
       libsvn_fs_util libsvn_subr apriconv apr

[key-test]
description = Test keygen funcs in libsvn_fs_base
type = exe
path = subversion/tests/libsvn_fs_base
sources = key-test.c
install = bdb-test
libs = libsvn_test libsvn_fs_base 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_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_fs libsvn_fs_base libsvn_delta
       libsvn_subr apriconv apr

# ----------------------------------------------------------------------------
# Tests for libsvn_fs_fs
[fs-pack-test]
description = Test fsfs packing in libsvn_fs_fs
type = exe
path = subversion/tests/libsvn_fs_fs
sources = fs-pack-test.c
install = test
libs = libsvn_test libsvn_fs libsvn_fs_fs libsvn_delta
       libsvn_subr apriconv 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_fs libsvn_delta libsvn_subr apriconv apr

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

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

[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_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_subr

[cache-test]
description = Test in-memory cache
type = exe
path = subversion/tests/libsvn_subr
sources = cache-test.c
install = test
libs = libsvn_test 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_subr apr

[compat-test]
description = Test compatibility functions
type = exe
path = subversion/tests/libsvn_subr
sources = compat-test.c
install = test
libs = libsvn_test 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_subr apriconv 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_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_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_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_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_subr apr

[path-test]
description = Test path library
type = exe
path = subversion/tests/libsvn_subr
sources = path-test.c
install = test
libs = libsvn_test 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_subr 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_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_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_subr apriconv apr

[time-test]
description = Test time functions
type = exe
path = subversion/tests/libsvn_subr
sources = time-test.c
install = test
libs = libsvn_test 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_subr apriconv apr

[target-test]
description = Test the condense_targets functions
type = exe
path = subversion/tests/libsvn_subr
sources = target-test.c
install = test
libs = libsvn_test 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_subr apriconv 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_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_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_delta libsvn_subr libsvn_client apriconv apr neon

# ----------------------------------------------------------------------------
# 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_diff 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_ra_local libsvn_ra libsvn_fs libsvn_delta libsvn_subr
       apriconv apr neon

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

[tree-conflict-data-test]
description = Test the storage of tree conflict data
type = exe
path = subversion/tests/libsvn_wc
sources = tree-conflict-data-test.c
install = test
libs = 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


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

[apr]
type = lib
external-lib = $(SVN_APR_LIBS)

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

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

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

[gnome-keyring]
type = lib
external-lib = $(SVN_GNOME_KEYRING_LIBS)

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

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

[zlib]
type = lib
external-lib = $(SVN_ZLIB_LIBS)
external-project = build/win32/zlib
msvc-static = yes

[neon]
type = lib
external-lib = $(NEON_LIBS)
external-project = neon/neon
libs = xml
msvc-libs = ws2_32.lib
msvc-static = yes

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

[serf]
type = lib
external-lib = $(SVN_SERF_LIBS)
external-project = serf/serf
libs = apr aprutil xml
msvc-static = yes

[sqlite]
type = lib
external-lib = $(SVN_SQLITE_LIBS)

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

[ra-libs]
type = lib
external-lib = $(SVN_RA_LIB_LINK)
libs = libsvn_ra_neon 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

[__ALL__]
type = project
path = build/win32
libs = svn svnserve svnadmin svnlook svnversion svndumpfilter
       mod_authz_svn mod_dav_svn svnsync

[__ALL_TESTS__]
type = project
path = build/win32
libs = __ALL__
       fs-test fs-base-test fs-fsfs-test fs-pack-test skel-test key-test strings-reps-test changes-test locks-test
       repos-test
       checksum-test compat-test config-test hashdump-test mergeinfo-test opt-test path-test stream-test
       string-test time-test utf-test target-test error-test cache-test
       revision-test
       translate-test
       random-test window-test
       diff-diff3-test
       ra-local-test
       svndiff-test vdelta-test
       diff-test diff3-test diff4-test
       client-test
       tree-conflict-data-test
       dirent_uri-test
       auth-test

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

[__CONFIG__]
type = lib
external-project = build/win32/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_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_fs swig_ra swig_repos swig_wc swig_core
lang = ruby

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

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

[svn-push]
type = exe
path = contrib/client-side/svn-push
sources = svn-push.c
install = contrib
libs = libsvn_ra libsvn_delta libsvn_subr apriconv apr neon

[svnmucc]
type = exe
path = tools/client-side/svnmucc
sources = svnmucc.c
install = tools
libs = libsvn_client libsvn_ra libsvn_subr libsvn_delta apriconv apr neon

[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

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

[svn-populate-node-origins-index]
type = exe
path = tools/server-side
sources = svn-populate-node-origins-index.c
install = tools
libs = libsvn_repos libsvn_fs libsvn_subr apr
