#! /usr/bin/make -f
# -*- makefile -*-
#
# Invoke each target with `./debian/rules <target>'.  All targets should be
# invoked with the package root as the current directory.
#
# The `binary' target must be run as root, as it needs to install files with
# specific ownerships.

.PHONY: binary binary-arch binary-indep build build-arch build-indep \
	build-bf build-std install install-udeb \
	clean checkroot mrproper debug_flags debian-files

export DEB_BUILD_MAINT_OPTIONS ?= hardening=+all

# be paranoid
export LC_ALL ?= C

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_ARCH		?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_BUILD_ARCH		?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
DEB_HOST_OS		?= $(shell dpkg-architecture -qDEB_HOST_OS)
DEB_HOST_GNU_TYPE	?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE	?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_MULTIARCH	?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
DEB_HOST_ARCH_OS	?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)

# Allow distro-specific behaviour
DISTRO :=$(shell sed -ne '/DISTRIB_ID/s/.*=//p' /etc/lsb-release 2>/dev/null || echo Debian)

ifeq ($(DEB_HOST_ARCH_OS), hurd)
SKIP_FUSE2FS=yes
endif

ifneq ($(filter pkg.e2fsprogs.no-fuse2fs,$(DEB_BUILD_PROFILES)),)
SKIP_FUSE2FS=yes
endif

ifneq ($(filter pkg.e2fsprogs.no-static-e2fsck,$(DEB_BUILD_PROFILES)),)
SKIP_E2FSCK_STATIC=yes
endif

ifneq ($(filter noudeb,$(DEB_BUILD_PROFILES)),)
SKIP_UDEB=yes
endif

DH_VERSION := $(shell dpkg-query -W -f '$${Version}' debhelper)

USE_DH9 ?= $(shell if dpkg --compare-versions $(DH_VERSION) lt 11 ; then echo yes ; fi)

# USE_DBGSYM :=
USE_DBGSYM ?= $(shell if dpkg --compare-versions $(DH_VERSION) ">=" 9.20160114 ; then echo yes ; fi)

ifeq ($(USE_DBGSYM),yes)
dh_strip_args = -p$(1) --dbgsym-migration='$(1)-dbg (<= 1.43-1)'
dh_strip_args2 = -p$(1) --dbgsym-migration='$(2)-dbg (<= 1.43-1)'
else
dh_strip_args = -p$(1) --dbg-package=$(1)-dbg
dh_strip_args2 = -p$(1) --dbg-package=$(2)-dbg
DBG_PACKAGES += -pe2fsprogs-dbg -plibext2fs-dbg -plibcom-err2-dbg -plibss2-dbg
export DEB_BUILD_PROFILES += pkg.e2fsprogs.legacy-dbg
endif

# find the version for the main package, from changelog file
MAIN_VERSION = $(shell head -n 1 debian/changelog | cut '-d ' -f 2 | sed 's/[()]//g')
# find versions for libraries going into their own packages, from their Makefile.in's,
# and sonames for all libs
COMERR_VERSION ?= $(shell grep ELF_VERSION lib/et/Makefile.in | cut '-d ' -f3)
COMERR_SOVERSION ?= $(shell grep ELF_SO_VERSION lib/et/Makefile.in | cut '-d ' -f3)
SS_VERSION ?= $(shell grep ELF_VERSION lib/ss/Makefile.in | cut '-d ' -f3)
SS_SOVERSION ?= $(shell grep ELF_SO_VERSION lib/ss/Makefile.in | cut '-d ' -f3)

EXT2FS_SOVERSION ?= $(shell grep ELF_SO_VERSION lib/ext2fs/Makefile.in | cut '-d ' -f3)
E2P_SOVERSION ?= $(shell grep ELF_SO_VERSION lib/e2p/Makefile.in | cut '-d ' -f3)

package		?= e2fsprogs

