gen-make.py

Checkout Tools
  • last updated 5 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 869110 is being indexed.

Purge (I think) the source code tree of sqlite stuffs.

* Makefile.in,

* configure.ac,

* gen-make.py,

* build.conf,

* build/win32/make_dist.py,

* build/generator/gen_win.py,

* build/ac-macros/sqlite.m4

Remove sqlite build stuffs.

* subversion/include/private/svn_fs_mergeinfo.h,

* subversion/include/private/svn_fs_sqlite.h,

* subversion/libsvn_fs_util/mergeinfo-sqlite-index.c,

* subversion/libsvn_fs_util/sqlite-util.h,

* subversion/libsvn_fs_util/sqlite-util.c

Remove sqlite-specific source code files.

* subversion/libsvn_fs_base/tree.c,

* subversion/libsvn_fs_base/dag.c,

* subversion/libsvn_fs_fs/tree.c

Stop including now-missing headers.

* subversion/include/svn_error_codes.h

(SVN_ERR_FS_SQLITE_ERROR, SVN_ERR_FS_SQLITE_READONLY): Removed.

(SVN_ERR_FS_NO_SUCH_NODE_ORIGIN): Shift value to fill in a hole.

* subversion/libsvn_fs_fs/fs_fs.c

Stop including now-missing headers.

(svn_fs_fs__hotcopy): Don't copy the sqlite index database.

(commit_body): Don't try to update the sqlite mergeinfo index.

(svn_fs_fs__create): Don't try to create the sqlite index database.

* tools/server-side/svn-populate-node-origins-index.c

(usage_summary): Don't mention the sqlite index file.

* INSTALL

No longer name sqlite as a dependency.

  1. … 18 more files in changeset.
Make generated solution and project files compatible with VS2008 and

MSBuild 3.5 if the --vsnet-version=2008 option is used.

Patch by: Bert Huijben <b.huijben@competence.biz>

* build/generator/gen_vcnet_vcproj.py

Check for new version and use VS2005 solution template

* build/generator/gen_win.py

Allow more versions and set solution and project version for VS2008

Fixed a typo in the error case

* build/generator/vc2005_sln.ezt

Updated to insert "2005" or "2008" based on the selected version.

* gen-make.py

Updated --help documentation

  1. … 3 more files in changeset.
Channeling Erik Hülsmann, remove all trailing whitespace within our source

tree:

for extsn in c h cpp java py pl rb; do

sed -i -e 's/[ \t]*$//' `find . -name "*.$extsn" | xargs grep '[ \t]$' -l`

done

Inspired by: ehu

  1. … 449 more files in changeset.
Support ra_serf and ra_dav builds on Win32.

* build/generator/gen_win.py

(GeneratorBase): Support --without-neon option.

(WinGeneratorBase.get_install_targets): Don't drop neon and ra_dav targets

unless --without-neon is specified.

(WinGeneratorBase.get_win_defines): Allow SVN_LIBSVN_CLIENT_LINKS_RA_SERF

*and* SVN_LIBSVN_CLIENT_LINKS_RA_DAV to be defined, r25384 allows this now.

(WinGeneratorBase.write_neon_project_file): Skip creation of neon project

file only when --without-neon is specified.

* gen-make.py

Handle the --without-neon option.

  1. … 1 more file in changeset.
Merge the merge-tracking branch to trunk.

See notes/merge-tracking.txt for work remaining. Copy test #11,

"working-copy to repository copy", is known to be failing over ra_dav.

A fix has been outlined, and it will be coded up ASAP.

  1. … 85 more files in changeset.
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.

  1. … 9 more files in changeset.
Add in --enable-ml to gen-make.py.

(Overlooked as part of r22162.)

* gen-make.py

(_usage_exit): Include description of --enable-ml.

(__main__): Add enable-ml as a valid option.

Modify the build system on Windows to optionally include and link

Cyrus SASL.

Patch by: Vlad Georgescu <vgeorgescu@gmail.com>

me

* build/gen-make.py

