From 9b2d4fa36e071949444f2bde5feecaa38c3a3be8 Mon Sep 17 00:00:00 2001 From: "J. Eric Ivancich" Date: Tue, 24 May 2016 14:20:08 -0400 Subject: [PATCH] Improves the README for cmake by including quick-start developer instructions and slightly improved markdown syntax. Signed-off-by: J. Eric Ivancich --- README.cmake | 140 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 98 insertions(+), 42 deletions(-) diff --git a/README.cmake b/README.cmake index ad1aa01a9ab28..acdc66dd4805f 100644 --- a/README.cmake +++ b/README.cmake @@ -1,62 +1,118 @@ 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 +. + +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/) -- 2.39.5