topdir		?= $(shell pwd)
debdir		?= ${topdir}/debian
tmpdir		?= ${debdir}/tmp
udebdir		?= ${debdir}/e2fsprogs-udeb
libcomerrdir	?= ${debdir}/libcom-err${COMERR_SOVERSION}
comerrdevdir	?= ${debdir}/comerr-dev
libcomerrdbgdir	?= ${debdir}/libcom-err2-dbg
libssdir	?= ${debdir}/libss${SS_SOVERSION}
ssdevdir	?= ${debdir}/ss-dev
libssdbgdir	?= ${debdir}/libss2-dbg
libext2dir	?= ${debdir}/libext2fs2
libext2devdir	?= ${debdir}/libext2fs-dev
libext2dbgdir	?= ${debdir}/libext2fs2-dbg
maindir		?= ${debdir}/e2fsprogs
e2fsckstaticdir	?= ${debdir}/e2fsck-static
debugdir	?= ${debdir}/e2fsprogs-dbg
stdbuilddir	?= ${debdir}/BUILD-STD
# docdir	?= ${maindir}/usr/share/doc/${package}
MANDIR		?= /usr/share/man
mandir		?= ${tmpdir}${MANDIR}

UDEB_NAME 	?= $(package)-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb
UDEB_PRIORITY	?= $(shell grep '^Package: e2fsprogs-udeb' debian/control -A 10 | grep ^Priority: | cut -d ' ' -f 2)

STAMPSDIR	?= debian/stampdir
CFGDH		?= ${STAMPSDIR}/configure-dh
CFGSTDSTAMP	?= ${STAMPSDIR}/configure-std-stamp
CFGBFSTAMP	?= ${STAMPSDIR}/configure-bf-stamp
BUILDSTDSTAMP	?= ${STAMPSDIR}/build-std-stamp
BUILDBFSTAMP	?= ${STAMPSDIR}/build-bf-stamp

INSTALL ?= install
INSTALL_PROGRAM ?= $(INSTALL) -p -o root -g root -m 0755

#ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
#INSTALL_PROGRAM += -s
#endif

ifneq (,$(findstring update-symbols,$(DEB_BUILD_OPTIONS)))
SYMBOL_LIBS := libext2fs libcomerr2 libss2
endif

DEFAULT_CFLAGS ?= -g -O2
DEFAULT_LDFLAGS ?= -Wl,-Bsymbolic-functions

CFLAGS ?= $(shell if dpkg-buildflags > /dev/null 2>&1 ; then \
	DEB_BUILD_MAINT_OPTIONS=$(DEB_BUILD_MAINT_OPTIONS) \
	dpkg-buildflags --get CFLAGS; else echo $(DEFAULT_CFLAGS) ; fi)
LDFLAGS ?= $(shell if dpkg-buildflags > /dev/null 2>&1 ; then \
	DEB_BUILD_MAINT_OPTIONS=$(DEB_BUILD_MAINT_OPTIONS) \
	dpkg-buildflags --get LDFLAGS; else echo $(DEFAULT_LDFLAGS) ; fi)
CPPFLAGS ?= $(shell if dpkg-buildflags > /dev/null 2>&1 ; then \
	DEB_BUILD_MAINT_OPTIONS=$(DEB_BUILD_MAINT_OPTIONS) \
	dpkg-buildflags --get CPPFLAGS; fi)

ifeq (${DEB_HOST_ARCH},alpha)
CFLAGS += -DHAVE_NETINET_IN_H
else
CFLAGS += -D__NO_STRING_INLINES
endif

E2FSCK_STATIC = ${stdbuilddir}/e2fsck/e2fsck.static

CFLAGS_SHLIB = $(CFLAGS)
CFLAGS_STLIB = $(CFLAGS)
LDFLAGS_SHLIB = $(LDFLAGS)
LDFLAGS_STATIC = $(filter-out -fPIE -fpie -pie,$(LDFLAGS))

ifneq ($(SKIP_UDEB),)
SKIP_BF ?= yes
endif

ifeq ($(SKIP_BF),yes)
BUILD_BF =
bfbuilddir	?= ${stdbuilddir}
else
BUILD_BF = build-bf
bfbuilddir	?= ${debdir}/BUILD-BF
endif

BF_CFLAGS = -Os -fomit-frame-pointer

