#!/usr/bin/make -f
# -*- makefile -*-
#export DH_VERBOSE=1

export DESTDIR=$(CURDIR)/debian/tmp

# Enable hardening
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

export DEB_HOST_ARCH      ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)

extraopts += --with-ocf --with-rest-bench
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

ifeq ($(shell grep -c -E '^Build-Depends:(.*,)?[[:space:]]*libs3-dev([[:space:]]|,|$$)' debian/control),1)
  # Use system provided libs3
  extraopts += --with-system-libs3
endif

ifeq ($(shell grep -c -E '^Build-Depends:(.*,)?[[:space:]]*libleveldb-dev([[:space:]]|,|$$)' debian/control),1)
  # Use system provided leveldb 
  extraopts += --with-system-leveldb
endif

%:
	dh $@ --with javahelper --with python2 --parallel

override_dh_auto_configure:
	./autogen.sh
	dh_auto_configure -- --sbindir=/sbin $(extraopts)

override_dh_auto_build:
	dh_auto_build
	cp src/init-ceph debian/ceph.init
	cp src/init-radosgw debian/radosgw.init
	cp src/logrotate.conf debian/ceph.logrotate

override_dh_auto_clean:
	dh_auto_clean
	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
	rm -f debian/*.upstart

override_dh_auto_install:
	dh_auto_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

override_dh_installinit:
	dh_installinit --no-start
	# Install upstart configurations using dh_installinit
	for conf in `ls -1 src/upstart/ceph*.conf | grep -v mds`; do \
        name=`basename $$conf | cut -d . -f 1`; \
        cp $$conf debian/ceph.$$name.upstart; \
        dh_installinit -pceph --upstart-only --no-start --name=$$name; \
    done
	for conf in `ls -1 src/upstart/ceph-mds*.conf`; do \
        name=`basename $$conf | cut -d . -f 1`; \
        cp $$conf debian/ceph-mds.$$name.upstart; \
        dh_installinit -pceph-mds --upstart-only --no-start --name=$$name; \
    done
	# Disable the radosgw upstart configurations for the time
	# being; they conflict with the init script and don't actually
	# work yet.
	#for conf in `ls -1 src/upstart/radosgw*.conf`; do \
    #    name=`basename $$conf | cut -d . -f 1`; \
    #    cp $$conf debian/radosgw.$$name.upstart; \
    #    dh_installinit -pradosgw --upstart-only --no-start --name=$$name; \
    #done

override_dh_strip:
	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 -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 -plibrados-dev
	dh_strip -plibcephfs-jni --dbg-package=libcephfs-jni-dbg

override_dh_makeshlibs:
	# exclude .so files in ceph package
	# exclude jni libraries in libcephfs-jni
	dh_makeshlibs -X/usr/lib/rados-classes -X/usr/lib/jni

override_dh_auto_test:
	# Skip tests when building packages as they require
	# python virtualenv
	:
