diff --git a/c/build.sh b/c/build.sh index 68c76e7..848d866 100755 --- a/c/build.sh +++ b/c/build.sh @@ -2,7 +2,7 @@ set -eu cd $(dirname $0) -BUILDDIR=build/release/$(uname)-$(uname -m) +BUILDDIR=${BUILD_ROOT:-build}/$(basename $(pwd))-$(echo $(basename $0) | sed 's/build_*\(.*\).sh/\1/')-$(uname)-$(uname -m) cmake -DCMAKE_BUILD_TYPE=Release -B $BUILDDIR . cmake --build $BUILDDIR -j cp $BUILDDIR/rosettaboy-c ./rosettaboy-release diff --git a/c/build_debug.sh b/c/build_debug.sh index ba77e97..4961f98 100755 --- a/c/build_debug.sh +++ b/c/build_debug.sh @@ -2,7 +2,7 @@ set -eu cd $(dirname $0) -BUILDDIR=build/debug/$(uname)-$(uname -m) +BUILDDIR=${BUILD_ROOT:-build}/$(basename $(pwd))-$(echo $(basename $0) | sed 's/build_*\(.*\).sh/\1/')-$(uname)-$(uname -m) cmake -DCMAKE_BUILD_TYPE=Debug -B $BUILDDIR . cmake --build $BUILDDIR -j cp $BUILDDIR/rosettaboy-c ./rosettaboy-debug diff --git a/c/build_lto.sh b/c/build_lto.sh index a4cb355..6114bb2 100755 --- a/c/build_lto.sh +++ b/c/build_lto.sh @@ -2,7 +2,7 @@ set -eu cd $(dirname $0) -BUILDDIR=build/lto/$(uname)-$(uname -m) +BUILDDIR=${BUILD_ROOT:-build}/$(basename $(pwd))-$(echo $(basename $0) | sed 's/build_*\(.*\).sh/\1/')-$(uname)-$(uname -m) cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=On -B $BUILDDIR . cmake --build $BUILDDIR -j cp $BUILDDIR/rosettaboy-c ./rosettaboy-lto diff --git a/cpp/build.sh b/cpp/build.sh index 3cdce10..7c51929 100755 --- a/cpp/build.sh +++ b/cpp/build.sh @@ -2,7 +2,7 @@ set -eu cd $(dirname $0) -BUILDDIR=build/release/$(uname)-$(uname -m) +BUILDDIR=${BUILD_ROOT:-build}/$(basename $(pwd))-$(echo $(basename $0) | sed 's/build_*\(.*\).sh/\1/')-$(uname)-$(uname -m) cmake -DCMAKE_BUILD_TYPE=Release -B $BUILDDIR . cmake --build $BUILDDIR -j cp $BUILDDIR/rosettaboy-cpp ./rosettaboy-release diff --git a/cpp/build_debug.sh b/cpp/build_debug.sh index 1913f3e..9d87171 100755 --- a/cpp/build_debug.sh +++ b/cpp/build_debug.sh @@ -2,7 +2,7 @@ set -eu cd $(dirname $0) -BUILDDIR=build/debug/$(uname)-$(uname -m) +BUILDDIR=${BUILD_ROOT:-build}/$(basename $(pwd))-$(echo $(basename $0) | sed 's/build_*\(.*\).sh/\1/')-$(uname)-$(uname -m) cmake -DCMAKE_BUILD_TYPE=Debug -B $BUILDDIR . cmake --build $BUILDDIR -j cp $BUILDDIR/rosettaboy-cpp ./rosettaboy-debug diff --git a/cpp/build_lto.sh b/cpp/build_lto.sh index 848aacf..f5bcfa3 100755 --- a/cpp/build_lto.sh +++ b/cpp/build_lto.sh @@ -2,7 +2,7 @@ set -eu cd $(dirname $0) -BUILDDIR=build/lto/$(uname)-$(uname -m) +BUILDDIR=${BUILD_ROOT:-build}/$(basename $(pwd))-$(echo $(basename $0) | sed 's/build_*\(.*\).sh/\1/')-$(uname)-$(uname -m) cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=On -B $BUILDDIR . cmake --build $BUILDDIR -j cp $BUILDDIR/rosettaboy-cpp ./rosettaboy-lto diff --git a/pxd/build.sh b/pxd/build.sh index 417bd7f..70dafa9 100755 --- a/pxd/build.sh +++ b/pxd/build.sh @@ -5,7 +5,7 @@ cd $(dirname $0) source py_env.sh -BUILD_DIR=build +BUILDDIR=${BUILD_ROOT:-build}/$(basename $(pwd))-$(echo $(basename $0) | sed 's/build_*\(.*\).sh/\1/')-$(uname)-$(uname -m)-build CORES=$(python3 -c 'import os; print(os.cpu_count() or 0)') if [ -t "$CORES" ]; then @@ -15,12 +15,18 @@ else echo "Found $CORES cores." 1>&2 fi -python3 setup.py build "$@" --build-base "$BUILD_DIR" --build-purelib "$BUILD_DIR" --build-lib "$BUILD_DIR" --build-scripts "$BUILD_DIR" --build-temp build_temp --parallel $CORES +python3 setup.py build "$@" \ + --build-base "$BUILDDIR/base" \ + --build-purelib "$BUILDDIR/purelib" \ + --build-lib "$BUILDDIR/lib" \ + --build-scripts "$BUILDDIR/scripts" \ + --build-temp "$BUILDDIR/temp" \ + --parallel $CORES cat >rosettaboy-release <&2; echo $?) # Use existing libraries (E.G. from system, or from Nix) if found. if [ $PYIMPORT_EXIT -eq 0 ] ; then echo "Python packages found:" diff --git a/py/py_env.sh b/py/py_env.sh index dc82790..7dc3b45 100644 --- a/py/py_env.sh +++ b/py/py_env.sh @@ -1,6 +1,6 @@ # Instead of being run, this gets `source`d by `build.sh` and `format.sh`. -BUILDDIR=$(dirname $0)/venv/$(uname)-$(uname -m) +BUILDDIR=${BUILD_ROOT:-build}/$(basename $(pwd))-$(echo $(basename $0) | sed 's/build_*\(.*\).sh/\1/')-$(uname)-$(uname -m)-venv # Use existing libraries (E.G. from system, or from Nix) if found. if python3 -c 'import sdl2, black, mypy' 2>/dev/null ; then diff --git a/rs/build.sh b/rs/build.sh index 9151b65..dd85520 100755 --- a/rs/build.sh +++ b/rs/build.sh @@ -2,5 +2,7 @@ set -eu cd $(dirname $0) +BUILDDIR=${BUILD_ROOT:-target}/$(basename $(pwd))-$(echo $(basename $0) | sed 's/build_*\(.*\).sh/\1/')-$(uname)-$(uname -m) +export CARGO_TARGET_DIR=$BUILDDIR cargo build --release -cp ./target/release/rosettaboy-rs ./rosettaboy-release \ No newline at end of file +cp $BUILDDIR/release/rosettaboy-rs ./rosettaboy-release \ No newline at end of file diff --git a/rs/build_debug.sh b/rs/build_debug.sh index 079aafa..cc55163 100755 --- a/rs/build_debug.sh +++ b/rs/build_debug.sh @@ -2,5 +2,7 @@ set -eu cd $(dirname $0) +BUILDDIR=${BUILD_ROOT:-target}/$(basename $(pwd))-$(echo $(basename $0) | sed 's/build_*\(.*\).sh/\1/')-$(uname)-$(uname -m) +export CARGO_TARGET_DIR=$BUILDDIR cargo build -cp ./target/debug/rosettaboy-rs ./rosettaboy-debug \ No newline at end of file +cp $BUILDDIR/debug/rosettaboy-rs ./rosettaboy-debug \ No newline at end of file diff --git a/rs/build_lto.sh b/rs/build_lto.sh index 50d2497..826484b 100755 --- a/rs/build_lto.sh +++ b/rs/build_lto.sh @@ -2,5 +2,7 @@ set -eu cd $(dirname $0) +BUILDDIR=${BUILD_ROOT:-target}/$(basename $(pwd))-$(echo $(basename $0) | sed 's/build_*\(.*\).sh/\1/')-$(uname)-$(uname -m) +export CARGO_TARGET_DIR=$BUILDDIR cargo build --profile release-lto -cp ./target/release-lto/rosettaboy-rs ./rosettaboy-lto \ No newline at end of file +cp $BUILDDIR/release-lto/rosettaboy-rs ./rosettaboy-lto \ No newline at end of file