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.