]> git.proxmox.com Git - ceph.git/blob - ceph/do_freebsd.sh
import Ceph Pacific 16.2.4
[ceph.git] / ceph / do_freebsd.sh
1 #!/bin/sh -xve
2 export NPROC=`sysctl -n hw.ncpu`
3
4 if [ x"$1"x = x"--deps"x ]; then
5 sudo ./install-deps.sh
6 fi
7
8 if [ 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"
12 fi
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" \
17 COMPILE_FLAGS="-O0 -g"
18 COMPILE_FLAGS="${COMPILE_FLAGS} -fuse-ld=/usr/local/bin/ld -Wno-unused-command-line-argument"
19 CMAKE_CXX_FLAGS_DEBUG="$CXX_FLAGS_DEBUG $COMPILE_FLAGS"
20 CMAKE_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
27 [ -z "$BUILD_DIR" ] && BUILD_DIR=build
28
29 echo Keeping the old build
30 if [ -d ${BUILD_DIR}.old ]; then
31 sudo mv ${BUILD_DIR}.old ${BUILD_DIR}.del
32 sudo rm -rf ${BUILD_DIR}.del &
33 fi
34 if [ -d ${BUILD_DIR} ]; then
35 sudo mv ${BUILD_DIR} ${BUILD_DIR}.old
36 fi
37
38 mkdir ${BUILD_DIR}
39 ./do_cmake.sh "$*" \
40 -D WITH_CCACHE=ON \
41 -D CMAKE_BUILD_TYPE=Debug \
42 -D CMAKE_CXX_FLAGS_DEBUG="$CMAKE_CXX_FLAGS_DEBUG" \
43 -D CMAKE_C_FLAGS_DEBUG="$CMAKE_C_FLAGS_DEBUG" \
44 -D ENABLE_GIT_VERSION=OFF \
45 -D WITH_RADOSGW_AMQP_ENDPOINT=OFF \
46 -D WITH_RADOSGW_KAFKA_ENDPOINT=OFF \
47 -D WITH_SYSTEM_BOOST=ON \
48 -D WITH_SYSTEM_NPM=ON \
49 -D WITH_LTTNG=OFF \
50 -D WITH_BABELTRACE=OFF \
51 -D WITH_SEASTAR=OFF \
52 -D WITH_FUSE=ON \
53 -D WITH_KRBD=OFF \
54 -D WITH_XFS=OFF \
55 -D WITH_KVS=ON \
56 -D CEPH_MAN_DIR=man \
57 -D WITH_LIBCEPHFS=OFF \
58 -D WITH_CEPHFS=OFF \
59 -D WITH_MGR=YES \
60 -D WITH_RDMA=OFF \
61 -D WITH_SPDK=OFF \
62 2>&1 | tee cmake.log
63
64 echo -n "start building: "; date
65 printenv
66
67 cd ${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
73 echo "Testing result, retest: = " $RETEST
74
75 if [ $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
88 fi
89
90 STATUS=$?
91
92 # cleanup after the fact
93 rm -rf /tmp/tmp* /tmp/foo /tmp/pip* /tmp/big* /tmp/pymp* $TMPDIR || true
94
95 echo -n "Ended: "; date
96
97 return $STATUS
98