UTIL_CONF_FLAGS ?= --disable-fsck --disable-libblkid \
			--disable-libuuid --disable-uuidd

ifneq ($(SKIP_FUSE2FS),)
UTIL_CONF_FLAGS +=  --disable-fuse2fs
endif

BACKTRACE_CONF_FLAGS ?= $(shell if ${debdir}/scripts/test-backtrace ; then echo --disable-backtrace ; fi)

COMMON_CONF_FLAGS = --enable-lto --disable-ubsan --disable-addrsan \
	--disable-threadsan --disable-e2initrd-helper \
	--infodir=/usr/share/info  --enable-symlink-install \
	--with-multiarch=$(DEB_HOST_MULTIARCH) \
	$(BACKTRACE_CONF_FLAGS) $(UTIL_CONF_FLAGS)

STD_CONF_FLAGS ?= --enable-elf-shlibs

BF_CONF_FLAGS ?= --enable-elf-shlibs --disable-nls --disable-imager \
	--disable-testio-debug --disable-uuidd --disable-tls \
	--disable-tdb --disable-debugfs

DBG_PACKAGES=

ifeq ($(SKIP_UDEB),)
INSTALL_UDEB = install-udeb
endif

debian-files:
ifneq ($(USE_DBGSYM),yes)
	if test ! -f debian/control.save; then \
		mv debian/control debian/control.save ; \
		cat debian/control.save debian/control.legacy-dbg \
			>> debian/control ; \
	fi
endif

mrproper: clean
	if test -f debian/control.save; then \
		mv debian/control.save debian/control ; \
	fi

${CFGDH}:
ifeq ($(USE_DH9),yes)
	mv debian/compat debian/compat.save
	echo 9 > debian/compat
	mv debian/e2fsprogs.postinst debian/e2fsprogs.postinst.save
	cp debian/e2fsprogs.postinst.dh9 debian/e2fsprogs.postinst
	cp debian/e2fsprogs.postrm.dh9 debian/e2fsprogs.postrm
endif
	mkdir -p ${STAMPSDIR}
	touch ${CFGDH}

${CFGSTDSTAMP}: ${CFGDH}
	dh_testdir
	if which dh_update_autotools_config > /dev/null 2>&1 ; then \
		dh_update_autotools_config ;\
	fi

	# Make sure we don't try to rebuild the configure scripts
	find . -name configure | xargs touch

	mkdir -p ${stdbuilddir}
ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
	cd ${stdbuilddir} && AWK=/usr/bin/awk \
		../../configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} \
		${EXTRA_CONF_FLAGS} CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" \
		LDFLAGS="$(LDFLAGS)" CFLAGS_SHLIB="$(CFLAGS_SHLIB)" \
		CFLAGS_STLIB="$(CFLAGS_STLIB)" \
		LDFLAGS_SHLIB="$(LDFLAGS_SHLIB)" \
		LDFLAGS_STATIC="$(LDFLAGS_STATIC)"
else
	cd ${stdbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
		../../configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} \
		${EXTRA_CONF_FLAGS} --build=$(DEB_BUILD_GNU_TYPE) \
		--host=$(DEB_HOST_GNU_TYPE) CFLAGS="${CFLAGS}" \
		CPPFLAGS="$(CPPFLAGS)" CFLAGS_SHLIB="$(CFLAGS_SHLIB)" \
		CFLAGS_STLIB="$(CFLAGS_STLIB)" \
		LDFLAGS="$(LDFLAGS)" \
		LDFLAGS_SHLIB="$(LDFLAGS_SHLIB)" \
		LDFLAGS_STATIC="$(LDFLAGS_STATIC)"
endif

	mkdir -p ${STAMPSDIR}
	touch ${CFGSTDSTAMP}

${CFGBFSTAMP}: ${CFGDH}
	dh_testdir
	if which dh_update_autotools_config > /dev/null 2>&1 ; then \
		dh_update_autotools_config ;\
	fi
	rm -f config.cache

	mkdir -p ${bfbuilddir}
ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
	cd ${bfbuilddir} && AWK=/usr/bin/awk \
		../../configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} \
		${EXTRA_CONF_FLAGS} CFLAGS="${CFLAGS} ${BF_CFLAGS}" \
		CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \
		CFLAGS_SHLIB="$(CFLAGS_SHLIB)" \
		CFLAGS_STLIB="$(CFLAGS_STLIB)" \
		LDFLAGS_SHLIB="$(LDFLAGS_SHLIB)" \
		LDFLAGS_STATIC="$(LDFLAGS_STATIC)"
