gen-make.py

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

Changeset 966167 is being indexed.

Allow setting an explicit jdk version to use for building on Windows. This

allows building with a 64 bit JDK when using a 32 bit python (or the

other way around) on Windows x64.

* gen-make.py

(_usage_exit): Show help for --with-jdk.

(global): Parse 'with-jdk' option.

* build/generator/gen_win.py

(parse_options): Set jdk_path to None and fill

from options.

(_find_jdk): If already set, just print the jdk path.

  1. … 1 more file in changeset.
Further tweaking of the Visual 2010 project support.

* build/generator/serf.vcxproj.ezt

* build/generator/neon.vcxproj.ezt

* build/generator/zlib.vcxproj.ezt

Fix external project build references to actually

build these projects, instead of using their existing files.

* build/win32

Add *.vcxproj to svn:ignore.

* gen-make.py

(_usage_exit): Document generating for VS2010.

  1. … 4 more files in changeset.
Apply ASF license headers to a number of files included under that license

but lacking said header.

Patch by: Niall Pemberton <niallp{_AT_}apache.org>

  1. … 175 more files in changeset.
Use transform_sql.py to generate the sql header files at gen-make time.

For developers, we also keep the implicit rule, but end-users are not

expected to need Python because the generated headers will be included in

the tarball.

* build/generator/gen_base.py:

(GeneratorBase.write_sqlite_headers): new. run the transform on the

sqlite header targets.

(dep_types): new dependency type.

(SWIGSource): remove extraneous 'pass' statement

(TargetSQLHeader): new class to process sql-header targets

(_build_types): new sql-header build type

* build/generator/gen_make.py:

(Generator.write): add new 'sql' member to the template data

* build/generator/templates/makefile.ezt:

(EXTRACLEAN_FILES): new makefile macro for files to remove at

'extraclean' time.

* gen-make.py:

(main): call new write_sqlite_headers() after the main write() call.

* Makefile.in:

(fast-clean): don't remove the sqlite headers

(local-extraclean): remove the (new) EXTRACLEAN_FILES

(.sql.h): use the Python script to do the transform

* build.conf:

(test-scripts): just use a glob. geez.

(rep_cache, wc_metadata, wc_checks): new targets

* build/transform_sql.sh: removed. just use the python script

  1. … 6 more files in changeset.
Use isinstance() for type comparisons.

* build/generator/util/executable.py:

* build/win32/make_dist.py:

* gen-make.py:

* subversion/tests/cmdline/svnadmin_tests.py:

* subversion/tests/cmdline/svndumpfilter_tests.py:

* tools/bdb/skel.py:

* www/toctool.py: Use isinstance() for type comparisons.

  1. … 6 more files in changeset.
Use some types directly instead of using type().

* build/generator/util/executable.py:

* build/win32/make_dist.py:

* gen-make.py:

* subversion/tests/cmdline/merge_tests.py:

* subversion/tests/cmdline/svnadmin_tests.py:

* subversion/tests/cmdline/svndumpfilter_tests.py:

* subversion/tests/cmdline/svntest/actions.py:

* subversion/tests/cmdline/svntest/verify.py: Use some types directly instead

of using type().

  1. … 7 more files in changeset.
Use sorted() to simplify some code.

* build/generator/gen_base.py:

* build/generator/gen_make.py:

* build/generator/gen_vcnet_vcproj.py:

* build/win32/make_dist.py:

* doc/tools/bin/find-xsl.py:

* gen-make.py:

* subversion/bindings/swig/python/tests/mergeinfo.py:

* subversion/bindings/swig/python/tests/ra.py:

* subversion/tests/cmdline/changelist_tests.py:

* subversion/tests/cmdline/svnadmin_tests.py:

* subversion/tests/cmdline/svnlook_tests.py:

* subversion/tests/cmdline/svntest/actions.py:

* subversion/tests/cmdline/svntest/tree.py:

* tools/bdb/svn-bdb-view.py:

* tools/dev/contribulyze.py:

* tools/dev/gen-javahl-errors.py:

* tools/dev/normalize-dump.py:

* tools/dev/which-error.py:

* tools/examples/svnshell.py:

* tools/hook-scripts/mailer/mailer.py:

* tools/po/l10n-report.py: Use sorted() to simplify some code.

  1. … 20 more files in changeset.
Following up on r35263, reverted r35252 to re-enable --with-sqlite option to

gen-make.py on Windows.

* build/generator/gen_win.py

* gen-make.py

Reverse merged r35263

  1. … 1 more file in changeset.
Follow-up to r35241, use the sqlite amalgamation included in libsvn_subr

when building on Windows.

[Reverted in r35294]

* build/generator/gen_win.py

(GeneratorBase.parse_options): Remove self.sqlite_path initialization

and parsing of '--with-sqlite' option.

(WinGeneratorBase.__init__): Don't try to find sqlite.

