]> git.proxmox.com Git - ceph.git/blame - ceph/do_freebsd.sh
import 15.2.9
[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 \
7c673cae 47 -D WITH_SYSTEM_BOOST=ON \
11fdf7f2 48 -D WITH_SYSTEM_NPM=ON \
7c673cae 49 -D WITH_LTTNG=OFF \
11fdf7f2
TL
50 -D WITH_BABELTRACE=OFF \
51 -D WITH_SEASTAR=OFF \
7c673cae
FG
52 -D WITH_FUSE=ON \
53 -D WITH_KRBD=OFF \
54 -D WITH_XFS=OFF \
11fdf7f2 55 -D WITH_KVS=ON \
7c673cae
FG
56 -D CEPH_MAN_DIR=man \
57 -D WITH_LIBCEPHFS=OFF \
58 -D WITH_CEPHFS=OFF \
7c673cae 59 -D WITH_MGR=YES \
11fdf7f2
TL
60 -D WITH_RDMA=OFF \
61 -D WITH_SPDK=OFF \
7c673cae
FG
62 2>&1 | tee cmake.log
63
9f95a23c
TL
64echo -n "start building: "; date
65printenv
66
67cd ${BUILD_DIR}
68 gmake -j$CPUS V=1 VERBOSE=1
69 gmake tests
70 echo -n "start testing: "; date ;
71 ctest -j $CPUS || RETEST=1
72
73echo "Testing result, retest: = " $RETEST
74
75if [ $RETEST -eq 1 ]; then
76 # make sure no leftovers are there
77 killall ceph-osd || true
78 killall ceph-mgr || true
79 killall ceph-mds || true
80 killall ceph-mon || true
81 # clean up after testing
82 rm -rf td/* /tmp/td src/test/td/* || true
83 rm -rf /tmp/ceph-asok.* || true
84 rm -rf /tmp/cores.* || true
85 rm -rf /tmp/*.core || true
86
87 ctest --output-on-failure --rerun-failed
88fi
89
90STATUS=$?
91
92# cleanup after the fact
93rm -rf /tmp/tmp* /tmp/foo /tmp/pip* /tmp/big* /tmp/pymp* $TMPDIR || true
94
95echo -n "Ended: "; date
7c673cae 96
9f95a23c 97return $STATUS
7c673cae 98