Russell Yanofsky <rey4@columbia.edu> (rey4)


Patch
r862915, r850448, r850310, r850307, r850302, r850300, r850293, r850288, r850286, r850281, r850280, r850265, r850254, r850253, r850252, r850216, r850215, r850203, r850179, r850163, r850162, r850159, r850117, r850116, r850115, r850114, r850113, r850111, r850051, r850050, r848325, r848324, r848323, r848183, r847653, r847492, r847491, r847490, r847489, r847488, r847487, r847486, r847424, r847423, r847370, r847369, r847320, r847309, r847308, r847307, r847306, r847305, r847304, r847303, r847302, r847152, r847150, r847147, r847146, r847145, r847144, r847143, r847142, r847141, r847140, r847049, r847048, r847047, r847046, r847018, r846993, r846992, r846837, r846836, r846835, r846834, r846833, r846797, r846793, r846792, r846760, r846693, r846676, r846655, r846654, r846653, r846453, r846403, r846378, r846346, r846330

r846330 | brane | 2003-06-16 23:51:22 +0000 (Mon, 16 Jun 2003)

Small change to the fs library which prevents the heap corruption that
otherwise occurs when Subversion and Berkeley DB modules use different C
runtime libraries. This change should eliminate the need to distribute
separate builds of Berkeley DB for VC6 and VC7 on Windows.

Patch by: Russell Yanofsky <rey4@columbia.edu>

* subversion/libsvn_fs/fs.c (allocate_env): Changed to call set_alloc() on
  each new Berkeley DB environment object.


r846346 | brane | 2003-06-17 22:54:55 +0000 (Tue, 17 Jun 2003)

Changes to make/project generator to generate VC6 .dsp projects for the swig
bindings. This required some small changes to gen_base.py and gen_win.py,
but they do not effect the vcproj or makefile output. The resulting python
binaries seem to work fine, at least for the cvs2svn script. I didn't attempt
to build the java projects.

Patch by: Russell Yanofsky <rey4@columbia.edu>

* build/generator/msvc_dsp.ezt: New custom build section and two new
  attributes ("swig_language" and "swig_output") for swig sources.
  Renamed target's "is_apache_mod" property to "is_dll".

* build/generator/gen_base.py (TargetSWIG.add_dependencies): Adds SWIGObject
  representing the generated C file as a dependency of the object file
  instead of adding a string containing the C file's name. This makes it
  possible to determine the name of the .i file associated with a SWIGLibrary
  object using the dependency graph.

* build/generator/gen_win.py (get_win_defines,get_win_includes,get_win_libs):
  Added more hardcoded dependencies for the swig projects.

* build/generator/gen_msvc_dsp.py (Generator.write_project): Added
  conditionals to detect if target is a swig library, and if so write out
  sources with custom build steps and set some attributes on the target
  object.

  (Generator.write): Changed to iterate over the targets in
  graph.get_all_sources(DT_INSTALL), making the dsp project generator
  more consistent with the vcproj and makefile generators. It still
  goes over the targets in the self.targets dictionary, though, to pick
  up fake targets like __ALL__ , depsubr, and so on.

* subversion/bindings/swig/INSTALL: Filled in instructions for Windows.


r846378 | brane | 2003-06-20 02:08:12 +0000 (Fri, 20 Jun 2003)

Make the generated SWIG bindings for Win32 more beautiful.

Patch by: Russell Yanofsky <rey4@columbia.edu>
          me

* build.conf: Added description strings for SWIG libraries and two new
  utility targets, __SWIG_PYTHON__ and __SWIG_JAVA__.

* build/generator/msvc_dsp.ezt: For generated targets with the
  shared_dir flag set, append the target name to the Intermediate_Dir
  parameter. This lets each SWIG DLL use its own version resource.

* build/generator/gen_base.py (GeneratorBase.__init__): Added new parser
  option "language" which is needed for the new __SWIG_*__ targets.

  (TargetSWIG.add_dependencies): Changed to set the description attribute
  on each newly created SWIGLibrary.

  (SWIGLibrary.__init__): Takes new parameter 'desc', which is used to
  initialize the 'desc' member. Init 'shared_dir' to 1.

  (lang_full_name): New; a map of language tags to pretty names for
  tweaking the SWIGLibrary descriptions.

  (Target): Added new member 'shared_dir', defaults to None.

  (TargetSWIG.add_dependencies): Pass 'self.desc' to the SWIGLibrary
  constructor.

  (TargetSWIGUtility): New class; inherits from TargetUtility for SWIG
  utility targets.

  (unique): Moved from gen_msvc_dsp.py and added a docstring.

* build/generator/gen_win.py (WinGeneratorBase.get_unique_win_depends):
  Aow adds SWIGLibraries as dependencies of TargetSWIGUtility targets.

* build/generator/gen_msvc_dsp.py (unique): moved to gen_base.py.

  (Generator.write_project): no longer assigns None to the SWIGLibraries'
  "desc" attributes. Usee gen_base.unique to uniquify the install targets.


r846403 | brane | 2003-06-24 10:50:29 +0000 (Tue, 24 Jun 2003)

Changes to make swig bindings actually function on windows.

Patch by: Russell Yanofsky <rey4@columbia.edu>

* build/generator/gen_win.py (WinGeneratorBase.get_win_defines): Removed
  STATIC_LINKED preprocessor definition for swig bindings.

* build/generator/msvc_dsp.ezt:
* build/generator/vcnet_vcproj.ezt: Got rid of -noproxy argument for swig.
  Added new property sources.swig_target which holds the same path
  sources.swig_output except that swig_output uses forward slashes
  and swig_target uses backslashes

* build/generator/gen_win.py (WinGeneratorBase.get_proj_sources): Removed
  extraneous arguments to two ProjectItem constructor calls.
  Added new source property "swig_target".

* subversion/bindings/swig/INSTALL: updated instructions


r846453 | brane | 2003-07-01 07:10:51 +0000 (Tue, 01 Jul 2003)

Changes to make swig's generated .c files explicitly dependent on the headers
included in its .i files. This patch affects the generated makefile and
VC6 projects but not the VC7 projects.

Patch by: Russell Yanofsky <rey4@columbia.edu>

* build/generator/msvc_dsp.ezt: Added new "sources.user_deps" property.

* build/generator/gen_base.py (GeneratorBase.compute_hdr_deps): Now computes
  header dependencies for generated swig files.
  (SWIGSource): new DependencyNode class to hold information about .i source
  files.
  (TargetSWIG.add_dependencies): changed to add SWIGSource nodes to the
  dependency graph instead of strings containing the paths to .i files

* build/generator/gen_win.py (WinGeneratorBase.get_proj_sources): Now adds
  swig header dependencies from the dependency graph as user-defined
  dependencies of the generated .c files in visual studio projects.

* build/generator/gen_make.py (Generator.write): SWIGSource nodes are
  cast to strings in two places so string and path operations can
  be performed on them.


r846653 | cmpilato | 2003-07-25 15:53:45 +0000 (Fri, 25 Jul 2003)

Bugfix for the python bindings. svn_repos_get_logs() causes a crash
when its "discover_changed_paths" argument is nonzero because the
thunk, svn_swig_py_thunk_log_receiver(), that forwards to a user
defined python callback function is unable to find a swig type
corresponding to the svn_log_changed_path_t structs that it has to
pass to the callback.

Patch by: Russell Yanofsky <rey4@columbia.edu>

* subversion/bindings/swig/swigutil_py.c
  (svn_swig_py_thunk_log_receiver): changed argument to
    SWIG_TypeQuery for "svn_log_changed_path_t" type

* subversion/bindings/swig/core.i: 
  (svn_log_changed_path_t): No longer ignore this.  Also, mark its
    'copyfrom_path' member is immutable.


r846654 | cmpilato | 2003-07-25 16:06:33 +0000 (Fri, 25 Jul 2003)

Changes to make svn.fs.FileDiff class work on windows.

Patch by: Russell Yanofsky <rey4@columbia.edu>

* subversion/bindings/swig/python/svn/fs.py 
  (_escape_msvcrt_shell_command, _escape_msvcrt_shell_arg): 
    added these functions for escaping command lines on windows.
  (FileDiff.get_pipe): changed to convert argument list to a string 
    on windows to avoid "TypeError: popen2() argument 1 must be string,
    not list".


r846655 | cmpilato | 2003-07-27 21:41:11 +0000 (Sun, 27 Jul 2003)

Prevent users of swig bindings from assigning to const char * struct
members so there won't be any memory leaks.

Patch by: Russell Yanofsky <rey4@columbia.edu>

* subversion/bindings/swig/core.i: made struct members which cause
  "Warning(451): Setting const char * member may leak memory" immutable.


r846676 | rey4 | 2003-07-29 03:52:31 +0000 (Tue, 29 Jul 2003)

*ahem* ... Is this thing on?

* COMMITTERS
  Add myself to the list of committers as having commit access to the
  bindings portion of the tree.


r846693 | rey4 | 2003-07-31 09:05:57 +0000 (Thu, 31 Jul 2003)

removed a workaround for an old version of swig

* subversion/bindings/swig/svn_delta.i
    (svn_txdelta_window_t::new_data): made this const char * structure
    member read only instead of not exposing the structure at all


r846760 | rey4 | 2003-08-09 17:18:45 +0000 (Sat, 09 Aug 2003)

Visual Studio projects for perl bindings now link with the perl library.
The perl command used to figure out the library name came from
Branko Cibej <brane@xbc.nu> and Colin Watson <cjwatson@flatline.org.uk>.

