#
# build.conf -- configuration information for building Subversion
#
# This file is processed by ###, creating ###
#

# ----------------------------------------------------------------------------
#
# PREDEFINED SECTIONS
#
# These are global in scope, providing information to the process, rather
# than defining build targets.
#

[includes]
paths = subversion/include/*.h

[static-apache]
# Makefile.in and config.m4 (omit README)
paths = subversion/mod_dav_svn/static/[Mc]*

[test-scripts]
paths =
# bourne: test client XML handling
	subversion/tests/clients/cmdline/xmltests/*.sh
# bourne: test target condensation in libsvn_subr
	subversion/tests/libsvn_subr/target-test.sh

[fs-test-scripts]
paths =
# C:  test both external and internal APIs of libsvn_fs
	subversion/tests/libsvn_fs/run-fs-tests.sh
# C: test svn_repos_update() in libsvn_repos
	subversion/tests/libsvn_repos/run-repos-tests.sh
# Python: general blackbox tests
        subversion/tests/clients/cmdline/basic_tests.py
# Python: commit-related tests
        subversion/tests/clients/cmdline/commit_tests.py
# Python: update-related tests
        subversion/tests/clients/cmdline/update_tests.py
# Python: property-related tests
        subversion/tests/clients/cmdline/prop_tests.py
# Python: working copy scheduling tests
        subversion/tests/clients/cmdline/schedule_tests.py
# Python: 'svn log' tests
        subversion/tests/clients/cmdline/log_tests.py
# Python: 'svn cp' tests
        subversion/tests/clients/cmdline/copy_tests.py
# Python: 'svn diff -r' tests
        subversion/tests/clients/cmdline/diff_tests.py
# Python: 'svn stat' tests
        subversion/tests/clients/cmdline/stat_tests.py
# Python: 'svnadmin' tests
        subversion/tests/clients/cmdline/svnadmin_tests.py

# ----------------------------------------------------------------------------
#
# BUILD TARGETS
#

# The subversion command-line client
[svn]
type = exe
path = subversion/clients/cmdline
libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr
	$(SVN_APR_LIBS) libexpat
manpages = subversion/clients/cmdline/man/svn.1
infopages = doc/user/manual/svn-manual.info
 doc/user/svn_for_cvs_users/svn_for_cvs_users.info 
 doc/programmer/design/svn-design.info
 doc/programmer/design/svn-design.info-1
 doc/programmer/design/svn-design.info-2
 doc/programmer/design/svn-design.info-3

# The subversion repository administration tool
[svnadmin]
type = exe
path = subversion/svnadmin
install = fs-bin
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat

# The subversion repository inspection tool
[svnlook]
type = exe
path = subversion/svnlook
install = fs-bin
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat

# Library needed by all subversion clients
[libsvn_client]
type = lib
path = subversion/libsvn_client
libs = libsvn_wc libsvn_ra libsvn_delta libsvn_subr $(SVN_APR_LIBS)

# Routines for binary diffing and tree-deltas
[libsvn_delta]
type = lib
install = base-lib
path = subversion/libsvn_delta
libs = libsvn_subr $(SVN_APR_LIBS)

# The repository filesystem library
[libsvn_fs]
type = lib
path = subversion/libsvn_fs
install = fs-lib
libs = libsvn_delta libsvn_subr $(SVN_APR_LIBS) $(SVN_DB_LIBS)

# General API for accessing repositories
[libsvn_ra]
type = lib
path = subversion/libsvn_ra
# conditionally link in some more libs
libs = libsvn_subr $(SVN_RA_LIB_LINK) $(SVN_APR_LIBS)
# conditionally add more dependencies
add-deps = $(SVN_RA_LIB_DEPS)

# Accessing repositories via DAV
[libsvn_ra_dav]
type = lib
path = subversion/libsvn_ra_dav
install = base-lib
libs = libsvn_subr $(SVN_APR_LIBS) $(NEON_LIBS)

# Accessing repositories via direct libsvn_fs
[libsvn_ra_local]
type = lib
path = subversion/libsvn_ra_local
install = fs-lib
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr $(SVN_APR_LIBS)

# Routines built on top of libsvn_fs
[libsvn_repos]
type = lib
path = subversion/libsvn_repos
install = fs-lib
libs = libsvn_fs libsvn_delta libsvn_subr $(SVN_APR_LIBS)

# Low-level grab bag of utilities
[libsvn_subr]
type = lib
install = base-lib
path = subversion/libsvn_subr
libs =  $(SVN_APR_LIBS) libexpat

# Working copy management lib
[libsvn_wc]
type = lib
path = subversion/libsvn_wc
libs = libsvn_delta libsvn_subr $(SVN_APR_LIBS)

# Subversion plugin for Apache's mod_dav
[libmod_dav_svn]
type = lib
path = subversion/mod_dav_svn
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr
# we don't need the .so version stuff for an Apache module, so avoid them
link-flags = -avoid-version
# need special build rules to include the Apache headers
custom = apache-mod
install = apache-mod

# Simple XML-parsing lib
[libexpat]
type = lib
install = base-lib
path = expat-lite
# there are some .c files included by others, so *.c isn't appropriate
sources = hashtable.c xmlparse.c xmlrole.c xmltok.c

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

# SWIG utility library for Python modules
[libsvn_swig_py]
type = lib
path = subversion/bindings/swig
libs = $(SVN_APR_LIBS)
install = swig-py-lib
# need special build rule to include -DSWIGPYTHON
custom = swig-py

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

# general library:  our C testing framework
[libsvn_test]
type = lib
path = subversion/tests
sources = svn_tests_main.c svn_test_editor.c
install = test

# shared utils for writing fs tests
[libsvn_test_fs]
type = lib
path = subversion/tests
sources = fs-helpers.c
install = fs-test
libs = libsvn_fs libsvn_repos

# tests for *public* fs API (svn_fs.h)
[fs-test]
type = exe
path = subversion/tests/libsvn_fs
sources = fs-test.c
install = fs-test
libs = libsvn_test libsvn_test_fs libsvn_fs libsvn_delta libsvn_subr
	$(SVN_APR_LIBS) libexpat
# run-fs-tests.sh will run this for us
testing = skip

# test skels in libsvn_fs
[skel-test]
type = exe
path = subversion/tests/libsvn_fs
sources = skel-test.c
install = fs-test
libs = libsvn_test libsvn_fs libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat
# run-fs-tests.sh will run this for us
testing = skip

# test keygen funcs in libsvn_fs
[key-test]
type = exe
path = subversion/tests/libsvn_fs
sources = key-test.c
install = fs-test
libs = libsvn_test libsvn_fs libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat
# run-fs-tests.sh will run this for us
testing = skip

# test strings/reps in libsvn_fs
[strings-reps-test]
type = exe
path = subversion/tests/libsvn_fs
sources = strings-reps-test.c
install = fs-test
libs = libsvn_test libsvn_test_fs libsvn_fs libsvn_delta libsvn_subr
       $(SVN_APR_LIBS) libexpat
# run-fs-tests.sh will run this for us
testing = skip

# Little argument verification tool used by repos-test
[md5args]
type = exe
path = subversion/tests/libsvn_repos
sources = md5args.c
install = test
libs = libsvn_subr $(SVN_APR_LIBS) libexpat
# run-repos-tests.sh will run this for us
testing = skip

# test svn_repos_update() is libsvn_repos
[repos-test]
type = exe
path = subversion/tests/libsvn_repos
sources = repos-test.c dir-delta-editor.c
install = fs-test
libs = libsvn_test libsvn_test_fs libsvn_repos libsvn_fs libsvn_delta
	libsvn_subr $(SVN_APR_LIBS) libexpat
# run-repos-tests.sh will run this for us
testing = skip

# test hashfile format for props
[hashdump-test]
type = exe
path = subversion/tests/libsvn_subr
sources = hashdump-test.c
install = test
libs = libsvn_test libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat

# test svn_stringbuf_t utilities
[stringtest]
type = exe
path = subversion/tests/libsvn_subr
sources = stringtest.c
install = test
libs = libsvn_test libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat

# test path library
[path-test]
type = exe
path = subversion/tests/libsvn_subr
sources = path-test.c
install = test
libs = libsvn_test libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat

# test eol conversion and keyword substitution routines
[translate-test]
type = exe
path = subversion/tests/libsvn_wc
sources = translate-test.c
install = test
libs = libsvn_test libsvn_delta libsvn_wc libsvn_subr $(SVN_APR_LIBS) libexpat

# use random data to test delta processing
[random-test]
type = exe
path = subversion/tests/libsvn_delta
sources = random-test.c
install = test
libs = libsvn_test libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat


### Tests that are simply broken (fix?)  ----------

# test delta combination
[delta-combine-test]
type = exe
path = subversion/tests/libsvn_delta
sources = delta-combine-test.c
install = test
libs = libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat
# disabled for now -- the delta combiner isn't written, and we
# don't really have any idea if the interface would be compatible 
# with this test, anyway.
testing = skip

# test public routines in libsvn_ra_local
[ra-local-test]
type = exe
path = subversion/tests/libsvn_ra_local
sources = ra-local-test.c
install = fs-test
libs = libsvn_test libsvn_ra libsvn_fs libsvn_delta libsvn_subr
	$(SVN_APR_LIBS) libexpat
# disabled for now, BROKEN.
testing = skip


### Tests that don't use the C framework (rewrite?) ----------

# test svn_path_condense_targets()
[target-test]
type = exe
path = subversion/tests/libsvn_subr
sources = target-test.c
install = test
libs = libsvn_subr $(SVN_APR_LIBS) libexpat
# target-test.sh will run this for us
testing = skip

# write an xml file by driving xml editor
[xml-output-test]
type = exe
path = subversion/tests/libsvn_delta
sources = xml-output-test.c
install = test
libs = libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat
# this is really redundant with our XML svn-test*.sh tests.
testing = skip

# checkout a wc from an XML file
[checkout-test]
type = exe
path = subversion/tests/libsvn_wc
sources = checkout-test.c
install = test
libs = libsvn_wc libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat
# this is really redundant with our XML svn-test*.sh tests.
testing = skip

# describe a commit into an XML file
[commit-test]
type = exe
path = subversion/tests/libsvn_wc
sources = commit-test.c
install = test
libs = libsvn_test libsvn_wc libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat
# this is really redundant with our XML svn-test*.sh tests.
testing = skip


### Disabled tests that don't use our C framework (rewrite?) ---------

# process and print commands from an XML tree-delta
[deltaparse-test]
type = exe
path = subversion/tests/libsvn_delta
sources = deltaparse-test.c
install = test
libs = libsvn_test libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat
testing = skip


### Disabled tests that don't use our C framework and are BROKEN --------
###  (rewrite these?  delete these?)

# test our textdelta encoding
[svndiff-test]
type = exe
path = subversion/tests/libsvn_delta
sources = svndiff-test.c
install = test
libs = libsvn_delta libsvn_subr $(SVN_APR_LIBS) libexpat
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 $(SVN_APR_LIBS) libexpat
testing = skip


# ----------------------------------------------------------------------------
#
# DOC TARGETS
#

#[svn-design]
#type = doc
#path = doc
#install = doc
#sources = svn-design.texi
#deps = ...

# ----------------------------------------------------------------------------
