Didn't mean to commit this!
[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 use Win32API::Registry 0.21 qw( :ALL );\r
36
37 checkRequiredSystemConfig();
38 chdirWebKit();
39 my $webkitDir = `pwd`;
40 chomp $webkitDir;
41
42 chdir "WebKitLibraries";
43
44 if (! -e "icu-3.4-win32-msvc7.1.zip") {
45     print "Downloading icu-3.4-win32-msvc7.1.zip...\n\n";
46     `rm -rf icu*`;
47     `curl -O ftp://ftp.software.ibm.com/software/globalization/icu/3.4/icu-3.4-Win32-msvc7.1.zip`;
48     print "\nInstalling icu-3.4-win32-msvc7.1.zip...\n";
49     `unzip icu-3.4-win32-msvc7.1.zip`;
50     `rm -rf ../icu`;
51     `cp -rp icu ..`;
52 }
53 `chmod 755 ../icu/bin/*.dll`;
54
55 if (! -e "iconv-1.9.1.win32.zip") {
56     print "Downloading iconv-1.9.1.win32.zip...\n\n";
57     `rm -rf iconv*`;
58     `curl -O ftp://fr.rpmfind.net/pub/libxml/win32/iconv-1.9.1.win32.zip`;
59     print "\nInstalling iconv-1.9.1.win32.zip...\n";
60     `unzip iconv-1.9.1.win32.zip`;
61     `rm -rf ../iconv`;
62     `cp -rp iconv-1.9.1.win32 ../iconv`;
63 }
64 `chmod 755 ../iconv/bin/*.dll`;
65
66 if (! -e "libxml2-2.6.23.win32.zip") {
67     print "Downloading libxml2-2.6.23.win32.zip...\n\n";
68     `rm -rf libxml*`;
69     `curl -O ftp://fr.rpmfind.net/pub/libxml/win32/libxml2-2.6.23.win32.zip`;
70     print "\nInstalling libxml2-2.6.23.win32.zip...\n";
71     `unzip libxml2-2.6.23.win32.zip`;
72     `rm -rf ../libxml`;
73     `cp -rp libxml2-2.6.23.win32 ../libxml`;
74 }
75 `chmod 755 ../libxml/bin/*.dll`;
76
77 if (! -e "libxslt-1.1.15.win32.zip") {
78     print "Downloading libxmslt-1.1.15.win32.zip...\n";
79     `rm -rf libxslt*`;
80     `curl -O ftp://fr.rpmfind.net/pub/libxml/win32/libxslt-1.1.15.win32.zip`;
81     print "Installing libxmslt-1.1.15.win32.zip...\n";
82     `unzip libxslt-1.1.15.win32.zip`;
83     `rm -rf ../libxslt`;
84     `cp -rp libxslt-1.1.15.win32 ../libxslt`;
85 }
86 `chmod 755 ../libxslt/bin/*.dll`;
87
88 if (! -e "zlib-1.2.3.win32.zip") {
89     print "Downloading zlib-1.2.3.win32.zip...\n\n";
90     `rm -rf zlib*`;
91     `curl -O ftp://fr.rpmfind.net/pub/libxml/win32/zlib-1.2.3.win32.zip`;
92     print "\nInstalling zlib-1.2.3.win32.zip...\n";
93     `unzip zlib-1.2.3.win32.zip`;
94     `rm -rf ../zlib`;
95     `cp -rp zlib-1.2.3.win32 ../zlib`;
96 }
97 `chmod 755 ../zlib/bin/*.dll`;
98
99 my $PROGRAMFILES = $ENV{"PROGRAMFILES"};
100 my $unixProgramFiles = `cygpath -u "$PROGRAMFILES"`;
101 chomp $unixProgramFiles;
102
103 my $setx = "$unixProgramFiles/Resource\ Kit/setx.exe";
104
105 if (! -x "$setx") {
106     unlink("setx_setup.exe"); 
107     print "Downloading setx_setup.exe...\n\n";
108     `curl -O http://download.microsoft.com/download/win2000platform/setx/1.00.0.1/nt5/en-us/setx_setup.exe`;
109     print "Installing setx_setup.exe, please install in the default location...\n";
110     `chmod +x ./setx_setup.exe`;
111     `./setx_setup.exe`;
112     `chmod +x "$setx"`;
113
114     print "$setx WebKitOutputDir 'c:\\WebKitBuild'\n";
115     system '$setx', "WebKitOutputDir", 'c:\\WebKitBuild';
116
117     my $PATH = $ENV{"PATH"};
118     my $WINPATH = `cygpath -p -w "$PATH"`;
119     chomp $WINPATH;
120     my $winScripts = `cygpath -w "$webkitDir/WebKitTools/Scripts"`;
121     chomp $winScripts;
122     
123     if (! ($WINPATH =~ /WebKitTools/)) {
124         $WINPATH = "$winScripts;$WINPATH";
125     }
126     if (! ($WINPATH =~ /Resource Kit/)) {
127         $WINPATH = "c:\\Program Files\\Resource Kit;$WINPATH";
128     }
129     if (! ($WINPATH =~ /cygwin\\bin/)) {
130         $WINPATH = "c:\\cygwin\\bin;$WINPATH";
131     }
132
133     print "$setx Path \"$WINPATH\" -m\n";
134     system '$setx', "Path", "$WINPATH", "-m";
135 }
136
137 # Disable error reporting UI
138 my $key;
139 RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug", 0, KEY_WRITE, $key);\r
140 RegSetValueEx($key, "Auto", 0, REG_SZ, "1" );\r
141 RegSetValueEx($key, "Debugger", 0, REG_SZ, "drwtsn32 -p %ld -e %ld -g");\r
142 RegCloseKey($key );\r
143 RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\PCHealth\\ErrorReporting", 0, KEY_WRITE, $key);\r
144 RegSetValueEx($key, "DoReport", 0, REG_DWORD, "\0\0\0\0");\r
145 RegSetValueEx($key, "ShowUI", 0, REG_DWORD, "\0\0\0\0");\r
146 RegCloseKey($key );\r