]> git.proxmox.com Git - ceph.git/blobdiff - ceph/do_cmake.sh
import 15.2.0 Octopus source
[ceph.git] / ceph / do_cmake.sh
index 3dc25c8dcdacb2d925cbb9de9e16aaefb050b2d5..cc68e560ade25cc66bb0a6adde483fa6f5ecb351 100755 (executable)
@@ -1,59 +1,77 @@
 #!/usr/bin/env bash
-set -x
+set -ex
+
 git submodule update --init --recursive
-if test -e build; then
-    echo 'build dir already exists; rm -rf build and re-run'
+
+: ${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"
     exit 1
 fi
 
 PYBUILD="2"
-source /etc/os-release
-case "$ID" in
-    fedora)
-        if [ "$VERSION_ID" -ge "29" ] ; then
-            PYBUILD="3"
-        fi
-        ;;
-    rhel|centos)
-        MAJOR_VER=$(echo "$VERSION_ID" | sed -e 's/\..*$//')
-        if [ "$MAJOR_VER" -ge "8" ] ; then
-            PYBUILD="3"
-        fi
-        ;;
-    opensuse*|suse|sles)
-        PYBUILD="3"
-        WITH_RADOSGW_AMQP_ENDPOINT="OFF"
-        ;;
-esac
-if [ "$PYBUILD" = "3" ] ; then
-    ARGS="$ARGS -DWITH_PYTHON2=OFF -DWITH_PYTHON3=ON -DMGR_PYTHON_VERSION=3"
+if [ -r /etc/os-release ]; then
+  source /etc/os-release
+  case "$ID" in
+      fedora)
+          PYBUILD="3.7"
+          if [ "$VERSION_ID" -ge "32" ] ; then
+              PYBUILD="3.8"
+          fi
+          ;;
+      rhel|centos)
+          MAJOR_VER=$(echo "$VERSION_ID" | sed -e 's/\..*$//')
+          if [ "$MAJOR_VER" -ge "8" ] ; then
+              PYBUILD="3.6"
+          fi
+          ;;
+      opensuse*|suse|sles)
+          PYBUILD="3"
+          ARGS+=" -DWITH_RADOSGW_AMQP_ENDPOINT=OFF"
+          ARGS+=" -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF"
+          ;;
+  esac
+elif [ "$(uname)" == FreeBSD ] ; then
+  PYBUILD="3"
+  ARGS+=" -DWITH_RADOSGW_AMQP_ENDPOINT=OFF"
+  ARGS+=" -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF"
+else
+  echo Unknown release
+  exit 1
+fi
+
+if [[ "$PYBUILD" =~ ^3(\..*)?$ ]] ; then
+    ARGS+=" -DWITH_PYTHON3=${PYBUILD}"
 fi
 
 if type ccache > /dev/null 2>&1 ; then
     echo "enabling ccache"
-    ARGS="$ARGS -DWITH_CCACHE=ON"
-fi
-if [ -n "$WITH_RADOSGW_AMQP_ENDPOINT" ] ; then
-    ARGS="$ARGS -DWITH_RADOSGW_AMQP_ENDPOINT=$WITH_RADOSGW_AMQP_ENDPOINT"
+    ARGS+=" -DWITH_CCACHE=ON"
 fi
 
-mkdir build
-cd build
+mkdir $BUILD_DIR
+cd $BUILD_DIR
 if type cmake3 > /dev/null 2>&1 ; then
     CMAKE=cmake3
 else
     CMAKE=cmake
 fi
-${CMAKE} -DCMAKE_BUILD_TYPE=Debug $ARGS "$@" .. || exit 1
+${CMAKE} $ARGS "$@" $CEPH_GIT_DIR || exit 1
+set +x
 
 # minimal config to find plugins
 cat <<EOF > ceph.conf
+[global]
 plugin dir = lib
 erasure code dir = lib
 EOF
 
 echo done.
-cat <<EOF
+
+if [[ ! $ARGS =~ "-DCMAKE_BUILD_TYPE" ]]; then
+  cat <<EOF
 
 ****
 WARNING: do_cmake.sh now creates debug builds by default. Performance
@@ -61,3 +79,5 @@ may be severely affected. Please use -DCMAKE_BUILD_TYPE=RelWithDebInfo
 if a performance sensitive build is required.
 ****
 EOF
+fi
+