]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blob - debian/rules
6e371264a4c7676bb37b71b7c14ce321ec4896bf
[thirdparty/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 ifneq ($(filter pkg.e2fsprogs.no-fuse2fs,$(DEB_BUILD_PROFILES)),)
18 SKIP_FUSE2FS=yes
19 endif
20
21 COMERR_VERSION ?= $(shell grep ELF_VERSION lib/et/Makefile.in | cut '-d ' -f3)
22 SS_VERSION ?= $(shell grep ELF_VERSION lib/ss/Makefile.in | cut '-d ' -f3)
23
24 topdir ?= $(shell pwd)
25 tmpdir ?= ${topdir}/debian/tmp
26 udebdir ?= ${topdir}/debian/e2fsprogs-udeb
27 stdbuilddir ?= ${topdir}/debian/BUILD-STD
28
29 INSTALL ?= install
30 INSTALL_PROGRAM ?= $(INSTALL) -p -o root -g root -m 0755
31
32 ifneq (,$(findstring update-symbols,$(DEB_BUILD_OPTIONS)))
33 SYMBOL_LIBS := libext2fs libcomerr2 libss2
34 endif
35
36 ifeq (${DEB_HOST_ARCH},alpha)
37 CFLAGS += -DHAVE_NETINET_IN_H
38 else
39 CFLAGS += -D__NO_STRING_INLINES
40 endif
41
42 CFLAGS_SHLIB = $(CFLAGS)
43 CFLAGS_STLIB = $(CFLAGS)
44 LDFLAGS_SHLIB = $(LDFLAGS)
45 LDFLAGS_STATIC = $(filter-out -fPIE -fpie -pie,$(LDFLAGS))
46
47 BACKTRACE_CONF_FLAGS ?= $(shell if debian/scripts/test-backtrace ; then echo --disable-backtrace ; fi)
48
49 COMMON_CONF_FLAGS = --enable-elf-shlibs --enable-lto --disable-ubsan \
50 --disable-addrsan --disable-threadsan --disable-e2initrd-helper \
51 --disable-fsck --disable-libblkid --disable-libuuid --disable-uuidd \
52 --infodir=/usr/share/info --enable-symlink-install \
53 --with-multiarch=$(DEB_HOST_MULTIARCH) \
54 $(BACKTRACE_CONF_FLAGS) ${EXTRA_CONF_FLAGS}
55
56 ifneq ($(SKIP_FUSE2FS),)
57 COMMON_CONF_FLAGS += --disable-fuse2fs
58 endif
59
60 ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
61 CC ?= $(DEB_HOST_GNU_TYPE)-gcc
62 COMMON_CONF_FLAGS += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
63 endif
64
65 %:
66 dh $@ -B${stdbuilddir}
67
68 override_dh_autoreconf:
69
70 override_dh_auto_configure:
71 mkdir -p ${stdbuilddir}
72 cd ${stdbuilddir} && AWK=/usr/bin/awk \
73 ../../configure ${COMMON_CONF_FLAGS}
74
75 override_dh_auto_build:
76 $(MAKE) -C ${stdbuilddir} V=1 all
77 $(MAKE) -C ${stdbuilddir}/e2fsck V=1 e2fsck.static
78 if ! test -d debian/orig-gmo ; then \
79 mkdir debian/orig-gmo ; \
80 mv po/*.gmo po/*.po debian/orig-gmo ; \
81 cp debian/orig-gmo/*.po po ; \
82 fi
83 $(MAKE) -C ${stdbuilddir}/po V=1 update-gmo
84
85 $(MAKE) -C ${stdbuilddir}/doc V=1 libext2fs.html
86 $(MAKE) -C ${stdbuilddir}/lib/et V=1 com_err.info com_err.html
87 cat $(shell /bin/ls -1 ./doc/RelNotes/*.txt | tac) | \
88 gzip -9n > ${stdbuilddir}/NEWS.gz
89
90 override_dh_auto_clean:
91 if test -d debian/orig-gmo ; then \
92 rm -f po/*.gmo po/*.po ; \
93 mv debian/orig-gmo/* po ; \
94 rmdir debian/orig-gmo ; \
95 fi
96 rm -rf ${stdbuilddir}
97
98 override_dh_auto_install:
99 mkdir -p ${tmpdir}/sbin
100 $(MAKE) -C ${stdbuilddir} V=1 install DESTDIR=${tmpdir} \
101 INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
102 # static libs and .h files
103 $(MAKE) -C ${stdbuilddir} V=1 install-libs DESTDIR=${tmpdir} LDCONFIG=true
104
105 # statically-linked fsck
106 ${INSTALL_PROGRAM} ${stdbuilddir}/e2fsck/e2fsck.static ${tmpdir}/sbin
107 (cd debian/tmp/usr/share/man/man8 ; cp e2fsck.8 e2fsck.static.8)
108
109 ifeq ($(DEB_HOST_ARCH_OS), hurd)
110 ${INSTALL} -m 0644 misc/mke2fs-hurd.conf ${tmpdir}/etc/mke2fs.conf
111 endif
112
113 # install for e2fsprogs-udeb
114 $(MAKE) -C ${stdbuilddir} V=1 install-shlibs-libs-recursive DESTDIR=${udebdir} \
115 INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
116 $(MAKE) -C ${stdbuilddir}/e2fsck V=1 install DESTDIR=${udebdir} \
117 INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
118 $(MAKE) -C ${stdbuilddir}/misc V=1 install DESTDIR=${udebdir} \
119 INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
120 $(MAKE) -C ${stdbuilddir}/resize V=1 install DESTDIR=${udebdir} \
121 INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
122
123 rm -rf ${udebdir}/usr
124 find ${udebdir}/sbin -type f -a ! -name e2fsck \
125 -a ! -name mke2fs -a ! -name tune2fs \
126 -a ! -name resize2fs -a ! -name badblocks -print | xargs rm
127
128 (cd ${udebdir}/sbin; ln -sf e2fsck fsck.ext2 ; \
129 ln -sf e2fsck fsck.ext3 ; ln -sf e2fsck fsck.ext4 ; \
130 ln -sf mke2fs mkfs.ext2 ; ln -sf mke2fs mkfs.ext3 ; \
131 ln -sf mke2fs mkfs.ext4)
132
133 override_dh_install:
134 dh_install -p e2fsprogs --sourcedir=${stdbuilddir} NEWS.gz \
135 usr/share/doc/e2fsprogs
136 dh_movefiles
137 test -z "`find ${tmpdir} -type f`"
138
139 override_dh_lintian:
140 dh_lintian
141 $(INSTALL) -D -p -m644 debian/e2fsprogs-udeb.lintian-overrides \
142 debian/e2fsprogs-udeb/usr/share/lintian/overrides/e2fsprogs-udeb
143
144 override_dh_installinfo:
145 # HTML docs
146 $(INSTALL) -d debian/libext2fs-dev/usr/share/doc/libext2fs2/html-info/
147 $(INSTALL) -p -m 0644 ${stdbuilddir}/doc/*.html \
148 debian/libext2fs-dev/usr/share/doc/libext2fs2/html-info/
149 $(INSTALL) -d debian/comerr-dev/usr/share/doc/comerr-dev/html-info/
150 $(INSTALL) -p -m 0644 ${stdbuilddir}/lib/et/*.html \
151 debian/comerr-dev/usr/share/doc/comerr-dev/html-info/
152
153 # texinfo docs
154 mkdir -p debian/comerr-dev/usr/share/doc/comerr-dev
155 $(INSTALL) -p -m 0644 ${topdir}/doc/libext2fs.texinfo \
156 debian/libext2fs-dev/usr/share/doc/libext2fs2/libext2fs.texi
157 $(INSTALL) -p -m 0644 ${topdir}/lib/et/com_err.texinfo \
158 debian/comerr-dev/usr/share/doc/comerr-dev/com_err.texi
159
160 $(INSTALL) -d debian/comerr-dev/usr/share/doc/comerr-dev/examples
161 $(INSTALL) -p -m 0644 lib/ss/ss_err.et \
162 ${stdbuilddir}/lib/ext2fs/ext2_err.et \
163 debian/comerr-dev/usr/share/doc/comerr-dev/examples
164 $(INSTALL) -d debian/ss-dev/usr/share/doc/ss-dev/examples
165 $(INSTALL) -p -m 0644 debugfs/debug_cmds.ct \
166 debian/ss-dev/usr/share/doc/ss-dev/examples
167
168 dh_installinfo -pcomerr-dev ${stdbuilddir}/lib/et/com_err.info
169 dh_installinfo -plibext2fs-dev ${stdbuilddir}/doc/libext2fs.info
170
171 override_dh_makeshlibs:
172 for i in $(SYMBOL_LIBS); \
173 do \
174 echo "Generating symbols for $$i..."; \
175 dpkg-gensymbols -p$$i -Pdebian/$$i > debian/$$i.tmp-patch; \
176 cat debian/$$i.tmp-patch; \
177 patch debian/$$i.symbols < debian/$$i.tmp-patch; \
178 /bin/rm debian/$$i.tmp-patch; \
179 done
180 dh_makeshlibs --add-udeb=e2fsprogs-udeb
181
182 override_dh_shlibdeps:
183 dh_shlibdeps -pe2fsprogs -l${stdbuilddir}/lib \
184 -- -Ldebian/e2fsprogs.shlibs.local
185 dh_shlibdeps -pe2fsprogs-udeb -l${stdbuilddir}/lib \
186 -- -Ldebian/e2fsprogs-udeb.shlibs.local
187 ifeq ($(SKIP_FUSE2FS),)
188 dh_shlibdeps -pfuse2fs -l${stdbuilddir}/lib \
189 -- -Ldebian/e2fsprogs.shlibs.local
190 endif
191 dh_shlibdeps --remaining-packages -l${stdbuilddir}/lib
192
193 override_dh_gencontrol:
194 dh_gencontrol -pcomerr-dev \
195 -- -v${COMERR_VERSION}-${DEB_VERSION} -VmainBinary=${DEB_VERSION}
196 dh_gencontrol -pss-dev \
197 -- -v${SS_VERSION}-${DEB_VERSION} -VmainBinary=${DEB_VERSION}
198 dh_gencontrol --remaining-packages
199
200 test_printenv:
201 printenv | sort