#!/usr/bin/env bash
########################################################
# Build Sage source distribution
# This script should not be invoked directly.
# Use "sage --sdist" or "make dist".
########################################################
set -e
CMD="${0##*/}"
die () {
echo >&2 -e "$@"
exit 1
}
usage () {
echo "usage: $CMD [TMP_DIR]"
}
if [ $# -gt 1 ]; then
usage
die
fi
if [ -z "$SAGE_ROOT" ]; then
die "must be run from within a Sage environment, or with SAGE_ROOT provided"
fi
if [ -z "$SAGE_SRC" ]; then
die "must be run from within a Sage environment, or with SAGE_SRC provided"
fi
if [ "$#" -gt 0 ]; then
TMP_DIR="$1"
else
TMP_DIR="$SAGE_ROOT/tmp"
fi
source "$SAGE_SRC/bin/sage-version.sh"
echo "Sage version $SAGE_VERSION, release date $SAGE_RELEASE_DATE"
TARGET="sage-$SAGE_VERSION"
sage-clone-source "$SAGE_ROOT" "$TMP_DIR/$TARGET"
# Download and copy all upstream tarballs
cd "$SAGE_ROOT/build/make"
export SAGE_SPKG_COPY_UPSTREAM="$TMP_DIR/$TARGET/upstream"
$MAKE download-for-sdist
# Create source .tar.gz
cd "$TMP_DIR"
echo "Creating dist/$TARGET.tar.gz ..."
chmod -R go=rX "$TARGET"
tar zcf "$TARGET".tar.gz "$TARGET"
mkdir -p "$SAGE_ROOT"/dist
rm -rf "$SAGE_ROOT/dist/$TARGET"
echo "Moving final distribution file to $SAGE_ROOT/dist"
mv "$TARGET" "$SAGE_ROOT"/dist/
mv "$TARGET".* "$SAGE_ROOT"/dist/