I've written up some documentation about the build system, could I
please have some feedback as to usefulness, style, shape etc?

thanks,

Gabriela

-------------------------------------------------------------------


The Subversion Build System, an overview
-----------------------------------------

0.  Introduction
1.  Example compile
2.  Updating the build system after adding changes
3.. Debugging the build system with remake
4.  Further reading and assorted manuals
5.  Adding components to the build system
6.  Adding a library
7.  Adding an executable
8.  Adding an external component

A I.  A list of all build system files and a short description of each
A II. A short walkthrough of some of the files that make it all happen


0. Introduction
---------------

The Subversion build system is a bespoke system written by Greg Stein,
which combines standard tools (autoconf, make) with internal scripts
to speed up the compile cycle.

The Subversion build system provides a number of services:

* Download of external packages/dependencies

  A shell script, (get-deps.sh) downloads external packages, unpacks
  them, and places them in appropriately named directories.


* Platform specific build configuration

  Subversion uses the Autoconf package to detect platform specific
  features such as presence of C library functions and location of
  standard unix utilities.  It is invoked using the command
  "./configure".  The behaviour of this is changed in a number of
  places:

  Makefile.in
  configure.ac
  aclocal.m4
  build/ac-macros/*.m4

  Please see appendix I for a walkthrough of these files.

* Subversion-specific build configuration

  Subversion uses an internally-written set of python scripts to
  generate lists of targets and dependencies.  It is invoked using the
  command "./autogen.sh".  This command, among other things, calls
  gen-make.py, which in turn calls several more python file in
  build/generate.  The configuration file for this is build.conf and
  the output is a file named build-outputs.mk.

  Next, configure uses configure.ac, Makefile.in and build-outputs.mk
  to generate the Makefile.

  Historically, ./configure took a long time to run, and this setup
  significantly reduced the compile time for Subversion.

  For a full list of files with a short description, see appendix II.

2. Example compile
------------------

svn co https://svn.apache.org/repos/asf/subversion/trunk
cd trunk
./get-deps.sh
./autogen.sh
./configure --enable-maintainer-mode --prefix=/dev/null
make

3. Debugging the build system
-----------------------------

Running configure produces a useful log file in trunk/configure.log.

'remake' (link below) is a very useful tool to help with debugging the
output of 'make' (see section 4 for the manual).

Sample output of remake:

##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
cd subversion/svn_hello_world && /bin/bash /home/g/trunk/libtool
--tag=CC --silent --mode=link gcc -g -O2 -g -O2 -pthread -rpath
/dev/null/lib -o svn_hello_world
##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
build-outputs.mk:1008: *** [subversion/svn_hello_world/svn_hello_world] Error 1

#0 subversion/svn_hello_world/svn_hello_world at /home/g/trunk/build-outputs.mk:1008
#1  lib at /home/g/trunk/build-outputs.mk:1174
#2  local-all at /home/g/trunk/Makefile:386
#3  all at /home/g/trunk/Makefile:378
Command-line invocation:
        " none


4. Further reading and assorted manuals
----------------------------------------
  autoconf  http://www.gnu.org/software/autoconf/manual/autoconf.html
  remake    http://bashdb.sourceforge.net/remake/remake.html/index.html
  make      http://www.gnu.org/software/make/manual/make.html
  M4 Macros http://mbreen.com/m4.html
  Libtool   http://www.gnu.org/software/libtool/manual/libtool.html


5. Adding components to the build system
------------------------------------------

The following sections step through making minimal additions to the
build system, the examples presents comprise a librabry, a minimal
execturable and a 3rd party package.

6. Adding a library
-------------------

First, the C files which comprise a library:

Index: subversion/libsvn_hello_world/libsvn_hello_world.c
===================================================================
--- subversion/libsvn_hello_world/libsvn_hello_world.c  (revision 0)
+++ subversion/libsvn_hello_world/libsvn_hello_world.c  (revision 0)
@@ -0,0 +1,18 @@
+#include <stdio.h>
+#include <string.h>
+#include "svn_pools.h"
+#include "svn_string.h"
+
+void libsvn_hello_world()
+{
+  const char * hello = "hello, world\n";
+  apr_pool_t * pool;
+
+  /* Token call into both svn and apr apis, to show that we have
+   successfully linked and compiled against the api */
+   pool = apr_allocator_owner_get(svn_pool_create_allocator(FALSE));
+
+   printf("%s", hello);
+
+   return;
+}
Index: subversion/libsvn_hello_world/libsvn_hello_world_main.c
===================================================================
--- subversion/libsvn_hello_world/libsvn_hello_world_main.c     (revision 0)
+++ subversion/libsvn_hello_world/libsvn_hello_world_main.c     (revision 0)
@@ -0,0 +1,8 @@
+#include "libsvn_hello_world.h"
+
+int
+main(int argc, char ** argv)
+{
+  libsvn_hello_world();
+  return 0;
+}
Index: subversion/libsvn_hello_world/libsvn_hello_world.h
===================================================================
--- subversion/libsvn_hello_world/libsvn_hello_world.h  (revision 0)
+++ subversion/libsvn_hello_world/libsvn_hello_world.h  (revision 0)
@@ -0,0 +1,6 @@
+#ifndef _SVN_HELLO_WORLD_
+#define _SVN_HELLO_WORLD_ 1
+
void svn_hello_world(void);
+
+#endif

