blob: 7a7a1e2390b8604d7694e38a386143c50d4aee9f [file] [log] [blame]
Zachary Waree1076aa2015-06-09 15:21:39 -05001@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
Zachary Ware47343722015-07-16 00:24:48 -050054rem When updating these versions, remember to update the relevant property
55rem files in both this dir and PC\VS9.0
56
Zachary Wareeb49ccf2015-09-04 01:08:07 -050057set libraries=
58set libraries=%libraries% bzip2-1.0.6
59if NOT "%IncludeBsddb%"=="false" set libraries=%libraries% db-4.7.25.0
60if NOT "%IncludeSSL%"=="false" set libraries=%libraries% nasm-2.11.06
Zachary Waref9a65162017-03-03 16:28:39 -060061if NOT "%IncludeSSL%"=="false" set libraries=%libraries% openssl-1.0.2k
Steve Dower2bf60cb2016-03-17 14:41:36 -070062set libraries=%libraries% sqlite-3.8.11.0
Zachary Wareeb49ccf2015-09-04 01:08:07 -050063if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tcl-8.5.15.0
64if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tk-8.5.15.0
65if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tix-8.4.3.5
66
67for %%e in (%libraries%) do (
Zachary Waree1076aa2015-06-09 15:21:39 -050068 if exist %%e (
69 echo.%%e already exists, skipping.
70 ) else (
71 echo.Fetching %%e...
INADA Naoki6c6186d2017-03-07 17:29:29 +090072 svn export -q %SVNROOT%%%e
Zachary Waree1076aa2015-06-09 15:21:39 -050073 )
74)
75
76goto end
77
78:usage
79echo.invalid argument: %1
80echo.usage: %~n0 [[ -c ^| --clean ] ^| --clean-only ]
81echo.
82echo.Pull all sources necessary for compiling optional extension modules
83echo.that rely on external libraries. Requires svn.exe to be on your PATH
84echo.and pulls sources from %SVNROOT%.
85echo.
86echo.Use the -c or --clean option to clean up all external library sources
87echo.before pulling in the current versions.
88echo.
89echo.Use the --clean-only option to do the same cleaning, without pulling in
90echo.anything new.
91echo.
92echo.Only the first argument is checked, all others are ignored.
93echo.
94echo.**WARNING**: the cleaning options unconditionally remove any directory
95echo.that is a child of
96echo. %CD%
97echo.and matches wildcard patterns beginning with bzip2-, db-, nasm-, openssl-,
98echo.tcl-, tcltk, tk-, tix-, sqlite-, or xz-, and as such has the potential
99echo.to be very destructive if you are not aware of what it is doing. Use with
100echo.caution!
101popd
102exit /b -1
103
104
105:end
106echo Finished.
107popd