(WinGeneratorBase.get_win_includes,

WinGeneratorBase.get_win_lib_dirs,

WinGeneratorBase.get_win_libs): Remove sqlite related stuff.

(WinGeneratorBase._find_sqlite): Remove.

* gen-make.py

(_usage_exit, Options): Remove --with-sqlite option.

  1. … 1 more file in changeset.
Python 3 compatibility:

Use dict.keys(), dict.values() and dict.items() instead of dict.iterkeys(),

dict.itervalues() and dict.iteritems().

Use list(dict.keys()), list(dict.values()) and list(dict.items()) instead of

dict.keys(), dict.values() and dict.items(). Function calls with 'for', 'in' or

len() weren't updated.

* build/generator/ezt.py:

* build/generator/gen_base.py:

* build/generator/gen_vcnet_vcproj.py:

* build/generator/gen_win.py:

* build/win32/make_dist.py:

* gen-make.py:

* subversion/bindings/ctypes-python/csvn/types.py:

* subversion/bindings/ctypes-python/examples/log.py:

* subversion/bindings/ctypes-python/examples/trunkify.py:

* subversion/bindings/swig/python/tests/mergeinfo.py:

* subversion/bindings/swig/python/tests/ra.py:

* subversion/bindings/swig/python/tests/wc.py:

* subversion/tests/cmdline/externals_tests.py:

* subversion/tests/cmdline/svntest/actions.py:

* tools/bdb/svn-bdb-view.py:

* tools/dev/contribulyze.py:

* tools/dev/gen-javahl-errors.py:

* tools/dev/normalize-dump.py:

* tools/dev/trails.py:

* tools/dev/which-error.py:

* tools/examples/svnshell.py:

* tools/hook-scripts/mailer/mailer.py:

* tools/hook-scripts/svnperms.py: Use dict.keys(), dict.values() and

dict.items() instead of dict.iterkeys(), dict.itervalues() and

dict.iteritems(). Use list(dict.keys()), list(dict.values()) and

list(dict.items()) instead of dict.keys(), dict.values() and dict.items().

  1. … 22 more files in changeset.
Following up to r33335, replace 'print()' with 'print("")' to

remove '()' output in gen-make.py --help. Also exit with error 1 on

invalid argument.

* gen-make.py

(_usage_exit): Make sure the printed tuple always contains a string

and exit with error 1 instead of 0.

Python 3 compatibility:

Try to import configparser module.

(ConfigParser was renamed to configparser.)

* build/generator/gen_base.py:

* build/generator/gen_make.py:

* build/generator/swig/__init__.py:

* build/win32/make_dist.py:

* gen-make.py:

* tools/hook-scripts/mailer/mailer.py:

* win-tests.py: Try to import configparser module.

  1. … 6 more files in changeset.
Python 3 compatibility:

Update calls to print() in 'build' directory, 'gen-make.py' and 'win-tests.py'.

* build/generator/extractor.py:

* build/generator/gen_win.py:

* build/generator/swig/checkout_swig_header.py:

* build/generator/swig/external_runtime.py:

* build/generator/swig/header_wrappers.py:

* build/get-py-info.py:

* build/getversion.py:

* build/run_tests.py:

* build/strip-po-charset.py:

* build/win32/make_dist.py:

* gen-make.py:

* win-tests.py: Call print() or file.write().

  1. … 11 more files in changeset.
Python 3 compatibility:

Don't use 'has_key'.

* build/generator/ezt.py:

* build/generator/gen_base.py:

* build/generator/gen_win.py:

* gen-make.py:

* subversion/bindings/swig/python/svn/repos.py:

* subversion/bindings/swig/python/tests/client.py:

* subversion/bindings/swig/python/tests/ra.py:

* subversion/tests/cmdline/changelist_tests.py:

* subversion/tests/cmdline/info_tests.py:

* subversion/tests/cmdline/svntest/actions.py:

* subversion/tests/cmdline/svntest/entry.py:

* subversion/tests/cmdline/svntest/main.py:

* tools/backup/hot-backup.py.in:

* tools/bdb/erase-all-text-data.py:

* tools/bdb/svn-bdb-view.py:

* tools/client-side/change-svn-wc-format.py:

* tools/dev/contribulyze.py:

* tools/dev/normalize-dump.py:

* tools/dev/verify-history.py:

* tools/examples/blame.py:

* tools/hook-scripts/mailer/mailer.py:

* tools/hook-scripts/svnperms.py: Use 'in' instead of 'has_key'.

  1. … 21 more files in changeset.
Add SQLite to the config/build process. It is (currently) an optional

dependency and not (yet) used by any libraries.

This reverts parts of r29036 and r29047.

* Makefile.in:

(SVN_SQLITE_LIBS): new symbol to hold configure'd location of SQLite libs

(INCLUDES): add SQLite headers to the includes

* build.conf:

(sqlite): define new library as an external library

