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