X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=debian%2Frules;h=1f6e7b4a8828c64c56752b058f6461ee13c9f96d;hb=8d12c46a22965179cae1e3b47778fdee5efeb513;hp=dbf8077a7a7f0af251e64fd895e62a9aad3a72aa;hpb=ec3bb41be77e0f3ea864d9ed49e5675411205cda;p=tools%2Fe2fsprogs.git diff --git a/debian/rules b/debian/rules index dbf8077..1f6e7b4 100755 --- a/debian/rules +++ b/debian/rules @@ -7,102 +7,185 @@ # The `binary' target must be run as root, as it needs to install files with # specific ownerships. +-include debian/rules.custom + # be paranoid -export LC_ALL=C +export LC_ALL ?= C + +# Allow distro-specific behaviour +DISTRO :=$(shell sed -ne '/DISTRIB_ID/s/.*=//p' /etc/lsb-release 2>/dev/null || echo Debian) +SYS_BLKID_VER := $(shell dpkg-query -W libblkid1 | cut -f 2 | cut -b 1) +ifeq ($(SYS_BLKID_VER),2) +UTIL_LINUX_NG ?= yes +endif # 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_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +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 2>/dev/null) # 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) -UUID_VERSION = $(shell grep ELF_VERSION lib/uuid/Makefile.in | cut '-d ' -f3) -UUID_SOVERSION = $(shell grep ELF_SO_VERSION lib/uuid/Makefile.in | cut '-d ' -f3) -BLKID_VERSION = $(shell grep ELF_VERSION lib/blkid/Makefile.in | cut '-d ' -f3) -BLKID_SOVERSION = $(shell grep ELF_SO_VERSION lib/blkid/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 -blkidudebdir=${debdir}/libblkid1-udeb -uuidudebdir=${debdir}/libuuid1-udeb -maindir=${debdir}/e2fsprogs -stdbuilddir=${debdir}/BUILD-STD -bfbuilddir=${debdir}/BUILD-BF -mipsbuilddir=${debdir}/BUILD-MIPS -mipsbuilddir64=${debdir}/BUILD-MIPS-64 -# 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) - -BLKID_UDEB_NAME = libblkid1-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb -BLKID_UDEB_PRIORITY = $(shell grep '^Package: libblkid1-udeb' debian/control -A 10 | grep ^Priority: | cut -d ' ' -f 2) - -UUID_UDEB_NAME = libuuid1-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb -UUID_UDEB_PRIORITY = $(shell grep '^Package: libuuid1-udeb' debian/control -A 10 | grep ^Priority: | cut -d ' ' -f 2) - -STAMPSDIR=debian/stampdir -CFGSTDSTAMP=${STAMPSDIR}/configure-std-stamp -CFGBFSTAMP=${STAMPSDIR}/configure-bf-stamp -BUILDSTDSTAMP=${STAMPSDIR}/build-std-stamp -BUILDBFSTAMP=${STAMPSDIR}/build-bf-stamp - -CCOPTS = -g -fsigned-char - -INSTALL = install -INSTALL_PROGRAM = $(INSTALL) -p -o root -g root -m 0755 - -ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) -CCOPTS += -O2 +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) + +ifneq ($(UTIL_LINUX_NG),yes) +UUID_VERSION ?= $(shell grep ELF_VERSION lib/uuid/Makefile.in | cut '-d ' -f3) +UUID_SOVERSION ?= $(shell grep ELF_SO_VERSION lib/uuid/Makefile.in | cut '-d ' -f3) + +BLKID_VERSION ?= $(shell grep ELF_VERSION lib/blkid/Makefile.in | cut '-d ' -f3) +BLKID_SOVERSION ?= $(shell grep ELF_SO_VERSION lib/blkid/Makefile.in | cut '-d ' -f3) endif -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) -INSTALL_PROGRAM += -s + +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 +ifneq ($(UTIL_LINUX_NG),yes) +blkidudebdir ?= ${debdir}/libblkid1-udeb +uuidudebdir ?= ${debdir}/libuuid1-udeb +endif +libcomerrdir ?= ${debdir}/libcomerr${COMERR_SOVERSION} +comerrdevdir ?= ${debdir}/comerr-dev +libcomerrdbgdir ?= ${debdir}/libcomerr2-dbg +libssdir ?= ${debdir}/libss${SS_SOVERSION} +ssdevdir ?= ${debdir}/ss-dev +libssdbgdir ?= ${debdir}/libss2-dbg +ifneq ($(UTIL_LINUX_NG),yes) +libblkiddir ?= ${debdir}/libblkid${BLKID_SOVERSION} +libblkiddevdir ?= ${debdir}/libblkid-dev +libblkiddbgdir ?= ${debdir}/libblkid1-dbg +libuuiddir ?= ${debdir}/libuuid${UUID_SOVERSION} +uuiddevdir ?= ${debdir}/uuid-dev +libuuiddbgdir ?= ${debdir}/libuuid1-dbg +uuidruntimedir ?= ${debdir}/uuid-runtime +uuidruntimedbgdir ?= ${debdir}/uuid-runtime-dbg endif +libext2dir ?= ${debdir}/e2fslibs +libext2devdir ?= ${debdir}/e2fslibs-dev +libext2dbgdir ?= ${debdir}/e2fslibs-dbg +maindir ?= ${debdir}/e2fsprogs +e2fsckstaticdir ?= ${debdir}/e2fsck-static +debugdir ?= ${debdir}/e2fsprogs-dbg +stdbuilddir ?= ${debdir}/BUILD-STD +staticbuilddir ?= ${debdir}/BUILD-STATIC +mipsbuilddir ?= ${debdir}/BUILD-MIPS +mipsbuilddir64 ?= ${debdir}/BUILD-MIPS-64 +# 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.in -A 10 | grep ^Priority: | cut -d ' ' -f 2) + +ifneq ($(UTIL_LINUX_NG),yes) +BLKID_UDEB_NAME ?= libblkid1-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb +BLKID_UDEB_PRIORITY ?= $(shell grep '^Package: libblkid1-udeb' debian/control.in -A 10 | grep ^Priority: | cut -d ' ' -f 2) + +UUID_UDEB_NAME ?= libuuid1-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb +UUID_UDEB_PRIORITY ?= $(shell grep '^Package: libuuid1-udeb' debian/control.in -A 10 | grep ^Priority: | cut -d ' ' -f 2) +endif + +STAMPSDIR ?= debian/stampdir +CFGSTDSTAMP ?= ${STAMPSDIR}/configure-std-stamp +CFGBFSTAMP ?= ${STAMPSDIR}/configure-bf-stamp +CFGSTATICSTAMP ?= ${STAMPSDIR}/configure-static-stamp +BUILDSTDSTAMP ?= ${STAMPSDIR}/build-std-stamp +BUILDBFSTAMP ?= ${STAMPSDIR}/build-bf-stamp +BUILDSTATICSTAMP ?=${STAMPSDIR}/build-static-stamp + +INSTALL ?= install +INSTALL_PROGRAM ?= $(INSTALL) -p -o root -g root -m 0755 + +#ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) +#INSTALL_PROGRAM += -s +#endif + +DEFAULT_CFLAGS ?= -g -O2 +DEFAULT_LDFLAGS ?= -Wl,-Bsymbolic-functions + +CFLAGS ?= $(shell if dpkg-buildflags > /dev/null 2>&1 ; then \ + dpkg-buildflags --get CFLAGS; else echo $(DEFAULT_CFLAGS) ; fi) +LDFLAGS ?= $(shell if dpkg-buildflags > /dev/null 2>&1 ; then \ + dpkg-buildflags --get LDFLAGS; else echo $(DEFAULT_LDFLAGS) ; fi) +CPPFLAGS ?= $(shell if dpkg-buildflags > /dev/null 2>&1 ; then \ + dpkg-buildflags --get CPPFLAGS; fi) ifeq (${DEB_HOST_ARCH},alpha) -CCOPTS += -DHAVE_NETINET_IN_H +CFLAGS += -DHAVE_NETINET_IN_H else -CCOPTS += -D__NO_STRING_INLINES +CFLAGS += -D__NO_STRING_INLINES endif -BF_CCOPTS = -Os -fomit-frame-pointer +ifneq (${DEB_HOST_ARCH_OS},linux) +SKIP_STATIC = yes +endif + +ifeq ($(SKIP_STATIC),yes) +BUILD_STATIC = +E2FSCK_STATIC = ${stdbuilddir}/e2fsck/e2fsck.static +else +BUILD_STATIC = build-static +E2FSCK_STATIC = ${staticbuilddir}/e2fsck/e2fsck.static +endif -COMMON_CONF_FLAGS = \ - --enable-elf-shlibs --enable-dynamic-e2fsck \ - --infodir=/usr/share/info --enable-fsck +ifeq ($(SKIP_BF),yes) +BUILD_BF = +bfbuilddir ?= ${stdbuilddir} +else +BUILD_BF = build-bf +bfbuilddir ?= ${debdir}/BUILD-BF +endif -STD_CONF_FLAGS = --with-ccopts="${CCOPTS}" --enable-compression \ - --enable-blkid-devmapper +BF_CFLAGS = -Os -fomit-frame-pointer -BF_CONF_FLAGS = --with-ccopts="${CCOPTS} ${BF_CCOPTS}" \ - --disable-nls --disable-swapfs --disable-imager \ - --disable-debugfs --disable-e2initrd-helper +COMMON_CONF_FLAGS = --disable-e2initrd-helper --enable-elf-shlibs \ + --enable-quota --infodir=/usr/share/info +ifeq ($(UTIL_LINUX_NG),yes) +COMMON_CONF_FLAGS += --disable-fsck --disable-libblkid \ + --disable-libuuid --disable-uuidd +else +COMMON_CONF_FLAGS += --enable-fsck +endif -MIPS_NOPIC_CONF_FLAGS = --with-ccopts="${CCOPTS}" \ - --disable-nls \ - --disable-swapfs --disable-imager \ +ifneq ($(strip $(DEB_HOST_MULTIARCH)),) +MULTIARCH_CONF ?= --with-multiarch=$(DEB_HOST_MULTIARCH) +# This doesn't work yet because gdb and lintian don't expect and/or +# don't work with /usr/lib//debug +#USRLIB = /usr/lib/$(DEB_HOST_MULTIARCH) +USRLIB ?= /usr/lib +else +USRLIB ?= /usr/lib +endif + +STD_CONF_FLAGS ?= --enable-symlink-install $(MULTIARCH_CONF) + +BF_CONF_FLAGS ?= --disable-nls --disable-imager --disable-testio-debug \ + --disable-uuidd --disable-tls --disable-debugfs + +STATIC_CONF_FLAGS ?= --disable-nls --disable-imager \ + --disable-uuidd --disable-tls + +MIPS_NOPIC_CONF_FLAGS ?= --disable-nls --disable-imager \ + --disable-uuidd --disable-tls \ --disable-resizer # --disable-debugfs # we can't use those flags at configure time -MIPS_CFLAGS= -G 0 -fno-pic -mno-abicalls -MIPS_CFLAGS_64= -mabi=64 -G 0 -fno-pic -mno-abicalls +MIPS_CFLAGS ?= -G 0 -fno-pic -mno-abicalls +MIPS_CFLAGS_64 ?= -mabi=64 -G 0 -fno-pic -mno-abicalls ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) ifneq (,$(findstring $(DEB_BUILD_ARCH),mips mipsel)) @@ -110,6 +193,49 @@ ismips=ismips endif endif +M4_ARGS= +ifeq ($(UTIL_LINUX_NG),yes) +M4_ARGS+=-DUTIL_LINUX_NG +else +M4_ARGS+=-UUTIL_LINUX_NG +endif + +ifneq ($(strip $(DEB_HOST_MULTIARCH)),) +M4_ARGS+=-DDO_MULTIARCH +else +M4_ARGS+=-UDO_MULTIARCH +endif + +ifneq ($(SKIP_DIETLIBC),) +M4_ARGS+=-UDIETLIBC +WITH_DIET_LIBC = +else +M4_ARGS+=-DDIETLIBC +WITH_DIET_LIBC = --with-diet-libc +endif + +FILES_FIXUP= libcomerr2.files comerr-dev.files libss2.files ss-dev.files \ + libuuid1.files uuid-dev.files libblkid1.files libblkid-dev.files \ + e2fslibs.files e2fslibs-dev.files + +debian-files: debian/control debian/e2fsprogs.shlibs.local +ifeq ($(strip $(DEB_HOST_MULTIARCH)),) + for i in $(FILES_FIXUP); do \ + sed -e 's;lib/\*/;lib/;' debian/$$i.in > debian/$$i; \ + done +else + for i in $(FILES_FIXUP); do cp debian/$$i.in debian/$$i; done +endif + +mrproper: clean + rm debian/control debian/e2fsprogs.shlibs.local + +debian/control: debian/control.in debian/rules + m4 $(M4_ARGS) < debian/control.in | grep -v ^REMOVE_ME$$ > $@ + +debian/e2fsprogs.shlibs.local: debian/e2fsprogs.shlibs.local.in + m4 $(M4_ARGS) < debian/e2fsprogs.shlibs.local.in > $@ + ${CFGSTDSTAMP}: dh_testdir @@ -119,20 +245,22 @@ ${CFGSTDSTAMP}: mkdir -p ${stdbuilddir} ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) cd ${stdbuilddir} && AWK=/usr/bin/awk \ - ${topdir}/configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} + ${topdir}/configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} \ + CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" else cd ${stdbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \ ${topdir}/configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} \ - --build=$(DEB_BUILD_GNU_TYPE) $(DEB_HOST_GNU_TYPE) + --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \ + CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" endif # specially-built MIPS libs ifneq ($(ismips),) mkdir -p ${mipsbuilddir} ${mipsbuilddir64} cd ${mipsbuilddir} && AWK=/usr/bin/awk \ - ${topdir}/configure ${MIPS_NOPIC_CONF_FLAGS} + ${topdir}/configure ${MIPS_NOPIC_CONF_FLAGS} CFLAGS="${CFLAGS}" cd ${mipsbuilddir64} && AWK=/usr/bin/awk \ - ${topdir}/configure ${MIPS_NOPIC_CONF_FLAGS} + ${topdir}/configure ${MIPS_NOPIC_CONF_FLAGS} CFLAGS="${CFLAGS}" endif mkdir -p ${STAMPSDIR} @@ -145,36 +273,64 @@ ${CFGBFSTAMP}: mkdir -p ${bfbuilddir} ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) cd ${bfbuilddir} && AWK=/usr/bin/awk \ - ${topdir}/configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} + ${topdir}/configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} \ + CFLAGS="${CFLAGS} ${BF_CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" else cd ${bfbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \ ${topdir}/configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} \ - --build=$(DEB_BUILD_GNU_TYPE) $(DEB_HOST_GNU_TYPE) + --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \ + CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" endif mkdir -p ${STAMPSDIR} touch ${CFGBFSTAMP} -build: build-std build-bf +${CFGSTATICSTAMP}: + dh_testdir + rm -f config.cache + + mkdir -p ${staticbuilddir} +ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) + if type diet > /dev/null 2>&1 ; then \ + cd ${staticbuilddir} && AWK=/usr/bin/awk \ + ${topdir}/configure ${STATIC_CONF_FLAGS} \ + ${WITH_DIET_LIBC} CFLAGS="${CFLAGS}"; \ + else \ + cd ${staticbuilddir} && AWK=/usr/bin/awk \ + ${topdir}/configure ${STATIC_CONF_FLAGS} \ + CFLAGS="${CFLAGS}"; \ + fi +else + cd ${staticbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \ + ${topdir}/configure ${COMMON_CONF_FLAGS} ${STATIC_CONF_FLAGS} \ + --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \ + CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" +endif + mkdir -p ${STAMPSDIR} + touch ${CFGSTATICSTAMP} + +build-arch: build +build-indep: build +build: build-std $(BUILD_BF) $(BUILD_STATIC) build-std: ${BUILDSTDSTAMP} ${BUILDSTDSTAMP}: ${CFGSTDSTAMP} dh_testdir - make -C ${stdbuilddir} all + $(MAKE) -C ${stdbuilddir} V=1 all + $(MAKE) -C ${stdbuilddir}/e2fsck V=1 e2fsck.static + $(MAKE) -C ${stdbuilddir}/po V=1 update-gmo - ( cd ${stdbuilddir}/doc && \ - texi2html -split_chapter ${topdir}/doc/libext2fs.texinfo ) - ( cd ${stdbuilddir}/lib/et && make com_err.info && \ - texi2html -split_chapter -expandinfo ${topdir}/lib/et/com_err.texinfo ) + ( cd ${stdbuilddir}/doc && $(MAKE) V=1 libext2fs_abt.html ) + ( cd ${stdbuilddir}/lib/et && $(MAKE) V=1 com_err.info com_err_abt.html ) # specially-built MIPS libs ifneq ($(ismips),) - make -C ${mipsbuilddir}/util - make -C ${mipsbuilddir} \ - CFLAGS="${CCOPTS} ${MIPS_CFLAGS}" \ + $(MAKE) -C ${mipsbuilddir}/util V=1 + $(MAKE) -C ${mipsbuilddir} V=1 \ + CFLAGS="${CFLAGS} ${MIPS_CFLAGS}" \ LIB_SUBDIRS="lib/et lib/ext2fs" libs - make -C ${mipsbuilddir64}/util - make -C ${mipsbuilddir64} \ - CFLAGS="${CCOPTS} ${MIPS_CFLAGS_64}" \ + $(MAKE) -C ${mipsbuilddir64}/util V=1 + $(MAKE) -C ${mipsbuilddir64} V=1 \ + CFLAGS="${CFLAGS} ${MIPS_CFLAGS_64}" \ LIB_SUBDIRS="lib/et lib/ext2fs" libs endif @@ -183,18 +339,26 @@ endif build-bf: ${BUILDBFSTAMP} ${BUILDBFSTAMP}: ${CFGBFSTAMP} dh_testdir - make -C ${bfbuilddir} libs - make -C ${bfbuilddir}/e2fsck all - make -C ${bfbuilddir}/misc all + $(MAKE) -C ${bfbuilddir} V=1 libs + $(MAKE) -C ${bfbuilddir}/e2fsck V=1 all + $(MAKE) -C ${bfbuilddir}/misc V=1 all touch ${BUILDBFSTAMP} +build-static: ${BUILDSTATICSTAMP} +${BUILDSTATICSTAMP}: ${CFGSTATICSTAMP} + dh_testdir + $(MAKE) -C ${staticbuilddir} V=1 libs + $(MAKE) -C ${staticbuilddir}/e2fsck V=1 all e2fsck.static + touch ${BUILDSTATICSTAMP} + clean: dh_testdir rm -rf ${STAMPSDIR} - -make -C ${stdbuilddir} -i distclean - -make -C ${bfbuilddir} -i distclean - rm -rf ${stdbuilddir} ${bfbuilddir} ${mipsbuilddir} ${mipsbuilddir64} - rm -f doc/libext2fs/*.html lib/et/com_err/*.html debian/*.substvars + [ ! -f ${stdbuilddir}/Makefile ] || $(MAKE) -C ${stdbuilddir} distclean + [ ! -f ${bfbuilddir}/Makefile ] || $(MAKE) -C ${bfbuilddir} distclean + [ ! -f ${staticbuilddir}/Makefile ] || $(MAKE) -C ${staticbuilddir} distclean + rm -rf ${stdbuilddir} ${bfbuilddir} ${staticbuilddir} ${mipsbuilddir} ${mipsbuilddir64} + rm -f debian/*.substvars dh_clean install: cleanup install-std @@ -205,7 +369,7 @@ install: cleanup install-std cleanup: dh_testdir dh_testroot - dh_clean -k + dh_prep install-std: DH_OPTIONS= install-std: build @@ -214,19 +378,24 @@ install-std: build dh_installdirs mkdir -p ${tmpdir}/sbin - make -C ${stdbuilddir} install DESTDIR=${tmpdir} \ + $(MAKE) -C ${stdbuilddir} install DESTDIR=${tmpdir} \ INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true # static libs and .h files - make -C ${stdbuilddir} install-libs DESTDIR=${tmpdir} LDCONFIG=true + $(MAKE) -C ${stdbuilddir} install-libs DESTDIR=${tmpdir} LDCONFIG=true # statically-linked fsck - ${INSTALL_PROGRAM} ${stdbuilddir}/e2fsck/e2fsck.static ${tmpdir}/sbin + ${INSTALL_PROGRAM} $(E2FSCK_STATIC) ${tmpdir}/sbin cp ${mandir}/man8/e2fsck.8 ${mandir}/man8/e2fsck.static.8 + # remove static quota library for now + rm ${tmpdir}/usr/include/quota/mkquota.h + find ${tmpdir}/usr/lib -name quota.pc -o -name libquota.a | xargs rm - ln -s et/com_err.h ${tmpdir}/usr/include +ifeq ($(DEB_BUILD_GNU_SYSTEM), gnu) + ${INSTALL} -m 0644 misc/mke2fs-hurd.conf ${tmpdir}/etc/mke2fs.conf +endif dh_movefiles - test -z `find ${tmpdir} -type f` + test -z "`find ${tmpdir} -type f`" # specially-built MIPS libs ifneq ($(ismips),) @@ -241,13 +410,13 @@ install-udeb: build dh_testdir dh_testroot - make -C ${bfbuilddir} install-shlibs-libs-recursive DESTDIR=${udebdir} \ + $(MAKE) -C ${bfbuilddir} install-shlibs-libs-recursive DESTDIR=${udebdir} \ INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true - make -C ${bfbuilddir}/e2fsck install DESTDIR=${udebdir} \ + $(MAKE) -C ${bfbuilddir}/e2fsck install DESTDIR=${udebdir} \ INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true - make -C ${bfbuilddir}/misc install DESTDIR=${udebdir} \ + $(MAKE) -C ${bfbuilddir}/misc install DESTDIR=${udebdir} \ INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true - make -C ${bfbuilddir}/resize install DESTDIR=${udebdir} \ + $(MAKE) -C ${bfbuilddir}/resize install DESTDIR=${udebdir} \ INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true rm -rf ${udebdir}/usr @@ -255,15 +424,18 @@ install-udeb: build -a ! -name mke2fs -a ! -name tune2fs \ -a ! -name resize2fs -a ! -name badblocks -print | xargs rm - (cd ${udebdir}/sbin; ln -s e2fsck fsck.ext2 ; \ - ln -s e2fsck fsck.ext3 ; ln -s mke2fs mkfs.ext2 ; \ - ln -s mke2fs mkfs.ext3) + (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) +ifneq ($(UTIL_LINUX_NG),yes) mkdir -p ${blkidudebdir}/lib mv ${udebdir}/lib/libblkid.* ${blkidudebdir}/lib mkdir -p ${uuidudebdir}/lib mv ${udebdir}/lib/libuuid.* ${uuidudebdir}/lib +endif binary-indep: # no arch-independant debs. @@ -276,25 +448,18 @@ binary-arch: install install-udeb # lintian overrides for i in $$(cd debian && echo *.lintian-overrides); do \ pkg=$${i%.lintian-overrides} ;\ - $(INSTALL) -m 0644 -D -p debian/$$i ${debdir}/$${pkg}/usr/share/lintian/overrides/$${pkg} ;\ + if test "$${pkg}" != source ; then \ + $(INSTALL) -m 0644 -D -p debian/$$i ${debdir}/$${pkg}/usr/share/lintian/overrides/$${pkg} ;\ + fi ;\ done - # mkinitrd script - mkdir -p debian/e2fsprogs/usr/share/initrd-tools/scripts - $(INSTALL) -p -o root -g root -m 0755 debian/initrd-tools.e2fsprogs \ - debian/e2fsprogs/usr/share/initrd-tools/scripts/e2fsprogs - - # initrd script - mkdir -p debian/e2fsprogs/usr/share/e2fsprogs - $(INSTALL) -p -o root -g root -m 0755 debian/initrd.ext3-add-journal \ - debian/e2fsprogs/usr/share/e2fsprogs/initrd.ext3-add-journal - - # symlinks to prepare dh_installdocs run +ifneq ($(UTIL_LINUX_NG),yes) mkdir -p ${debdir}/libblkid${BLKID_SOVERSION}/usr/share/doc/libblkid${BLKID_SOVERSION} mkdir -p ${debdir}/libblkid-dev/usr/share/doc ln -sf libblkid${BLKID_SOVERSION} ${debdir}/libblkid-dev/usr/share/doc/libblkid-dev +endif mkdir -p ${debdir}/libss${SS_SOVERSION}/usr/share/doc/libss${SS_SOVERSION} mkdir -p ${debdir}/ss-dev/usr/share/doc @@ -304,25 +469,29 @@ binary-arch: install install-udeb mkdir -p ${debdir}/comerr-dev/usr/share/doc ln -sf libcomerr${COMERR_SOVERSION} ${debdir}/comerr-dev/usr/share/doc/comerr-dev +ifneq ($(UTIL_LINUX_NG),yes) mkdir -p ${debdir}/libuuid${UUID_SOVERSION}/usr/share/doc/libuuid${UUID_SOVERSION} mkdir -p ${debdir}/uuid-dev/usr/share/doc # ln -sf libuuid${UUID_SOVERSION} ${debdir}/uuid-dev/usr/share/doc/uuid-dev +endif mkdir -p ${debdir}/e2fslibs/usr/share/doc/e2fslibs mkdir -p ${debdir}/e2fslibs-dev/usr/share/doc ln -sf e2fslibs ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs-dev +ifneq ($(UTIL_LINUX_NG),yes) $(INSTALL) -p -m 0644 debian/libblkid.copyright \ ${debdir}/libblkid${BLKID_SOVERSION}/usr/share/doc/libblkid${BLKID_SOVERSION}/copyright +endif dh_installdocs -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb # HTML docs $(INSTALL) -d ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs/html-info/ - $(INSTALL) -p -m 0644 ${stdbuilddir}/doc/libext2fs/*.html \ + $(INSTALL) -p -m 0644 ${stdbuilddir}/doc/*.html \ ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs/html-info/ $(INSTALL) -d ${debdir}/comerr-dev/usr/share/doc/libcomerr${COMERR_SOVERSION}/html-info/ - $(INSTALL) -p -m 0644 ${stdbuilddir}/lib/et/com_err/*.html \ + $(INSTALL) -p -m 0644 ${stdbuilddir}/lib/et/*.html \ ${debdir}/comerr-dev/usr/share/doc/libcomerr${COMERR_SOVERSION}/html-info/ # texinfo docs @@ -340,39 +509,125 @@ binary-arch: install install-udeb $(INSTALL) -p -m 0644 debugfs/debug_cmds.ct \ ${debdir}/ss-dev/usr/share/doc/libss${SS_SOVERSION}/examples - $(INSTALL) -d ${debdir}/uuid-dev/usr/share/doc/libuuid${UUID_SOVERSION} - if test -f /etc/lsb-release && \ - grep -q DISTRIB_ID=Ubuntu /etc/lsb-release; then \ - $(INSTALL) -p -m 0644 doc/draft-leach-uuids-guids-01.txt \ - ${debdir}/uuid-dev/usr/share/doc/libuuid${UUID_SOVERSION}; \ - fi - dh_installinfo -pcomerr-dev ${stdbuilddir}/lib/et/com_err.info dh_installinfo -pe2fslibs-dev ${stdbuilddir}/doc/libext2fs.info DH_OPTIONS= dh_installchangelogs -pe2fsprogs \ - -plibblkid${BLKID_SOVERSION} -plibcomerr${COMERR_SOVERSION} \ - -plibss${SS_SOVERSION} -plibuuid${UUID_SOVERSION} \ - -pe2fslibs -puuid-dev -pe2fsck-static + -plibcomerr${COMERR_SOVERSION} \ + -plibss${SS_SOVERSION} \ + -pe2fslibs -pe2fsck-static \ + -pe2fsprogs-dbg -pe2fslibs-dbg \ + -plibcomerr2-dbg -plibss2-dbg +ifneq ($(UTIL_LINUX_NG),yes) + DH_OPTIONS= dh_installchangelogs -plibuuid${UUID_SOVERSION} \ + -puuid-dev -puuid-runtime -puuid-runtime-dbg -plibuuid1-dbg \ + -plibblkid${BLKID_SOVERSION} -plibblkid1-dbg +endif + dh_fixperms ifneq ($(ismips),) - dh_strip -Xlib64ext2fs-nopic.a + dh_strip -k -Xlib64ext2fs-nopic.a else - dh_strip + dh_strip -k +endif + + # debug package stuff + rm -rf ${udebdir}/usr +ifneq ($(UTIL_LINUX_NG),yes) + rm -rf ${blkidudebdir}/usr + rm -rf ${uuidudebdir}/usr +endif + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + mkdir -p ${debugdir}/$(USRLIB) + mv ${maindir}/usr/lib/debug ${debugdir}/$(USRLIB) + rm -rf ${maindir}/usr/lib/debug + mv ${e2fsckstaticdir}/usr/lib/debug/sbin/* \ + ${debugdir}/$(USRLIB)/debug + rm -rf ${e2fsckstaticdir}/usr/lib + +ifneq ($(UTIL_LINUX_NG),yes) + mkdir -p ${uuidruntimedbgdir}/$(USRLIB) + mv ${uuidruntimedir}/usr/lib/debug ${uuidruntimedbgdir}/$(USRLIB) + rmdir ${uuidruntimedir}/usr/lib +endif + + mkdir -p ${libext2dbgdir}/$(USRLIB) + mv ${libext2dir}/usr/lib/debug ${libext2dbgdir}/$(USRLIB) + rmdir ${libext2dir}/usr/lib + + mkdir -p ${libcomerrdbgdir}/$(USRLIB) + mv ${libcomerrdir}/usr/lib/debug ${libcomerrdbgdir}/$(USRLIB) + rmdir ${libcomerrdir}/usr/lib + + mkdir -p ${libssdbgdir}/$(USRLIB) + mv ${libssdir}/usr/lib/debug ${libssdbgdir}/$(USRLIB) + rmdir ${libssdir}/usr/lib + +ifneq ($(UTIL_LINUX_NG),yes) + mkdir -p ${libuuiddbgdir}/$(USRLIB) + mv ${libuuiddir}/usr/lib/debug ${libuuiddbgdir}/$(USRLIB) + rmdir ${libuuiddir}/usr/lib + + mkdir -p ${libblkiddbgdir}/$(USRLIB) + mv ${libblkiddir}/usr/lib/debug ${libblkiddbgdir}/$(USRLIB) + rmdir ${libblkiddir}/usr/lib +endif +endif + + # dpkg symbol handling +ifneq (,$(findstring update-symbols,$(DEB_BUILD_OPTIONS))) +SYMBOL_LIBS := e2fslibs libcomerr2 libss2 +ifneq ($(UTIL_LINUX_NG),yes) +SYMBOL_LIBS += libblkid1 libuuid1 +endif + 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 +endif + + for i in e2fsprogs e2fsprogs-dbg e2fslibs e2fslibs-dbg; do \ + $(INSTALL) -p -m 0644 debian/copyright \ + ${debdir}/$$i/usr/share/doc/$$i/copyright; \ + done + +ifneq ($(UTIL_LINUX_NG),yes) + $(INSTALL) -p -m 0644 debian/uuid-runtime.copyright \ + ${uuidruntimedbgdir}/usr/share/doc/uuid-runtime-dbg/copyright +endif + + $(INSTALL) -p -m 0644 debian/libcomerr2.copyright \ + ${libcomerrdbgdir}/usr/share/doc/libcomerr2-dbg/copyright + + $(INSTALL) -p -m 0644 debian/libss2.copyright \ + ${libssdbgdir}/usr/share/doc/libss2-dbg/copyright + +ifneq ($(UTIL_LINUX_NG),yes) + $(INSTALL) -p -m 0644 debian/libblkid.copyright \ + ${libblkiddbgdir}/usr/share/doc/libblkid1-dbg/copyright + + $(INSTALL) -p -m 0644 debian/libuuid1.copyright \ + ${libuuiddbgdir}/usr/share/doc/libuuid1-dbg/copyright endif dh_compress - dh_fixperms dh_makeshlibs -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb - dh_makeshlibs -plibcomerr${COMERR_SOVERSION} \ + dh_makeshlibs --add-udeb=e2fsprogs-udeb -plibcomerr${COMERR_SOVERSION} \ -V 'libcomerr2 (>= 1.33-3)' +ifneq ($(UTIL_LINUX_NG),yes) + dh_makeshlibs -plibblkid${BLKID_SOVERSION} -V 'libblkid1 (>= 1.39-1)' echo "udeb: libblkid 1 libblkid1-udeb" >> \ debian/libblkid1/DEBIAN/shlibs echo "udeb: libuuid 1 libuuid1-udeb" >> debian/libuuid1/DEBIAN/shlibs +endif dh_installdeb - rm debian/e2fsprogs-udeb/DEBIAN/conffiles dh_shlibdeps -l${stdbuilddir}/lib dh_shlibdeps -pe2fsprogs -l${stdbuilddir}/lib \ -u"-Ldebian/e2fsprogs.shlibs.local" @@ -382,28 +637,38 @@ endif dh_gencontrol -Ncomerr-dev -Nss-dev -Nuuid-dev \ -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb DH_OPTIONS= dh_gencontrol -pcomerr-dev \ - -u '-v${COMERR_VERSION}-${MAIN_VERSION}' + -u '-v${COMERR_VERSION}-${MAIN_VERSION} -VmainBinary=${MAIN_VERSION}' DH_OPTIONS= dh_gencontrol -pss-dev \ - -u '-v${SS_VERSION}-${MAIN_VERSION}' + -u '-v${SS_VERSION}-${MAIN_VERSION} -VmainBinary=${MAIN_VERSION}' +ifneq ($(UTIL_LINUX_NG),yes) DH_OPTIONS= dh_gencontrol -puuid-dev \ - -u '-v${UUID_VERSION}-${MAIN_VERSION}' + -u '-v${UUID_VERSION}-${MAIN_VERSION} -VmainBinary=${MAIN_VERSION}' +endif + dh_gencontrol -pe2fsprogs-udeb -- -fdebian/files~ +ifneq ($(UTIL_LINUX_NG),yes) + dh_gencontrol -plibblkid1-udeb -- -fdebian/files~ + dh_gencontrol -plibuuid1-udeb -- -fdebian/files~ +endif + dpkg-distaddfile $(UDEB_NAME) debian-installer $(UDEB_PRIORITY) +ifneq ($(UTIL_LINUX_NG),yes) + dpkg-distaddfile $(BLKID_UDEB_NAME) debian-installer $(BLKID_UDEB_PRIORITY) + dpkg-distaddfile $(UUID_UDEB_NAME) debian-installer $(UUID_UDEB_PRIORITY) +endif dh_md5sums -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb dh_builddeb -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb - - # udeb stuff - dh_gencontrol -pe2fsprogs-udeb -- -fdebian/files~ - dpkg-distaddfile $(UDEB_NAME) debian-installer $(UDEB_PRIORITY) dh_builddeb -pe2fsprogs-udeb --filename=$(UDEB_NAME) - - dh_gencontrol -plibblkid1-udeb -- -fdebian/files~ - dpkg-distaddfile $(BLKID_UDEB_NAME) debian-installer $(BLKID_UDEB_PRIORITY) +ifneq ($(UTIL_LINUX_NG),yes) dh_builddeb -plibblkid1-udeb --filename=$(BLKID_UDEB_NAME) - - dh_gencontrol -plibuuid1-udeb -- -fdebian/files~ - dpkg-distaddfile $(UUID_UDEB_NAME) debian-installer $(UUID_UDEB_PRIORITY) dh_builddeb -plibuuid1-udeb --filename=$(UUID_UDEB_NAME) +endif binary: binary-indep binary-arch -.PHONY: binary binary-arch binary-indep clean checkroot +.PHONY: binary binary-arch binary-indep clean checkroot mrproper \ + debug_flags debian-files + +debug_flags: + @echo CFLAGS is $(CFLAGS) + @echo LDFLAGS is $(LDFLAGS) + @echo CPPFLAGS is $(CPPFLAGS)