* build/generator/gen_win.py
    (WinGeneratorBase.__init__): now detects library name for installed
    perl version
    
    (WinGeneratorBase.get_win_libs): now includes perl library



r846792 | rey4 | 2003-08-12 21:40:22 +0000 (Tue, 12 Aug 2003)

Updated Windows instructions.

* subversion/bindings/swig/INSTALL
    added instructions for installing swig and configuring Visual Studio
    on Windows. Also moved all windows instructions into a separate 
    section.


r846793 | rey4 | 2003-08-12 22:02:50 +0000 (Tue, 12 Aug 2003)

* subversion/bindings/swig/INSTALL
    fixed some typos


r846797 | rey4 | 2003-08-13 02:03:49 +0000 (Wed, 13 Aug 2003)

* subversion/bindings/swig/INSTALL
    Fix more typos and use more consistent capitalization and ordering



r846833 | rey4 | 2003-08-16 20:58:22 +0000 (Sat, 16 Aug 2003)

Put project listings in MSVC workspace files in sorted order instead of random
order to make them easier to read and verify.

* build/generator/gen_vcnet_vcproj.py
* build/generator/gen_msvc_dsp.py
    (Generator.write): list projects in subversion_msvc.dsw and
      subversion_vcnet.sln files in alphabetical order



r846834 | rey4 | 2003-08-16 21:19:29 +0000 (Sat, 16 Aug 2003)

Remove reference to non-existant __INSTALLER__ project in subversion_vcnet.sln

* build/generator/gen_vcnet_vcproj.py
    (Generator.write_project, Generator.write): changed to skip
      TargetExternal instances (like __INSTALLER__) completely.
      Before it was skipping the project files but still
      including references to them in the solution files.



r846835 | rey4 | 2003-08-16 21:54:22 +0000 (Sat, 16 Aug 2003)

Internal changes to treat swig libraries more like normal libraries

Log Message:

* build/generator/gen_base.py
    (TargetSWIG.add_dependencies): Add swig library dependencies to
      tree under the swig library name, rather than SWIGLibrary
      instance for consistency with other libraries.

* build/generator/gen_win.py
    (WinGeneratorBase.get_proj_sources): changes for compatibility
    with gen_base.py

* build/generator/gen_make.py
    (Generator.write): remove some special treatment of
      SWIGLibrary instances now that their dependencies are
      added to the dependency graph just like other libraries.


r846836 | rey4 | 2003-08-16 23:18:58 +0000 (Sat, 16 Aug 2003)

Changed Visual Studio builds of SWIG bindings to dynamically link
with the SWIG runtime instead of statically linking with it.
(Makefile builds already do this). This is needed because the
SWIG runtime functions read and write global data. When static
linking is used each module gets its own incomplete copy of the
global data, now data is shared and accessible to all modules.

* build.conf
    new target: swig_runtime

* build/win32/gen_swig_runtime.py:
    new python script which generates swig runtime code for
    various languages

* build/generator/msvc_dsp.ezt
* build/generator/vcnet_vcproj.ezt
    pass -c option to swig. new custom build step to generate
    swig runtime source

* build/generator/gen_base.py
    (SWIGLibrary.__init__): changed signature and moved some
      functionality into TargetSWIG.add_dependencies

    (SWIGRuntimeLibrary): new DependencyNode class

    (TargetSWIG.add_dependencies): changes for new SWIGLibrary
      constructor.

    (TargetSWIGRuntime, _build_types): add new Target class

* build/generator/gen_win.py
    (Generator.write_project, Generator.adjust_win_depends):
      added code to handle writing project files for swig
      runtime libraries



r846837 | rey4 | 2003-08-16 23:47:37 +0000 (Sat, 16 Aug 2003)

* build/win32/gen_swig_runtime.py
    added comment describing script



r846992 | rey4 | 2003-08-29 15:13:13 +0000 (Fri, 29 Aug 2003)

Treat swig utility targets more like regular utility targets to 
prevent win32 paths from showing up in build-outputs.mk

* build/generator/gen_base.py (GeneratorBase.__init__): keep 
    swig_utility paths out of target_dirs

r846993 | rey4 | 2003-08-29 15:47:15 +0000 (Fri, 29 Aug 2003)

Read target configuration values in Target classes instead of in
the build generator loop. This change has no effect on build
generator output, it's just an attempt to clean up some code.

* build/generator/gen_base.py

  (GeneratorBase.__init__): put config variables into a dictionary so
    Target classes can read their own configuration values. Also other
    minor changes to use new location of config values

  (GeneratorBase.__init__): compute intra-target dependencies for all
    Target instances instead of just TargetLinked instances so
    TargetSpecial no longer needs to inherit from TargetLinked

  (_cfg_defaults, GeneratorBase.__init__): remove global list of
    default config values

  (Target.__init__, TargetLinked.__init__, TargetExe.__init__,
   TargetLib.__init__, TargetSWIG.__init__, TargetSpecial.__init__,
   TargetProject.__init__, TargetExternal.__init__,
   TargetSWIGUtility.__init__): moved code that reads configuration
    values from GeneratorBase.__init__ to relevant Target
    constructors. This required a change in the constructors'
    signatures.

  (Target.__init__, TargetLinked.__init__): moved initialization of
    "install," "output," and "object_cls" members from Target's
    constructor to TargetLinked's because those variables are only
    relevant to linked targets. Moved initialization of
    "is_ra_module" in the opposite direction to be more consistent
    with "is_apache_mod" initialization.

  (TargetSWIG): changed to inherit from TargetLinked instead of
    Target, so the code in the TargetLinked constructor will run for
    SWIG targets.

  (TargetSWIG.add_dependencies, GeneratorBase.__init__): renamed
    TargetSWIG 'libs' member to 'swig_libs' to avoid confusion with
    the 'libs' configuration parameter. 'swig_libs' is an array of
    Target objects while 'libs' is a space separated string of target
    names.

* build/generator/gen_win.py

  (WinGeneratorBase.get_install_targets): updated creation of dummy
    targets for new Target constructor signature.

* build/generator/gen_vcnet_vcproj.py (Generator.write):
* build/generator/gen_msvc_dsp.py (Generator.write):
    check value of "project_name" member, instead of checking 
    existance since it now always exists


r847018 | rey4 | 2003-09-01 23:27:53 +0000 (Mon, 01 Sep 2003)

Prevent some nonexistent swig-related paths from showing up in the
CLEAN_FILES list.

* build/generator/gen_make.py (Generator.write): build CLEAN_FILES
  listing from dependency graph instead of targets array


r847046 | rey4 | 2003-09-04 18:13:18 +0000 (Thu, 04 Sep 2003)

Made get_win_depends function a little more general so other code with
similar functionality could be eliminated. This change has no effect
on the outputted project files, it's just a minor code clean up.

* build/generator/gen_win.py
  (WinGeneratorBase.get_win_depends): added ability to retrieve lists
    of a target's dependencies minus its dependencies' dependencies,
    and ability to have lists filtered by class type

  (WinGeneratorBase.get_unique_win_depends): removed function

  (WinGeneratorBase.adjust_win_depends): replaced dependency
    computation with call to get_win_depends


r847047 | rey4 | 2003-09-04 18:15:25 +0000 (Thu, 04 Sep 2003)

Get rid of default_install member on target classes. This change has
no effect on the outputted makefiles and project files, it's just an
attempt to reduce complexity.

* build.conf
  (svn, libsvn_client, libsvn_diff, libsvn_ra, libsvn_wc,
   svnversion, svn-config):
     specify "install" option instead of relying on default values

* build/generator/gen_base.py
  (TargetLinked.__init__):
    removed default "install" setting code

  (TargetExe, TargetScript, TargetLib, TargetDoc, TargetSWIG,
   TargetSWIGRuntime, TargetProject, TargetExternal, TargetUtility,
   TargetSWIGUtility):
     remove "default_install" static members

  (TargetSWIG.add_dependencies, TargetSWIGRuntime.add_dependencies):
    remove reference to "install" member

  (TargetSWIG, TargetSWIG.__init__): inherit from Target instead of
    TargetLinked, since SWIG code no longer has anything in common
    with TargetLinked

* build/generator/gen_win.py
  (GeneratorBase.get_win_depends): remove reference to "install" member
    for SWIG targets


r847048 | rey4 | 2003-09-04 18:17:32 +0000 (Thu, 04 Sep 2003)

Remove 'default_sources' member from TargetLinked classes. This change
has no effect on output.

* build/generator/gen_base.py
  (TargetExe, TargetLib, TargetDoc):
    remove "default_sources" static member

  (TargetLinked._get_sources):
    remove reference to "default_sources" member

r847049 | rey4 | 2003-09-04 18:21:14 +0000 (Thu, 04 Sep 2003)

Removed "custom" attribute, which was originally used to specify
custom build steps, but got hijacked for all sorts of other purposes.
Instead added "compile-cmd" attribute and two new "type" values for
apache modules and ra modules. These changes have no effect on the
generated makefile or project files.

* build/generator/gen_base.py
  (ObjectFile.__init__): added "build_cmd" member

  (SWIGUtilPython, SWIGUtilJava, SWIGUtilPerl, _custom_build):
    removed these ObjectFile subclasses

  (Target.__init__):
    removed "is_ra_module" and "is_apache_mod" members

  (TargetLinked.__init__):
    got rid of "custom" getter and added "compile-cmd" getter

  (TargetApacheMod, TargetRaModule, _build_types):
    added new target types for apache modules and ra modules.

  (TargetLib.__init__, TargetApacheMod.__init__):
    moved apache specific code into new apache class