Finally, we need to update build.conf:

Index: build.conf
===================================================================
--- build.conf  (revision 1441170)
+++ build.conf  (working copy)
@@ -109,6 +108,14 @@ swig-checkout-files = common.swg swigrun.swg runti
 #    external-project - visual studio project to depend on
 #
+
+[libsvn_hello_world]
+description = Hello World component
+type = lib
+path = subversion/libsvn_hello_world
+libs = libsvn_subr aprutil apr
+install = lib
+
 # The subversion command-line client
 [svn]
 description = Subversion Client

7.  Adding an executable
------------------------

The C files which comprise a stand-alone application:

Index: subversion/svn_hello_world/svn_hello_world.c
===================================================================
--- subversion/svn_hello_world/svn_hello_world.c        (revision 0)
+++ subversion/svn_hello_world/svn_hello_world.c        (revision 0)
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <string.h>
+/* #include <assert.h> */
+
+/* #include <apr_strings.h> */
+#include "svn_pools.h"
+#include "svn_string.h"
+
+void svn_hello_world()
+{
+  const char * hello = "hello, world\n";
+  apr_pool_t * pool;
+
+  /* Token call into both svn and apr apis, to show that we have
+   successfully linked and compiled against the api */
+   pool = apr_allocator_owner_get(svn_pool_create_allocator(FALSE));
*+
+   printf("%s", hello);
+
+   return;
+}
Index: subversion/svn_hello_world/svn_hello_world_main.c
===================================================================
--- subversion/svn_hello_world/svn_hello_world_main.c   (revision 0)
+++ subversion/svn_hello_world/svn_hello_world_main.c   (revision 0)
@@ -0,0 +1,8 @@
+#include "svn_hello_world.h"
+
+int
+main(int argc, char ** argv)
+{
+  svn_hello_world();
+  return 0;
+}
Index: subversion/svn_hello_world/svn_hello_world.h
===================================================================
--- subversion/svn_hello_world/svn_hello_world.h        (revision 0)
+++ subversion/svn_hello_world/svn_hello_world.h        (revision 0)
@@ -0,0 +1,6 @@
+#ifndef _SVN_HELLO_WORLD_
+#define _SVN_HELLO_WORLD_ 1
+
+void svn_hello_world(void);
+
+#endif

Then, a section had to be added to build.conf:

Index: build.conf
===================================================================
--- build.conf  (revision 1441170)
+++ build.conf  (working copy)
@@ -62,7 +62,6 @@ private-built-includes =
         subversion/svn/svn-help.inc
         subversion/svn/svn-help.man

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

@@ -109,6 +108,14 @@ swig-checkout-files = common.swg swigrun.swg runti
 #    external-project - visual studio project to depend on
 #

+
+[svn_hello_world]
+description = Hello World component
+type = exe
+path = subversion/svn_hello_world
+libs = libsvn_subr aprutil apr
+install = bin
+
 # The subversion command-line client
 [svn]
 description = Subversion Client

