|
|
@ -1,6 +1,6 @@ |
|
|
#!/usr/bin/env bash |
|
|
#!/usr/bin/env bash |
|
|
|
|
|
|
|
|
PYTHON_BUILD_VERSION="20121023" |
|
|
|
|
|
|
|
|
PYTHON_BUILD_VERSION="20130518" |
|
|
|
|
|
|
|
|
set -E |
|
|
set -E |
|
|
exec 3<&2 # preserve original stderr at fd 3 |
|
|
exec 3<&2 # preserve original stderr at fd 3 |
|
|
@ -61,6 +61,10 @@ capitalize() { |
|
|
printf "%s" "$1" | tr a-z A-Z |
|
|
printf "%s" "$1" | tr a-z A-Z |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
sanitize() { |
|
|
|
|
|
printf "%s" "$1" | sed "s/[^A-Za-z0-9.-]/_/g; s/__*/_/g" |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
build_failed() { |
|
|
build_failed() { |
|
|
{ echo |
|
|
{ echo |
|
|
echo "BUILD FAILED" |
|
|
echo "BUILD FAILED" |
|
|
@ -100,6 +104,10 @@ install_git() { |
|
|
install_package_using "git" 2 "$@" |
|
|
install_package_using "git" 2 "$@" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
install_hg() { |
|
|
|
|
|
install_package_using "hg" 2 "$@" |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
install_svn() { |
|
|
install_svn() { |
|
|
install_package_using "svn" 2 "$@" |
|
|
install_package_using "svn" 2 "$@" |
|
|
} |
|
|
} |
|
|
@ -330,6 +338,20 @@ fetch_git() { |
|
|
echo "Cloning ${git_url}..." >&2 |
|
|
echo "Cloning ${git_url}..." >&2 |
|
|
|
|
|
|
|
|
if type git &>/dev/null; then |
|
|
if type git &>/dev/null; then |
|
|
|
|
|
if [ -n "$PYTHON_BUILD_CACHE_PATH" ]; then |
|
|
|
|
|
pushd "$PYTHON_BUILD_CACHE_PATH" >&4 |
|
|
|
|
|
local clone_name="$(sanitize "$git_url")" |
|
|
|
|
|
if [ -e "${clone_name}" ]; then |
|
|
|
|
|
{ cd "${clone_name}" |
|
|
|
|
|
git fetch --force "$git_url" "+${git_ref}:${git_ref}" |
|
|
|
|
|
} >&4 2>&1 |
|
|
|
|
|
else |
|
|
|
|
|
git clone --bare --branch "$git_ref" "$git_url" "${clone_name}" >&4 2>&1 |
|
|
|
|
|
fi |
|
|
|
|
|
git_url="$PYTHON_BUILD_CACHE_PATH/${clone_name}" |
|
|
|
|
|
popd >&4 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
git clone --depth 1 --branch "$git_ref" "$git_url" "${package_name}" >&4 2>&1 |
|
|
git clone --depth 1 --branch "$git_ref" "$git_url" "${package_name}" >&4 2>&1 |
|
|
else |
|
|
else |
|
|
echo "error: please install \`git\` and try again" >&2 |
|
|
echo "error: please install \`git\` and try again" >&2 |
|
|
@ -337,6 +359,38 @@ fetch_git() { |
|
|
fi |
|
|
fi |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
fetch_hg() { |
|
|
|
|
|
local package_name="$1" |
|
|
|
|
|
local hg_url="$2" |
|
|
|
|
|
local hg_ref="$3" |
|
|
|
|
|
|
|
|
|
|
|
echo "Cloning ${hg_url}..." >&2 |
|
|
|
|
|
|
|
|
|
|
|
if type hg &>/dev/null; then |
|
|
|
|
|
if [ -n "$PYTHON_BUILD_CACHE_PATH" ]; then |
|
|
|
|
|
pushd "$PYTHON_BUILD_CACHE_PATH" >&4 |
|
|
|
|
|
local clone_name="$(sanitize "$hg_url")" |
|
|
|
|
|
if [ -e "${clone_name}" ]; then |
|
|
|
|
|
{ cd "${clone_name}" |
|
|
|
|
|
hg pull --force "$hg_url" |
|
|
|
|
|
} >&4 2>&1 |
|
|
|
|
|
else |
|
|
|
|
|
{ hg clone --branch "$hg_ref" "$hg_url" "${clone_name}" |
|
|
|
|
|
cd "${clone_name}" |
|
|
|
|
|
hg update null |
|
|
|
|
|
} >&4 2>&1 |
|
|
|
|
|
fi |
|
|
|
|
|
hg_url="$PYTHON_BUILD_CACHE_PATH/${clone_name}" |
|
|
|
|
|
popd >&4 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
hg clone --branch "$hg_ref" "$hg_url" "${package_name}" >&4 2>&1 |
|
|
|
|
|
else |
|
|
|
|
|
echo "error: please install \`hg\` and try again" >&2 |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
fetch_svn() { |
|
|
fetch_svn() { |
|
|
local package_name="$1" |
|
|
local package_name="$1" |
|
|
local svn_url="$2" |
|
|
local svn_url="$2" |
|
|
@ -476,8 +530,13 @@ build_package_standard() { |
|
|
local PACKAGE_MAKE_OPTS_ARRAY="${package_var_name}_MAKE_OPTS_ARRAY[@]" |
|
|
local PACKAGE_MAKE_OPTS_ARRAY="${package_var_name}_MAKE_OPTS_ARRAY[@]" |
|
|
local PACKAGE_CFLAGS="${package_var_name}_CFLAGS" |
|
|
local PACKAGE_CFLAGS="${package_var_name}_CFLAGS" |
|
|
|
|
|
|
|
|
{ CFLAGS="$CFLAGS ${!PACKAGE_CFLAGS}" ${!PACKAGE_CONFIGURE:-./configure} --prefix="${!PACKAGE_PREFIX_PATH:-$PREFIX_PATH}" $CONFIGURE_OPTS ${!PACKAGE_CONFIGURE_OPTS} "${!PACKAGE_CONFIGURE_OPTS_ARRAY}" |
|
|
|
|
|
"$MAKE" $MAKE_OPTS ${!PACKAGE_MAKE_OPTS} "${!PACKAGE_MAKE_OPTS_ARRAY}" |
|
|
|
|
|
|
|
|
( if [ "${CFLAGS+defined}" ] || [ "${!PACKAGE_CFLAGS+defined}" ]; then |
|
|
|
|
|
export CFLAGS="$CFLAGS ${!PACKAGE_CFLAGS}" |
|
|
|
|
|
fi |
|
|
|
|
|
${!PACKAGE_CONFIGURE:-./configure} --prefix="${!PACKAGE_PREFIX_PATH:-$PREFIX_PATH}" $CONFIGURE_OPTS ${!PACKAGE_CONFIGURE_OPTS} "${!PACKAGE_CONFIGURE_OPTS_ARRAY}" |
|
|
|
|
|
) >&4 2>&1 |
|
|
|
|
|
|
|
|
|
|
|
{ "$MAKE" $MAKE_OPTS ${!PACKAGE_MAKE_OPTS} "${!PACKAGE_MAKE_OPTS_ARRAY}" |
|
|
"$MAKE" install |
|
|
"$MAKE" install |
|
|
} >&4 2>&1 |
|
|
} >&4 2>&1 |
|
|
|
|
|
|
|
|
|