#!/usr/bin/make -f # -*- makefile -*- export DH_VERBOSE=1 export DESTDIR=$(CURDIR)/debian/tmp ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) MAKEFLAGS += -j$(NUMJOBS) endif export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) # Recommended snippet for Autoconf 2.52 or later ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) confflags += --build $(DEB_HOST_GNU_TYPE) else confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) endif export DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) extraopts += --with-ocf --with-nss extraopts += --with-debug extraopts += --enable-cephfs-java # rocksdb is not packaged by anyone. build it if we can. extraopts += --with-librocksdb-static=check ifeq ($(DEB_HOST_ARCH), armel) # armel supports ARMv4t or above instructions sets. # libatomic-ops is only usable with Ceph for ARMv6 or above. extraopts += --without-libatomic-ops endif configure: configure-stamp configure-stamp: dh_testdir ./autogen.sh ./configure --prefix=/usr --localstatedir=/var \ --sysconfdir=/etc --libexecdir=/usr/lib $(extraopts) $(confflags) \ $(CEPH_EXTRA_CONFIGURE_ARGS) touch $@ build-arch: build build-indep: build build: build-stamp build-stamp: configure-stamp dh_testdir $(MAKE) cp src/init-ceph debian/ceph-base.ceph.init cp src/init-radosgw debian/radosgw.init cp src/logrotate.conf debian/ceph.logrotate touch $@ clean: dh_testdir dh_testroot rm -f build-stamp configure-stamp [ ! -f Makefile ] || $(MAKE) distclean rm -f aclocal.m4 compile config.sub config.guess depcomp install-sh \ ltmain.sh missing rm -f configure Makefile.in man/Makefile.in src/Makefile.in rm -f src/acconfig.h.in rm -f debian/ceph-base.ceph.init debian/radosgw.init debian/ceph.logrotate debian/radosgw.logrotate dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs $(MAKE) DESTDIR=$(DESTDIR) install sed -i "/dependency_libs/ s/'.*'/''/" `find . -name '*.la'` install -D -m 644 udev/50-rbd.rules $(DESTDIR)/lib/udev/rules.d/50-rbd.rules install -D -m 644 udev/60-ceph-partuuid-workaround.rules $(DESTDIR)/lib/udev/rules.d/60-ceph-partuuid-workaround.rules install -D -m 644 udev/95-ceph-osd.rules $(DESTDIR)/lib/udev/rules.d/95-ceph-osd.rules install -D -m 644 src/etc-rbdmap $(DESTDIR)/etc/ceph/rbdmap install -D -m 755 src/init-rbdmap $(DESTDIR)/etc/init.d/rbdmap # Add here commands to install the package into debian/testpack. # Build architecture-independent files here. binary-indep: build install dh_testdir dh_testroot jh_installlibs -v -i dh_installchangelogs -i dh_installdocs -i --all ChangeLog dh_installexamples -i dh_install -i --sourcedir=$(DESTDIR) --list-missing dh_installman -i dh_lintian -i dh_link -i dh_compress -i dh_fixperms -i dh_python2 -i dh_installdeb -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot dh_installchangelogs -a dh_installdocs -a --all ChangeLog dh_installexamples -a dh_install -a --sourcedir=$(DESTDIR) --list-missing install -d -m0755 debian/ceph-base/etc/logrotate.d install -m0644 debian/ceph.logrotate debian/ceph-base/etc/logrotate.d dh_installinit -p ceph-base --name ceph --no-start dh_installinit -p radosgw --no-start # dh_installinit is only set up to handle one upstart script # per package, so do this ourselves install -d -m0755 debian/ceph-base/etc/init install -m0644 src/upstart/ceph-all.conf debian/ceph-base/etc/init install -m0644 src/upstart/ceph-create-keys.conf debian/ceph-base/etc/init install -d -m0755 debian/ceph-osd/etc/init install -m0644 src/upstart/ceph-osd*.conf debian/ceph-osd/etc/init install -m0644 src/upstart/ceph-disk.conf debian/ceph-osd/etc/init install -d -m0755 debian/ceph-mon/etc/init install -m0644 src/upstart/ceph-mon*.conf debian/ceph-mon/etc/init install -d -m0755 debian/ceph-common/etc/init install -m0644 src/upstart/rbdmap.conf debian/ceph-common/etc/init install -d -m0755 debian/ceph-mds/etc/init install -m0644 src/upstart/ceph-mds.conf debian/ceph-mds/etc/init install -d -m0755 debian/radosgw/etc/init install -m0644 src/upstart/radosgw*.conf debian/radosgw/etc/init install -d -m0755 debian/rbd-mirror/etc/init install -m0644 src/upstart/ceph-rbd-mirror*.conf debian/rbd-mirror/etc/init # install the systemd stuff manually since we have funny service names install -d -m0755 debian/ceph-common/lib/systemd/system install -m0644 systemd/ceph.target debian/ceph-common/lib/systemd/system install -d -m0755 debian/ceph-common/etc/default/ceph install -m0644 etc/default/ceph debian/ceph-common/etc/default/ceph install -d -m0755 debian/ceph-common/usr/lib/tmpfiles.d install -m 0644 -D systemd/ceph.tmpfiles.d debian/ceph-common/usr/lib/tmpfiles.d/ceph.conf install -d -m0755 debian/ceph-base/lib/systemd/system install -d -m0755 debian/ceph-mon/lib/systemd/system install -d -m0755 debian/ceph-osd/lib/systemd/system install -m0644 systemd/ceph-mon@.service debian/ceph-mon/lib/systemd/system install -m0644 systemd/ceph-create-keys@.service debian/ceph-base/lib/systemd/system install -m0644 systemd/ceph-osd@.service debian/ceph-osd/lib/systemd/system install -m0644 systemd/ceph-disk@.service debian/ceph-osd/lib/systemd/system sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-mon/lib/systemd/system/ceph-mon@.service sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-base/lib/systemd/system/ceph-create-keys@.service sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-osd/lib/systemd/system/ceph-osd@.service sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-osd/lib/systemd/system/ceph-disk@.service install -d -m0755 debian/ceph-mds/lib/systemd/system install -m0644 systemd/ceph-mds@.service debian/ceph-mds/lib/systemd/system sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-mds/lib/systemd/system/ceph-mds@.service install -d -m0755 debian/radosgw/lib/systemd/system install -m0644 systemd/ceph-radosgw@.service debian/radosgw/lib/systemd/system sed -i s./etc/sysconfig/./etc/default/.g debian/radosgw/lib/systemd/system/ceph-radosgw@.service install -d -m0755 debian/rbd-mirror/lib/systemd/system install -m0644 systemd/ceph-rbd-mirror@.service debian/rbd-mirror/lib/systemd/system sed -i s./etc/sysconfig/./etc/default/.g debian/rbd-mirror/lib/systemd/system/ceph-rbd-mirror@.service dh_installman -a dh_lintian -a dh_link -a dh_strip -pceph-mds --dbg-package=ceph-mds-dbg dh_strip -pceph-mon --dbg-package=ceph-mon-dbg dh_strip -pceph-osd --dbg-package=ceph-osd-dbg dh_strip -pceph-fuse --dbg-package=ceph-fuse-dbg dh_strip -prbd-fuse --dbg-package=rbd-fuse-dbg dh_strip -prbd-mirror --dbg-package=rbd-mirror-dbg dh_strip -prbd-nbd --dbg-package=rbd-nbd-dbg dh_strip -pceph-common --dbg-package=ceph-common-dbg dh_strip -pceph-fs-common --dbg-package=ceph-fs-common-dbg dh_strip -plibrados2 --dbg-package=librados2-dbg dh_strip -plibradosstriper1 --dbg-package=libradosstriper1-dbg dh_strip -plibrbd1 --dbg-package=librbd1-dbg dh_strip -plibcephfs1 --dbg-package=libcephfs1-dbg dh_strip -plibrgw2 --dbg-package=librgw2-dbg dh_strip -pradosgw --dbg-package=radosgw-dbg dh_strip -pceph-test --dbg-package=ceph-test-dbg dh_compress -a dh_fixperms -a dh_makeshlibs -a dh_python2 -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install configure