#TODO Fix dynamic loading of C modules [source] tar = "https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tar.xz" patches = [ 'redox.patch' ] [build] template = "custom" dependencies = [ "bzip2", "libffi", "libuuid", "ncurses", "ncursesw", "openssl1", "readline", "sqlite3", "zlib", "xz" ] script = """ DYNAMIC_INIT export PYTHONDONTWRITEBYTECODE=1 ARCH="${TARGET%%-*}" # Python cross-compilation requires the same Python version on the build machine BUILDMACH_TARGET="$(gcc -dumpmachine)" BUILDMACH_BUILD="${COOKBOOK_RECIPE}/target/${BUILDMACH_TARGET}/build" BUILDMACH_STAGE="${COOKBOOK_RECIPE}/target/${BUILDMACH_TARGET}/stage" # If this is a fresh build then we also rebuild the build machine version # (Cookbook clean does not remove it so we have to do it manually) if [ -z "$(ls -A .)" ]; then rm -rf "${BUILDMACH_BUILD}" "${BUILDMACH_STAGE}" fi mkdir -p "${BUILDMACH_BUILD}" mkdir -p "${BUILDMACH_STAGE}" cd "${BUILDMACH_BUILD}" # Use env that does not use the Redox build tools env -i PATH="$PATH" CC="$CC_WRAPPER gcc" "${COOKBOOK_SOURCE}/configure" env -i PATH="$PATH" CC="$CC_WRAPPER gcc" "${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" "${COOKBOOK_MAKE}" install DESTDIR="${BUILDMACH_STAGE}" cd - export PATH="${BUILDMACH_STAGE}/usr/local/bin:${PATH}" COOKBOOK_CONFIGURE_FLAGS=( --prefix=/usr --enable-shared --disable-ipv6 --host=${GNU_TARGET} --build=$ARCH --with-ensurepip=install ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no ) cookbook_configure """