(_usage_exit): Document the new '--with-sasl' option.

Add '--with-sasl' to the options list.

* build/generator/gen_win.py

(parse_options): Parse the '--with-sasl' option.

(get_win_defines): Define SVN_HAVE_SASL.

(get_win_includes): Add Cyrus SASL's include directory.

(get_win_lib_dirs): Add Cyrus SASL's library directory.

(get_win_libs): Add libsasl.lib.

  1. … 1 more file in changeset.
For every getopt-using Python script which does not already do so,

use GNU-style getopt if available.

* gen-make.py

* tools/hook-scripts/log-police.py

* tools/hook-scripts/svnperms.py

* tools/dev/contribulyze.py

* tools/dev/iz/ff2csv.py

* tools/dev/iz/find-fix.py

* tools/dev/lock-check.py

* tools/dev/scramble-tree.py

* tools/examples/dumpprops.py

* tools/examples/revplist.py

* tools/examples/putfile.py

* tools/examples/getfile.py

* tools/examples/blame.py

* contrib/client-side/svnmerge.py

* contrib/hook-scripts/svn2rss.py

* build/win32/make_dist.py

  1. … 15 more files in changeset.
Implement generation of project files for building Serf on

Windows.

NOTE: This doesn't add option to link Subversion with Serf

on Windows. It is only add ability to build ra_serf. Option

to enable Subversion use ra_serf will be committed later.

* build.conf

(serf): Rename external project to be serf instead of libserf,

since we use static linking on Windows.

* build/generator/gen_vcnet_vcproj.py

* build/generator/gen_msvc_dsp.py

(write): Write serf project file too.

* build/generator/gen_win.py

(parse_options): Parse new option '--with-serf'.

(get_external_project): Change location of serf project,

if serf path is specified.

(get_win_includes): Add serf path to includes list.

(write_serf_project_file): New method for generation serf project

file.

* build/generator/serf.dsp.ezt

* build/generator/serf.vcproj.ezt

New templates for serf project files.

* gen-make.py

Add new option '--with-serf' to usage text and options list.

  1. … 6 more files in changeset.
Only regenerate SWIG files based on timestamps when we are in non-release mode.

* autogen.sh

(RELEASE_ARGS): Add variable. Initialize to "--release" in release mode.

(RELEASE_MODE): Build SWIG-related files prior to creating build-outputs.mk.

* gen-make.py

(_usage_exit, __main__): Accept --release option.

* build/generator/gen_base.py

(GeneratorBase.__init__): Set self.release_mode variable based on --release

option.

* build/generator/gen_make.py

(write): Do not generate dependencies for autogenerating SWIG code when we

are in release mode.

* build/generator/gen_win.py

(Generator.__init__): Pass supplied options to GeneratorBase.__init__.

  1. … 4 more files in changeset.
Add a new Makefile specific gen-make.py option '--assume-shared-libs'.

If you know what you are doing, and all your Subversion libs will build shared,

you can use this to omit inter-lib dependencies to avoid unnecessary rebuilds.

* gen-make.py (main): Simplify unnecessarily cautious test.

(_usage_exit): Describe new option. Also fix unrelated typo.

(if __name__ == '__main__'): Add option to getopt options list.

* build/generator/gen_make.py

(file scope): Add compatibility definitions for True and False.

(Generator.__init__): Parse option into member variable.

(Generator.write section 'Individual target build rules'):

If option set, omit certain dependencies.

  1. … 1 more file in changeset.
* gen-make.py:

Fix typo. Followup to r15944.

Teach the Win32 build generator to use a SWIG that's not in the path.

* gen-make.py: Accept option --with-swig.

* build/generator/gen_win.py (WinGeneratorBase.parse_option): Remember

the value of the --with-swig option in self.swig_path.

(WinGeneratorBase._find_swig): Calculate swlf.swig_exe fom self.swig_path.

(WinGeneratorBase.__init__, .get_proj_sources, ._find_swig_libdir):

Use self.swig_exe to run swig.

