Fix jhbuild installation for people who have unusual MAKE environment
[WebKit-https.git] / Tools / gtk / run-with-jhbuild
1 #!/usr/bin/env python
2 # Copyright (C) 2011 Igalia S.L.
3 #
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2 of the License, or (at your option) any later version.
8 #
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # Lesser General Public License for more details.
13 #
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17
18 import common
19 import os
20 import subprocess
21 import sys
22
23 def install_and_run_jhbuild():
24     installation_prefix = os.path.abspath(common.top_level_path('WebKitBuild', 'Dependencies', 'Root'))
25     source_path = os.path.abspath(common.top_level_path('WebKitBuild', 'Dependencies', 'Source'))
26     jhbuild_source_path = os.path.join(source_path, 'jhbuild')
27
28     if not os.path.exists(source_path):
29         os.makedirs(source_path)
30     if not os.path.exists(installation_prefix):
31         os.makedirs(installation_prefix)
32
33     if not os.path.exists(jhbuild_source_path):
34         process = subprocess.Popen(['git', 'clone', 'git://git.gnome.org/jhbuild'], cwd=source_path)
35         process.wait()
36         if process.returncode != 0:
37             raise Exception('jhbuild git clone failed with return code: %i' % process.returncode)
38
39     # jhbuild is really unhappy about having MAKE defined to something like 'make -j4'
40     # so we just undefine it here.
41     env_without_make = dict(os.environ)
42     del env_without_make['MAKE']
43
44     process = subprocess.Popen(['./autogen.sh', '--prefix=%s' % installation_prefix],
45                                cwd=jhbuild_source_path, env=env_without_make)
46     process.wait()
47     if process.returncode != 0:
48         raise Exception('jhbuild configure failed with return code: %i' % process.returncode)
49
50     process = subprocess.Popen(['make', 'install'], cwd=jhbuild_source_path, env=env_without_make)
51     process.wait()
52     if process.returncode != 0:
53         raise Exception('jhbuild configure failed with return code: %i' % process.returncode)
54
55     process = subprocess.Popen(common.top_level_path('Tools', 'Scripts', 'update-webkitgtk-libs'))
56     process.wait()
57     if process.returncode != 0:
58         raise Exception('jhbuild configure failed with return code: %i' % process.returncode)
59
60 jhbuild_path = common.top_level_path('WebKitBuild', 'Dependencies', 'Root', 'bin', 'jhbuild')
61 if not os.path.exists(jhbuild_path):
62     install_and_run_jhbuild()
63
64 process = subprocess.Popen([jhbuild_path, '--no-interact', '-f', common.top_level_path('Tools', 'gtk', 'jhbuildrc'), 'run'] + sys.argv[1:])
65 process.wait()
66 sys.exit(process.returncode)
67
68
69