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] 

Contrib and tools

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 and some other stuffs
  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

Build System Map2 (last edited 2013-02-08 12:10:05 by GabrielaGibson)