get_externals.bat revision e7e69391e362fbb3de2a2da7beaebb4b7d6cf612
1@echo off 2setlocal 3rem Simple script to fetch source for external libraries 4 5if not exist "%~dp0..\externals" mkdir "%~dp0..\externals" 6pushd "%~dp0..\externals" 7 8if "%SVNROOT%"=="" set SVNROOT=http://svn.python.org/projects/external/ 9 10rem Optionally clean up first. Be warned that this can be very destructive! 11if not "%1"=="" ( 12 for %%c in (-c --clean --clean-only) do ( 13 if "%1"=="%%c" goto clean 14 ) 15 goto usage 16) 17goto fetch 18 19:clean 20echo.Cleaning up external libraries. 21for /D %%d in ( 22 bzip2-* 23 db-* 24 nasm-* 25 openssl-* 26 tcl-* 27 tcltk* 28 tk-* 29 tix-* 30 sqlite-* 31 xz-* 32 ) do ( 33 echo.Removing %%d 34 rmdir /s /q %%d 35) 36if "%1"=="--clean-only" ( 37 goto end 38) 39 40:fetch 41rem Fetch current versions 42 43svn --version > nul 2>&1 44if ERRORLEVEL 9009 ( 45 echo.svn.exe must be on your PATH. 46 echo.Try TortoiseSVN (http://tortoisesvn.net/^) and be sure to check the 47 echo.command line tools option. 48 popd 49 exit /b 1 50) 51 52echo.Fetching external libraries... 53 54for %%e in ( 55 bzip2-1.0.6 56 nasm-2.11.06 57 openssl-1.0.2d 58 tcl-core-8.6.4.2 59 tk-8.6.4.2 60 tix-8.4.3.6 61 sqlite-3.8.11.0 62 xz-5.0.5 63 ) do ( 64 if exist %%e ( 65 echo.%%e already exists, skipping. 66 ) else ( 67 echo.Fetching %%e... 68 svn export %SVNROOT%%%e 69 ) 70) 71 72goto end 73 74:usage 75echo.invalid argument: %1 76echo.usage: %~n0 [[ -c ^| --clean ] ^| --clean-only ] 77echo. 78echo.Pull all sources necessary for compiling optional extension modules 79echo.that rely on external libraries. Requires svn.exe to be on your PATH 80echo.and pulls sources from %SVNROOT%. 81echo. 82echo.Use the -c or --clean option to clean up all external library sources 83echo.before pulling in the current versions. 84echo. 85echo.Use the --clean-only option to do the same cleaning, without pulling in 86echo.anything new. 87echo. 88echo.Only the first argument is checked, all others are ignored. 89echo. 90echo.**WARNING**: the cleaning options unconditionally remove any directory 91echo.that is a child of 92echo. %CD% 93echo.and matches wildcard patterns beginning with bzip2-, db-, nasm-, openssl-, 94echo.tcl-, tcltk, tk-, tix-, sqlite-, or xz-, and as such has the potential 95echo.to be very destructive if you are not aware of what it is doing. Use with 96echo.caution! 97popd 98exit /b -1 99 100 101:end 102echo Finished. 103popd 104