else
	cd ${bfbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
		../../configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} \
		${EXTRA_CONF_FLAGS} --build=$(DEB_BUILD_GNU_TYPE) \
		--host=$(DEB_HOST_GNU_TYPE) CFLAGS="${CFLAGS}" \
		CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \
		CFLAGS_SHLIB="$(CFLAGS_SHLIB)" \
		CFLAGS_STLIB="$(CFLAGS_STLIB)" \
		LDFLAGS_SHLIB="$(LDFLAGS_SHLIB)" \
		LDFLAGS_STATIC="$(LDFLAGS_STATIC)"
endif
	mkdir -p ${STAMPSDIR}
	touch ${CFGBFSTAMP}

build-arch: build
build-indep: build
build: build-std $(BUILD_BF)

build-std: ${BUILDSTDSTAMP}
${BUILDSTDSTAMP}: ${CFGSTDSTAMP}
	dh_testdir
	$(MAKE) -C ${stdbuilddir} V=1 all
ifneq ($(SKIP_E2FSCK_STATIC),yes)
	$(MAKE) -C ${stdbuilddir}/e2fsck V=1 e2fsck.static
endif
	if ! test -d debian/orig-gmo ; then \
		mkdir debian/orig-gmo ; \
		mv po/*.gmo po/*.po debian/orig-gmo ; \
		cp debian/orig-gmo/*.po po ; \
	fi
	$(MAKE) -C ${stdbuilddir}/po V=1 update-gmo

	( cd ${stdbuilddir}/doc && $(MAKE) V=1 libext2fs.html )
	( cd ${stdbuilddir}/lib/et && $(MAKE) V=1 com_err.info com_err.html )
	cat $(shell /bin/ls -1 ./doc/RelNotes/*.txt | tac) | \
		gzip -9n > ${stdbuilddir}/NEWS.gz

	touch ${BUILDSTDSTAMP}

build-bf: ${BUILDBFSTAMP}
${BUILDBFSTAMP}: ${CFGBFSTAMP}
	dh_testdir
	$(MAKE) -C ${bfbuilddir} V=1 libs
	$(MAKE) -C ${bfbuilddir}/e2fsck V=1 all
	$(MAKE) -C ${bfbuilddir}/misc V=1 all
	$(MAKE) -C ${bfbuilddir}/resize V=1 all
	touch ${BUILDBFSTAMP}

clean:
	dh_testdir
	if test -d debian/orig-gmo ; then \
		rm -f po/*.gmo po/*.po ; \
		mv debian/orig-gmo/* po ; \
		rmdir debian/orig-gmo ; \
	fi
	if test -f debian/compat.save; then \
		mv debian/compat.save debian/compat ; \
	fi
	if test -f debian/e2fsprogs.postinst.save; then \
		mv debian/e2fsprogs.postinst.save debian/e2fsprogs.postinst ; \
	fi
	if test -f debian/e2fsprogs.postrm; then \
		rm -f debian/e2fsprogs.postrm ; \
	fi
	rm -rf ${STAMPSDIR}
	[ ! -f ${stdbuilddir}/Makefile ] || $(MAKE) -C ${stdbuilddir} V=1 distclean
	[ ! -f ${bfbuilddir}/Makefile ] || $(MAKE) -C ${bfbuilddir} V=1 distclean
	[ ! -f ${staticbuilddir}/Makefile ] || $(MAKE) -C ${staticbuilddir} V=1 distclean
	rm -rf ${stdbuilddir} ${bfbuilddir} ${staticbuilddir}
	rm -f debian/*.substvars
	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	mkdir -p ${tmpdir}/sbin
	$(MAKE) -C ${stdbuilddir} V=1 install DESTDIR=${tmpdir} \
		INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
  # static libs and .h files
	$(MAKE) -C ${stdbuilddir} V=1 install-libs DESTDIR=${tmpdir} LDCONFIG=true

ifneq ($(SKIP_E2FSCK_STATIC),yes)
  # statically-linked fsck
	${INSTALL_PROGRAM} $(E2FSCK_STATIC) ${tmpdir}/sbin
	cp ${mandir}/man8/e2fsck.8 ${mandir}/man8/e2fsck.static.8
endif

ifeq ($(DEB_HOST_ARCH_OS), hurd)
	${INSTALL} -m 0644 misc/mke2fs-hurd.conf ${tmpdir}/etc/mke2fs.conf
endif

	dh_install -p e2fsprogs --sourcedir=${stdbuilddir} NEWS.gz \
		usr/share/doc/e2fsprogs
	dh_movefiles
	test -z "`find ${tmpdir} -type f`"

install-udeb: build
	dh_testdir
	dh_testroot

	$(MAKE) -C ${bfbuilddir} V=1 install-shlibs-libs-recursive DESTDIR=${udebdir} \
		INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
	$(MAKE) -C ${bfbuilddir}/e2fsck V=1 install DESTDIR=${udebdir} \
		INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
	$(MAKE) -C ${bfbuilddir}/misc V=1 install DESTDIR=${udebdir} \
		INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
	$(MAKE) -C ${bfbuilddir}/resize V=1 install DESTDIR=${udebdir} \
		INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true

	rm -rf ${udebdir}/usr
	find ${udebdir}/sbin -type f -a ! -name e2fsck \
		-a ! -name mke2fs -a ! -name tune2fs \
		-a ! -name resize2fs -a ! -name badblocks -print | xargs rm

	(cd ${udebdir}/sbin; ln -sf e2fsck fsck.ext2 ; \
		ln -sf e2fsck fsck.ext3 ; ln -sf e2fsck fsck.ext4 ; \
		ln -sf mke2fs mkfs.ext2 ; ln -sf mke2fs mkfs.ext3 ; \
		ln -sf mke2fs mkfs.ext4)

binary-indep: install
	dh_testdir
	dh_testroot
	dh_lintian -i
	dh_installdocs -i
	dh_installchangelogs -i
	dh_fixperms -i
	dh_compress -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch: install $(INSTALL_UDEB)
	dh_testdir
	dh_testroot

	dh_lintian -a

  # symlinks to prepare dh_installdocs run

	mkdir -p ${debdir}/libss${SS_SOVERSION}/usr/share/doc/libss${SS_SOVERSION}
	mkdir -p ${debdir}/ss-dev/usr/share/doc

	mkdir -p ${debdir}/libcom-err${COMERR_SOVERSION}/usr/share/doc/libcom-err${COMERR_SOVERSION}
	mkdir -p ${debdir}/comerr-dev/usr/share/doc

	mkdir -p ${debdir}/libext2fs2/usr/share/doc/libext2fs
	mkdir -p ${debdir}/libext2fs-dev/usr/share/doc

	dh_installdocs -a -Ne2fsprogs-udeb

  # HTML docs
	$(INSTALL) -d ${debdir}/libext2fs-dev/usr/share/doc/libext2fs/html-info/
	$(INSTALL) -p -m 0644 ${stdbuilddir}/doc/*.html \
	   ${debdir}/libext2fs-dev/usr/share/doc/libext2fs/html-info/
	$(INSTALL) -d ${debdir}/comerr-dev/usr/share/doc/comerr-dev/html-info/
	$(INSTALL) -p -m 0644 ${stdbuilddir}/lib/et/*.html \
	   ${debdir}/comerr-dev/usr/share/doc/comerr-dev/html-info/

  # texinfo docs
	mkdir -p ${debdir}/comerr-dev/usr/share/doc/comerr-dev
	$(INSTALL) -p -m 0644 ${topdir}/doc/libext2fs.texinfo \
	   ${debdir}/libext2fs-dev/usr/share/doc/libext2fs/libext2fs.texi
	$(INSTALL) -p -m 0644 ${topdir}/lib/et/com_err.texinfo \
	   ${debdir}/comerr-dev/usr/share/doc/comerr-dev/com_err.texi

	$(INSTALL) -d ${debdir}/comerr-dev/usr/share/doc/comerr-dev/examples
	$(INSTALL) -p -m 0644 lib/ss/ss_err.et \
		${stdbuilddir}/lib/ext2fs/ext2_err.et \
		${debdir}/comerr-dev/usr/share/doc/comerr-dev/examples
	$(INSTALL) -d ${debdir}/ss-dev/usr/share/doc/ss-dev/examples
	$(INSTALL) -p -m 0644 debugfs/debug_cmds.ct \
		${debdir}/ss-dev/usr/share/doc/ss-dev/examples

	dh_installinfo -pcomerr-dev ${stdbuilddir}/lib/et/com_err.info
	dh_installinfo -plibext2fs-dev ${stdbuilddir}/doc/libext2fs.info

	dh_installchangelogs -a
	dh_fixperms -a
	dh_strip $(call dh_strip_args,e2fsprogs)
ifneq ($(SKIP_E2FSCK_STATIC),yes)
	dh_strip $(call dh_strip_args2,e2fsck-static,e2fsprogs)
endif
	dh_strip $(call dh_strip_args,libext2fs2)
	dh_strip $(call dh_strip_args,libss${SS_SOVERSION})
	dh_strip $(call dh_strip_args,libcom-err${COMERR_SOVERSION})
	dh_strip -a

	# dpkg symbol handling
	for i in $(SYMBOL_LIBS); \
	do \
		echo "Generating symbols for $$i..."; \
		dpkg-gensymbols -p$$i -Pdebian/$$i > debian/$$i.tmp-patch; \
		cat debian/$$i.tmp-patch; \
		patch debian/$$i.symbols < debian/$$i.tmp-patch; \
		/bin/rm debian/$$i.tmp-patch; \
	done

	dh_compress -a

	dh_makeshlibs -a --add-udeb=e2fsprogs-udeb
ifneq ($(USE_DH9),yes)
	dh_installsystemd -p e2fsprogs
endif
	$(INSTALL) -D -p -m644 debian/e2fsprogs-udeb.lintian-overrides \
	    debian/e2fsprogs-udeb/usr/share/lintian/overrides/e2fsprogs-udeb
	dh_installdeb -a
	dh_shlibdeps -a -l${stdbuilddir}/lib
	dh_shlibdeps -pe2fsprogs -l${stdbuilddir}/lib \
		-u"-Ldebian/e2fsprogs.shlibs.local"
ifeq ($(SKIP_UDEB),)
	dh_shlibdeps -pe2fsprogs-udeb -l${stdbuilddir}/lib \
		-u"-Ldebian/e2fsprogs-udeb.shlibs.local"
endif
ifeq ($(SKIP_FUSE2FS),)
	dh_shlibdeps -pfuse2fs -l${stdbuilddir}/lib \
		-u"-Ldebian/e2fsprogs.shlibs.local"
endif

	dh_gencontrol -a -Ncomerr-dev -Nss-dev -Ne2fsprogs-udeb
	dh_gencontrol -pcomerr-dev \
	  -u '-v${COMERR_VERSION}-${MAIN_VERSION} -VmainBinary=${MAIN_VERSION}'
	dh_gencontrol -pss-dev \
	  -u '-v${SS_VERSION}-${MAIN_VERSION} -VmainBinary=${MAIN_VERSION}'
ifeq ($(SKIP_UDEB),)
	dh_gencontrol -pe2fsprogs-udeb -- -fdebian/files~
endif

ifeq ($(SKIP_UDEB),)
	dpkg-distaddfile $(UDEB_NAME) debian-installer $(UDEB_PRIORITY)
endif
	dh_md5sums -a
	dh_builddeb -a

binary: binary-indep binary-arch

debug_flags:
	@echo CFLAGS is $(CFLAGS)
	@echo LDFLAGS is $(LDFLAGS)
	@echo CPPFLAGS is $(CPPFLAGS)
