1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
@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...
set libraries=
set libraries=%libraries% bzip2-1.0.6
if NOT "%IncludeSSL%"=="false" set libraries=%libraries% nasm-2.11.06
if NOT "%IncludeSSL%"=="false" set libraries=%libraries% openssl-1.0.2h
set libraries=%libraries% sqlite-3.14.1.0
if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tcl-core-8.6.6.0
if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tk-8.6.6.0
if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tix-8.4.3.6
set libraries=%libraries% xz-5.0.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
|