Serenity Operating System
at master 50 lines 1.3 kB view raw
1#!/usr/bin/env bash 2set -e 3 4# This file will need to be run in bash, for now. 5 6DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 7 8PREFIX_DIR="$DIR/Local/python" 9BUILD_DIR="$DIR/Build/python" 10TARBALLS_DIR="$DIR/Tarballs" 11 12# shellcheck source=/dev/null 13source "$DIR/../Ports/python3/version.sh" 14 15mkdir -p "${TARBALLS_DIR}" 16 17pushd "${TARBALLS_DIR}" 18 if [ ! -e "${PYTHON_ARCHIVE}" ]; then 19 echo "Downloading Python from ${PYTHON_ARCHIVE_URL}..." 20 curl -O "${PYTHON_ARCHIVE_URL}" 21 else 22 echo "${PYTHON_ARCHIVE} already exists, not downloading archive" 23 fi 24 25 if ! sha256sum --status -c <(echo "${PYTHON_ARCHIVE_SHA256SUM}" "${PYTHON_ARCHIVE}"); then 26 echo "Python archive SHA256 sum mismatch, please run script again" 27 rm -f "${PYTHON_ARCHIVE}" 28 exit 1 29 fi 30 31 if [ ! -d "Python-${PYTHON_VERSION}" ]; then 32 echo "Extracting ${PYTHON_ARCHIVE}..." 33 tar -xf "${PYTHON_ARCHIVE}" 34 else 35 echo "Python-${PYTHON_VERSION} already exists, not extracting archive" 36 fi 37popd 38 39if [ -z "$MAKEJOBS" ]; then 40 MAKEJOBS=$(nproc) 41fi 42 43mkdir -p "${PREFIX_DIR}" 44mkdir -p "${BUILD_DIR}" 45 46pushd "${BUILD_DIR}" 47 "${TARBALLS_DIR}"/Python-"${PYTHON_VERSION}"/configure --prefix="${PREFIX_DIR}" 48 make -j "${MAKEJOBS}" 49 make install 50popd