* build.conf
  (libsvn_ra_dav, libsvn_ra_svn, libsvn_ra_local, mod_dav_svn,
   mod_authz_svn):
    use new "type" values instead of "custom" attribute

  (libsvn_swig_py, libsvn_swig_java, libsvn_swig_perl):
    use new "compile-cmd" attribute instead of "custom" attribute

* build/generator/gen_make.py
  (write_symbols):
    use "isinstance(target, TargetRaModule)" instead of
    "target.is_ra_module"

* build/generator/gen_win.py
  (adjust_win_depends, get_win_defines, get_win_includes,
   get_win_lib_dirs, get_win_libs, get_win_sources):
    use "isinstance(target, TargetApacheMod)" instead of
    "target.is_apache_mod"

* build/generator/gen_msvc_dsp.py
* build/generator/gen_vcproj
  (Generator.write_project):
    use "isinstance(target, TargetApacheMod)" instead of
    "target.is_apache_mod"


r847140 | rey4 | 2003-09-15 21:56:37 +0000 (Mon, 15 Sep 2003)

Prevent vcnet generator from including configuration info in 
subversion_vcnet.sln for projects that don't exist.

* build/generator/gen_vcnet_vcproj.py
  (Generator.write): don't include TargetExternal and TargetSWIG 
    targets in list of guids


r847141 | rey4 | 2003-09-15 21:59:21 +0000 (Mon, 15 Sep 2003)

Remove some unneccessary dependencies from build.conf

* build.conf:
  (__SWIG_PYTHON__, __SWIG_JAVA__): remove dependencies on static 
    utility libraries, since they aren't really targets themselves,
    just dependencies of individual swig modules


r847142 | rey4 | 2003-09-15 22:02:43 +0000 (Mon, 15 Sep 2003)

Sort outputted lists of dependencies in a more uniform way to make it
easier to check for regressions when the build generator is modified
in the future.

* build/generator/gen_base.py
  (DependencyNode.__str__, DependencyNode.__cmp__,
   Target.__str__, Target.__cmp__, _node_str, _node_cmp):
    make Target and DependencyNode instances use the same criteria
    for sorting

  (TargetSWIG.add_dependencies): 
    add swig dependencies on libraries listed in 'libs' options in 
    build.conf after all other dependencies so lists of swig 
    dependencies in build-outputs.mk look more like lists of other
    dependencies.
     
* build/generator/gen_win.py
  (WinGeneratorBase.adjust_win_depends): 
    sort returned dependency list. This affects the ordering of
    dependency lists in subversion_msvc.dsw and subversion_vcnet.sln


r847143 | rey4 | 2003-09-15 22:04:31 +0000 (Mon, 15 Sep 2003)

Change project generator to take all projects from the dependency
graph instead of taking some from the dependency graph and some
from the "targets" dictionary. This change has no effect on
outputted project files.

* build/generator/gen_win.py
  (WinGeneratorBase.get_install_targets):
    get project targets from graph instead of "targets" dictionary

* build/generator/gen_vcnet_vcproj.py
* build/generator/gen_msvc_dsp.py
  (Generator.write):
    remove special case code for TargetSWIG targets
    which is no longer neccessary

* build/generator/gen_base.py
  (dep_types): add new "DT_PROJECT" type
  
  (TargetSpecial.add_dependencies): add self to dependency graph


r847144 | rey4 | 2003-09-15 22:07:07 +0000 (Mon, 15 Sep 2003)

Join Target and DependencyNode hierachies. The main obstacle to doing
this had been the differences between normal sections of build.conf and
swig sections. Normal sections are each associated with a single target,
while swig sections are associated with multiple targets (one for each
scripting language). This meant that data about swig sections and
targets had to be kept in two separate classes (SWIGLibrary for targets
and TargetSWIG for sections), while normal sections had their target
and section information in a single class (Target). This patch resolves
the difference by adding a new class called Target.Section which holds
section data for all sections.

This patch has no effect on outputted makefiles or project files.

* build/generator/gen_base.py
  (GeneratorBase.__init__):
    update code that creates new targets, and remove some special
    case code for SWIG that is no longer neccessary

  (GeneratorBase._find_libs):
    just return string for unknown libraries instead of creating
    ExternalLibrary classes

  (DependencyGraph.bulk_add):
    new method to add multiple dependencies at once

  (DependencyNode.__str__, DependencyNode.__cmp__):
    simplify these methods now that Target / DependencyNode class
    hierarchies are merged

  (SWIGLibrary, SWIGRuntimeLibrary): removed

  (Target, Target.__init__):
    inherit from DependencyNode, remove some member assignments that
    are no longer neccessary

  (Target.add_dependencies, TargetLinked.add_dependencies,
   TargetScript.add_dependencies):
    changed signatures, implementations pretty much the same

  (Target.Section):
    new inner class to hold section data and to create and keep track
    of Targets corresponding to a section.

  (Target.__str__, Target.__cmp__, Target.__hash__):
    removed, no longer needed now that Target inherits from
    DependencyNode

  (TargetLinked.__init__, TargetExe.__init__, TargetLib.__init__,
   TargetApacheMod.__init__, TargetSpecial.__init__):
    add "sources" and "fname" members

  (TargetSWIG, TargetSWIG.__init__):
    inherit from TargetLib instead of Target, add in some members
    from old SWIGLibrary class

  (TargetSWIG.add_dependencies, TargetSWIGRuntime.add_dependencies):
    change signatures, change implementations to add only one target
    instead of one target for each language

  (TargetSWIGUtility.__init__):
    rename "language" member to "lang" for consistency with other SWIG
    classes

* build/generator/win_base.py
  (GeneratorBase._find_libs):
    just return string for unknown libraries instead of creating
    ExternalLibrary instances

  (WinGeneratorBase.get_install_targets):
    updated calls that create fake "depsubr" and "depdelta" targets

  (WinGeneratorBase.get_proj_sources, WinGeneratorBase.gen_proj_names,
   WinGeneratorBase.get_win_defines, WinGeneratorBase.get_win_includes,
   WinGeneratorBase.get_win_libs): check for TargetSWIG instances
    instead of SWIGLibrary instances

  (WinGeneratorBase.adjust_win_depends):
    updated calls that add dependencies

  (WinGenerator.get_win_depends):
    remove some special case code for swig that is no longer neccessary

* build/generator/gen_make.py
  (Generator.write):
    check for TargetSWIG instances instead of SWIGLibrary instances

* build/generator/gen_vcnet_vcproj.py
  (Generator.write_project):
    check for TargetSWIG instances instead of SWIGLibrary instances

* build/generator/gen_msvc_dsp.py
  (Generator.write_project):
    check for TargetSWIG instances instead of SWIGLibrary instances


r847145 | rey4 | 2003-09-15 22:09:21 +0000 (Mon, 15 Sep 2003)

Superficial changes to makefile / project generator: renaming variables,
reordering code, adding docstrings, changing whitespace, eliminating 
dead code and doing some minor refactoring.

Here is a list of renamed class members:

Old Names                       New Names
----------------------------    ----------------------------

Generator.targets               Generator.sections
Generator.skip_targets          Generator.skip_sections
Generator._find_libs            Generator.find_sections
Generator._filter_targets       Generator._filter_sections
DependencyNode.fname            DependencyNode.filename
Target.output                   Target.filename
ObjectFile.build_cmd            ObjectFile.compile_cmd

This patch has no effect on the outputted makefile or project files.

Changed files:

* build/generator/gen_base.py
* build/generator/gen_make.py
* build/generator/gen_win.py
* build/generator/gen_msvc_dsp.py
* build/generator/gen_vcnet_vcproj.py


r847146 | rey4 | 2003-09-15 22:11:00 +0000 (Mon, 15 Sep 2003)

Rename "depsubr" and "depdelta" projects to "libsvn_subr_fake" and
"libsvn_delta_fake"

* build/generator/gen_win.py
  (WinGeneratorBase.get_install_targets,
   WinGeneratorBase.adjust_win_depends):
    use new names for fake projects


r847147 | rey4 | 2003-09-15 22:15:19 +0000 (Mon, 15 Sep 2003)

Add new "msvc-deps" and "msvc-fake-deps" configuration options, so
special case code for individual projects in gen_win.py can be
eliminated

* build.conf
  (libsvn_ra_dav, libsvn_ra_svn, libsvn_wc, mod_authz_svn):
    use new build options for msvc dependency information
  
* build/generator/gen_win.py
  (WinGeneratorBase.get_install_targets, get_install_targets):
    read fake project information from graph instead of relying
    on hardcoded values.


r847150 | rey4 | 2003-09-17 01:38:26 +0000 (Wed, 17 Sep 2003)

Fix bugs in configuration API reported by Barry Scott <barry@barrys-emacs.org>
on user list.

* subversion/bindings/swig/core.i
  (const char *config_dir):
    allow None to be passed for this argument

  (apr_hash_t **cfg_hash);
    make this argument into a return value



r847152 | rey4 | 2003-09-17 18:08:09 +0000 (Wed, 17 Sep 2003)

* subversion/bindings/swig/core.i
    fix a comment


r847302 | rey4 | 2003-09-29 01:41:49 +0000 (Mon, 29 Sep 2003)

Remove some extraneous settings from build.conf. This change has no
effect on the outputted makefile or project files.

* build.conf
  (neon):
    remove 'release' and 'debug' settings. These doen't have effect
    and i'm not sure what effect they were intended to have since
    the neon project file is not outputted by the build generator