8. Adding an external component
-------------------------------

For this section, we'll take apart how to add the GoogleTest C++ library
to the Subversion build system.

Index: configure.ac
===================================================================
--- configure.ac        (revision 1442814)
+++ configure.ac        (working copy)
@@ -633,7 +633,23 @@ fi
 AC_SUBST(SVN_GNOME_KEYRING_INCLUDES)
 AC_SUBST(SVN_GNOME_KEYRING_LIBS)

+dnl gtest -----------------
+AC_ARG_ENABLE([gtest],
+  [AS_HELP_STRING([--enable-gtest],
+                  [Enable tests using the Google C++ Testing Framework.
+                  ])],
+  enable_gtest=yes,
+  [])

+if test "$enable_gtest" = "yes"; then
+  AC_MSG_RESULT([yes])
+  AC_DEFINE([HAVE_GTEST], [1],
+            [Is gtest enabled?])
+else
+  AC_MSG_RESULT([no])
+fi
+AC_SUBST([HAVE_GTEST])
+
 dnl Ev2 experimental features ----------------------
 dnl Note: The Ev2 implementations will be built unconditionally, but by
 dnl providing this flag, users can choose to use the currently-shimmed Ev2
@@ -839,6 +855,12 @@ if test "$svn_lib_kwallet" = "yes"; then
   INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-kwallet-lib"
 fi

+if test "$enable_gtest" = "yes"; then
+  BUILD_RULES="$BUILD_RULES libgtest"
+ INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-gtest/'`"
+  INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-gtest"
+fi
+
 if test "$found_gnome_keyring" = "yes"; then
   BUILD_RULES="$BUILD_RULES gnome-keyring-lib"
INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-gnome-keyring-lib/'`"
Index: get-deps.sh
===================================================================
--- get-deps.sh (revision 1442814)
+++ get-deps.sh (working copy)
@@ -115,7 +115,11 @@ get_gtest() {

     unzip -q $TEMPDIR/$GTEST.zip

-    mv $GTEST gtest
+    mv $GTEST libgtest
+    echo "Gtest has been installed, please note:"
+    echo "autogen.sh will issue spurious header warnings."
+ echo "./configure --enable-gtest will issue repeated spurious warnings that"
+    echo "the option --enable-gtest is not recognsed."
 }

 # main()
Index: Makefile.in
===================================================================
--- Makefile.in (revision 1442814)
+++ Makefile.in (working copy)
@@ -135,6 +135,8 @@ APACHE_INCLUDES = @APACHE_INCLUDES@
 APACHE_LIBEXECDIR = $(DESTDIR)@APACHE_LIBEXECDIR@
 APACHE_LDFLAGS = @APACHE_LDFLAGS@

+GTEST_INCLUDES = -Ilibgtest -Ilibgtest/include/ -Ilibgtest/include/gtest/internal -Ilibgtest/include/gtest
+
 SWIG = @SWIG@
SWIG_PY_INCLUDES = @SWIG_PY_INCLUDES@ -I$(SWIG_SRC_DIR)/python/libsvn_swig_py
 SWIG_PY_COMPILE = @SWIG_PY_COMPILE@
@@ -183,9 +185,10 @@ SWIG_LDFLAGS = @SWIG_LDFLAGS@ $(EXTRA_SWIG_LDFLAGS

COMPILE = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CMAINTAINERFLAGS) $(CFLAGS) $(INCLUDES) COMPILE_CXX = $(CXX) $(CXXMODEFLAGS) $(CPPFLAGS) $(CXXMAINTAINERFLAGS) $(CXXFLAGS) $(INCLUDES)
+COMPILE_GTEST_CXX = $(COMPILE_CXX) $(GTEST_INCLUDES) -o $@ -c
 LT_COMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE) $(LT_CFLAGS)
LT_COMPILE_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS)
-
+LT_COMPILE_GTEST_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_FLAGS) $(GTEST_INCLUDES) -o $@ -c
 # Execute a command that loads libraries from the build dir
LT_EXECUTE = $(LIBTOOL) $(LTFLAGS) --mode=execute `for f in $(abs_builddir)/subversion/*/*.la; do echo -dlopen $$f; done`

