# Linux build ```sh apt update -y apt install -y autoconf libtool gcc libsqlite3-dev libarchive-dev libz-dev libutf8proc-dev \ libserf-dev libapr1-dev libaprutil1-dev libssl-dev libmagic-dev liblz4-dev wget https://mirrors.gigenet.com/apache/subversion/subversion-1.14.1.tar.gz cd subversion-1.14.1 ./configure ; make sudo make install ``` # Windows build ## Install programs 1. Install Python3: https://www.python.org/downloads/ 2. Install scons: `pip install scons` 3. Install (for OpenSSL): https://strawberryperl.com/ 4. Install (for OpenSSL): https://www.nasm.us/ https://www.nasm.us/pub/nasm/releasebuilds/2.16.03/win64/nasm-2.16.03-installer-x64.exe ## Download expat ``` https://sourceforge.net/projects/expat/files/expat_win64/2.6.4/expat-win64bin-2.6.4.exe/download Install to E:\SvnDeps\expat ``` ## Build APR ```bat cmake -DCMAKE_INSTALL_PREFIX=e:/SvnDeps/apr -G "Ninja" -DAPR_INSTALL_PRIVATE_H=ON -DCMAKE_BUILD_TYPE=RELEASE -DAPR_BUILD_STATIC=ON ../apr ninja ninja install ``` ## Build APR-UTIL ```bat cmake -DCMAKE_INSTALL_PREFIX=e:/SvnDeps/apr -G "Ninja" -DAPR_INSTALL_PRIVATE_H=ON -DCMAKE_BUILD_TYPE=RELEASE -DEXPAT_LIBRARY=e:/SvnDeps/expat/Bin/libexpat.lib -DEXPAT_INCLUDE_DIR=e:/SvnDeps/expat/Source/lib -DAPU_HAVE_CRYPTO=ON -DOPENSSL_ROOT_DIR=e:/SvnDeps/openssl ../apr-util ninja ninja install ``` ## Build ZLib ```bat cmake -G "Ninja" -DCMAKE_INSTALL_PREFIX=e:/SvnDeps/zlib -DCMAKE_BUILD_TYPE=RELEASE .. ``` ## Build Openssl ``` perl Configure VC-WIN64A --prefix=e:/SvnDeps/openssl --openssldir=e:/SvnDeps/openssl nmake nmake install ``` ## Build serf ``` scons APR=e:/SvnDeps/apr APU=e:/SvnDeps/apr-util ZLIB=e:/SvnDeps/zlib OPENSSL=e:/SvnDeps/openssl SOURCE_LAYOUT=0 TARGET_ARCH=X64 MSVC_VERSION=2022 PREFIX=e:/SvnDeps/serf -and patch file SConstruct ``` ## Build subversion ```bat cmake -G "Ninja" ^ -DCMAKE_LIBRARY_PATH=e:/SvnDeps/apr;e:/SvnDeps/serf;e:/SvnDeps/zlib -DCMAKE_PREFIX_PATH=e:/SvnDeps/apr;e:/SvnDeps/serf;e:/SvnDeps/zlib ^ -DPC_EXPAT_LIBRARY_DIRS=e:/SvnDeps/expat/Bin -DPC_EXPAT_INCLUDE_DIRS=e:/SvnDeps/expat/Source/lib ^ -DSVN_SQLITE_USE_AMALGAMATION=ON ^ -DSQLITE_AMALGAMATION_DIR=e:/SvnDeps/sqlite-amalgamation ^ -DCMAKE_BUILD_TYPE=RELEASE ^ -DSVN_ENABLE_RA_SERF=ON ^ -DOPENSSL_ROOT_DIR=e:/SvnDeps/openssl ^ -DSVN_ENABLE_SVNXX=ON ^ -DSVN_ENABLE_NLS=OFF ^ -DZLIB_USE_STATIC_LIBS=ON ^ -DCMAKE_INSTALL_PREFIX=e:/CustomSvnBuild ^ ../subversion ```