mirror of
https://github.com/ceph/ceph
synced 2025-03-25 11:48:05 +00:00
cmake: Removed README.cmake.md, edited README.md
Deleted README.cmake.md and put any helpful information it had into README.md. Also a added note about which tests get executed by ctest. Signed-off-by: Ali Maredia <amaredia@redhat.com>
This commit is contained in:
parent
ee7949f1e5
commit
af6e986100
133
README.cmake.md
133
README.cmake.md
@ -1,133 +0,0 @@
|
||||
Overview
|
||||
========
|
||||
|
||||
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 (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:
|
||||
|
||||
$ make [target name]
|
||||
|
||||
To install:
|
||||
|
||||
$ make install
|
||||
|
||||
Options
|
||||
=======
|
||||
|
||||
There is an option to build the RADOS gateway that is defaulted to ON
|
||||
To build without the Rados Gateway:
|
||||
|
||||
$ 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" \
|
||||
..
|
||||
|
||||
If you often pipe `make`to `less` and would like to maintain the
|
||||
diagnostic colors for errors and warnings (and if your compiler
|
||||
supports it), you can invoke `cmake` with:
|
||||
|
||||
$ cmake -DDIAGNOSTICS_COLOR=always [...]
|
||||
|
||||
Then you'll get the diagnostic colors when you execute:
|
||||
|
||||
$ make | less -R
|
||||
|
||||
Other available values for DIAGNOSTICS_COLOR are 'auto' (default) and
|
||||
'never'.
|
||||
|
||||
|
||||
**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.
|
||||
|
||||
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/)
|
74
README.md
74
README.md
@ -66,9 +66,50 @@ Build instructions:
|
||||
make
|
||||
|
||||
This assumes you make your build dir a subdirectory of the ceph.git
|
||||
checkout. If you put it elsewhere, just replace .. above with a
|
||||
checkout. If you put it elsewhere, just replace .. above with a
|
||||
correct path to the checkout.
|
||||
|
||||
To build only certain targets use:
|
||||
|
||||
make [target name]
|
||||
|
||||
To install:
|
||||
|
||||
make install
|
||||
|
||||
CMake Options
|
||||
-------------
|
||||
|
||||
If you run the `cmake` command by hand, there are many options you can
|
||||
set with "-D". For example the option to build the RADOS Gateway is
|
||||
defaulted to ON. To build without the RADOS Gateway:
|
||||
|
||||
cmake -DWITH_RADOSGW=OFF [path to top level ceph directory]
|
||||
|
||||
Another example below is building 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" \
|
||||
..
|
||||
|
||||
To view an exhaustive list of -D options, you can invoke `cmake` with:
|
||||
|
||||
cmake -LH
|
||||
|
||||
If you often pipe `make` to `less` and would like to maintain the
|
||||
diagnostic colors for errors and warnings (and if your compiler
|
||||
supports it), you can invoke `cmake` with:
|
||||
|
||||
cmake -DDIAGNOSTICS_COLOR=always ..
|
||||
|
||||
Then you'll get the diagnostic colors when you execute:
|
||||
|
||||
make | less -R
|
||||
|
||||
Other available values for 'DIAGNOSTICS_COLOR' are 'auto' (default) and
|
||||
'never'.
|
||||
|
||||
|
||||
Building packages
|
||||
-----------------
|
||||
@ -114,28 +155,41 @@ To start or stop individual daemons, the sysvinit script can be used:
|
||||
Running unit tests
|
||||
==================
|
||||
|
||||
To run build and run all tests, use ctest:
|
||||
To build and run all tests (in parallel using all processors), use `ctest`:
|
||||
|
||||
cd build
|
||||
make
|
||||
ctest -j$(nproc)
|
||||
|
||||
To run an individual test manually, run the ctest command with -R
|
||||
(regex matching):
|
||||
(Note: Many targets built from src/test are not run using `ctest`.
|
||||
Targets starting with "unittest" are run in `make check` and thus can
|
||||
be run with `ctest`. Targets starting with "ceph_test" can not, and should
|
||||
be run by hand.)
|
||||
|
||||
ctest -R [test name]
|
||||
To build and run all tests and their dependencies without other
|
||||
unnecessary targets in Ceph:
|
||||
|
||||
cd build
|
||||
make check -j$(nproc)
|
||||
|
||||
To run an individual test manually, run `ctest` with -R (regex matching):
|
||||
|
||||
ctest -R [regex matching test name(s)]
|
||||
|
||||
(Note: `ctest` does not build the test it's running or the dependencies needed
|
||||
to run it)
|
||||
|
||||
To run an individual test manually and see all the tests output, run
|
||||
the ctest command with the -V (verbose) flag:
|
||||
`ctest` with the -V (verbose) flag:
|
||||
|
||||
ctest -V -R [test name]
|
||||
ctest -V -R [regex matching test name(s)]
|
||||
|
||||
To run an tests manually and run the jobs in parallel, run the ctest
|
||||
command with the -j flag:
|
||||
To run an tests manually and run the jobs in parallel, run `ctest` with
|
||||
the -j flag:
|
||||
|
||||
ctest -j [number of jobs]
|
||||
|
||||
There are many other flags you can give the ctest command for better control
|
||||
There are many other flags you can give `ctest` for better control
|
||||
over manual test execution. To view these options run:
|
||||
|
||||
man ctest
|
||||
|
Loading…
Reference in New Issue
Block a user