Overview
========
-This is a work in progress Cmake build system. Currently it builds alimited set of targets,
-and only on Linux/posix. The goals include faster builds (see for yourself), cleaner
-builds (no libtool), and improved portability (e.g., Windows).
+
+This is a work-in-progress CMake build system. Currently it builds
+a limited set of targets, and only on Linux/Posix. The goals include
+faster builds (see for yourself), cleaner builds (no libtool), and
+improved portability (e.g., Windows).
Building Ceph
=============
-To build out of source make an empty directory called "build" and run:
-$ cmake [path to top level ceph-local directory]
-To build in source make an empty directory called "build" and run:
-$ cmake ..
+To build out of source make an empty directory (often named **build**)
+and run:
+
+ $ cmake [path to top level ceph-local directory]
+
+To build in-source make an empty directory called (often named
+**build**) and run **cmake**:
+
+ $ mkdir build
+ $ cd build
+ $ cmake ..
+
+Once the configuring is done and the build files have been written to
+the current build directory run:
+
+ $ make
+
+To build only certain targets use:
-Once the Configuring is done and the Build files have been written to the current
-build directory run:
-$ make
+ $ make [target name]
-To build only certain targets type in:
-$ make [target name]
+To install:
-To install, once all the targets are built run:
-$ make install
+ $ make install
Options
=======
-There is an option to build the Rados Gateway that is defaulted to ON
+
+There is an option to build the RADOS gateway that is defaulted to ON
To build without the Rados Gateway:
-$ cmake [path to top level ceph-local directory] -DWITH_RADOSGW=OFF
-To build with debugging and alternate locations for (a couple of)
+ $ cmake -DWITH_RADOSGW=OFF [path to top level ceph-local directory]
+
+To build with debugging and alternate locations for a couple of
external dependencies:
-$ cmake -DLEVELDB_PREFIX="/opt/hyperleveldb" -DOFED_PREFIX="/opt/ofed" \
- -DCMAKE_INSTALL_PREFIX=/opt/accelio -DCMAKE_C_FLAGS="-O0 -g3 -gdwarf-4" \
- ..
-With future development efforts more options will be implemented
+ $ cmake -DLEVELDB_PREFIX="/opt/hyperleveldb" -DOFED_PREFIX="/opt/ofed" \
+ -DCMAKE_INSTALL_PREFIX=/opt/accelio -DCMAKE_C_FLAGS="-O0 -g3 -gdwarf-4" \
+ ..
+
+More options will be implemented in the future.
Targets Built
==============
-ceph-mon
-ceph-osd
-ceph-mds
-cephfs
-ceph-syn
-rados
-radosgw (set ON as a default)
-librados-config
-ceph-conf
-monmaptool
-osdmaptool
-crushtool
-ceph-authtool
-init-ceph
-mkcephfs
-mon_store_converter
-ceph-fuse
-
-Future work will be done to build more targets, check for libraries and headers more thoroughly
-and include tests to make this build become more robust. CMake allows ceph to build onto many
-platforms such as Windows though the shell scripts need bash/unix to run.
+* ceph-mon
+* ceph-osd
+* ceph-mds
+* cephfs
+* ceph-syn
+* rados
+* radosgw (set ON as a default)
+* librados-config
+* ceph-conf
+* monmaptool
+* osdmaptool
+* crushtool
+* ceph-authtool
+* init-ceph
+* mkcephfs
+* mon_store_converter
+* ceph-fuse
+
+Future work will be done to build more targets, check for libraries
+and headers more thoroughly, and include tests to make this build
+become more robust. CMake allows ceph to build onto many platforms
+such as Windows though the shell scripts need bash/unix to run.
+
+Developer Quick-Start
+=====================
+
+This is a CMake variant of the instructions found at
+<http://docs.ceph.com/docs/jewel/dev/quick_guide>.
+
+Development
+-----------
+
+The **run-cmake-check.sh** script will install Ceph dependencies,
+compile everything in debug mode, and run a number of tests to verify
+that the result behaves as expected. It will also build in-source
+(i.e., create a *build* directory).
+
+ $ ./run-cmake-check.sh
+
+Running a development deployment
+--------------------------------
+
+Assuming you ran **run-cmake-check.sh**, you'll have a **build**
+directory from which you'll run the various commands.
+
+ $ cd build
+
+Now you can run a development deployment:
+
+ $ ../src/vstart -d -n -x
+
+You can also configure **vstart.sh** to use only one monitor and one
+metadata server by using the following:
+
+ $ MON=1 MDS=1 ../src/vstart.sh -d -n -x
+
+You can stop the development deployment with:
+
+ $ ../src/stop.sh
+
+[See the non-cmake instructions for additional
+details.](http://docs.ceph.com/docs/jewel/dev/quick_guide/)