]> git.proxmox.com Git - ceph.git/blame - ceph/do_cmake.sh
import 15.2.0 Octopus source
[ceph.git] / ceph / do_cmake.sh
CommitLineData
81eedcae 1#!/usr/bin/env bash
9f95a23c
TL
2set -ex
3
7c673cae 4git submodule update --init --recursive
9f95a23c
TL
5
6: ${BUILD_DIR:=build}
7: ${CEPH_GIT_DIR:=..}
8
9if [ -e $BUILD_DIR ]; then
10 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"
7c673cae
FG
11 exit 1
12fi
31f18b77 13
11fdf7f2 14PYBUILD="2"
9f95a23c
TL
15if [ -r /etc/os-release ]; then
16 source /etc/os-release
17 case "$ID" in
18 fedora)
19 PYBUILD="3.7"
20 if [ "$VERSION_ID" -ge "32" ] ; then
21 PYBUILD="3.8"
22 fi
23 ;;
24 rhel|centos)
25 MAJOR_VER=$(echo "$VERSION_ID" | sed -e 's/\..*$//')
26 if [ "$MAJOR_VER" -ge "8" ] ; then
27 PYBUILD="3.6"
28 fi
29 ;;
30 opensuse*|suse|sles)
31 PYBUILD="3"
32 ARGS+=" -DWITH_RADOSGW_AMQP_ENDPOINT=OFF"
33 ARGS+=" -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF"
34 ;;
35 esac
36elif [ "$(uname)" == FreeBSD ] ; then
37 PYBUILD="3"
38 ARGS+=" -DWITH_RADOSGW_AMQP_ENDPOINT=OFF"
39 ARGS+=" -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF"
40else
41 echo Unknown release
42 exit 1
43fi
44
45if [[ "$PYBUILD" =~ ^3(\..*)?$ ]] ; then
46 ARGS+=" -DWITH_PYTHON3=${PYBUILD}"
11fdf7f2
TL
47fi
48
49if type ccache > /dev/null 2>&1 ; then
31f18b77 50 echo "enabling ccache"
9f95a23c 51 ARGS+=" -DWITH_CCACHE=ON"
11fdf7f2 52fi
31f18b77 53
9f95a23c
TL
54mkdir $BUILD_DIR
55cd $BUILD_DIR
11fdf7f2
TL
56if type cmake3 > /dev/null 2>&1 ; then
57 CMAKE=cmake3
58else
59 CMAKE=cmake
60fi
9f95a23c
TL
61${CMAKE} $ARGS "$@" $CEPH_GIT_DIR || exit 1
62set +x
7c673cae
FG
63
64# minimal config to find plugins
65cat <<EOF > ceph.conf
9f95a23c 66[global]
7c673cae
FG
67plugin dir = lib
68erasure code dir = lib
69EOF
70
7c673cae 71echo done.
9f95a23c
TL
72
73if [[ ! $ARGS =~ "-DCMAKE_BUILD_TYPE" ]]; then
74 cat <<EOF
11fdf7f2
TL
75
76****
77WARNING: do_cmake.sh now creates debug builds by default. Performance
78may be severely affected. Please use -DCMAKE_BUILD_TYPE=RelWithDebInfo
79if a performance sensitive build is required.
80****
81EOF
9f95a23c
TL
82fi
83