diff --git a/scripts/configure_llvm.sh b/scripts/configure_llvm.sh index cc90ffca1..7c917cbd1 100755 --- a/scripts/configure_llvm.sh +++ b/scripts/configure_llvm.sh @@ -73,8 +73,6 @@ if [ "$ONLY_NECESSARY_SPIRV_EXTS" != "on" ] && [ "$ONLY_NECESSARY_SPIRV_EXTS" != exit 1 fi -# get the gcc base path to use in cmake flags -gcc_base_path=$( which gcc | sed s+'bin/gcc'++ ) # set the brach name for checkuot based on only-necessary-spirv-exts if [ "$4" == "on" ]; then @@ -119,14 +117,24 @@ else cd ${LLVM_DIR} fi -# check if the build directory exists, if not create it -if [ ! -d build_$VERSION ]; then +# check if the build directory exists +if [ -d build_$VERSION ]; then + read -p "Build directory build_$VERSION already exists. Do you want to delete it and continue? (y/n) " answer + case ${answer:0:1} in + y|Y ) + echo "Deleting existing build directory..." + rm -rf build_$VERSION + mkdir build_$VERSION + cd build_$VERSION + ;; + * ) + echo "Build directory not deleted. Exiting." + exit 1 + ;; + esac +else mkdir build_$VERSION cd build_$VERSION -else - # Warn the user, error out - echo "Build directory build_$VERSION already exists, please remove it and re-run the script" - exit 1 fi # Check if /usr/include/plugin-api.h exists @@ -175,21 +183,20 @@ fi # Add build type condition if [ "$LINK_TYPE" == "static" ]; then cmake ../ \ - -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \ + -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_PROJECTS="clang;openmp;clang-tools-extra" \ -DLLVM_TARGETS_TO_BUILD=host \ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="SPIRV" \ - -DCMAKE_CXX_COMPILER=g++ \ - -DCMAKE_C_COMPILER=gcc \ - -DGCC_INSTALL_PREFIX=${gcc_base_path}\ + -DCMAKE_CXX_COMPILER=$(which g++) \ + -DCMAKE_C_COMPILER=$(which gcc) \ -DCMAKE_CXX_LINK_FLAGS="-Wl,-rpath,${gcc_base_path}/lib64 -L${gcc_base_path}/lib64" \ -DLLVM_ENABLE_ASSERTIONS=On \ - -DLLVM_BINUTILS_INCDIR=${BINUTILS_HEADER_DIR} + -DLLVM_BINUTILS_INCDIR="${BINUTILS_HEADER_DIR}" elif [ "$LINK_TYPE" == "dynamic" ]; then cmake ../ \ - -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \ - -DCMAKE_INSTALL_RPATH=${INSTALL_DIR}/lib \ + -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ + -DCMAKE_INSTALL_RPATH="${INSTALL_DIR}/lib" \ -DLLVM_ENABLE_PROJECTS="clang;openmp;clang-tools-extra" \ -DLLVM_TARGETS_TO_BUILD=host \ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="SPIRV" \ @@ -197,13 +204,15 @@ elif [ "$LINK_TYPE" == "dynamic" ]; then -DLLVM_BUILD_LLVM_DYLIB=ON \ -DLLVM_PARALLEL_LINK_JOBS=2 \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_COMPILER=g++ \ - -DCMAKE_C_COMPILER=gcc \ - -DGCC_INSTALL_PREFIX=${gcc_base_path}\ + -DCMAKE_CXX_COMPILER=$(which g++) \ + -DCMAKE_C_COMPILER=$(which gcc) \ -DCMAKE_CXX_LINK_FLAGS="-Wl,-rpath,${gcc_base_path}/lib64 -L${gcc_base_path}/lib64" \ - -DLLVM_BINUTILS_INCDIR=${BINUTILS_HEADER_DIR} \ + -DLLVM_BINUTILS_INCDIR="${BINUTILS_HEADER_DIR}" \ -DLLVM_ENABLE_ASSERTIONS=On else echo "Invalid link_type. Must be 'static' or 'dynamic'." exit 1 fi + +# Clean up the temporary configuration file +rm -f "$CLANG_CONFIG_FILE"