Skip to content

Commit

Permalink
do_cmake.sh: Add CEPH_GIT_DIR
Browse files Browse the repository at this point in the history
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 <moliver@suse.com>
  • Loading branch information
Matthew Oliver committed Nov 4, 2019
1 parent 324f878 commit eb33b30
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
12 changes: 8 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 3 additions & 2 deletions do_cmake.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit eb33b30

Please sign in to comment.