I also build some custom modules on Windows, but haven't tackled a full svn build with all it's dependencies yet...
First of all you need a fully compiled apache with the sources stuff in for example C:\build\httpd-2.4.9-x64 and install python27 to C:\python27
Grab
http://subversion.apache.org/download/#recommended-release extract it to C:\build\subversion-1.8.10-x64
sqlite-amalgamation from
http://www.sqlite.org/download.html rename it to sqlite-amalgamation in the C:\build\subversion-1.8.10-x64 folder
put NOT Compiled zlib into the source tree. Rename it to zlib in the C:\build\subversion-1.8.10-x64 folder
http://code.google.com/p/serf/downloads/list1.2.1
Rename it to serf in the C:\build\subversion-1.8.10-x64 folder
--------------------------------------------------------------------
VC9 VC2008
--------------------------------------------------------------------
C:\python27\python gen-make.py --release -t vcproj --with-apr=C:\build\httpd-2.4.9-x64\srclib\apr --with-apr-util=C:\build\httpd-2.4.9-x64\srclib\apr-util --with-apr-iconv=C:\build\httpd-2.4.9-x64\srclib\apr-iconv --with-serf=C:\build\subversion-1.8.10-ap24-vc9-x64\serf --with-httpd=C:\build\httpd-2.4.9-x64 --with-openssl=C:\build\httpd-2.4.9-x64\srclib\openssl --with-zlib=C:\build\subversion-1.8.10-ap24-vc9-x64\zlib --vsnet-version=2008
Open generated build\win32\vcnet-vcproj\build_zlib.bat and insert at line 67 (before "set BUILD_OPTS=..." line):
set ASM_OPTS=AS=ml64 LOC="-DASMV -DASMINF -I." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"
open zlib\win32\Makefile.msc replace line 31 with
ASFLAGS = -coff -Zi -safeseh $(LOC)
Open the solution with the GUI. Change the Solution to Release and x64
compile in this order
- zlib
- serf
- __ALL-TESTS__
Use create a batch script with the following code in C:\build\subversion-1.8.10-x64 and execute it.
with
@echo off
mkdir __PACKAGE__
cd __PACKAGE__
set SVN_PACKAGE_PATH=%cd%
mkdir bin
mkdir doc
mkdir modules
mkdir tools
cd ..
copy Release\subversion\libsvn_client\*.dll %SVN_PACKAGE_PATH%\bin
copy Release\subversion\libsvn_delta\*.dll %SVN_PACKAGE_PATH%\bin
copy Release\subversion\libsvn_diff\*.dll %SVN_PACKAGE_PATH%\bin
copy Release\subversion\libsvn_fs\*.dll %SVN_PACKAGE_PATH%\bin
copy Release\subversion\libsvn_ra\*.dll %SVN_PACKAGE_PATH%\bin
copy Release\subversion\libsvn_repos\*.dll %SVN_PACKAGE_PATH%\bin
copy Release\subversion\libsvn_subr\*.dll %SVN_PACKAGE_PATH%\bin
copy Release\subversion\libsvn_wc\*.dll %SVN_PACKAGE_PATH%\bin
copy Release\subversion\mod_authz_svn\*.so %SVN_PACKAGE_PATH%\modules
copy Release\subversion\mod_dav_svn\*.so %SVN_PACKAGE_PATH%\modules
copy Release\subversion\svn\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\subversion\svnadmin\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\subversion\svndumpfilter\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\subversion\svnlook\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\subversion\svnrdump\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\subversion\svnserve\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\subversion\svnsync\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\subversion\svnversion\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\subversion\svnmucc\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\tools\client-side\svnmucc\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\tools\dev\svnraisetreeconflict\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\tools\diff\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\tools\server-side\*.exe %SVN_PACKAGE_PATH%\bin
copy Release\tools\server-side\mod_dontdothat\*.so %SVN_PACKAGE_PATH%\modules
copy doc\user\*.* %SVN_PACKAGE_PATH%\doc
xcopy /E tools %SVN_PACKAGE_PATH%\tools\
Pause