r847303 | rey4 | 2003-09-29 01:45:27 +0000 (Mon, 29 Sep 2003)

Change implementations of two methods in WinGeneratorBase. These
changes have no effect on the outputted makefile or project files.

* build/generator/gen_win.py
  (WinGeneratorBase.get_win_depends,
   WinGeneratorBase.get_win_depends_impl):
    move recursive portion of gen_win_depends into
    gen_win_depends_impl to prevent unneccessary copying and sorting
    with each recursive call

  (WinGeneratorBase.get_win_libs):
    compute berkeley db library name in one place instead of three


r847304 | rey4 | 2003-09-29 01:49:16 +0000 (Mon, 29 Sep 2003)

Move some logic from dsp and vcproj generators into common base.
This change has no effect on the outputted makefile or project files.

* build/generator/gen_win.py
  (WinGeneratorBase.get_install_targets):
    skip script targets

* build/generator/gen_vcnet_proj.py
* build/generator/gen_msvc_dsp.py
  (Generator.write):
    remove code for skipping script targets


r847305 | rey4 | 2003-09-29 01:51:43 +0000 (Mon, 29 Sep 2003)

Get rid of "external" target type since external targets are really
just types of "utility" targets. This change has no effect on the
outputted makefile or project files.

* build.conf:
  (__INSTALLER__):
    change type for "external" to "utility"

* build/generator/gen_base.py
  (TargetExternal, _build_types):
    remove external target type

* build/generator/gen_msvc_dsp.py
* build/generator/gen_vcnet_vcproj.py
* build/generator/gen_make.py
    update various conditional expressions that detect external
    targets


r847306 | rey4 | 2003-09-29 01:53:34 +0000 (Mon, 29 Sep 2003)

Mass renaming. "project" targets are now called "external" targets and
"utility" targets are now called "project" targets. This change has no
effect on the outputted makefile or project files.

Changed files:

* build.conf
* build/generator/gen_base.py
* build/generator/gen_make.py
* build/generator/gen_win.py
* build/generator/gen_msvc_dsp.py
* build/generator/gen_vcnet_vcproj.py


r847307 | rey4 | 2003-09-29 01:56:12 +0000 (Mon, 29 Sep 2003)

Replace "path" and "project_name" options for "external" targets in
build.conf with a new option called "msvc-project" which explicitly
specifies the path of the external msvc project file.

This change affects the order of project dependency lists in the
generated msvc solution and workspace files, but all other output is
unchanged.

* build.conf
  (apr, aprutil, apriconv, apriconv_ccs_modules,
   apriconv_ces_modules, neon, gen_uri_delims,
   xml, __CONFIG__):
    specify external msvc project paths

* build/generator/gen_base.py
  (TargetExternal, TargetExternal.__init__,
   TargetExternal.add_dependencies):
    handle new "msvc-project" option and inherit directly from Target
    instead of TargetSpecial

  (TargetSpecial, TargetProject, TargetProject.__init__,
   TargetProject.add_dependencies):
    move TargetSpecial code into TargetProject, and remove
    TargetSpecial class

* build/generator/gen_vcnet_proj.py
* build/generator/gen_msvc_dsp.py
  (Generator.write):
    simplify code that makes external project paths


r847308 | rey4 | 2003-09-29 02:06:15 +0000 (Mon, 29 Sep 2003)

Instead of using ExternalLibrary class to represent external libraries
for makefile generation and TargetExternal for project generation,
remove ExternalLibrary class and add new "make-lib" member to
TargetExternal class so it can be used for all types of generation.
Removal of ExternalLibrary required that swig module dependencies on
swig utility and runtime libraries be specified differently than
before. So they're now listed in build.conf instead of being coded
in gen_base.py and gen_win.py.

These changes have no effect on outputted makefiles or project files.

* build.conf
  (svn, svnadmin, svndumpfilter, svnlook, libsvn_client,
   libsvn_delta, libsvn_diff, libsvn_fs, libsvn_ra, libsvn_ra_dav,
   libsvn_ra_svn, libsvn_ra_local, libsvn_repos, libsvn_subr,
   libsvn_wc, svnserve, svnversion, libsvn_swig_py, libsvn_swig_java,
   libsvn_swig_perl, and a bunch of tests):
    depend on TargetExternal targets instead of ExternalLibrary
    targets, i.e. "apr" instead of "$(SVN_APR_LIBS)"

  (swig_client, swig_delta, swig_fs, swig_ra, swig_repos, swig_wc,
   swig_core):
    add explicit dependencies on swig runtime and utility libraries

  (libsvn_swig_py, libsvn_swig_java, libsvn_swig_perl):
    add "lang" parameter and change type from "lib" to "swig-lib" so
    parameter will be used

  (apr, aprutil, apriconv, neon):
    specify "make-lib" parameter with make variable names for linking
    these libraries

  (bdb, ra-libs):
    new external targets

  (__SWIG_PYTHON__, __SWIG_JAVA__, __SWIG_PERL__):
    rename "language" parameter to "lang"

* build/generator/gen_make.py
  (Generator.write):
    look for TargetExternal.make_lib members instead of
    ExternalLibrary instances

* build/generator/gen_base.py
  (GeneratorBase.__init__, GeneratorBase.find_sections):
    expect "libs" and "nonlibs" parameters to contain lists of
    section names only and never refer to makefile variables

  (ExternalLibrary):
    removed

  (TargetSWIG.add_dependencies):
    remove code that added dependencies on swig runtime and utility
    libraries

  (TargetSWIGRuntime.add_dependencies):
    assign "make_lib" member

  (TargetSWIGLib, _build_types):
    add "swig_lib" build type for swig utility libraries

  (TargetExternal):
    add "make_lib" and "msvc_libs" members

  (TargetSWIGProject.__init__):
    rename "language" parameter to "lang"

  (unique):
    bring back this function

* build/generator/gen_win.py
  (WinGeneratorBase.envvars, WinGeneratorBase.__init__,
   WinGeneratorBase.subst_win_env, WinGeneratorBase.find_sections):
    remove mechanicsm for substituting make variables while building
    the dependency graph

  (WinGeneratorBase.adjust_win_depends):
    tweaked to work with new external targets and explicitly
    specified swig dependencies in build.conf

  (WinGeneratorBase.get_win_depends_impl):
    add special handling for new external targets that aren't
    associated with projects

  (WinGeneratorBase.get_win_libs):
    change to handle TargetExternal instances instead of
    ExternalLibrary instances


r847309 | rey4 | 2003-09-29 02:14:42 +0000 (Mon, 29 Sep 2003)

Store global lists of manpages, test programs, output directories, etc,
in dependency graph instead of as members of the Generator class.
This way code that builds up the lists can be moved out of the
main generator loop and into implementations of Target.add_dependencies.

This change affects the BUILD_DIRS lists in build-outputs.mk, but all
other output is unchanged. The BUILD_DIRS lists holds the same set of
of entries but is in a different order and has duplicates removed.

* build/generator/gen_base.py
  (GeneratorBase.__init__):
    remove list members and code that builds lists

  (GeneratorBase.compute_hdr_deps):
    update code which traverses target_dirs

  (list_types, dep_types):
    define constants for storing lists in graphs

  (TargetLinked.add_dependencies, TargetExe.add_dependencies,
   TargetExternal.add_dependencies, TargetProject.add_dependencies):
    add code to build up lists

  (TargetExe.__init__):
    read "manpages" and "testing" options

* build/generator/gen_win.py
  (WinGeneratorBase.get_install_targets):
    update code which gets list of projects

* build/generator/gen_make.py
  (Generator.write):
    update code which gets lists of directories, tests, and manpages


r847320 | rey4 | 2003-09-29 20:59:50 +0000 (Mon, 29 Sep 2003)

Changes to cvs2svn.py and its regression testing script so they will
work on Windows. Martin Fuchs <martin-fuchs@gmx.net> and
François Beausoleil <fbos@users.sourceforge.net> helped test this
patch at different points and comments from Max Bowsher <maxb@ukf.net>
and <cmpilato@collab.net> helped improve the code.

Review by: Martin Fuchs <martin-fuchs@gmx.net>
           François Beausoleil <fbos@users.sourceforge.net>
           Max Bowsher <maxb@ukf.net>
           C. Michael Pilato <cmpilato@collab.net> 

* tools/cvs2svn/cvs2svn.py
  (relative_name):
    Changed this function to expect os.sep in the file path passed to
    it instead of forward slashes.

  (escape_shell_arg):
    new function to escape shell arguments, works differently on unix
    and windows

  (Dumper.add_or_change_path):
    changed to use the escape_shell_arg function

  (pass2):
    explicitly specify text mode when opening list of filenames

* tools/cvs2svn/run-tests.py
  (run_cvs2svn):
    changed command line used to start cvs2svn on windows

  (repos_to_url):
    Added missing slash detection. Needed because absolute paths on
    windows begin with a drive letter instead of a slash.

  (svn_strptime):
    new function to take the place of time.strptime, which doesn't
    exist on windows

  (Log.__init__):
    replaced time.strptime() call with svn_strptime() call.


r847369 | rey4 | 2003-10-04 13:37:36 +0000 (Sat, 04 Oct 2003)

Get skipped sections to work again so gen-make can run without
--with-httpd option.

* build/generator/gen_base.py
  (Generator.find_sections): 
    ignore skipped section names


r847370 | rey4 | 2003-10-04 18:25:15 +0000 (Sat, 04 Oct 2003)