@@ -209,6 +212,8 @@ LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(L
 LINK_LIB = $(LINK) $(LT_SO_VERSION)
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
 LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
+## LINK_GTEST_CXX = ar -rv libgtest.a src/gtest-all.lo
+LINK_GTEST_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)

 # special link rule for mod_dav_svn
LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS)
Index: build.conf
===================================================================
--- build.conf  (revision 1442814)
+++ build.conf  (working copy)
@@ -652,8 +652,26 @@ install = tests
 compile-cmd = $(COMPILE_CXXHL_CXX)
 link-cmd = $(LINK_CXX)

+
# ----------------------------------------------------------------------------
 #
+# Gtest targets
+#
+
+# renamed from gtest to libgtest because libtool couldn't output
+# a library that didn't have the prefix 'lib'
+[libgtest]
+description = Gtest Test Suite
+type = lib
+path = libgtest
+headers = include/gtest
+sources = src/gtest-all.cc
+install = libgtest-install
+compile-cmd = $(LT_COMPILE_GTEST_CXX)
+link-cmd = $(LINK_CXX)
+
+# ----------------------------------------------------------------------------
+#
 # TESTING TARGETS
 #


Appendix I :
A list of all build system files and a short description of each
-----------------------------------------------------------------

trunk/:
------
aclocal.m4         list of m4 files in build/ac-local/ that will be
                   read by autoconf
autogen.sh         the main script of the build system
build.conf Data file used by gen-make.py to generate build-outputs.mk
build-outputs.mk   see build.conf
config.log         log of the most recent comile to aid debugging
config.nice        previous configure invocation
config.status      generated by configure, re-run to recreate the current
                   configuration
configure          configure script  generated by calling autogen.sh
configure.ac       Input data and code generation for the configure script.
gen-make.opts      datafile used by gen-make.py
gen-make.py        Python script that drives the generator system in
                   /build/generator
get-deps.sh        downloads various packages and unzips them.
libtool            Provide generalized library-building support services.
Makefile           generated by configure
Makefile.in        data and macros for compiler directives used to generate
                   Makefile

trunk/build/:
-------------

buildcheck.sh Check version numbers of autoconf, autoheader, libtool and
                  integrity of APR m4 files
config.guess      Script to guess what kind of computer is used
config.sub        map variations of machine specifications
find_python.sh    check for the correct pytho version
get-py-info.py    get-py-info.py: get various Python info (for building)
getversion.py     Parse version numbers from C header files
install-sh        Used by configure to correctly place files and their
                  permissions
libtool.m4        Libtool's m4 macro file
ltmain.sh         part of libtool
lt~obsolete.m4    part of libtool
ltoptions.m4      part of libtool
ltsugar.m4        part of libtool
ltversion.m4      part of libtool
PrintPath         Look for program[s] somewhere in $PATH.
run_ctypesgen.sh  Helper script to generate the ctypesgen wrappers
run_tests.py      run tests on Subversion

transform_config_hw.py   Generate svn_private_config.h from
                         svn_private_config.hw while editing SVN_BUILD_HOST

transform_libtool_scripts.sh generated by gen-make.py for use by Makefile.in transform_sql.py create a header file with the appropriate SQL
                                variables from an SQL file

trunk/build/ac-macros/:
----------------------
M4 macro files for assorted packages that are compiled along with Subversion

apache.m4
apr.m4
apr_memcache.m4
Builaprutil.m4
berkeley-db.m4
compiler.m4
ctypesgen.m4
find_apr.m4
find_apu.m4
gssapi.m4
java.m4
kwallet.m4
macosx.m4
sasl.m4
serf.m4
sqlite.m4
svn-macros.m4
swig.m4
zlib.m4

trunk/build/generator/:
-----------------------

extractor.py        extract function names from declarations in header files
ezt.py              EZT 'easy' templating
gen_base.py infrastructure for generating makefiles, dependencies, etc.
gen_make.py         generate makefiles and dependencies
gen_msvc_dsp.py     generate Microsoft Visual C++ 6 projects
gen_vcnet_vcproj.py generate Microsoft Visual C++.NET projects
gen_win.py          base class for generating windows projects
__init__.py         empty file

