-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile.am
101 lines (87 loc) · 3.43 KB
/
Makefile.am
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
AUTOMAKE_OPTIONS = gnu
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = autogen.sh ceph.spec.in ceph.spec install-deps.sh
# the "." here makes sure check-local builds googletest and googlemock before they are used
SUBDIRS = . src man doc systemd selinux
EXTRA_DIST += \
src/test/run-cli-tests \
src/test/run-cli-tests-maybe-unset-ccache \
src/test/cli \
src/test/downloads \
systemd/ceph.tmpfiles.d \
etc/default/ceph \
etc/sysconfig/ceph \
etc/sysconfig/SuSEfirewall2.d/services/ceph-mon \
etc/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds \
udev/50-rbd.rules \
udev/60-ceph-by-parttypeuuid.rules \
udev/95-ceph-osd.rules \
share/known_hosts_drop.ceph.com \
share/id_dsa_drop.ceph.com \
share/id_dsa_drop.ceph.com.pub
NPROC = nproc
if FREEBSD
NPROC = sysctl -n hw.ncpu
endif
# why is it so hard to make autotools to this?
install-data-local::
-mkdir -p $(DESTDIR)$(datadir)/ceph
-install -m 600 share/known_hosts_drop.ceph.com $(DESTDIR)$(datadir)/ceph/known_hosts_drop.ceph.com
-install -m 600 share/id_dsa_drop.ceph.com $(DESTDIR)$(datadir)/ceph/id_dsa_drop.ceph.com
-install -m 600 share/id_dsa_drop.ceph.com.pub $(DESTDIR)$(datadir)/ceph/id_dsa_drop.ceph.com.pub
all-local::
if WITH_DEBUG
# We need gtest to build the rados-api tests. We only build those in
# a debug build, though.
@cd src/googletest/googletest && $(MAKE) $(AM_MAKEFLAGS) lib/libgtest.la lib/libgtest_main.la
@cd src/googletest/googlemock && $(MAKE) $(AM_MAKEFLAGS) lib/libgmock.la lib/libgmock_main.la
endif
CHECK_ULIMIT := true
check-local:: all
# We build gtest this way, instead of using SUBDIRS, because with that,
# gtest's own tests would be run and that would slow us down.
@cd src/googletest/googletest && $(MAKE) $(AM_MAKEFLAGS) lib/libgtest.la lib/libgtest_main.la
@cd src/googletest/googlemock && $(MAKE) $(AM_MAKEFLAGS) lib/libgmock.la lib/libgmock_main.la
# exercise cli tools
u=`ulimit -u` ; \
p=`expr $(shell ${NPROC}) / 2` ; \
n=`expr $$p \* 1024` ; \
if ${CHECK_ULIMIT} && echo ${MAKEFLAGS} | grep --quiet -e -j && test $$u -lt $$n ; then \
echo "ulimit -u is $$u which is lower than $$n = $$p / 2 * 1024" ; \
echo "If running make -j$$p check you will likely exceed this limit" ; \
echo "and the tests will fail in mysterious ways." ; \
echo "Update /etc/security/limits.conf to increase the limit" ; \
echo "or run make CHECK_ULIMIT=false -j4 check to override this safeguard." ; \
exit 1 ; \
fi
# display the output of failed check_SCRIPTS after a failed make check
export VERBOSE = true
TESTS = $(check_SCRIPTS)
check_SCRIPTS = \
src/test/run-cli-tests
# "make distclean" both runs this and recurses into src/gtest, if
# gtest is in DIST_SUBDIRS. Take extra care to not fail when
# effectively cleaned twice.
clean-local::
@if test -e src/googletest/googlemock/Makefile; then \
echo "Making clean in src/googletest/googlemock"; \
cd src/googletest/googlemock && $(MAKE) $(AM_MAKEFLAGS) clean; \
fi
@rm -rf src/test/virtualenv
@rm -rf install-deps-*
# NOTE: This only works when enough dependencies are installed for
# autoconf to be happy. These commands should be run manually to
# bootstrap.
install-deps:
./install-deps.sh
dist-hook:
# Generates the full list of contributors
if test -d $(srcdir)/.git; then \
cd $(srcdir); \
git log --format='%aN <%aE>' | sort -u >$(distdir)/AUTHORS; \
fi
# Generates ChangeLog from git
if test -d $(srcdir)/.git; then \
cd $(srcdir); \
git log --oneline --decorate --no-merges > $(distdir)/ChangeLog; \
fi