mirror of
https://github.com/pyenv/pyenv.git
synced 2024-12-22 20:23:41 +00:00
Merge branch 'llvm-gcc-4.2-on-osx'
This commit is contained in:
commit
7a4fe458b8
6 changed files with 74 additions and 27 deletions
|
@ -622,30 +622,56 @@ fix_directory_permissions() {
|
|||
}
|
||||
|
||||
require_gcc() {
|
||||
local gcc="$(locate_gcc || true)"
|
||||
require_cc "gcc"
|
||||
}
|
||||
|
||||
if [ -z "$gcc" ]; then
|
||||
require_cc() {
|
||||
while [ -n "$1" ]; do
|
||||
if [ "$1" = "--if" ]; then
|
||||
"$2" || return 0
|
||||
shift 2
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
local cc
|
||||
local ccname="${1:-cc}"
|
||||
cc="$(locate_cc "$ccname" || true)"
|
||||
if [ -n "$cc" ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
if [ -z "$cc" ]; then
|
||||
local esc=$'\033'
|
||||
{ echo
|
||||
echo "${esc}[1mERROR${esc}[0m: This package must be compiled with GCC, but python-build couldn't"
|
||||
echo "find a suitable \`gcc\` executable on your system. Please install GCC"
|
||||
echo "${esc}[1mERROR${esc}[0m: This package must be compiled with $ccname, but python-build couldn't"
|
||||
echo "find a suitable \`cc\` executable on your system. Please install $ccname"
|
||||
echo "and try again."
|
||||
echo
|
||||
} >&3
|
||||
return 1
|
||||
fi
|
||||
|
||||
export CC="$gcc"
|
||||
}
|
||||
|
||||
export CC="$cc"
|
||||
}
|
||||
|
||||
locate_gcc() {
|
||||
local gcc gccs
|
||||
IFS=: gccs=($(gccs_in_path))
|
||||
locate_cc "gcc" "$@"
|
||||
}
|
||||
|
||||
verify_gcc "$CC" ||
|
||||
verify_gcc "$(command -v gcc || true)" || {
|
||||
for gcc in "${gccs[@]}"; do
|
||||
verify_gcc "$gcc" && break || true
|
||||
locate_cc() {
|
||||
local ccname="$1"; shift
|
||||
if [ -z "$ccname" ]; then
|
||||
return 1
|
||||
fi
|
||||
local cc ccs
|
||||
IFS=: ccs=($(ccs_in_path "${ccname}"))
|
||||
|
||||
verify_cc "${ccname}" "$CC" ||
|
||||
verify_cc "${ccname}" "$(command -v "${ccname}" || true)" || {
|
||||
for cc in "${ccs[@]}"; do
|
||||
verify_cc "${ccname}" "$cc" && break || true
|
||||
done
|
||||
}
|
||||
|
||||
|
@ -653,33 +679,49 @@ locate_gcc() {
|
|||
}
|
||||
|
||||
gccs_in_path() {
|
||||
local gcc path paths
|
||||
local gccs=()
|
||||
ccs_in_path "gcc" "$@"
|
||||
}
|
||||
|
||||
ccs_in_path() {
|
||||
local ccname="$1"; shift
|
||||
if [ -z "$ccname" ]; then
|
||||
return 1
|
||||
fi
|
||||
local cc path paths
|
||||
local ccs=()
|
||||
IFS=: paths=($PATH)
|
||||
|
||||
shopt -s nullglob
|
||||
for path in "${paths[@]}"; do
|
||||
for gcc in "$path"/gcc-*; do
|
||||
gccs["${#gccs[@]}"]="$gcc"
|
||||
for cc in "$path"/${ccname}-*; do
|
||||
ccs["${#ccs[@]}"]="$cc"
|
||||
done
|
||||
done
|
||||
shopt -u nullglob
|
||||
|
||||
printf :%s "${gccs[@]}"
|
||||
printf :%s "${ccs[@]}"
|
||||
}
|
||||
|
||||
verify_gcc() {
|
||||
local gcc="$1"
|
||||
if [ -z "$gcc" ]; then
|
||||
verify_cc "gcc" "$@"
|
||||
}
|
||||
|
||||
verify_cc() {
|
||||
local ccname="$1"; shift
|
||||
if [ -z "$ccname" ]; then
|
||||
return 1
|
||||
fi
|
||||
local cc="$1"
|
||||
if [ -z "$cc" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
local version="$("$gcc" --version || true)"
|
||||
local version="$("$cc" --version || true)"
|
||||
if [ -z "$version" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "$gcc"
|
||||
echo "$cc"
|
||||
}
|
||||
|
||||
has_broken_mac_openssl() {
|
||||
|
@ -730,6 +772,11 @@ has_broken_mac_readline() {
|
|||
return "$retval"
|
||||
}
|
||||
|
||||
has_broken_mac_gcc_llvm() {
|
||||
[ "$(uname -s)" = "Darwin" ] &&
|
||||
[ "$(gcc --version 2>/dev/null || true)" = "llvm-gcc-4.2" ]
|
||||
}
|
||||
|
||||
# Post-install check for Python 2.5.x
|
||||
build_package_verify_py25() {
|
||||
build_package_verify_readline "$@"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
require_gcc
|
||||
require_cc --if has_broken_mac_gcc_llvm "clang"
|
||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_hg "Python-3.3-dev" "https://bitbucket.org/mirror/cpython" "3.3" standard verify_py33
|
||||
install_package "setuptools-0.7.4" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.4.tar.gz#c0b8864b63c13312f5d9568c2a54247e" python
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
require_gcc
|
||||
require_cc --if has_broken_mac_gcc_llvm "clang"
|
||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.3.0" "http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz#198a64f7a04d1d5e95ce2782d5fd8254" standard verify_py33
|
||||
install_package "setuptools-0.7.4" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.4.tar.gz#c0b8864b63c13312f5d9568c2a54247e" python
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
require_gcc
|
||||
require_cc --if has_broken_mac_gcc_llvm "clang"
|
||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.3.1" "http://python.org/ftp/python/3.3.1/Python-3.3.1.tgz#c19bfd6ea252b61779a4f2996fb3b330" standard verify_py33
|
||||
install_package "setuptools-0.7.4" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.4.tar.gz#c0b8864b63c13312f5d9568c2a54247e" python
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
require_gcc
|
||||
require_cc --if has_broken_mac_gcc_llvm "clang"
|
||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.3.2" "http://python.org/ftp/python/3.3.2/Python-3.3.2.tgz#0a2ea57f6184baf45b150aee53c0c8da" standard verify_py33
|
||||
install_package "setuptools-0.7.4" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.4.tar.gz#c0b8864b63c13312f5d9568c2a54247e" python
|
||||
|
|
|
@ -5,7 +5,7 @@ if ! pyenv-which python3.4 1>/dev/null 2>&1; then
|
|||
fi
|
||||
fi
|
||||
|
||||
require_gcc
|
||||
require_cc --if has_broken_mac_gcc_llvm "clang"
|
||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_hg "Python-3.4-dev" "https://bitbucket.org/mirror/cpython" "default" standard verify_py34
|
||||
install_package "setuptools-0.7.4" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.4.tar.gz#c0b8864b63c13312f5d9568c2a54247e" python
|
||||
|
|
Loading…
Reference in a new issue