(WinGeneratorBase.get_proj_sources): Add -DWIN32 to swig options.

  1. … 1 more file in changeset.
Merge python-bindings-improvements to trunk, by comparing trunkURL with

branchURL.

Major changes:

* Always build SWIG headers in the build dir, unless we are still using

pristine SWIG headers from an official Subversion release (r15865).

* Enable SWIG bindings, even if we compile --without-swig. In release builds,

we can build the bindings without SWIG (r15857).

* Refactor SWIG generator to use a modular architecture, separate from the

Unix / Windows generators (r15855).

Minor changes:

* See r15879, r15870, r15868, r15867, r15857, and r15856.

Approved by: jerenkrantz

  1. … 17 more files in changeset.
Merge python-bindings-improvements to trunk, by comparing trunkURL with

branchURL.

New features:

- Automated Test Suite

* Test suite for memory pools (r15396, r15462)

* Test suite for FS library (r15590, r15632)

* In-build-directory testing (r15478)

* Nightly smoke tests (r15505)

- Automatic Memory Management

* Autogenerated proxy classes for SVN structs (r15428)

* Hand-written proxy classes for APR structs (r15484)

* Real reference counting for Pool objects (r15489, r15495, r15500)

* Treat svn_string_t objects as Python strings (r15595)

* Optional Pool Arguments (r15370, r15529)

- Better Documentation and error messages

* Enabled SWIG autodoc feature (r15490)

* Report assertion failures when variables are deleted prematurely

(r15488, r15489, r15492)

* Python argument numbers in error messages (r15460, r15493, r15525)

- Streamlined build process

* Release versions of Subversion bindings can be built without SWIG (r15620,

r15623, r15626, r15635, r15636, r15637, r15642, r15643)

* Automatic dependency checking for SWIG files (r15381, r15405, r15426,

r15429, r15430)

* Makefile rule for clean-swig-py (r15476)

- Other changes

* Compile-time type lookups for SWIG (r15396, r15407, r15408, r15409,

r15412, r15417)

* Move SWIG includes into include directory (r15407, r15408, r15413)

* Refactoring (r15411, r15425, r15453, r15521, r15522, r15527, r15559)

* SWIG bindings compile with Microsoft Visual C++ 6.0 (r15644)

* Minor bugfixes (r15409, r15494, r15496, r15497, r15498, r15499, r15501,

r15511, r15519, r15526, r15565, r15566, r15591, r15592, r15603, r15607,

r15645, r15646, r15653, r15579)

To see commit logs for this feature, examine

/branches/python-bindings-improvements, r15365:15846

Approved by: kfogel

Review by: dberlin

breser

cmpilato

brane

Testing by: Troy Straszheim <troy@resophonic.com>

Christian Boos <cboos@wanadoo.fr>

cmpilato

  1. … 53 more files in changeset.
Simplify regeneration of build scripts by teaching gen-make.py to

reuse options from a previous invocation. Currenty this only affects

the Win32 build due to build generator specifics, but the feature is

generic.

* gen-make.py: Add new option "--reload" to re-read the gen-make.opts

generated by the previous invocation of the script.

Further buildsystem cleanup. Add "gen-make.py --debug" option.

* build/generator/gen_base.py

(TargetSWIGRuntime.__init__): Don't leave parent class uninitialized. Take a

descriptive name, for debugging purposes.

(TargetSWIG.add_dependencies, TargetSWIGLib.add_dependencies):

Change the "may use a SWIG runtime" condition from "not java" to "python or

perl", to accomodate the upcoming ruby bindings.

Adapt to TargetSWIGRuntime change.

(TargetJava): Derive from TargetLinked, not TargetLib. Consequently, no need

to "del self.filename".

* gen-make.py: Implement a new --debug option, which prints out the generator

internal data structures.

(_objinfo): New support routine.

  1. … 1 more file in changeset.
Build generator: Some cleanups. First, don't list names for generators which

have not been implemented. Second, simplify the Generator interface by removing