trunk/build/generator/swig:

checkout_swig_header.py  checkout files from the SWIG library into
                         Subversion's proxy directory
external_runtime.py external_runtime.py: Generate external runtime files
                         for SWIG
header_wrappers.py Generates SWIG proxy wrappers around Subversion header
                         files
__init__.py generator.swig: Base class for SWIG-related generators

trunk/build/generator/templates/:
--------------------------------

Files generated by python using the EZT template generator

build_locale.ezt
build_zlib.ezt
makefile.ezt
msvc_dsp.ezt
msvc_dsw.ezt
serf.dsp.ezt
serf.vcproj.ezt
serf.vcxproj.ezt
svn_config.dsp.ezt
svn_config.vcproj.ezt
svn_config.vcxproj.ezt
svn_locale.dsp.ezt
svn_locale.vcproj.ezt
svn_locale.vcxproj.ezt
vcnet_sln.ezt
vcnet_vc7_sln.ezt
vcnet_vcproj.ezt
vcnet_vcxproj.ezt
vcnet_vcxproj_filters.ezt
zlib.dsp.ezt
zlib.vcproj.ezt
zlib.vcxproj.ezt

trunk/build/generator/util/:
---------------------------
executable.py  Utilities for dealing with external executables
__init__.py    empty file

trunk/build/hudson/:
-------------------
The hudson build system:

jobs
README

trunk/build/hudson/jobs/:
------------------------
subversion-1.6.x-solaris
subversion-1.6.x-ubuntu
subversion-doxygen
subversion-javadoc
subversion-trunk-solaris
subversion-trunk-ubuntu

trunk/build/hudson/jobs/subversion-1.6.x-solaris/:
--------------------------------------------------
config.xml

trunk/build/hudson/jobs/subversion-1.6.x-ubuntu/:
-------------------------------------------------
config.xml

trunk/build/hudson/jobs/subversion-doxygen/:
--------------------------------------------
config.xml

trunk/build/hudson/jobs/subversion-javadoc/:
--------------------------------------------
config.xml

trunk/build/hudson/jobs/subversion-trunk-solaris/:
--------------------------------------------------
config.xml

trunk/build/hudson/jobs/subversion-trunk-ubuntu/:
--------------------------------------------------
config.xml

trunk/build/win32/:
-------------------
Files to assist with windows 32 issues:

empty.c
make_dist.conf.template
make_dist.py
make_gem.rb
svn.ico
svn.rc
vc6-build.bat.in


Appendix II:
A short walkthrough of some of the files that make it all happen
-----------------------------------------------------------------

autogen.sh
----------
  calls build/buildcheck.sh which checks autoconf and autoheader
    and copies libtool stuff
  sets up  libtool services
  checks for python
  calls gen-make.py build.conf
  produces configure

gen-make.py
-------------
  main(fname, gentype, verfname=None,
     skip_depends=0, other_options=None):

     computes the header dependencies (not sure what this means)
     write the (above obtained?) sqlite headers
     offer debug output if --debug is defined

  useage_exit & class Options:
     It also offers interactive useage service -- when is that used?

