In ./configure, only ask about jemalloc when running on Linux.

Also add functions to test whether we're running on Linux or macOS, and convert
every check over to them.

Fixes #6869
Change: 144761341
This commit is contained in:
Jonathan Hseu 2017-01-17 15:06:43 -08:00 committed by TensorFlower Gardener
parent 7da561c73d
commit c058a01d99

65
configure vendored
View File

@ -9,6 +9,23 @@ SOURCE_BASE_DIR=`pwd -P`
popd > /dev/null
PLATFORM="$(uname -s | tr 'A-Z' 'a-z')"
function is_linux() {
if [[ "${PLATFORM}" == "linux" ]]; then
true
else
false
fi
}
function is_macos() {
if [[ "${PLATFORM}" == "darwin" ]]; then
true
else
false
fi
}
function is_windows() {
# On windows, the shell script is actually running in msys
if [[ "${PLATFORM}" =~ msys_nt* ]]; then
@ -65,16 +82,20 @@ if is_windows; then
TF_NEED_OPENCL=0
fi
while [ "$TF_NEED_JEMALLOC" == "" ]; do
read -p "Do you wish to use jemalloc as the malloc implementation? "\
"(Linux only) [Y/n] " INPUT
case $INPUT in
[Yy]* ) echo "jemalloc enabled on Linux"; TF_NEED_JEMALLOC=1;;
[Nn]* ) echo "jemalloc disabled on Linux"; TF_NEED_JEMALLOC=0;;
"" ) echo "jemalloc enabled on Linux"; TF_NEED_JEMALLOC=1;;
* ) echo "Invalid selection: " $INPUT;;
esac
done
if is_linux; then
while [ "$TF_NEED_JEMALLOC" == "" ]; do
read -p "Do you wish to use jemalloc as the malloc implementation? [Y/n] "\
INPUT
case $INPUT in
[Yy]* ) echo "jemalloc enabled"; TF_NEED_JEMALLOC=1;;
[Nn]* ) echo "jemalloc disabled"; TF_NEED_JEMALLOC=0;;
"" ) echo "jemalloc enabled"; TF_NEED_JEMALLOC=1;;
* ) echo "Invalid selection: " $INPUT;;
esac
done
else
TF_NEED_JEMALLOC=0
fi
if [ "$TF_NEED_JEMALLOC" == "1" ]; then
sed -i -e "s/WITH_JEMALLOC = False/WITH_JEMALLOC = True/" tensorflow/core/platform/default/build_config.bzl
@ -99,7 +120,7 @@ done
if [ "$TF_NEED_GCP" == "1" ]; then
## Verify that libcurl header files are available.
# Only check Linux, since on MacOS the header files are installed with XCode.
if [[ $(uname -a) =~ Linux ]] && [[ ! -f "/usr/include/curl/curl.h" ]]; then
if is_linux && [[ ! -f "/usr/include/curl/curl.h" ]]; then
echo "ERROR: It appears that the development version of libcurl is not "\
"available. Please install the libcurl3-dev package."
exit 1
@ -226,8 +247,6 @@ while ! is_windows && true; do
done
# Find out where the CUDA toolkit is installed
OSNAME=`uname -s`
while true; do
# Configure the Cuda SDK version to use.
if [ -z "$TF_CUDA_VERSION" ]; then
@ -259,9 +278,9 @@ while true; do
if is_windows; then
CUDA_RT_LIB_PATH="lib/x64/cudart.lib"
elif [ "$OSNAME" == "Linux" ]; then
elif is_linux; then
CUDA_RT_LIB_PATH="lib64/libcudart.so${TF_CUDA_EXT}"
elif [ "$OSNAME" == "Darwin" ]; then
elif is_macos; then
CUDA_RT_LIB_PATH="lib/libcudart${TF_CUDA_EXT}.dylib"
fi
@ -307,10 +326,10 @@ while true; do
if is_windows; then
cudnn_lib_path="${CUDNN_INSTALL_PATH}/lib/x64/cudnn.lib"
cudnn_alt_lib_path="${CUDNN_INSTALL_PATH}/lib/x64/cudnn.lib"
elif [ "$OSNAME" == "Linux" ]; then
elif is_linux; then
cudnn_lib_path="${CUDNN_INSTALL_PATH}/lib64/libcudnn.so"
cudnn_alt_lib_path="${CUDNN_INSTALL_PATH}/libcudnn.so"
elif [ "$OSNAME" == "Darwin" ]; then
elif is_macos; then
cudnn_lib_path="${CUDNN_INSTALL_PATH}/lib/libcudnn.dylib"
cudnn_alt_lib_path="${CUDNN_INSTALL_PATH}/libcudnn.dylib"
fi
@ -337,7 +356,7 @@ while true; do
echo "libcudnn.dylib resolves to libcudnn${TF_CUDNN_EXT}"
fi
else
if [ "$OSNAME" == "Darwin" ]; then
if is_macos; then
TF_CUDNN_EXT=".${TF_CUDNN_VERSION}.dylib"
else
TF_CUDNN_EXT=".$TF_CUDNN_VERSION"
@ -347,10 +366,10 @@ while true; do
if is_windows; then
CUDA_DNN_LIB_PATH="lib/x64/cudnn.lib"
CUDA_DNN_LIB_ALT_PATH="lib/x64/cudnn.lib"
elif [ "$OSNAME" == "Linux" ]; then
elif is_linux; then
CUDA_DNN_LIB_PATH="lib64/libcudnn.so${TF_CUDNN_EXT}"
CUDA_DNN_LIB_ALT_PATH="libcudnn.so${TF_CUDNN_EXT}"
elif [ "$OSNAME" == "Darwin" ]; then
elif is_macos; then
CUDA_DNN_LIB_PATH="lib/libcudnn${TF_CUDNN_EXT}"
CUDA_DNN_LIB_ALT_PATH="libcudnn${TF_CUDNN_EXT}"
fi
@ -361,7 +380,7 @@ while true; do
break
fi
if [ "$OSNAME" == "Linux" ]; then
if is_linux; then
CUDNN_PATH_FROM_LDCONFIG="$(ldconfig -p | sed -n 's/.*libcudnn.so .* => \(.*\)/\1/p')"
if [ -e "${CUDNN_PATH_FROM_LDCONFIG}${TF_CUDNN_EXT}" ]; then
export TF_CUDNN_VERSION
@ -372,7 +391,7 @@ while true; do
echo "Invalid path to cuDNN ${CUDNN_VERSION} toolkit. Neither of the following two files can be found:"
echo "${CUDNN_INSTALL_PATH}/${CUDA_DNN_LIB_PATH}"
echo "${CUDNN_INSTALL_PATH}/${CUDA_DNN_LIB_ALT_PATH}"
if [ "$OSNAME" == "Linux" ]; then
if is_linux; then
echo "${CUDNN_PATH_FROM_LDCONFIG}${TF_CUDNN_EXT}"
fi
@ -499,7 +518,7 @@ while true; do
fi
fi
if [ "$OSNAME" == "Linux" ]; then
if is_linux; then
SYCL_RT_LIB_PATH="lib/libComputeCpp.so"
fi