the configurable output file name - it was an unused and flawed concept, since

2 of the 3 generators generate multiple files anyway.

* gen-make.py (gen_modules): Remove stub entries for non-implemented generator

modules. It is trivial to add a line here if/when an additional generator

is implemented.

(main): Remove the 'not yet implemented' error, it's no longer accurate.

Remove oname parameter, no longer call default_output, and pass no parameter

to write().

* build/generator/gen_vcnet_vcproj.py (Generator.default_output): Remove.

(write): Take no parameters. Use a literal name for the solution file.

* build/generator/gen_vcnet_nmake.py (Generator.default_output): Remove.

(write): Take no parameters. Use a literal name for the workspace file.

* build/generator/gen_make.py (Generator.default_output): Remove.

(write): Take no parameters. Use a literal name for the output file.

  1. … 3 more files in changeset.
Update the Win32 build and packaging scripts:

-- the location of the Neon sources and libintl can be customised;

-- add some missing libraries and the *.mo files to the distribution.

* gen-make.py: Add options --with-neon and --with-libintl.

* build/generator/gen_win.py

(WinGeneratorBase.parse_options): Handle --with-neon and --with-libintl.

(WinGeneratorBase.__init__): Use the neon path parameter when generating

build_neon.bat.

(WinGeneratorBase.get_win_includes): Point at the Neon and libibintl

include directories.

(WinGeneratorBase.get_win_libs): Point at intl.lib.

(WinGeneratorBase.write_neon_project_file): New.

(WinGeneratorBase.move_proj_file): Move here from gen_vcnet_vcproj.py

and add an optional list of parameters for template generation.

* build/generator/gen_vcnet_vcproj.py

(Generator.move_proj_file): Move to WinGeneratorBase.

(Generator.write): Use write_neon_project_file to generate neon.vcproj.

* build/generator/gen_msvc_dsp.py

(Generator.write): Use write_neon_project_file to generate neon.dsp.

* build/generator/build_neon.ezt: Parametrize the Neon source path.

* build/generator/neon.dsp.ezt: New. Used to generate neon.dsp.

* build/generator/neon.vcproj.ezt: Don't hardcode the list of Neon files.

* build/win32/neon.dsp: Remove. This file is now generated.

* win-tests.py: Optionally copy intl.dll where the test programs

can find it.

* build/win32/make_dist.py

(OptFile.run): Correctly handle the case where the path gets expanded

from the config but the file itself doesn't exist.

(InstallMoFiles): New class. Puts *.mo files in the correct place

in the package tree.

(_disttree): Add missing files to the distribution list.

(_make_dist): Add message translations to the base zip file.

* build/win32/make_dist.conf.template: Set default relative path

for Expat libraries.

* build/win32: Ignore all generated .dsp and .vcproj files.

  1. … 11 more files in changeset.
First part of making the vcproj project generator handle multiple versions.

* gen-make.py

(_usage_exit): Add VS2005 to possible versions list.

* build/generator/gen_vcnet_vcproj.py

(write_project): Add version to template data.

* build/generator/vcnet_vcproj.ezt

Use version data instead of hardcoded version number.

* build/generator/gen_win.py

(parse_options): Set template data versions based on version option.

  1. … 3 more files in changeset.
Teach the project generator to crate .sln files for different versions

of VS.NET.

* gen-make.py: New option --vsnet-version.

* build/generator/gen_win.py (WinGeneratorBase.parse_options): Parse it.

* build/generator/gen_vcnet_vcproj.py (Generator.write): Pass the

VS.NET version string to EZT in the 'version' parameter.

* build/generator/vcnet_sln.ezt: Expand the 'version' parameter in the

format vereion field.

  1. … 3 more files in changeset.
I *said* I don't want w32locatedb.pl to run by default, and why.

I just got bitten by this. Grrrr.

* gen-make.py: Accept new option --enable-bdb-in-apr-util.

* build/generator/gen_win.py (WinGeneratorBase.parse_options):

Handle --enable-bdb-in-apr-util.

