----- Original Message ----- > From: Daniel Shahaf <d...@daniel.shahaf.name> > To: Ashod Nakashian <ashodnakash...@yahoo.com>; "dev@subversion.apache.org" > <dev@subversion.apache.org> > Cc: > Sent: Sunday, April 15, 2012 1:28 PM > Subject: Re: Faster build/check times > > > > On Sun, Apr 15, 2012, at 02:09, Ashod Nakashian wrote: >> >> >> >> >> ----- Original Message ----- >> > From: Daniel Shahaf <d...@daniel.shahaf.name> >> > To: Ashod Nakashian <ashodnakash...@yahoo.com>; > "dev@subversion.apache.org" <dev@subversion.apache.org> >> > Cc: >> > Sent: Sunday, April 15, 2012 12:16 PM >> > Subject: Re: Faster build/check times >> > >> > >> > >> > On Sun, Apr 15, 2012, at 00:56, Ashod Nakashian wrote: >> >> >________________________________ >> >> > From: Daniel Shahaf <d...@daniel.shahaf.name> >> >> >To: dev@subversion.apache.org >> >> >Sent: Sunday, April 15, 2012 9:33 AM >> >> >Subject: Faster build/check times >> >> > >> >> >Trying to enumerate ways to reduce build times. >> >> >> >> Very timely! I'm afraid I don't have anything to add, but > think >> > it'd >> >> be useful to know what's the *minimum* set of features > required to >> >> build the API + CLI frontend (i.e. libs + svn). >> > >> > All of the following components are optional: libsvn_fs_base(bdb), >> > libsvn_ra_neon, libsvn_ra_serf, mod_dav_svn(httpd), swig, java, > ctypes, kwallet, >> > gnome-keyring. Building the 'tools' makefile target (or VS > project) is >> > done by default, but it can be harmlessly left out. >> >> Thanks! Here is what I came up with, in case it's useful to anyone: >> >> ./configure --disable-mod-activation --without-gssapi --without-apxs > --without-berkeley-db --without-neon --without-serf --without-swig > --without-ctypesgen --without-kwallet --without-gnome-keyring > --disable-javahl > --disable-keychain >> >> How can the tools be disabled without modifying makefiles? >> > > 'make bin atomic-ra-revprop-change entries-dump' instead of > 'make'. > > (The last two are in $(TEST_DEPS), and are needed to run certain py tests > manually, > but there is no test-deps convenience target to avoid listing them explicitly > by.) > > And while I'm on the topic, another useful invocation: > % make check TESTS="`echo > subversion/tests/cmdline/{basic_tests.py,merge_tests.py}`" >
Lovely! Thanks a bundle. >> -Ash >> >> > >> > That leaves a client that can talk svn:// and can talk file:// to FSFS > >> > repositories. >> > >> > SQLite, APR, APR-Util are mandatory dependencies. >> > >> >> >> >> Alternatively, what features can be disabled and still get the > bare minimum >> > output? >> >> >> >> (Apologies if I'm being lazy for not playing with configure > to figure >> > it out myself - I think chances are high someone has something handy > for pasting >> > at an arm's length.) >> >> >> >> Cheers, >> >> -Ash >> >> >> >> P.S. Thanks Daniel for this list! >> >> >> >> > >> >> >Faster builds: >> >> >- export CONFIG_SHELL=/bin/sh (minimal sh preferred) >> >> >- out-of-tree build (i.e., run 'configure' in an > empty dir), >> > with the build tree in a tmpfs >> >> >- disable unneeded components (eg, swig, bdb) when > they're not >> > needed >> >> >- pass '-q' to configure, '-s' to make >> >> >- pass '-C' to configure >> >> >- pass '-j' or '-j[number]' to make >> >> >- use cpuset(1)/taskset(1) to bind make to N-1 CPUs >> >> > >> >> >Faster checks: >> >> >- PARALLEL=1 >> >> >- CLEANUP="" (and rm -rf svn-test-work/ before the > build) >> >> >- put svn-test-work/ in a tmpfs >> >> >- SET_LOG_LEVEL=WARN (or ERROR) >> >> > >> >> >What else? >> >> > >> >> > >> >> >Thanks, >> >> > >> >> >Daniel >> >> > >> >> > >> >> > >> > >