* build/win32/make_dist.py:

(_disttree): add optional distro files for SQLite

* build/generator/gen_win.py:

(GeneratorBase.parse_options): initialize .sqlite_path

(WinGeneratorBase.__init__): commented-out check for SQLite validity

(WinGeneratorBase.get_win_includes): add sqlite

(WinGeneratorBase.get_win_lib_dirs): add sqlite

(WinGeneratorBase.get_win_libs): add sqlite

* configure.ac: add section to locate SQLite

* gen-make.py: add --with-sqlite switch (for Windows)

* aclocal.m4: include new sqlite.m4, and order includes alphabetically

* build/ac-macros/sqlite.m4: new M4 file to locate SQLite

  1. … 7 more files in changeset.
Save all options including -t and -s to gen-make.opts, to make

gen-make.py --reload really works on Windows.

* gen-make.py:

(__main__): Save -t and -s options to gen-make.opts.

Merge the in-memory-cache branch to trunk.

See that branch's log for full details, but in short:

The branch rewrote various in-memory caches in FSFS to use a unified

API. By default this API is implemented by some in-process hashes,

but via a configuration file (db/fsfs.conf), it can use memcached

instead. Additionally, expanded fulltexts are cached if memcached is

available.

memcached is accessed with the apr_memcached API, which will be in a

future version (1.3.x branch, now) of apr-util, and is also available as an

separately-distributed library. The build system knows how to deal

with both.

Other things that changed:

* The test suite now has a config file; currently, the config file is

just used as the FSFS config file for any created repositories.

* New random APIs: svn_base64_encode_string2, svn_stream_from_string.

* ra_local ignores "FS warnings" instead of aborting.

  1. … 48 more files in changeset.
* build/buildcheck.sh:

* build/PrintPath:

* build/getversion.py:

* build/install-sh:

* subversion/tests/cmdline/svnadmin_tests.py:

* subversion/tests/cmdline/log_tests.py:

* subversion/tests/cmdline/trans_tests.py:

* subversion/tests/cmdline/svnlook_tests.py:

* subversion/tests/cmdline/switch_tests.py:

* subversion/tests/cmdline/externals_tests.py:

* subversion/tests/cmdline/diff_tests.py:

* subversion/tests/cmdline/copy_tests.py:

* subversion/tests/cmdline/stat_tests.py:

* subversion/tests/cmdline/svnversion_tests.py:

* subversion/tests/cmdline/prop_tests.py:

* subversion/tests/cmdline/basic_tests.py:

* subversion/tests/cmdline/update_tests.py:

* subversion/tests/cmdline/utf8_tests.py:

* subversion/tests/cmdline/commit_tests.py:

* subversion/tests/cmdline/schedule_tests.py:

* subversion/tests/cmdline/merge_tests.py:

* subversion/tests/cmdline/getopt_tests.py:

* contrib/client-side/svn_all_diffs.pl:

* contrib/client-side/search-svnlog.pl:

* contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in:

* contrib/cgi/mirror_dir_through_svn.cgi:

* tools/client-side/showchange.pl:

* tools/dist/dist.sh:

* tools/hook-scripts/commit-access-control.pl.in:

* tools/hook-scripts/svnperms.py:

* tools/hook-scripts/mailer/mailer.py:

* tools/hook-scripts/mailer/tests/mailer-init.sh:

* tools/hook-scripts/mailer/tests/mailer-t1.sh:

* tools/hook-scripts/mailer/tests/mailer-tweak.py:

* tools/hook-scripts/commit-email.pl.in:

* tools/dev/stress.pl:

* tools/dev/gnuify-changelog.pl:

* tools/dev/prebuild-cleanup.sh:

* tools/examples/dumpprops.py:

* tools/examples/check-modified.py:

* tools/examples/svnlook.py:

* tools/examples/svnshell.py:

* tools/examples/geturl.py:

* tools/examples/putfile.py:

* tools/examples/revplist.py:

* tools/examples/getfile.py:

* tools/examples/blame.py:

* doc/tools/bin/run-fop.sh:

* autogen.sh:

* gen-make.py:

Set svn:executable property to "*".

  1. … 49 more files in changeset.
Add --installed-libs option, allowing packagers to build parts of svn

(usually bindings) against installed svn libraries.

* Makefile.in

(swig-pl_DEPS): Remove libsvn_client libsvn_delta libsvn_diff libsvn_fs

libsvn_ra libsvn_repos libsvn_subr libsvn_wc so that swig-pl can be

built against installed libraries, as py and rb already can.

* build/generator/gen_make.py

(Generator.write): Load gen-make.opts and save the list of installed

libraries in self.installed_libs. For libraries in the list, write out

-l lines instead of references to the .la file, and don't attempt to

build that library.

* gen-make.py

(_usage_exit): Document --installed-libs option.

(): And parse it from sys.argv.

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