From df7139ae49f84dd55534b52214d2378a137ae47a Mon Sep 17 00:00:00 2001 From: Vladimir Shiryaev Date: Fri, 14 Feb 2025 13:52:00 -0800 Subject: [PATCH] Refine build instructions. Configure C/C++ compilers and linker via environment variables. Signed-off-by: Vladimir Shiryaev --- build_tools/build_mlir.sh | 34 +++++++++++++++--------- build_tools/build_p4c_with_p4mlir_ext.sh | 4 +-- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/build_tools/build_mlir.sh b/build_tools/build_mlir.sh index 3e265dd..9703355 100755 --- a/build_tools/build_mlir.sh +++ b/build_tools/build_mlir.sh @@ -17,20 +17,28 @@ LLVM_INSTALL_DIR=$P4MLIR_REPO_DIR/install mkdir -p "$LLVM_BUILD_DIR" cd "$LLVM_BUILD_DIR" +# Configure CMake flags # Note that P4C uses both RTTI and C++ exceptions, so we need to build LLVM/MLIR having them enabled as well -cmake -G Ninja "$LLVM_REPO_DIR"/llvm \ - -DCMAKE_INSTALL_PREFIX="$LLVM_INSTALL_DIR" \ - -DLLVM_ENABLE_PROJECTS=mlir \ - -DLLVM_BUILD_EXAMPLES=OFF \ - -DLLVM_TARGETS_TO_BUILD="Native" \ - -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_ENABLE_ASSERTIONS=ON \ - -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLLVM_ENABLE_LLD=ON \ - -DLLVM_CCACHE_BUILD=ON \ - -DLLVM_INSTALL_UTILS=ON \ - -DLLVM_INCLUDE_BENCHMARKS=OFF \ - -DLLVM_ENABLE_RTTI=ON \ - -DLLVM_ENABLE_EH=ON +CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=\"$LLVM_INSTALL_DIR\"" +CMAKE_FLAGS+=" -DLLVM_ENABLE_PROJECTS=mlir" +CMAKE_FLAGS+=" -DLLVM_BUILD_EXAMPLES=OFF" +CMAKE_FLAGS+=" -DLLVM_TARGETS_TO_BUILD="Native"" +CMAKE_FLAGS+=" -DCMAKE_BUILD_TYPE=Release" +CMAKE_FLAGS+=" -DLLVM_ENABLE_ASSERTIONS=ON" +CMAKE_FLAGS+=" -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER:-clang}" +CMAKE_FLAGS+=" -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER:-clang++}" +if [[ -n "${LLVM_USE_LINKER}" ]]; then + CMAKE_FLAGS+=" -DLLVM_USE_LINKER=${LLVM_USE_LINKER}" +else + CMAKE_FLAGS+=" -DLLVM_ENABLE_LLD=ON" +fi +CMAKE_FLAGS+=" -DLLVM_CCACHE_BUILD=ON" +CMAKE_FLAGS+=" -DLLVM_INSTALL_UTILS=ON" +CMAKE_FLAGS+=" -DLLVM_INCLUDE_BENCHMARKS=OFF" +CMAKE_FLAGS+=" -DLLVM_ENABLE_RTTI=ON" +CMAKE_FLAGS+=" -DLLVM_ENABLE_EH=ON" + +cmake -G Ninja "$LLVM_REPO_DIR"/llvm $CMAKE_FLAGS ninja ninja check-mlir diff --git a/build_tools/build_p4c_with_p4mlir_ext.sh b/build_tools/build_p4c_with_p4mlir_ext.sh index 3b13912..9ebee47 100755 --- a/build_tools/build_p4c_with_p4mlir_ext.sh +++ b/build_tools/build_p4c_with_p4mlir_ext.sh @@ -28,8 +28,8 @@ if [ ! -d "$P4C_P4MLIR_EXT_DIR" ]; then fi # Configure CMake flags -CMAKE_FLAGS="-DCMAKE_C_COMPILER=clang" -CMAKE_FLAGS+=" -DCMAKE_CXX_COMPILER=clang++" +CMAKE_FLAGS="-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER:-clang}" +CMAKE_FLAGS+=" -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER:-clang++}" # Configure P4C CMake flags # https://github.com/p4lang/p4c/blob/main/CMakeLists.txt