diff --git a/waf b/waf index 7bc5368b05..e5b89b5188 100755 --- a/waf +++ b/waf @@ -1,21 +1,25 @@ #!/usr/bin/python from __future__ import print_function -import os +import subprocess import os.path as p import sys d = p.dirname(p.realpath(__file__)) +waf_light = p.join(d, 'modules', 'waf', 'waf-light') + try: - os.execv(os.path.join(d, 'modules/waf/waf-light'), sys.argv) -except OSError: + subprocess.check_call(['python', waf_light] + sys.argv[1:]) +except subprocess.CalledProcessError as e: + if e.returncode != 2 or p.isfile(waf_light): + raise e + print('Missing waf submodule. Trying to get it') - from subprocess import check_call, CalledProcessError - try: - check_call(['git', 'submodule', 'update', '--init', 'modules/waf']) - except CalledProcessError: + subprocess.check_call(['git', 'submodule', 'update', '--init', + 'modules/waf']) + except subprocess.CalledProcessError: print('Could not update submodule', file=sys.stderr) sys.exit(1)