(WinGeneratorBase._configure_apr_util): Do nothing unless the

--enable-bdb-in-apr-util option was set.

* INSTALL, build/win32/vc6-build.bat.in: Add "--enable-bdb-in-apr-util"

in the right places.

  1. … 3 more files in changeset.
Attempt to allow gen-make.py to stay as native.

* gen-make.py

Set svn:eol-style to native.

* autogen.sh

Explicitly call gen-make.py with python rather than depending on the

shebang line to work.

  1. … 1 more file in changeset.
Correction, everything that assumes that it can run by using the shebang

line needs to be in LF.

* build/get-neon-ver.sh

* build/buildcheck.sh

* build/PrintPath

* gen-make.py

Set svn:eol-style to LF.

  1. … 3 more files in changeset.
* gen-make.py: Remove an out-of-date usage comment, in favour of the printed

usage message.

* build.conf

javahl-javah

removing the extra-classes option

libsvnjavahl

add a description to add the resource file to the projects

__JAVAHL__

add top level project like __SWIG_JAVA__

* gen-make.py

add --with-junit option like the configure --with-junit option

* build/generator/msvc_dsp.ezt

replace the hardcode build rules for swig with general build rule

* build/generator/gen_vcnet_vcproj.py

add method get_project_quote for writing quotes into the project file.

* build/generator/vcnet_vcproj.ezt

replace the hardcode build rules for swig with general build rule

* build/generator/gen_base.py

DependencyNode.__hash__

use member name of member filename contains an empty string

DependencyNode.__cmp__

use member name of member filename contains an empty string

Target.__init__

init marker needs_windows_custom_build to None

TargetJavaHeaders.__init__

set marker need_windows_custom_build to "Yes" and remove the

extra-classes option

TargetJavaHeaders.add_dependencies

removing the extra-classes option

TargetJavaHeaders.get_windows_custom_build

implement new method

TargetJavaHeaders.get_windows_custom_target

implement new method

TargetJavaClasses.__init__

set marker need_windows_custom_build to "Yes"

TargetJavaClasses.get_windows_custom_build

implement new method

TargetJavaClasses.get_windows_custom_target

implement new method

* build/generator/gen_win.py

WinGeneratorBase.__init__

Add new --with-junit option

WinGeneratorBase.parse_options

Add new --with-junit option

WinGeneratorBase.get_proj_sources

Add support for generating "custom build" steps

Changed the "custom build" steps for swig projects to new

general style

* build/generator/gen_msvc_dsp.py

add method get_project_quote for writing quotes into the project file.

* subversion/bindings/java/javahl/native/svnjavahl.dsp

remove now unused project file

* subversion/bindings/java/javahl/native/svnjavahl.dsw

remove now unused project file

* subversion/bindings/java/javahl/README

adjust build instructions for windows

  1. … 10 more files in changeset.
Update the Win32 vcproj project generator to handle gettext and

localization requirements. Dsp generator changes coming.

* build.conf

Add external-project path to locale target for Win32.

* build/win32/svn_locale.vcproj

New project file for locale build target.

* build/generator/build_locale.ezt

New batch file template for creating localization files.

* build/generator/gen_vcnet_vcproj.py

Add support for the new TargetI18N target type.

* build/generator/gen_base.py

(TargetI18N.__init__): Read in the external-project option.

* build/generator/gen_win.py

Add --enable-nls option. If it's on then populate the

build_locale.bat file with the .po file targets and setup the

appropriate defines and link settings.

* svn_private_config.hw

Define N_, _, PACKAGE_NAME appropriately and stub in a

SVN_LOCALE_DIR for now.

* gen-make.py

Add Windows-specific --enable-nls option.

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_init): Setup gettext support for Win32 which involved

moving the gettext initialization to after apr initialization so

it's functionality could be used.

  1. … 8 more files in changeset.
Make gen-make.py work with python 1.5 again.

* gen-make.py: Use fd.write() instead of the "print chevron" construct.

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>

  1. … 8 more files in changeset.