build.conf -- used by gen-make.py to generate build-outputs.mk
--------------------------------------------------------------
[options] section:
  define includes
  define private includes
  test scripts
  SWIG includes of perl, ruby

  Build target definition list by target:
  ---------------------------------------

  [svn]           The subversion command-line client
  [svnadmin]      The subversion repository administration tool
  [svndumpfilter] The subversion repository dump filtering tool
  [svnlook]       The subversion repository inspection tool
  [svnserve]      Subversion Server
  [svnsync]       Subversion repository replicator
  [svnversion]    Subversion Revision Extractor
  [svnrdump]      Subversion remote repository dumper and loader
  [svnmucc]       Subversion Multiple URL Command Client

  [libsvn_auth_gnome_keyring] Subversion GNOME Keyring Library

  [libsvn_auth_kwallet] Subversion KWallet Library
  [libsvn_client]       Subversion Client Library
  [libsvn_delta]        Subversion Delta Library
  [libsvn_diff]         Subversion Diff Library
  [libsvn_fs]           Subversion Repository Filesystem Library
  [libsvn_fs_base]
  [libsvn_fs_fs]
  [libsvn_fs_util]  Low-level grab bag of utilities
  [libsvn_ra]       Subversion Repository Access Library
  [libsvn_ra_serf]  Accessing repositories via DAV through serf
  [libsvn_ra_svn]   Accessing repositories via SVN
  [libsvn_ra_local] Accessing repositories via direct libsvn_fs
  [libsvn_repos]    Subversion Repository Library
  [libsvn_subr]     Subversion General Utility Library
  [libsvn_wc]       Subversion Working Copy Library
  [mod_dav_svn]     Subversion plug-in for the Apache DAV module
  [mod_authz_svn]   Subversion path-based authorization module for
                    Apache
  [mod_dontdothat]  Apache Httpd module to block certain kinds of
                    Apache Subversion requests

  Constructed Headers
  -------------------

  [rep_cache] Schema for the rep-sharing feature
  [wc_queries] Queries on the WC database
  [subr_sqlite] sql-header

  Targets for i18n support
  Targets for SWIG support
  JavaHL targets
  C++HL targets
  Gtest targets
  C testing framework

  Testing Targets:
  ----------------
    Tests for libsvn_fs_base
    Tests for libsvn_fs_fs
    Tests for libsvn_fs
    Tests for libsvn_repos
    Tests for libsvn_subr
    Tests for libsvn_delta
    Tests for libsvn_client
    Tests for libsvn_diff
    Tests for libsvn_ra
    Tests for libsvn_ra_local
    Tests for libsvn_wc
    libsvn_delta API cmdline programs that should be rehomed
    External targets (no build needed)
    [__ALL_TESTS__]
    [__LIBS__]
    [__CONFIG__]
    SWIG, JAVAH, PERL, RUBY, PYTHON [variables]

configure.ac
------------

  set up AUTOCONF
  look for programs(compiler etc)
  Libraries, for which we may have source to build
    (apr, gssapi and so on)
  Libtool stuff
  trang
  doxygen
  Check for trang.
  Check for doxygen
  Check for libraries
    Expat
    Berkeley DB
  Mac OS specific features
  APR_HAS_DSO
  D-Bus (required for support for KWallet)
  GPG Agent
  GNOME Keyring
  Ev2 experimental features
  I18n
  Some commented out code: AH_BOTTOM([
  GETTEXT_CODESET:Used to simulate makefile conditionals
  libmagic
  KWallet
  plaintext passwords
  Build and install rules
Check for header files-- typedefs, structures, and compiler characteristics, etc
  Process some configuration options
     AC_ARG_WITH(
        ssl,openssl,debug...
AC_SUBST([libsvn_auth_gnome_keyring_LDFLAGS]) -- lots of LDFLAGS for almost
    everything
  compose help & options for ./configure
  Scripting and Bindings languages
    Python: Used for testsuite, and bindings
    The minimum version for the JVM runtime
    Perl
    Ruby
    Swig
  decide whether we want to link against the RA/FS libraries
  JavaHL
  Miscellaneous bits
    (CPPFLAGS),
    BSD Makefile stuff
    Detection complete - output and run config.status

    Ensure that SWIG is checked after reconfiguration.
  Print final messages to user

Makefile.in
-----------

assign:
   directory variables
   SVN CCP directives
some _swig_* items, files and directories
javahl items
Gettext items
compilers, shell, libtool, inclues
apache includes
swig items
ctypes
apr
flags for make
CFLAGS
special compilation for files destined for libsvn_swig_* (e.g. swigutil_*.c)
special compilation for files destined for javahl (i.e. C++)
special compilation for files destined for cxxhl
special link rule for mod_dav_svn
Special LDFLAGS for some libraries
Compilation of SWIG-generated C source code
link the wrapper objects into an extension library/module
install swig
additional installation rules for the SWIG wrappers
assorted swig
Automate JAR creation using Makefile generator's javahl-java.jar
    property.  Enhance generator to support JAR installation.
Ruby variables
make targets
make check
targets for external projects
documentation rules
install targets
install bindings
clean targets
swig targets, make and clean
install tools

Reply via email to