Make python svn_config_get_config return an opaque pointer to the apr hash
of config options instead of converting the hash to a python dictionary.
Change motivated by discussion with Barry Scott <barry@barrys-emacs.org>
on the user's list.

* subversion/bindings/swig/core.i
  (apr_hash_t **cfg_hash): 
    return pointer instead of converting to dictionary



r847423 | rey4 | 2003-10-08 05:56:28 +0000 (Wed, 08 Oct 2003)

Handle svn_wc_status_func_t callback, also fixed a comment in svn_client.i
Missing callback was pointed out by Barry Scott <barry@barrys-emacs.org>
on the users list. He also posted a little script to test it.

Review by: Barry Scott <barry@barrys-emacs.org>

* subversion/bindings/swig/svn_client.i
  (svn_wc_status_func_t status_func, void *status_baton):
    new typemap

* subversion/bindings/swig/swigutil_py.h
  (svn_swig_py_status_func):
    new thunk declaration

* subversion/bindings/swig/swigutil_py.c
  (svn_swig_py_status_func):
    new thunk definition

  (make_ob_status):
    new static function used by svn_swig_py_status_func


r847424 | rey4 | 2003-10-08 06:01:01 +0000 (Wed, 08 Oct 2003)

* subversion/bindings/swig/INSTALL
    update instructions for building swig bindings with MSVC.NET


r847486 | rey4 | 2003-10-14 03:45:49 +0000 (Tue, 14 Oct 2003)

Get rid of TargetExternal class and move its functionality into
TargetLinked. This change will help simplify parts of the project
generator that don't need to distinguish between generated projects
and preexisting projects. This change has no effect on outputted
makefiles or project files.

* build.conf
  (apr, aprutil, apriconv, apriconv_ccs_modules, apriconv_ces_modules,
   bdb, neon, gen_uri_delims, xml, ra-libs, __CONFIG__):
    change from "external" type to actual type. rename "make-lib" and
    "msvc-project" members to "external-lib" and "external-project"

* build/generator/gen_base.py
  (Target.__init__):
    set default path value

  (TargetLinked.__init__, TargetLinked.add_dependencies,
   TargetExternal, _build_types):
    move code from TargetExternal to TargetLinked, remove
    TargetExternal class

  (TargetSWIGRuntime.add_dependencies):
    assign "external_lib" member instead of "make_lib"

* build/generator/gen_make.py
  (Generator.write, Generator.write_symbols):
    update references to TargetExternal

* build/generator/gen_win.py
  (WinGeneratorBase.get_win_depends_impl, Generator.get_win_libs):
    update references to TargetExternal

* build/generator/gen_msvc_dsp.py
  (Generator.write):
    update references to TargetExternal

* build/generator/gen_vcnet_vcproj.py
  (Generator.write):
    update references to TargetExternal


r847487 | rey4 | 2003-10-14 04:00:06 +0000 (Tue, 14 Oct 2003)

Stop having static libraries depend on each other in msvc. These
dependencies caused msvc to copy all object code that a library
depended on into the library itself. This change saves disk space
(for example, it shrinks the ra library from 4 mb to 16 kb) and
allows some code in gen_win.py to be simplified. This change has no
effect on the generated makefile, or on individual project files,
but the dependencies between project files are now different.

* build.conf
  (libsvn_client, libsvn_delta, libsvn_diff, libsvn_fs, libsvn_ra,
   libsvn_ra_dav, libsvn_ra_svn, libsvn_ra_local, libsvn_repos,
   libsvn_subr, libsvn_wc, libsvn_swig_py, libsvn_swig_java,
   libsvn_swig_perl, libsvn_test, libsvn_test_fs, apr, aprutil,
   apriconv, neon, xml):
    add "msvc-static" option, and "msvc-fake" option for libraries
    that generate their headers as they are being built in msvc

  (apriconv_ccs_modules, apriconv_ces_modules):
    change types from "lib" to "exe"

  (libsvn_ra_dav, libsvn_ra_svn, libsvn_wc, mod_authz_svn):
    remove "msvc-deps" amd "msvc-fake-deps" options

* build/generator/gen_base.py
  (GeneratorBase.__init__, dep_types):
    get rid of "msvc-deps" and "msvc-fake-deps" options

  (TargetLib.__init__):
    read new "msvc-static" and "msvc-fake" options

* build/generator/gen_win.py
  (WinGeneratorBase.get_install_targets, 
   WinGeneratorBase.create_fake_target):
    update code which creates "fake" projects

  (WinGeneratorBase.adjust_win_depends,
   WinGeneratorBase.get_win_depends,
   WinGeneratorBase.get_win_depends_impl)
    change the way msvc dependencies are read off of the dependency
    graph

  (WinGeneratorBase.get_win_libs, WinGeneratorBase.get_win_sources):
    update calls to get_win_depends


r847488 | rey4 | 2003-10-14 04:03:18 +0000 (Tue, 14 Oct 2003)

Use new "msvc_static" values in another context. This change has no
effect on outputted makefiles or project files.

* build/generator/gen_msvc_dsp.py
* build/generator/gen_vcnet_vcproj.py
  (Generator.write_project):
    use "msvc_static" value


r847489 | rey4 | 2003-10-14 04:05:05 +0000 (Tue, 14 Oct 2003)

Update get_win_libs function(). This change has no effect on the
generated makefile. It does cause some project files to link with
fewer (unneccessary) external libraries.

* build/generator/gen_win.py
  (Generator.get_win_libs):
    use "msvc-static" values

* build.conf
  (libsvn_subr, apr, neon):
    set "msvc-libs" options


r847490 | rey4 | 2003-10-14 04:12:53 +0000 (Tue, 14 Oct 2003)

Revert revision 7415. I checked in the wrong patch.

Affected files:

*  build.conf
*  build/generator/gen_vcnet_vcproj.py
*  build/generator/gen_base.py
*  build/generator/gen_win.py
*  build/generator/gen_make.py
*  build/generator/gen_msvc_dsp.py


r847491 | rey4 | 2003-10-14 04:18:45 +0000 (Tue, 14 Oct 2003)

Update get_win_libs function(). This change has no effect on the
generated makefile. It does cause some project files to link with
fewer (unneccessary) external libraries.

* build/generator/gen_win.py
  (Generator.get_win_libs):
    use "msvc-static" values

* build.conf
  (libsvn_subr, apr, neon):
    set "msvc-libs" options


r847492 | rey4 | 2003-10-14 04:20:41 +0000 (Tue, 14 Oct 2003)

Add a few missing dependencies that caused errors when I tried to
compile subversion libraries as dlls.

* build.conf
  (libsvn_subr, svnversion, aprutil):
    add missing dependencies
    
  (xml):
    set "external-lib" option

r847653 | rey4 | 2003-10-31 03:58:59 +0000 (Fri, 31 Oct 2003)

Minor api change to allow the subr library to be built as a DLL. Replace
global variable svn_md5_empty_string_digest with a function of the same
name, because it's the only global variable in the entire Subversion API
and, unlike functions, global variables can't be transparently imported
from Windows DLLs in C.

Approved by: Greg Stein <gstein@lyra.org>

* subversion/include/svn_md5.h
* libsvn_subr/md5.c
  (svn_md5_empty_string_digest):
    convert this from an extern global into a function

* subversion/libsvn_fs/reps-strings.c
  (svn_fs__get_mutable_rep, rep_contents_clear):
    update references to svn_md5_empty_string_digest


r848183 | brane | 2003-12-28 04:37:18 +0000 (Sun, 28 Dec 2003)

Start using the APR DLLs instead of linking with static libs on Windows.
This change combines two patches from Russell Yanofsky <rey4@columbia.edu>
(see below) with the following changes:

* gen-make.py (Options): New class; container for command line options.
   Use it wherever the 'rest' list was used before.
  (__main__): Recognise options --with-apr, --with-apr-util, and
   --with-apr-iconv, and change --with-httpd to set these explicitly.
   Remember all build config options in a file called 'gen-make.opts'.
  (_usage_exit): Document the new command-line options.

* win-tests.py: Parse 'gen-make.opts' to get the location of the APR modules.
   Move the APR DLLs to the objdir, and set the PATH and APR_ICONV_PATH
   environment variables before running tests. Add logic to run svnserve
   for svn:// tests and new option --svnserve-args for custom arguments.
   Document this option.

* build/generator/gen_base.py (GeneratorBase.__init__): Add APR module
   paths to self.cfg.
  (TargetLinked.__init__): Use real APR module paths for external projects.

* build/generator/gen_win.py (WinGeneratorBase.parse_options): Interpret
   the --with-apr* options from gen-make.py and set the self.apr_path,
   self.apr_util_path and self.apr_iconv_path attributes. Use them
   everywhere instead of hard-coded paths to APR modules.
   Construct [expat_path] when generating build_neon.bat.

* INSTALL: Document changes to the Windows build.

* build/generator/gen_vcnet_vcproj.py: Use calculated paths to APR modules
   instead of hard-coded paths.

* build/generator/build_neon.ezt: Use [expat_path] instead of hardcoded path.

* .: Add 'gen-make.opts' to svn:ignore.


1st patch from Russell Yanofsky <rey4@columbia.edu>:
--------
Link with dynamic apr libraries instead of static ones on windows. This
change probably breaks the windows testing script and the windows installer,
since subversion executables now depend on libapr.dll, libaprutil.dll,
and libapriconv.dll. It has no effect on the generated makefile.

