@echo off setlocal rem Simple script to fetch source for external libraries if not exist "%~dp0..\externals" mkdir "%~dp0..\externals" pushd "%~dp0..\externals" if "%SVNROOT%"=="" set SVNROOT=http://svn.python.org/projects/external/ rem Optionally clean up first. Be warned that this can be very destructive! if not "%1"=="" ( for %%c in (-c --clean --clean-only) do ( if "%1"=="%%c" goto clean ) goto usage ) goto fetch :clean echo.Cleaning up external libraries. for /D %%d in ( bzip2-* db-* nasm-* openssl-* tcl-* tcltk* tk-* tix-* sqlite-* xz-* ) do ( echo.Removing %%d rmdir /s /q %%d ) if "%1"=="--clean-only" ( goto end ) :fetch rem Fetch current versions svn --version > nul 2>&1 if ERRORLEVEL 9009 ( echo.svn.exe must be on your PATH. echo.Try TortoiseSVN (http://tortoisesvn.net/^) and be sure to check the echo.command line tools option. popd exit /b 1 ) echo.Fetching external libraries... rem When updating these versions, remember to update the relevant property rem files in both this dir and PC\VS9.0 set libraries= set libraries=%libraries% bzip2-1.0.6 if NOT "%IncludeBsddb%"=="false" set libraries=%libraries% db-4.7.25.0 if NOT "%IncludeSSL%"=="false" set libraries=%libraries% nasm-2.11.06 if NOT "%IncludeSSL%"=="false" set libraries=%libraries% openssl-1.0.2d set libraries=%libraries% sqlite-3.6.21 if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tcl-8.5.15.0 if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tk-8.5.15.0 if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tix-8.4.3.5 for %%e in (%libraries%) do ( if exist %%e ( echo.%%e already exists, skipping. ) else ( echo.Fetching %%e... svn export %SVNROOT%%%e ) ) goto end :usage echo.invalid argument: %1 echo.usage: %~n0 [[ -c ^| --clean ] ^| --clean-only ] echo. echo.Pull all sources necessary for compiling optional extension modules echo.that rely on external libraries. Requires svn.exe to be on your PATH echo.and pulls sources from %SVNROOT%. echo. echo.Use the -c or --clean option to clean up all external library sources echo.before pulling in the current versions. echo. echo.Use the --clean-only option to do the same cleaning, without pulling in echo.anything new. echo. echo.Only the first argument is checked, all others are ignored. echo. echo.**WARNING**: the cleaning options unconditionally remove any directory echo.that is a child of echo. %CD% echo.and matches wildcard patterns beginning with bzip2-, db-, nasm-, openssl-, echo.tcl-, tcltk, tk-, tix-, sqlite-, or xz-, and as such has the potential echo.to be very destructive if you are not aware of what it is doing. Use with echo.caution! popd exit /b -1 :end echo Finished. popd