3bd63247b91802ced4aaf746b8deb63a7d026cf4
[WebKit-https.git] / WebKitTools / Scripts / install-win-extras
1 #!/usr/bin/perl -w
2
3 # Copyright (C) 2005, 2006 Apple Computer, Inc.  All rights reserved.
4 #
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
7 # are met:
8 #
9 # 1.  Redistributions of source code must retain the above copyright
10 #     notice, this list of conditions and the following disclaimer. 
11 # 2.  Redistributions in binary form must reproduce the above copyright
12 #     notice, this list of conditions and the following disclaimer in the
13 #     documentation and/or other materials provided with the distribution. 
14 # 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
15 #     its contributors may be used to endorse or promote products derived
16 #     from this software without specific prior written permission. 
17 #
18 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29 # A script to download the extra libraries needed to build WebKit on Windows.
30
31 use strict;
32 use FindBin;
33 use lib $FindBin::Bin;
34 use webkitdirs;
35
36 checkRequiredSystemConfig();
37 chdirWebKit();
38 my $webkitDir = `pwd`;
39 chomp $webkitDir;
40
41 chdir "WebKitLibraries";
42
43 if (! -e "icu-3.4-win32-msvc7.1.zip") {
44     print "Downloading icu-3.4-win32-msvc7.1.zip...\n\n";
45     `rm -rf icu*`;
46     `curl -O ftp://ftp.software.ibm.com/software/globalization/icu/3.4/icu-3.4-Win32-msvc7.1.zip`;
47     print "\nInstalling icu-3.4-win32-msvc7.1.zip...\n";
48     `unzip icu-3.4-win32-msvc7.1.zip`;
49     `rm -rf ../icu`;
50     `cp -rp icu ..`;
51 }
52 `chmod 755 ../icu/bin/*.dll`;
53
54 if (! -e "iconv-1.9.1.win32.zip") {
55     print "Downloading iconv-1.9.1.win32.zip...\n\n";
56     `rm -rf iconv*`;
57     `curl -O http://xmlsoft.org/sources/win32/iconv-1.9.1.win32.zip`;
58     print "\nInstalling iconv-1.9.1.win32.zip...\n";
59     `unzip iconv-1.9.1.win32.zip`;
60     `rm -rf ../iconv`;
61     `cp -rp iconv-1.9.1.win32 ../iconv`;
62 }
63 `chmod 755 ../iconv/bin/*.dll`;
64
65 if (! -e "libxml2-2.6.23.win32.zip") {
66     print "Downloading libxml2-2.6.23.win32.zip...\n\n";
67     `rm -rf libxml*`;
68     `curl -O http://xmlsoft.org/sources/win32/libxml2-2.6.23.win32.zip`;
69     print "\nInstalling libxml2-2.6.23.win32.zip...\n";
70     `unzip libxml2-2.6.23.win32.zip`;
71     `rm -rf ../libxml`;
72     `cp -rp libxml2-2.6.23.win32 ../libxml`;
73 }
74 `chmod 755 ../libxml/bin/*.dll`;
75
76 if (! -e "libxslt-1.1.15.win32.zip") {
77     print "Downloading libxmslt-1.1.15.win32.zip...\n";
78     `rm -rf libslt*`;
79     `curl -O http://xmlsoft.org/sources/win32/libxslt-1.1.15.win32.zip`;
80     print "Installing libxmslt-1.1.15.win32.zip...\n";
81     `unzip libxslt-1.1.15.win32.zip`;
82     `rm -rf ../libxslt`;
83     `cp -rp libxslt-1.1.15.win32 ../libxslt`;
84 }
85 `chmod 755 ../libxslt/bin/*.dll`;
86
87 if (! -e "zlib-1.2.3.win32.zip") {
88     print "Downloading zlib-1.2.3.win32.zip...\n\n";
89     `rm -rf zlib*`;
90     `curl -O http://xmlsoft.org/sources/win32/zlib-1.2.3.win32.zip`;
91     print "\nInstalling zlib-1.2.3.win32.zip...\n";
92     `unzip zlib-1.2.3.win32.zip`;
93     `rm -rf ../zlib`;
94     `cp -rp zlib-1.2.3.win32 ../zlib`;
95 }
96 `chmod 755 ../zlib/bin/*.dll`;
97
98 if (! -x "/cygdrive/c/Program Files/Resource Kit/setx.exe") {
99     unlink("setx_setup.exe"); 
100     print "Downloading setx_setup.exe...\n\n";
101     `curl -O http://download.microsoft.com/download/win2000platform/setx/1.00.0.1/nt5/en-us/setx_setup.exe`;
102     print "Instaling setx_setup.exe, please install in the default location...\n";
103     `chmod +x ./setx_setup.exe`;
104     `./setx_setup.exe`;
105     `chmod +x "/cygdrive/c/Program\ Files/Resource\ Kit/setx.exe"`;
106
107     print "/cygdrive/c/Program Files/Resource Kit/setx.exe WebKitOutputDir 'c:\\WebKitBuild'\n";
108     system '/cygdrive/c/Program Files/Resource Kit/setx.exe', "WebKitOutputDir", 'c:\\WebKitBuild';
109
110     my $PATH = $ENV{"PATH"};
111     my $WINPATH = `cygpath -p -w "$PATH"`;
112     chomp $WINPATH;
113     my $winScripts = `cygpath -w "$webkitDir/WebKitTools/Scripts"`;
114     chomp $winScripts;
115     
116     if (! ($WINPATH =~ /WebKitTools/)) {
117         $WINPATH = "$winScripts;$WINPATH";
118     }
119     if (! ($WINPATH =~ /Resource Kit/)) {
120         $WINPATH = "c:\\Program Files\\Resource Kit;$WINPATH";
121     }
122     if (! ($WINPATH =~ /cygwin\\bin/)) {
123         $WINPATH = "c:\\cygwin\\bin;$WINPATH";
124     }
125
126     print "/cygdrive/c/Program Files/Resource Kit/setx.exe Path \"$WINPATH\" -m\n";
127     system '/cygdrive/c/Program Files/Resource Kit/setx.exe', "Path", "$WINPATH", "-m";
128 }
129