From eb33b30d3db3191dcca67136653db32f2fed3aff Mon Sep 17 00:00:00 2001 From: Matthew Oliver Date: Fri, 25 Oct 2019 05:20:22 +0000 Subject: [PATCH] do_cmake.sh: Add CEPH_GIT_DIR This patch adds a new env variables that users can set to define the location of the checked out ceph git repo. The documentation mentions having to go edit the script directly to point to the ceph git directory if the build dir isn't in the top directory of the checked out git repo. This patch changes the '..' into an env variable, CEPH_GIT_DIR, that defaults to '..'. To make it easy to script and change. This allows someone to do things like: export CEPH_GIT_DIR=~/git/ceph ./do_cmake.sh or CEPH_GIT_DIR=~/git/ceph ./do_cmake.sh Which is much better then editing the script directly. The README.md has been modified to mention this variable and also includes a drive by to mention `make -j` for new contributors to build ceph quicker. Signed-off-by: Matthew Oliver --- README.md | 12 ++++++++---- do_cmake.sh | 5 +++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2db7458450ea..fd66a06f3815 100644 --- a/README.md +++ b/README.md @@ -61,13 +61,17 @@ Build instructions: (Note: do_cmake.sh now defaults to creating a debug build of ceph that can be up to 5x slower with some workloads. Please pass -"-DCMAKE_BUILD_TYPE=RelWithDebInfo" to do_cmake.sh to create a non-debug +"-DCMAKE_BUILD_TYPE=RelWithDebInfo" to do_cmake.sh to create a non-debug release.) +(Note: `make` alone will use only one CPU thread, this could take a while. use +the `-j` option to use more threads. Something like `make -j$(nproc)` would be +a good start. + This assumes you make your build dir a subdirectory of the ceph.git -checkout. If you put it elsewhere, just replace `..` in do_cmake.sh with a -correct path to the checkout. Any additional CMake args can be specified -setting ARGS before invoking do_cmake. See [cmake options](#cmake-options) +checkout. If you put it elsewhere, just point `CEPH_GIT_DIR`to the correct +path to the checkout. Any additional CMake args can be specified setting ARGS +before invoking do_cmake. See [cmake options](#cmake-options) for more details. Eg. ARGS="-DCMAKE_C_COMPILER=gcc-7" ./do_cmake.sh diff --git a/do_cmake.sh b/do_cmake.sh index ad5d41f330c8..931a5ee0a368 100755 --- a/do_cmake.sh +++ b/do_cmake.sh @@ -3,7 +3,8 @@ set -x git submodule update --init --recursive -[ -z "$BUILD_DIR" ] && BUILD_DIR=build +: ${BUILD_DIR:=build} +: ${CEPH_GIT_DIR:=..} if [ -e $BUILD_DIR ]; then echo "'$BUILD_DIR' dir already exists; either rm -rf '$BUILD_DIR' and re-run, or set BUILD_DIR env var to a different directory name" @@ -54,7 +55,7 @@ if type cmake3 > /dev/null 2>&1 ; then else CMAKE=cmake fi -${CMAKE} $ARGS "$@" .. || exit 1 +${CMAKE} $ARGS "$@" $CEPH_GIT_DIR || exit 1 set +x # minimal config to find plugins -- 2.47.3