diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..b85976f --- /dev/null +++ b/debian/rules @@ -0,0 +1,186 @@ +#! /usr/bin/make -f + +# export DH_VERBOSE=1 + +export DEB_BUILD_MAINT_OPTIONS ?= hardening=+all + +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/default.mk + +# be paranoid +export LC_ALL ?= C + +ifeq ($(DEB_HOST_ARCH_OS), hurd) +SKIP_FUSE2FS=yes +endif + +ifneq ($(filter pkg.e2fsprogs.no-fuse2fs,$(DEB_BUILD_PROFILES)),) +SKIP_FUSE2FS=yes +endif + +COMERR_VERSION ?= $(shell grep ELF_VERSION lib/et/Makefile.in | cut '-d ' -f3) +SS_VERSION ?= $(shell grep ELF_VERSION lib/ss/Makefile.in | cut '-d ' -f3) + +topdir ?= $(shell pwd) +tmpdir ?= ${topdir}/debian/tmp +udebdir ?= ${topdir}/debian/e2fsprogs-udeb +stdbuilddir ?= ${topdir}/debian/BUILD-STD + +INSTALL ?= install +INSTALL_PROGRAM ?= $(INSTALL) -p -m 0755 + +ifneq (,$(findstring update-symbols,$(DEB_BUILD_OPTIONS))) +SYMBOL_LIBS := libext2fs libcomerr2 libss2 +endif + +CFLAGS_SHLIB = $(CFLAGS) +CFLAGS_STLIB = $(CFLAGS) +LDFLAGS_SHLIB = $(LDFLAGS) +LDFLAGS_STATIC = $(filter-out -fPIE -fpie -pie,$(LDFLAGS)) + +BACKTRACE_CONF_FLAGS ?= $(shell if debian/scripts/test-backtrace ; then echo --disable-backtrace ; fi) + +COMMON_CONF_FLAGS = --enable-elf-shlibs --disable-ubsan \ + --disable-addrsan --disable-threadsan --disable-e2initrd-helper \ + --disable-fsck --disable-libblkid --disable-libuuid --disable-uuidd \ + --infodir=/usr/share/info --enable-symlink-install \ + --with-multiarch=$(DEB_HOST_MULTIARCH) \ + $(BACKTRACE_CONF_FLAGS) ${EXTRA_CONF_FLAGS} + +ifneq ($(SKIP_FUSE2FS),) +COMMON_CONF_FLAGS += --disable-fuse2fs +endif + +ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) +CC ?= $(DEB_HOST_GNU_TYPE)-gcc +COMMON_CONF_FLAGS += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) +endif + +%: + dh $@ -B${stdbuilddir} + +override_dh_autoreconf: + +override_dh_auto_configure: + mkdir -p ${stdbuilddir} + cd ${stdbuilddir} && AWK=/usr/bin/awk \ + ../../configure ${COMMON_CONF_FLAGS} + +override_dh_auto_build: + $(MAKE) -C ${stdbuilddir} V=1 all +ifeq (,$(filter pkg.e2fsprogs.no-static,$(DEB_BUILD_PROFILES))) + $(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 + + $(MAKE) -C ${stdbuilddir}/doc V=1 libext2fs.html + $(MAKE) -C ${stdbuilddir}/lib/et V=1 com_err.info com_err.html + cat $(shell /bin/ls -1 ./doc/RelNotes/*.txt | tac) | \ + gzip -9n > ${stdbuilddir}/NEWS.gz + +override_dh_auto_clean: + if test -d debian/orig-gmo ; then \ + rm -f po/*.gmo po/*.po ; \ + mv debian/orig-gmo/* po ; \ + rmdir debian/orig-gmo ; \ + fi + rm -rf ${stdbuilddir} + +override_dh_auto_install: + 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 + +ifeq (,$(filter pkg.e2fsprogs.no-static,$(DEB_BUILD_PROFILES))) + # statically-linked fsck + ${INSTALL_PROGRAM} ${stdbuilddir}/e2fsck/e2fsck.static ${tmpdir}/sbin + (cd debian/tmp/usr/share/man/man8 ; cp e2fsck.8 e2fsck.static.8) +endif + +ifeq ($(DEB_HOST_ARCH_OS), hurd) + ${INSTALL} -m 0644 misc/mke2fs-hurd.conf ${tmpdir}/etc/mke2fs.conf +endif + +override_dh_install: + dh_install -p e2fsprogs --sourcedir=${stdbuilddir} NEWS.gz \ + usr/share/doc/e2fsprogs + dh_install + dh_missing --fail-missing + +ifeq (,$(filter noudeb,$(DEB_BUILD_PROFILES))) +override_dh_lintian: + dh_lintian + $(INSTALL) -D -p -m644 debian/e2fsprogs-udeb.lintian-overrides \ + debian/e2fsprogs-udeb/usr/share/lintian/overrides/e2fsprogs-udeb +endif + +override_dh_installinfo: + # HTML docs + $(INSTALL) -d debian/libext2fs-dev/usr/share/doc/libext2fs2/html-info/ + $(INSTALL) -p -m 0644 ${stdbuilddir}/doc/*.html \ + debian/libext2fs-dev/usr/share/doc/libext2fs2/html-info/ + $(INSTALL) -d debian/comerr-dev/usr/share/doc/comerr-dev/html-info/ + $(INSTALL) -p -m 0644 ${stdbuilddir}/lib/et/*.html \ + debian/comerr-dev/usr/share/doc/comerr-dev/html-info/ + + # texinfo docs + mkdir -p debian/comerr-dev/usr/share/doc/comerr-dev + $(INSTALL) -p -m 0644 ${topdir}/doc/libext2fs.texinfo \ + debian/libext2fs-dev/usr/share/doc/libext2fs2/libext2fs.texi + $(INSTALL) -p -m 0644 ${topdir}/lib/et/com_err.texinfo \ + debian/comerr-dev/usr/share/doc/comerr-dev/com_err.texi + + $(INSTALL) -d debian/comerr-dev/usr/share/doc/comerr-dev/examples + $(INSTALL) -p -m 0644 lib/ss/ss_err.et \ + ${stdbuilddir}/lib/ext2fs/ext2_err.et \ + debian/comerr-dev/usr/share/doc/comerr-dev/examples + $(INSTALL) -d debian/ss-dev/usr/share/doc/ss-dev/examples + $(INSTALL) -p -m 0644 debugfs/debug_cmds.ct \ + debian/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 + +override_dh_makeshlibs: + 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_makeshlibs $(if $(filter noudeb,$(DEB_BUILD_PROFILES)),,--add-udeb=e2fsprogs-udeb) + +override_dh_shlibdeps: + dh_shlibdeps -pe2fsprogs -l${stdbuilddir}/lib \ + -- -Ldebian/e2fsprogs.shlibs.local +ifeq (,$(filter noudeb,$(DEB_BUILD_PROFILES))) + dh_shlibdeps -pe2fsprogs-udeb -l${stdbuilddir}/lib \ + -- -Ldebian/e2fsprogs-udeb.shlibs.local +endif +ifeq ($(SKIP_FUSE2FS),) + dh_shlibdeps -pfuse2fs -l${stdbuilddir}/lib \ + -- -Ldebian/e2fsprogs.shlibs.local +endif + dh_shlibdeps --remaining-packages -l${stdbuilddir}/lib + +override_dh_gencontrol: + dh_gencontrol -pcomerr-dev -- -v${COMERR_VERSION}-${DEB_VERSION} -VmainBinary=${DEB_VERSION} + dh_gencontrol -pss-dev -- -v${SS_VERSION}-${DEB_VERSION} -VmainBinary=${DEB_VERSION} + dh_gencontrol --remaining-packages + +override_dh_auto_test: +ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + PRINT_FAILED=yes $(MAKE) -C ${stdbuilddir} V=1 check +endif + +test_printenv: + printenv | sort |