Whamcloud - gitweb
debian: don't try to install e2scrub on Hurd
[tools/e2fsprogs.git] / debian / rules
1 #! /usr/bin/make -f
2
3 # export DH_VERBOSE=1
4
5 export DEB_BUILD_MAINT_OPTIONS ?= hardening=+all
6
7 DPKG_EXPORT_BUILDFLAGS = 1
8 include /usr/share/dpkg/default.mk
9
10 # be paranoid
11 export LC_ALL ?= C
12
13 ifeq ($(DEB_HOST_ARCH_OS), hurd)
14 SKIP_FUSE2FS=yes
15 endif
16
17 ifeq ($(DEB_HOST_ARCH_OS), linux)
18 export deb_systemdsystemunitdir = $(shell pkg-config --variable=systemdsystemunitdir systemd | sed s,^/,,)
19 export deb_udevudevdir = $(shell pkg-config pkg-config --variable=udevdir udev | sed s,^/,,)
20 endif
21
22 ifneq ($(filter pkg.e2fsprogs.no-fuse2fs,$(DEB_BUILD_PROFILES)),)
23 SKIP_FUSE2FS=yes
24 endif
25
26 COMERR_VERSION ?= $(shell grep ELF_VERSION lib/et/Makefile.in | cut '-d ' -f3)
27 SS_VERSION ?= $(shell grep ELF_VERSION lib/ss/Makefile.in | cut '-d ' -f3)
28
29 topdir          ?= $(shell pwd)
30 tmpdir          ?= ${topdir}/debian/tmp
31 udebdir         ?= ${topdir}/debian/e2fsprogs-udeb
32 stdbuilddir     ?= ${topdir}/debian/BUILD-STD
33
34 INSTALL ?= install
35 INSTALL_PROGRAM ?= $(INSTALL) -p -m 0755
36
37 ifneq (,$(findstring update-symbols,$(DEB_BUILD_OPTIONS)))
38 SYMBOL_LIBS := libext2fst64 libcomerr2 libss2
39 endif
40
41 CFLAGS_SHLIB = $(CFLAGS)
42 CFLAGS_STLIB = $(CFLAGS)
43 LDFLAGS_SHLIB = $(LDFLAGS)
44 LDFLAGS_STATIC = $(filter-out -fPIE -fpie -pie,$(LDFLAGS))
45
46 BACKTRACE_CONF_FLAGS ?= $(shell if debian/scripts/test-backtrace ; then echo --disable-backtrace ; fi)
47
48 COMMON_CONF_FLAGS = --enable-elf-shlibs --disable-ubsan \
49         --disable-addrsan --disable-threadsan --disable-e2initrd-helper \
50         --disable-fsck --disable-libblkid --disable-libuuid --disable-uuidd \
51         --infodir=/usr/share/info  --enable-symlink-install \
52         --with-multiarch=$(DEB_HOST_MULTIARCH) \
53         $(BACKTRACE_CONF_FLAGS) ${EXTRA_CONF_FLAGS}
54
55 ifneq ($(SKIP_FUSE2FS),)
56 COMMON_CONF_FLAGS +=  --disable-fuse2fs
57 endif
58
59 ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
60 CC ?= $(DEB_HOST_GNU_TYPE)-gcc
61 COMMON_CONF_FLAGS += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
62 endif
63
64 %:
65         dh $@ -B${stdbuilddir}
66
67 override_dh_autoreconf:
68
69 override_dh_auto_configure:
70         mkdir -p ${stdbuilddir}
71         cd ${stdbuilddir} && AWK=/usr/bin/awk \
72                 ../../configure ${COMMON_CONF_FLAGS}
73
74 override_dh_auto_build:
75         $(MAKE) -C ${stdbuilddir} V=1 all
76 ifeq (,$(filter pkg.e2fsprogs.no-static,$(DEB_BUILD_PROFILES)))
77         $(MAKE) -C ${stdbuilddir}/e2fsck V=1 e2fsck.static
78 endif
79         if ! test -d debian/orig-gmo ; then \
80                 mkdir debian/orig-gmo ; \
81                 mv po/*.gmo po/*.po debian/orig-gmo ; \
82                 cp debian/orig-gmo/*.po po ; \
83         fi
84         $(MAKE) -C ${stdbuilddir}/po V=1 update-gmo
85
86         $(MAKE) -C ${stdbuilddir}/doc V=1 libext2fs.html
87         $(MAKE) -C ${stdbuilddir}/lib/et V=1 com_err.info com_err.html
88         cat $(shell /bin/ls -1 ./doc/RelNotes/*.txt | tac) | \
89                 gzip -9n > ${stdbuilddir}/NEWS.gz
90
91 override_dh_auto_clean:
92         if test -d debian/orig-gmo ; then \
93                 rm -f po/*.gmo po/*.po ; \
94                 mv debian/orig-gmo/* po ; \
95                 rmdir debian/orig-gmo ; \
96         fi
97         rm -rf ${stdbuilddir}
98
99 override_dh_auto_install:
100         mkdir -p ${tmpdir}/sbin
101         $(MAKE) -C ${stdbuilddir} V=1 install DESTDIR=${tmpdir} \
102                 INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
103   # static libs and .h files
104         $(MAKE) -C ${stdbuilddir} V=1 install-libs DESTDIR=${tmpdir} LDCONFIG=true
105
106 ifeq (,$(filter pkg.e2fsprogs.no-static,$(DEB_BUILD_PROFILES)))
107   # statically-linked fsck
108         ${INSTALL_PROGRAM} ${stdbuilddir}/e2fsck/e2fsck.static ${tmpdir}/sbin
109         (cd debian/tmp/usr/share/man/man8 ; cp e2fsck.8 e2fsck.static.8)
110 endif
111
112 ifeq ($(DEB_HOST_ARCH_OS), hurd)
113         ${INSTALL} -m 0644 misc/mke2fs-hurd.conf ${tmpdir}/etc/mke2fs.conf
114 endif
115
116 override_dh_install:
117         dh_install -p e2fsprogs --sourcedir=${stdbuilddir} NEWS.gz \
118                 usr/share/doc/e2fsprogs
119         dh_install
120         dh_missing --fail-missing
121
122 ifeq (,$(filter noudeb,$(DEB_BUILD_PROFILES)))
123 override_dh_lintian:
124         dh_lintian
125         $(INSTALL) -D -p -m644 debian/e2fsprogs-udeb.lintian-overrides \
126             debian/e2fsprogs-udeb/usr/share/lintian/overrides/e2fsprogs-udeb
127 endif
128
129 override_dh_installinfo:
130   # HTML docs
131         $(INSTALL) -d debian/libext2fs-dev/usr/share/doc/libext2fs2/html-info/
132         $(INSTALL) -p -m 0644 ${stdbuilddir}/doc/*.html \
133            debian/libext2fs-dev/usr/share/doc/libext2fs2/html-info/
134         $(INSTALL) -d debian/comerr-dev/usr/share/doc/comerr-dev/html-info/
135         $(INSTALL) -p -m 0644 ${stdbuilddir}/lib/et/*.html \
136            debian/comerr-dev/usr/share/doc/comerr-dev/html-info/
137
138   # texinfo docs
139         mkdir -p debian/comerr-dev/usr/share/doc/comerr-dev
140         $(INSTALL) -p -m 0644 ${topdir}/doc/libext2fs.texinfo \
141            debian/libext2fs-dev/usr/share/doc/libext2fs2/libext2fs.texi
142         $(INSTALL) -p -m 0644 ${topdir}/lib/et/com_err.texinfo \
143            debian/comerr-dev/usr/share/doc/comerr-dev/com_err.texi
144
145         $(INSTALL) -d debian/comerr-dev/usr/share/doc/comerr-dev/examples
146         $(INSTALL) -p -m 0644 lib/ss/ss_err.et \
147                 ${stdbuilddir}/lib/ext2fs/ext2_err.et \
148                 debian/comerr-dev/usr/share/doc/comerr-dev/examples
149         $(INSTALL) -d debian/ss-dev/usr/share/doc/ss-dev/examples
150         $(INSTALL) -p -m 0644 debugfs/debug_cmds.ct \
151                 debian/ss-dev/usr/share/doc/ss-dev/examples
152
153         dh_installinfo -pcomerr-dev ${stdbuilddir}/lib/et/com_err.info
154         dh_installinfo -plibext2fs-dev ${stdbuilddir}/doc/libext2fs.info
155
156 ifneq ($(DEB_HOST_ARCH_OS), hurd)
157 override_dh_installsystemd:
158         dh_installsystemd -p e2fsprogs --no-restart-after-upgrade --no-stop-on-upgrade e2scrub_all.timer e2scrub_reap.service
159 endif
160
161 override_dh_makeshlibs:
162         for i in $(SYMBOL_LIBS); \
163         do \
164                 echo "Generating symbols for $$i..."; \
165                 dpkg-gensymbols -p$$i -Pdebian/$$i > debian/$$i.tmp-patch; \
166                 cat debian/$$i.tmp-patch; \
167                 patch debian/$$i.symbols < debian/$$i.tmp-patch; \
168                 /bin/rm debian/$$i.tmp-patch; \
169         done
170         dh_makeshlibs $(if $(filter noudeb,$(DEB_BUILD_PROFILES)),,--add-udeb=e2fsprogs-udeb)
171
172 override_dh_shlibdeps:
173         dh_shlibdeps -pe2fsprogs -l${stdbuilddir}/lib \
174                 -- -Ldebian/e2fsprogs.shlibs.local
175 ifeq (,$(filter noudeb,$(DEB_BUILD_PROFILES)))
176         dh_shlibdeps -pe2fsprogs-udeb -l${stdbuilddir}/lib \
177                 -- -Ldebian/e2fsprogs-udeb.shlibs.local
178 endif
179 ifeq ($(SKIP_FUSE2FS),)
180         dh_shlibdeps -pfuse2fs -l${stdbuilddir}/lib \
181                 -- -Ldebian/e2fsprogs.shlibs.local
182 endif
183         dh_shlibdeps --remaining-packages -l${stdbuilddir}/lib
184
185 override_dh_gencontrol:
186         dh_gencontrol -pcomerr-dev -- -v${COMERR_VERSION}-${DEB_VERSION} -VmainBinary=${DEB_VERSION}
187         dh_gencontrol -pss-dev -- -v${SS_VERSION}-${DEB_VERSION} -VmainBinary=${DEB_VERSION}
188         dh_gencontrol --remaining-packages
189
190 override_dh_auto_test:
191 ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
192         PRINT_FAILED=yes $(MAKE) -C ${stdbuilddir} V=1 check
193 endif
194
195 test_printenv:
196         printenv | sort