* build.conf
  (apr, aprutil, apriconv, apriconv_ccs_modules, apriconv_ces_modules):
    refer to .dll projects instead of .lib projects

* build/generator/gen_base.py
  (Target.__init__):
    add new "msvc_name" option

* build/generator/gen_win.py
  (WinGeneratorBase.gen_proj_names, WinGeneratorBase.create_fake_target):
    use new "msvc_name" to override msvc project names

  (WinGeneratorBase.get_win_defines):
    stop defining "APR_DECLARE_STATIC" and "APU_DECLARE_STATIC"


2nd patch from Russell Yanofsky <rey4@columbia.edu>:
--------
Normalize the way apache modules are built on windows, now that all of
subversion is using the dynamically linked apr library. This change
effects only the outputted mod_dav_svn and mod_auth_svn projects.

* build.conf
  (mod_dav_svn, mod_authz_svn)
    add dependencies for windows

* build/generator/gen_win.py

  (WinGeneratorBase.get_win_depends_impl):
    change to make use of nonlibs option

  (WinGeneratorBase.adjust_win_depends,
   WinGeneratorBase.get_win_lib_dirs,
   WinGeneratorBase.get_win_libs,
   WinGeneratorBase.get_win_sources):
    delete some special case apache code that's no longer neccessary

Patch by: Russell Yanofsky <rey4@columbia.edu>


r848323 | rey4 | 2004-01-12 01:50:25 +0000 (Mon, 12 Jan 2004)

Some groundwork for Issue 1627 "create subversion DLLs on Windows."
Change some template variables in msvc projects to make it easier
to add custom build steps. This change has no effect on generated
makefiles or project files.

* build/generator/gen_win.py
  (WinGeneratorBase.get_proj_sources):
    add "sources.custom_build" variable to determine the type of build.
    rename "sources.swig_target" to "sources.custom_target"

* build/generator/msvc_dsp.ezt
* build/generator/vcnet_vcproj.ezt
    use "sources.custom_build" to determine build type instead of
    "swig_language" and "swig_output" variables.
    replace use of "sources.swig_target"


r848324 | rey4 | 2004-01-12 01:54:29 +0000 (Mon, 12 Jan 2004)

Some more groundwork for Issue 1627 "create subversion DLLs on Windows."
Rewrite WinGeneratorBase.get_win_depends() implementation to come up
with correct project dependencies when a library is dynamically linked
to some targets and statically linked to others. This change has no effect
on generated makefiles or project files.

* build/generator/gen_win.py
  (WinGeneratorBase.get_win_depends_impl
   WinGeneratorBase.get_direct_depends
   WinGeneratorBase.get_static_win_depends
   WinGeneratorBase.get_linked_win_depends):
    break up "get_win_depends_impl" into three new methods. The new
    methods implement the same logic as the old method but they
    return extra information about dependencies to their callers.

  (WinGeneratorBase.get_win_depends):
    call the new methods instead of get_win_depends_impl().
    also add some new logic to filter lists of dependencies

  (WinGeneratorBase.get_win_libs
   WinGeneratorBase.adjust_win_depends):
    update calls to get_win_depends()


r848325 | rey4 | 2004-01-12 01:56:25 +0000 (Mon, 12 Jan 2004)

Even more groundwork for Issue 1627 "create subversion DLLs on Windows."
Change extractor.py (the script that scans subversion public headers and
produces lists of functions that need to be exported from dlls) to work
with current headers and to output valid module definition files
(.def files).

* build/generator/extractor.py
  (_funcs, extract_funcs):
    make regular expression for finding function declarations a
    little more tolerant

  (scan_headers, headers_to_libraries):
    removed. header information is now stored in build.conf

  (global code):
    change to output function list in .def format


r850050 | rey4 | 2004-06-13 01:02:06 +0000 (Sun, 13 Jun 2004)

Tweaks to new make generator code introduced in r9935. These changes
have no effect on the generated makefiles or project files.

* build/generator/gen_base.py
  (Target.__init__, TargetJavaHeaders.__init__,
   TargetJavaClasses.__init__): Get rid of "needs_windows_custom_build" member.
  (TargetJavaHeaders.get_windows_custom_build,
   TargetJavaHeaders.get_windows_custom_target,
   TargetJavaClasses.get_windows_custom_build,
   TargetJavaClasses.get_windows_custom_target): Removed.

* build/generator/gen_win.py
  (WinGeneratorBase.get_proj_sources): Move in code from
    get_windows_custom* methods in gen_base.py that makes the custom
    build command lines.  Shortened the code a little but preserved
    original logic.

* build/generator/gen_msvc_dsp.py
* build/generator/gen_vcnet_vcproj.py
  (Generator.get_project_quote, Generator.quote): Change quote functions


r850051 | rey4 | 2004-06-13 02:06:20 +0000 (Sun, 13 Jun 2004)

Minor make generator changes: remove sorting voodoo from gen_base.py,
instead just sort dependencies before outputting them. Also remove
extra whitespace from project files introduced in r9935. These changes
affect the order of dependencies and whitespace in the generated
makefiles and project files, but leave them the same otherwise.

* build/generator/gen_base.py
  (DependencyGraph.get_all_sources, DependencyGraph.get_deps):
    remove sorting code

  (DependencyGraph.get_targets, DependencyNode.__cmp__,
   DependencyNode.__hash__):
    removed

  (TargetI18N.__init__, TargetJava.__init__):
    stop setting garbage filename values

  (_sorted_files):
    add special case for TargetJava and TargetI18N

* build/generator/gen_make.py
  (Generator.write, Generator.write_symbols):
    add dependency sorting code

* build/generator/gen_win.py
  (WinGeneratorBase.get_install_targets,
   WinGeneratorBase.adjust_win_depends,
   WinGeneratorBase.get_win_depends)
    update dependency sorting code

* build/generator/msvc_dsp.ezt
    remove whitespace


r850111 | rey4 | 2004-06-20 19:24:10 +0000 (Sun, 20 Jun 2004)

On windows, generate swig runtime libraries by invoking swig instead
of cobbling together internal swig source files. This change simplifies
the build process but breaks compatibility with SWIG 1.3.19 and earlier
on windows.

* build/win32/gen_swig_runtime.py
    removed

* build/generator/gen_win.py
  (WinGeneratorBase._find_swig)
    stop setting swig_options variable

  (WinGeneratorBase.get_proj_sources):
    use swig to generate runtime libraries instead of gen_swig_runtime.py,
    stop using swig_options variable, and remove workaround for swig 1.3.19

* build/generator/gen_msvc_dsp.py
* build/generator/gen_vcnet_vcproj.py
  (Generator.write_project)
    stop using swig_options variable

* build/generator/msvc_dsp.ezt
    add quotes around source paths

* subversion/bindings/swig/INSTALL
    update build instructions


r850113 | rey4 | 2004-06-20 21:18:36 +0000 (Sun, 20 Jun 2004)

