]> git.proxmox.com Git - ceph.git/blame - ceph/do_freebsd.sh
update ceph source to reef 18.1.2
[ceph.git] / ceph / do_freebsd.sh
CommitLineData
7c673cae 1#!/bin/sh -xve
11fdf7f2
TL
2export NPROC=`sysctl -n hw.ncpu`
3
7c673cae
FG
4if [ x"$1"x = x"--deps"x ]; then
5 sudo ./install-deps.sh
6fi
7
8if [ x"$CEPH_DEV"x != xx ]; then
9 BUILDOPTS="$BUILDOPTS V=1 VERBOSE=1"
10 CXX_FLAGS_DEBUG="-DCEPH_DEV"
11 C_FLAGS_DEBUG="-DCEPH_DEV"
12fi
13
14# To test with a new release Clang, use with cmake:
15# -D CMAKE_CXX_COMPILER="/usr/local/bin/clang++-devel" \
16# -D CMAKE_C_COMPILER="/usr/local/bin/clang-devel" \
11fdf7f2
TL
17COMPILE_FLAGS="-O0 -g"
18COMPILE_FLAGS="${COMPILE_FLAGS} -fuse-ld=/usr/local/bin/ld -Wno-unused-command-line-argument"
19CMAKE_CXX_FLAGS_DEBUG="$CXX_FLAGS_DEBUG $COMPILE_FLAGS"
20CMAKE_C_FLAGS_DEBUG="$C_FLAGS_DEBUG $COMPILE_FLAGS"
21
22#
23# On FreeBSD we need to preinstall all the tools that are required for building
24# dashboard, because versions fetched are not working on FreeBSD.
25
26
9f95a23c
TL
27[ -z "$BUILD_DIR" ] && BUILD_DIR=build
28
29echo Keeping the old build
30if [ -d ${BUILD_DIR}.old ]; then
31 sudo mv ${BUILD_DIR}.old ${BUILD_DIR}.del
32 sudo rm -rf ${BUILD_DIR}.del &
33fi
34if [ -d ${BUILD_DIR} ]; then
35 sudo mv ${BUILD_DIR} ${BUILD_DIR}.old
11fdf7f2 36fi
7c673cae 37
9f95a23c 38mkdir ${BUILD_DIR}
11fdf7f2
TL
39./do_cmake.sh "$*" \
40 -D WITH_CCACHE=ON \
7c673cae 41 -D CMAKE_BUILD_TYPE=Debug \
9f95a23c
TL
42 -D CMAKE_CXX_FLAGS_DEBUG="$CMAKE_CXX_FLAGS_DEBUG" \
43 -D CMAKE_C_FLAGS_DEBUG="$CMAKE_C_FLAGS_DEBUG" \
7c673cae 44 -D ENABLE_GIT_VERSION=OFF \
11fdf7f2 45 -D WITH_RADOSGW_AMQP_ENDPOINT=OFF \
9f95a23c 46 -D WITH_RADOSGW_KAFKA_ENDPOINT=OFF \
20effc67 47 -D WITH_SYSTEMD=OFF \
7c673cae 48 -D WITH_SYSTEM_BOOST=ON \
11fdf7f2 49 -D WITH_SYSTEM_NPM=ON \
7c673cae 50 -D WITH_LTTNG=OFF \
11fdf7f2
TL
51 -D WITH_BABELTRACE=OFF \
52 -D WITH_SEASTAR=OFF \
7c673cae
FG
53 -D WITH_FUSE=ON \
54 -D WITH_KRBD=OFF \
55 -D WITH_XFS=OFF \
11fdf7f2 56 -D WITH_KVS=ON \
7c673cae
FG
57 -D CEPH_MAN_DIR=man \
58 -D WITH_LIBCEPHFS=OFF \
59 -D WITH_CEPHFS=OFF \
7c673cae 60 -D WITH_MGR=YES \
11fdf7f2
TL
61 -D WITH_RDMA=OFF \
62 -D WITH_SPDK=OFF \
1e59de90 63 -D WITH_JAEGER=OFF \
7c673cae
FG
64 2>&1 | tee cmake.log
65
9f95a23c
TL
66echo -n "start building: "; date
67printenv
68
69cd ${BUILD_DIR}
70 gmake -j$CPUS V=1 VERBOSE=1
71 gmake tests
72 echo -n "start testing: "; date ;
73 ctest -j $CPUS || RETEST=1
74
75echo "Testing result, retest: = " $RETEST
76
77if [ $RETEST -eq 1 ]; then
78 # make sure no leftovers are there
79 killall ceph-osd || true
80 killall ceph-mgr || true
81 killall ceph-mds || true
82 killall ceph-mon || true
83 # clean up after testing
84 rm -rf td/* /tmp/td src/test/td/* || true
85 rm -rf /tmp/ceph-asok.* || true
86 rm -rf /tmp/cores.* || true
87 rm -rf /tmp/*.core || true
88
89 ctest --output-on-failure --rerun-failed
90fi
91
92STATUS=$?
93
94# cleanup after the fact
95rm -rf /tmp/tmp* /tmp/foo /tmp/pip* /tmp/big* /tmp/pymp* $TMPDIR || true
96
97echo -n "Ended: "; date
7c673cae 98
9f95a23c 99return $STATUS
7c673cae 100