aboutsummaryrefslogtreecommitdiffhomepage
path: root/configure.py
diff options
context:
space:
mode:
Diffstat (limited to 'configure.py')
-rw-r--r--configure.py76
1 files changed, 38 insertions, 38 deletions
diff --git a/configure.py b/configure.py
index 9744f6ac81..97f46757ee 100644
--- a/configure.py
+++ b/configure.py
@@ -18,6 +18,7 @@ from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
+import argparse
import errno
import os
import platform
@@ -32,10 +33,6 @@ except ImportError:
from distutils.spawn import find_executable as which
# pylint: enable=g-import-not-at-top
-_TF_BAZELRC = os.path.join(os.path.dirname(os.path.abspath(__file__)),
- '.tf_configure.bazelrc')
-_TF_WORKSPACE = os.path.join(os.path.dirname(os.path.abspath(__file__)),
- 'WORKSPACE')
_DEFAULT_CUDA_VERSION = '9.0'
_DEFAULT_CUDNN_VERSION = '7'
_DEFAULT_CUDA_COMPUTE_CAPABILITIES = '3.5,5.2'
@@ -51,6 +48,11 @@ _SUPPORTED_ANDROID_NDK_VERSIONS = [10, 11, 12, 13, 14, 15]
_DEFAULT_PROMPT_ASK_ATTEMPTS = 10
+_TF_WORKSPACE_ROOT = os.path.abspath(os.path.dirname(__file__))
+_TF_BAZELRC_FILENAME = '.tf_configure.bazelrc'
+_TF_BAZELRC = os.path.join(_TF_WORKSPACE_ROOT, _TF_BAZELRC_FILENAME)
+_TF_WORKSPACE = os.path.join(_TF_WORKSPACE_ROOT, 'WORKSPACE')
+
class UserInputError(Exception):
pass
@@ -119,22 +121,6 @@ def sed_in_place(filename, old, new):
f.write(newdata)
-def remove_line_with(filename, token):
- """Remove lines that contain token from file.
-
- Args:
- filename: string for filename.
- token: string token to check if to remove a line from file or not.
- """
- with open(filename, 'r') as f:
- filedata = f.read()
-
- with open(filename, 'w') as f:
- for line in filedata.strip().split('\n'):
- if token not in line:
- f.write(line + '\n')
-
-
def write_to_bazelrc(line):
with open(_TF_BAZELRC, 'a') as f:
f.write(line + '\n')
@@ -245,25 +231,30 @@ def setup_python(environ_cp):
environ_cp['PYTHON_BIN_PATH'] = python_bin_path
# Write tools/python_bin_path.sh
- with open('tools/python_bin_path.sh', 'w') as f:
+ with open(os.path.join(
+ _TF_WORKSPACE_ROOT, 'tools', 'python_bin_path.sh'), 'w') as f:
f.write('export PYTHON_BIN_PATH="%s"' % python_bin_path)
-def reset_tf_configure_bazelrc():
+def reset_tf_configure_bazelrc(workspace_path):
"""Reset file that contains customized config settings."""
open(_TF_BAZELRC, 'w').close()
-
- home = os.path.expanduser('~')
- if not os.path.exists('.bazelrc'):
- if os.path.exists(os.path.join(home, '.bazelrc')):
- with open('.bazelrc', 'a') as f:
- f.write('import %s/.bazelrc\n' % home.replace('\\', '/'))
+ bazelrc_path = os.path.join(workspace_path, '.bazelrc')
+
+ data = []
+ if os.path.exists(bazelrc_path):
+ with open(bazelrc_path, 'r') as f:
+ data = f.read().splitlines()
+ with open(bazelrc_path, 'w') as f:
+ for l in data:
+ if _TF_BAZELRC_FILENAME in l:
+ continue
+ f.write('%s\n' % l)
+ if is_windows():
+ tf_bazelrc_path = _TF_BAZELRC.replace("\\", "/")
else:
- open('.bazelrc', 'w').close()
-
- remove_line_with('.bazelrc', 'tf_configure')
- with open('.bazelrc', 'a') as f:
- f.write('import %workspace%/.tf_configure.bazelrc\n')
+ tf_bazelrc_path = _TF_BAZELRC
+ f.write('import %s\n' % tf_bazelrc_path)
def cleanup_makefile():
@@ -271,7 +262,8 @@ def cleanup_makefile():
These files could interfere with Bazel parsing.
"""
- makefile_download_dir = 'tensorflow/contrib/makefile/downloads'
+ makefile_download_dir = os.path.join(
+ _TF_WORKSPACE_ROOT, 'tensorflow', 'contrib', 'makefile', 'downloads')
if os.path.isdir(makefile_download_dir):
for root, _, filenames in os.walk(makefile_download_dir):
for f in filenames:
@@ -456,7 +448,7 @@ def check_bazel_version(min_version):
if which('bazel') is None:
print('Cannot find bazel. Please install bazel.')
sys.exit(0)
- curr_version = run_shell(['bazel', '--batch', 'version'])
+ curr_version = run_shell(['bazel', '--batch', '--bazelrc=/dev/null', 'version'])
for line in curr_version.split('\n'):
if 'Build label: ' in line:
@@ -502,7 +494,8 @@ def set_cc_opt_flags(environ_cp):
for opt in cc_opt_flags.split():
write_to_bazelrc('build:opt --copt=%s' % opt)
# It should be safe on the same build host.
- write_to_bazelrc('build:opt --host_copt=-march=native')
+ if not is_ppc64le():
+ write_to_bazelrc('build:opt --host_copt=-march=native')
write_to_bazelrc('build:opt --define with_default_optimizations=true')
# TODO(mikecase): Remove these default defines once we are able to get
# TF Lite targets building without them.
@@ -1229,7 +1222,7 @@ def set_host_c_compiler(environ_cp):
environ_cp,
var_name='HOST_C_COMPILER',
var_default=default_c_host_compiler,
- ask_for_var=('Please specify which C compiler should be used as the host'
+ ask_for_var=('Please specify which C compiler should be used as the host '
'C compiler.'),
check_success=os.path.exists,
error_msg='Invalid C compiler path. %s cannot be found.',
@@ -1373,13 +1366,20 @@ def config_info_line(name, help_text):
def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--workspace",
+ type=str,
+ default=_TF_WORKSPACE_ROOT,
+ help="The absolute path to your active Bazel workspace.")
+ args = parser.parse_args()
+
# Make a copy of os.environ to be clear when functions and getting and setting
# environment variables.
environ_cp = dict(os.environ)
check_bazel_version('0.5.4')
- reset_tf_configure_bazelrc()
+ reset_tf_configure_bazelrc(args.workspace)
cleanup_makefile()
setup_python(environ_cp)