Fix perl bindings on windows. These changes allow the swig modules
to be built and loaded by perl. However, the bindings as a whole
still don't work due to problems with the native modules
(bindings/swig/perl/native/*.pm)

* build.conf
  (swig_core):
    add more library dependencies

  (many sections...)
    restore perl targets which were removed in r10023. Although these
    targets aren't used by the unix build process, they are neccessary
    on windows.

* build/generator/gen_make.py
    omit "swig-pl" and "install-swig-pl" build targets from outputted
    makefile

* subversion/bindings/swig/perl/native/h2i.pl
    stop outputting vararg macros, ms compilers don't like them

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
  (snprintf, strtoll):
    add workarounds for ms c runtime

* subversion/bindings/swig/INSTALL
    update instructions for perl on windows

* build/generator/gen_win.py
  (WinGeneratorBase.get_proj_sources)
    add special custom build rules for perl bindings

* build/generator/gen_base.py
  (TargetSWIG.add_dependencies)
    change outputted module names for perl bindings

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
* subversion/bindings/swig/perl/native/h2i.pl
    set native eol-style properties


r850114 | rey4 | 2004-06-20 23:03:14 +0000 (Sun, 20 Jun 2004)

Revert 10037, as requested on dev list.
(http://www.contactor.se/~dast/svn/archive-2004-06/0683.shtml)

* subversion\bindings\swig\INSTALL
* build\win32\gen_swig_runtime.py
* build\generator\msvc_dsp.ezt
* build\generator\gen_vcnet_vcproj.py
* build\generator\gen_win.py
* build\generator\gen_msvc_dsp.py
    put these back


r850115 | rey4 | 2004-06-21 01:13:23 +0000 (Mon, 21 Jun 2004)

Fix for building perl bindings on windows

* build/win32/gen_swig_runtime.py
  (languages):
    fix perl include statement


r850116 | rey4 | 2004-06-21 01:15:24 +0000 (Mon, 21 Jun 2004)

Improvements for perl bindings on windows.

Suggested by: Branko Čibej <brane@xbc.nu>

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
  (strtoll):
    use safer macros

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
  (snprintf):
    removed

* build/generator/gen_win.py
  (WinGeneratorBase.get_win_defines):
    define snprintf here


r850117 | rey4 | 2004-06-21 01:28:50 +0000 (Mon, 21 Jun 2004)

Fix macro usage in perl bindings

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
  (strtoll):
    make sure _MSC_VER is defined before using it


r850159 | rey4 | 2004-06-27 20:38:09 +0000 (Sun, 27 Jun 2004)

Fix problem with windows build of perl bindings.

* build/generator/gen_win.py
  (WinGeneratorBase.get_proj_sources):
    invoke swig with -noproxy option


r850162 | rey4 | 2004-06-28 00:23:47 +0000 (Mon, 28 Jun 2004)

Changes to perl utility library so it will be easier to build as a DLL
on windows.

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
  (current_pool):
    remove this variable from the public interface

  (svn_swig_pl_set_current_pool, svn_swig_pl_get_current_pool):
    new functions to access current_pool value

* subversion/bindings/swig/core.i
  (current_pool):
    add typemaps to use the new current_pool functions


r850163 | rey4 | 2004-06-28 02:05:24 +0000 (Mon, 28 Jun 2004)

Build perl utility library as a DLL instead of a static library on windows
so it can be shared by all the perl modules instead of statically linked
into each of them. This is neccessary because the library has global
state which needs to be shared across the different modules.

This change is based on patches from issue 1627, "create subversion DLLs
on Windows"

* build.conf
  (libsvn_swig_perl)
    build as dll and add missing dependencies

* build/generator/gen_win.py
  (WinGeneratorBase.get_proj_sources):
    add custom build steps for generating module definition (.def)
    files

  (WinGeneratorBase.get_def_file):
    new function

  (WinGeneratorBase.get_win_libs):
    link perl utility library with perl dll

* build/generator/gen_base.py
  (TargetLib.__init__):
    read new "msvc-export" option

* build/generator/gen_vcnet_vcproj.py
  (Generator.write_project):
    add new "def_file" template variable

* build/generator/vcnet_vcproj.ezt
    output "def_file" value

* subversion/bindings/swig/INSTALL
    include new dll file in perl installation steps


r850179 | rey4 | 2004-06-29 23:50:29 +0000 (Tue, 29 Jun 2004)

Update swig dependencies

* build.conf
  (swig_client):
    add apr dependency (perl bindings use apr_time_now)



r850203 | rey4 | 2004-07-03 04:46:23 +0000 (Sat, 03 Jul 2004)

Get swig java bindings to build on windows.

* build/generator/gen_win.py
  (WinGeneratorBase.get_proj_sources):
    call swig with extra options to specify package name and
    destination directory for java wrapper classes

  (WinGeneratorBase.get_win_defines):
    define SWIGJAVA macro here for swig java targets

* subversion/bindings/swig/svn_ra.i
  (svn_ra_plugin_t):
    ignore some troublesome struct members

* subversion/bindings/swig/svn_wc.i
  (svn_wc_diff_callbacks_t):
    ignore some troublesome struct members

* subversion/bindings/swig/java/org/tigris/subversion/swig
    new directory for generated java wrapper classes

* subversion/bindings/swig/java/org/tigris/subversion
    remove swig subdirectory from svn:ignore list


r850215 | rey4 | 2004-07-05 05:07:31 +0000 (Mon, 05 Jul 2004)

Get swig-java bindings running on windows.

* build.conf
  (swig-java-java, __SWIG_JAVA__):
    add missing dependencies

* build/generator/gen_base.py
  (_collect_paths):
    pass along globs that don't match instead of throwing an error

  (TargetJavaClasses.add_dependencies):
    remove no longer neccessary _collect_paths workaround

  (Generator.compute_hdr_deps):
    skip files which don't exist yet

  (TargetJavaHeaders.Section):
    removed. implementation makes no sense, looks like it was
    the result of a copy and paste operation gone awry...

* build/generator/gen_make.py
  (Generator.write:
    handle dependencies on java targets

* build/generator/gen_win.py
  (WinGeneratorBase.get_proj_sources):
    add custom build rule for making JARs on windows

* subversion/bindings/swig/java/org/tigris/subversion/util/NativeResources.java
  (NativeResources.initialize):
    fix loadLibrary calls

* subversion/bindings/swig/INSTALL
    add something about how to use java bindings on windows


r850216 | rey4 | 2004-07-05 05:16:32 +0000 (Mon, 05 Jul 2004)

Fix a typo in swig documentation

* subversion/bindings/swig/INSTALL:
    I can spell D-L-L.

r850252 | rey4 | 2004-07-08 01:43:05 +0000 (Thu, 08 Jul 2004)

Build generator cleanup. Move code that handles the --with-apr*
parameters on windows into the windows backend. This change has
no effect on generated makefiles or project files.

* build/generator/gen_base.py
  (GeneratorBase.__init__):
    remove initializion of apr*_path members

  (TargetLinked.__init__):
    remove code that tweaks targets' external_project properties

* build/generator/gen_msvc_dsp.py
* build/generator/gen_vcnet_vcproj.py
  (Generator.write):
    change to call get_external_project() instead of reading targets'
    external_project property values
    
* build/generator/gen_win.py
  (WinGeneratorBase.get_external_project):
    new function that figures out locations of external projects

* build.conf
  (apr, aprutil, apriconv, apriconv_ccs_modules,
   apriconv_ces_modules, neon, gen_uri_delims, xml, __CONFIG__):
    use forward slashes in paths for apr targets (and some others)


r850253 | rey4 | 2004-07-08 01:44:36 +0000 (Thu, 08 Jul 2004)

Build generator cleanup. Move some of the code for building java
classes and javah headers from the windows backend to the base
generator in order to eliminate some duplicate logic. This change
has no effect on generated makefiles or project files.

* build/generator/gen_base.py
  (TargetJavaHeaders.add_dependencies, 
   TargetJavaClasses.add_dependencies):
    set some extra source and target parameters so the windows build
    has an easier time coming up with java build command lines
    
* build/generator/gen_win.py
  (WinGeneratorBase.get_proj_sources):
    use the new parameters from gen_base for java custom build commands

  (WinGeneratorBase.get_win_sources):
    tweak format of return value so get_proj_sources can access source
    and target objects


r850254 | rey4 | 2004-07-08 01:46:57 +0000 (Thu, 08 Jul 2004)

Build generator cleanup. Move logic for determining output filenames
and directories into windows generator base. This change has no effect
on generated makefiles or project files.

* build/generator/gen_base.py
  (Target.__init__):
    stop setting swig-windows-specific shared_dir variable here

  (TargetSWIG.__init__):
    here too

* build/generator/gen_win.py
  (WinGeneratorBase.get_proj_sources):
    stop resetting JavaTarget path values

  (WinGeneratorBase.get_output_name, WinGeneratorBase.get_output_dir,
   WinGeneratorBase.get_intermediate_dir):
    new

* build/generator/gen_msvc_dsp.py
* build/generator/gen_vcnet_vcproj.py
  (Generator.write_project):
    set new template variables for output paths

* build/generator/msvc_dsp.ezt
* build/generator/vcnet_vcproj.ezt
    use new template variables


r850265 | rey4 | 2004-07-09 00:24:39 +0000 (Fri, 09 Jul 2004)

Build generator cleanup. Try to handle paths thoughout the build
generator more consistently. The main effect of this is that paths in
outputted msvc files and makefiles use one kind of slash instead of
combinations of forward slashes and backslashes.

* build/generator/gen_base.py
  (native_path, build_path, build_path_join, build_path_split,
   build_path_splitfile, build_path_dirname, build_path_basename,
   build_path_retreat, build_path_strip):
    new path handling functions

  (_strip_path, _retreat_dots):
    removed, replaced by build_path_strip and build_path_retreat

  (lots of places):
    make use of new path functions

* build/generator/gen_make.py
  (Generator.write, Generator.write_symbols):
    make use of new path functions

* build/generator/gen_win.py
  (WinGeneratorBase.parse_options, WinGeneratorBase.__init__):
    stop converting all user entered paths into absolute paths,
    instead try to use them as they are

  (WinGeneratorBase.__init__)
    set new "rootpath" member

  (msvc_path, msvc_path_join, WinGeneratorBase.path, WinGeneratorBase.apath):
    new path handling functions

  (WinGeneratorBase.search_for, WinGeneratorBase.map_rootpath,
   WinGeneratorBase.make_windirs):
    removed

  (WinGeneratorBase.get_configs, WinGeneratorBase.get_proj_sources,
   WinGeneratorBase.get_output_dir, WinGeneratorBase.get_intermediate_dir,
   WinGeneratorBase.get_def_file, WinGeneratorBase.get_external_project,
   WinGeneratorBase.get_win_includes, WinGeneratorBase.get_win_lib_dirs):
    make use of new path functions

  (WinGeneratorBase._find_bdb, WinGeneratorBase.parse_options,
   WinGeneratorBase.__init__, get_win_defines, , get_win_libs):
    simplify bdb detection

* build/generator/gen_msvc_dsp.py
* build/generator/gen_vcnet_vcproj.py
  (Generator.write_project, Generator.write):
    stop passing around rootpath parameters


r850280 | rey4 | 2004-07-10 00:29:19 +0000 (Sat, 10 Jul 2004)

Windows build simplification. Invoke apr-util configuration script
(w32locatedb.pl) automatically in gen-make, instead of requiring
users to do it. This mirrors the build process on unix where our
configure script calls apr-util's configure script when it is
building it from source.

* build/generator/gen_win.py
  (WinGeneratorBase._configure_apr_util):
    new function that runs w32locatedb.pl

  (WinGeneratorBase.__init__):
    call _configure_apr_util

* INSTALL
    remove w32locatedb build step

    remove instructions for downloading and copying w32locatedb.pl
    since it's now included with apr-util and apache


r850281 | rey4 | 2004-07-10 01:13:55 +0000 (Sat, 10 Jul 2004)

Perl bindings build change. Set perl module names correctly in swig
interface files instead of setting them wrongly there and then fixing
them on the swig command line. This change has no effect on the
source files swig generates.

* subversion/bindings/swig/core.i
* subversion/bindings/swig/svn_client.i
* subversion/bindings/swig/svn_delta.i
* subversion/bindings/swig/svn_fs.i
* subversion/bindings/swig/svn_ra.i
* subversion/bindings/swig/svn_repos.i
* subversion/bindings/swig/svn_wc.i
    fix %module statement for perl

* build/generator/gen_win.py
  (WinGeneratorBase.get_proj_sources):
    stop passing -module option to swig

* subversion/bindings/swig/perl/native/Makefile.PL.in:
    stop passing -module option to swig


r850286 | breser | 2004-07-10 10:00:02 +0000 (Sat, 10 Jul 2004)

Build generator fix. Make install targets in generated makefile have
explicit dependencies on library install targets. So for example,
make the "install-bin" target depend on the "install-lib"
target because one or more of the installed files in "install-bin"
depends on one or more libraries installed by "install-lib"

Patch by: "Russell Yanofsky" <rey4@columbia.edu>

* build/generator/gen_make.py
  (Generator.write):
    output install dependencies from graph


r850288 | rey4 | 2004-07-10 15:18:32 +0000 (Sat, 10 Jul 2004)

Windows build cleanup. Reorganize code that generates swig command
lines on windows.

* build/generator/gen_win.py
  (WinGeneratorBase.get_proj_sources):
    clean up, get rid of some duplicate logic

  (_find_swig):
    don't set swig options here

* build/generator/gen_msvc_dsp.py.py
* build/generator/gen_vcnet_vcproj.py
  (Generator.write_project):
    remove "swig_options" template variable


r850293 | rey4 | 2004-07-10 17:53:30 +0000 (Sat, 10 Jul 2004)

Miscellaneous make generator cleanup. These changes have no effect on
generated makefiles or project files.

* build/generator/gen_win.py
  (TargetJavaHeaders.add_dependencies, TargetJavaClasses.add_dependencies):
    remove outdated comments

* build/generator/gen_win.py
  (WinGeneratorBase.copyfile, WinGeneratorBase.movefile):
    remove unused functions

  (WinGeneratorBase.__init__):
    remove outdated comments and used member "shared"

  (WinGeneratorBase.get_proj_sources):
    move variable initializion closer to where variable is used


r850300 | rey4 | 2004-07-10 19:33:25 +0000 (Sat, 10 Jul 2004)

Avoid another swig/java/windows problem.

* subversion/bindings/swig/svn_repos.i
  (svn_repos_file_rev_handler_t):
    don't wrap this function pointer type in java


r850302 | rey4 | 2004-07-10 21:04:04 +0000 (Sat, 10 Jul 2004)

Make build generator compatible with older versions of python.

Review by: David Summers <david@summersoft.fay.ar.us>
(Reported the bug and helped test the patch.)

* build/generator/gen_base.py
  (TargetJavaHeaders.add_dependencies, TargetJavaClasses.add_dependencies):
    Don't use extended call syntax.


r850307 | rey4 | 2004-07-10 23:22:35 +0000 (Sat, 10 Jul 2004)

Change build of swig bindings on windows. Export swig runtime functions
from core module instead of building a separate runtime library.

* build.conf
  (swig_core):
    include runtime code

  (swig_client, swig_delta, swig_fs, swig_ra, swig_repos, swig_wc,
   libsvn_swig_py, libsvn_swig_perl):
    depend on core library instead of runtime library

  (libsvn_swig_perl):
    build as static library instead of dll to prevent mutual dependency
    between this library and the core module. Our build system can't
    make two DLLs that depend on each other.

* build/generator/gen_base.py
  (TargetSWIG.__init__):
    read new "include-runtime" option

  (TargetSWIGRuntime, _build_types):
    remove swig_runtime target type

* build/generator/gen_win.py
  (WinGeneratorBase.get_proj_sources):
     remove handling of swig runtime targets

     add -runtime option for generating swig core modules

* subversion/bindings/swig/core.i
* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
  (current_pool, svn_swig_pl_get_current_pool,
   svn_swig_pl_set_current_pool):
    move the perl bindings' "current_pool" variable from swigutil_pl
    library to the core module. Neccessary because we're now building
    the utility library as a static library, and don't want a different
    copy of the global variable in each module that uses the library

* subversion/bindings/swig/INSTALL
    don't copy nonexistent perl runtime and utility libraries

* build/win32/gen_swig_runtime.py
    deleted


r850310 | rey4 | 2004-07-11 15:25:06 +0000 (Sun, 11 Jul 2004)

Get python bindings to build on unix and to not depend on an external
swig runtime library.

* build/ac-macros/swig.m4:
  (SWIG_RUNTIME_FLAG):
    new make variable for swig -runtime option

* Makefile.in
  (RUN_SWIG_PY, RUN_SWIG_NORUN_PY, RUN_SWIG_JAVA, RUN_SWIG_NORUN_JAVA):
    use separate commands for running swig with and without runtime

* build.conf
  (libsvn_swig_python):
    use "nonlibs" dependency on "swig_core" instead of "libs" dependency
    to avoid circular dependency error in make

* build/generator/gen_base.py
  (SWIGObject.__init__, TargetSWIG.add_dependencies):
    add new "target" member to swig objects to expose more build
    information to make backend

* build/generator/gen_make.py
  (Generator.write):
    use "include-runtime" values on swig targets to determine whether to
    call swig with runtime or not



r850448 | rey4 | 2004-07-21 09:16:49 +0000 (Wed, 21 Jul 2004)

Revert the effects of r10233 and r10236 on unix. These changes caused
the build system to include swig runtime functions in our swig "core"
modules so we wouldn't have to depend on external swig runtime
libraries. But they also caused a few problems.

1) They caused a libtool error on linux
   (http://www.contactor.se/~dast/svn/archive-2004-07/0758.shtml).
   Putting the runtime into the core module meant that the other modules
   would need to be linked to it to access the runtime. Libtool would do
   the linking correctly during the initial build, but when it relinked
   the libraries during installation it would try invoke gcc with -l_core,
   which doesn't work because core modules have names like _core.so, not
   lib_core.so. This is probably a bug in libtool.

2) They don't work on cygwin because they create mutual dependencies
   between core modules and libsvn_swig_(perl|py|java) modules. On cygwin,
   libtool can't make two shared libraries which depend on each other.
   A solution to this which was never committed was to build the
   libsvn_swig_* libraries as static libraries.
   (http://www.contactor.se/~dast/svn/archive-2004-07/0586.shtml)

3) They don't work on darwin. Having other modules depend on the core
   modules is no good on darwin because the core moules are built
   as dynamically loadable libraries, not dynamically linked libraries
   on that platform. On darwin, a library can be either dynamically
   loadable or dynamically linked, but not both.
   (http://www.contactor.se/~dast/svn/archive-2004-07/0759.shtml)

* build/ac-macros/swig.m4:
* Makefile.in
    revert r10236

* build/generator/gen_base.py
  (SWIGObject._init_, TargetSWIG.add_dependencies):
    revert r10236

  (TargetSWIGRuntime, TargetSWIG.add_dependencies):
    undo effects of r10233 on unix build, restore dependency on external
    swig runtime libraries

* build.conf
  (swig_client, swig_delta, swig_fs, swig_ra, swig_repos, swig_wc):
    undo effects of r10233 on unix build, make dependencies on
    "swig_core" into "nonlib" dependencies so they only show up
    on windows


r862915 | brane | 2006-12-31 01:05:40 +0000 (Sun, 31 Dec 2006)

Support building DLLs on Windows. This closes #1627.

Patch by: Vlad Georgescu <vgeorgescu@gmail.com>
          rey4
(Tweaked by me.)

* build.conf:
  (libsvn_client, libsvn_delta, libsvn_diff, libsvn_fs,
   libsvn_ra, libsvn_repos, libsvn_subr, libsvn_wc):
  Replace the msvc_static option with a msvc_export option containing the
  list of public header files for that library.
  (swig_client, swig_delta, swig_fs, swig_ra, swig_repos):
  Add dependency on APR.
  (svnserve): Add dependency on advapi32.lib

* build/generator/extractor.py:
  Handle svn_ctype_table.
  (_filter_names): Add svn_auth_get_keychain_simple_provider.

* build/generator/gen_win.py
  (create_dll_target): New. Given a static library, it creates a new
   dynamic library target that depends on that library.
  (get_install_targets): Call create_dll_target for each target that has
   msvc_export set.
  (get_linked_win_depends): Scan the dependency tree in breadth-first
   order, allowing us to prevent cases when both a dll and its
   corresponding static library are linked into a project.
  (get_def_file): Return a name that's in a generated directory, not
   in the source tree.

* build/generator/vcnet_vcproj.ezt,
  build/generator/msvc_dsp.ezt:
  Add empty.c as a source file for dll projects, because Visual Studio
  refuses to build a project's outputs if it has no source files.

* build/win32/empty.c: New file.

* gen-make.py:
  Handle the new --disable-shared option.

* subversion/libsvn_ra/ra_loader.c
  (svn_ra_dav_init, svn_ra_svn_init, svn_ra_local_init, svn_ra_serf_init):
  Implement these here if their corresponding libraries are not linked in,
  and have them return a "not implemented" error.

* subversion/libsvn_subr/ctype.c
  (svn_ctype_table_internal): Rename from ctype_table. Remove 'static'
   qualifier.

* win-tests.py:
  Append the paths to our libraries' dlls to the PATH environment variable.