#!/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-rest-bench --with-nss extraopts += --with-debug extraopts += --enable-cephfs-java 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 ifneq ($(DEB_HOST_ARCH), i386) ifneq ($(DEB_HOST_ARCH), amd64) # libgoogle-perftools-dev is only available on i386 and amd64 extraopts += --without-tcmalloc endif endif ifeq ($(shell grep -c -E '^Build-Depends:(.*,)?[[:space:]]*libgoogle-perftools-dev([[:space:]]|,|$$)' debian/control),0) # if Build-Deps have been edited to skip libgoogle-perftools-dev (as # we do for Debian lenny), tell configure it's ok to not have # tcmalloc. extraopts += --without-tcmalloc endif configure: configure-stamp configure-stamp: dh_testdir ./autogen.sh ./configure --prefix=/usr --sbindir=/sbin --localstatedir=/var \ --sysconfdir=/etc $(extraopts) $(confflags) touch $@ build-arch: build build-indep: build build: build-stamp build-stamp: configure-stamp dh_testdir $(MAKE) cp src/init-ceph debian/ceph.init cp src/init-radosgw debian/radosgw.init cp src/logrotate.conf debian/ceph.logrotate cp src/rgw/logrotate.conf debian/radosgw.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.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/95-ceph-osd.rules $(DESTDIR)/lib/udev/rules.d/95-ceph-osd.rules # 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 dh_installlogrotate -a dh_installinit -a --no-start # dh_installinit is only set up to handle one upstart script # per package, so do this ourselves install -d -m0755 debian/ceph/etc/init install -m0644 src/upstart/ceph*.conf debian/ceph/etc/init install -d -m0755 debian/ceph-mds/etc/init mv debian/ceph/etc/init/ceph-mds* debian/ceph-mds/etc/init install -d -m0755 debian/radosgw/etc/init install -m0644 src/upstart/radosgw*.conf debian/radosgw/etc/init dh_installman -a dh_lintian -a dh_link -a dh_strip -pceph --dbg-package=ceph-dbg -k --exclude=libcls_ dh_strip -pceph-mds --dbg-package=ceph-mds-dbg dh_strip -pceph-fuse --dbg-package=ceph-fuse-dbg dh_strip -prbd-fuse --dbg-package=rbd-fuse-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 -plibrbd1 --dbg-package=librbd1-dbg dh_strip -plibcephfs1 --dbg-package=libcephfs1-dbg dh_strip -pradosgw --dbg-package=radosgw-dbg dh_strip -prest-bench --dbg-package=rest-bench-dbg dh_strip -pceph-test --dbg-package=ceph-test-dbg dh_compress -a dh_fixperms -a dh_makeshlibs -a -X/usr/lib/rados-classes # exclude .so files in ceph package 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