Whamcloud - gitweb
debian: compile without using dietlibc if SKIP_DIETLIBC=yes
[tools/e2fsprogs.git] / debian / rules
1 #! /usr/bin/make -f
2 # -*- makefile -*-
3 #
4 # Invoke each target with `./debian/rules <target>'.  All targets should be
5 # invoked with the package root as the current directory.
6 #
7 # The `binary' target must be run as root, as it needs to install files with
8 # specific ownerships.
9
10 -include debian/rules.custom
11
12 # be paranoid
13 export LC_ALL ?= C
14
15 # Allow distro-specific behaviour
16 DISTRO :=$(shell sed -ne '/DISTRIB_ID/s/.*=//p' /etc/lsb-release 2>/dev/null || echo Debian)
17 SYS_BLKID_VER := $(shell dpkg-query -W libblkid1 | cut -f 2 | cut -b 1)
18 ifeq ($(SYS_BLKID_VER),2)
19 UTIL_LINUX_NG ?= yes
20 endif
21
22 # These are used for cross-compiling and for saving the configure script
23 # from having to guess our platform (since we know it already)
24 DEB_HOST_ARCH           ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
25 DEB_BUILD_ARCH          ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
26 DEB_HOST_OS             ?= $(shell dpkg-architecture -qDEB_HOST_OS)
27 DEB_HOST_GNU_TYPE       ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
28 DEB_BUILD_GNU_TYPE      ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
29 DEB_HOST_MULTIARCH      ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null)
30
31 # find the version for the main package, from changelog file
32 MAIN_VERSION = $(shell head -n 1 debian/changelog | cut '-d ' -f 2 | sed 's/[()]//g')
33 # find versions for libraries going into their own packages, from their Makefile.in's,
34 # and sonames for all libs
35 COMERR_VERSION ?= $(shell grep ELF_VERSION lib/et/Makefile.in | cut '-d ' -f3)
36 COMERR_SOVERSION ?= $(shell grep ELF_SO_VERSION lib/et/Makefile.in | cut '-d ' -f3)
37 SS_VERSION ?= $(shell grep ELF_VERSION lib/ss/Makefile.in | cut '-d ' -f3)
38 SS_SOVERSION ?= $(shell grep ELF_SO_VERSION lib/ss/Makefile.in | cut '-d ' -f3)
39
40 ifneq ($(UTIL_LINUX_NG),yes)
41 UUID_VERSION ?= $(shell grep ELF_VERSION lib/uuid/Makefile.in | cut '-d ' -f3)
42 UUID_SOVERSION ?= $(shell grep ELF_SO_VERSION lib/uuid/Makefile.in | cut '-d ' -f3)
43
44 BLKID_VERSION ?= $(shell grep ELF_VERSION lib/blkid/Makefile.in | cut '-d ' -f3)
45 BLKID_SOVERSION ?= $(shell grep ELF_SO_VERSION lib/blkid/Makefile.in | cut '-d ' -f3)
46 endif
47
48 EXT2FS_SOVERSION ?= $(shell grep ELF_SO_VERSION lib/ext2fs/Makefile.in | cut '-d ' -f3)
49 E2P_SOVERSION ?= $(shell grep ELF_SO_VERSION lib/e2p/Makefile.in | cut '-d ' -f3)
50
51 package         ?= e2fsprogs
52
53 topdir          ?= $(shell pwd)
54 debdir          ?= ${topdir}/debian
55 tmpdir          ?= ${debdir}/tmp
56 udebdir         ?= ${debdir}/e2fsprogs-udeb
57 ifneq ($(UTIL_LINUX_NG),yes)
58 blkidudebdir    ?= ${debdir}/libblkid1-udeb
59 uuidudebdir     ?= ${debdir}/libuuid1-udeb
60 endif
61 libcomerrdir    ?= ${debdir}/libcomerr${COMERR_SOVERSION}
62 comerrdevdir    ?= ${debdir}/comerr-dev
63 libcomerrdbgdir ?= ${debdir}/libcomerr2-dbg
64 libssdir        ?= ${debdir}/libss${SS_SOVERSION}
65 ssdevdir        ?= ${debdir}/ss-dev
66 libssdbgdir     ?= ${debdir}/libss2-dbg
67 ifneq ($(UTIL_LINUX_NG),yes)
68 libblkiddir     ?= ${debdir}/libblkid${BLKID_SOVERSION}
69 libblkiddevdir  ?= ${debdir}/libblkid-dev
70 libblkiddbgdir  ?= ${debdir}/libblkid1-dbg
71 libuuiddir      ?= ${debdir}/libuuid${UUID_SOVERSION}
72 uuiddevdir      ?= ${debdir}/uuid-dev
73 libuuiddbgdir   ?= ${debdir}/libuuid1-dbg
74 uuidruntimedir  ?= ${debdir}/uuid-runtime
75 uuidruntimedbgdir ?= ${debdir}/uuid-runtime-dbg
76 endif
77 libext2dir      ?= ${debdir}/e2fslibs
78 libext2devdir   ?= ${debdir}/e2fslibs-dev
79 libext2dbgdir   ?= ${debdir}/e2fslibs-dbg
80 maindir         ?= ${debdir}/e2fsprogs
81 e2fsckstaticdir ?= ${debdir}/e2fsck-static
82 debugdir        ?= ${debdir}/e2fsprogs-dbg
83 stdbuilddir     ?= ${debdir}/BUILD-STD
84 bfbuilddir      ?= ${debdir}/BUILD-BF
85 staticbuilddir  ?= ${debdir}/BUILD-STATIC
86 mipsbuilddir    ?= ${debdir}/BUILD-MIPS
87 mipsbuilddir64  ?= ${debdir}/BUILD-MIPS-64
88 # docdir        ?= ${maindir}/usr/share/doc/${package}
89 MANDIR          ?= /usr/share/man
90 mandir          ?= ${tmpdir}${MANDIR}
91
92 UDEB_NAME       ?= $(package)-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb
93 UDEB_PRIORITY   ?= $(shell grep '^Package: e2fsprogs-udeb' debian/control.in -A 10 | grep ^Priority: | cut -d ' ' -f 2)
94
95 ifneq ($(UTIL_LINUX_NG),yes)
96 BLKID_UDEB_NAME ?= libblkid1-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb
97 BLKID_UDEB_PRIORITY ?= $(shell grep '^Package: libblkid1-udeb' debian/control.in -A 10 | grep ^Priority: | cut -d ' ' -f 2)
98
99 UUID_UDEB_NAME ?= libuuid1-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb
100 UUID_UDEB_PRIORITY ?= $(shell grep '^Package: libuuid1-udeb' debian/control.in -A 10 | grep ^Priority: | cut -d ' ' -f 2)
101 endif
102
103 STAMPSDIR       ?= debian/stampdir
104 CFGSTDSTAMP     ?= ${STAMPSDIR}/configure-std-stamp
105 CFGBFSTAMP      ?= ${STAMPSDIR}/configure-bf-stamp
106 CFGSTATICSTAMP  ?= ${STAMPSDIR}/configure-static-stamp
107 BUILDSTDSTAMP   ?= ${STAMPSDIR}/build-std-stamp
108 BUILDBFSTAMP    ?= ${STAMPSDIR}/build-bf-stamp
109 BUILDSTATICSTAMP ?=${STAMPSDIR}/build-static-stamp
110
111 INSTALL ?= install
112 INSTALL_PROGRAM ?= $(INSTALL) -p -o root -g root -m 0755
113
114 #ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
115 #INSTALL_PROGRAM += -s
116 #endif
117
118 DEFAULT_CFLAGS ?= -g -O2
119 DEFAULT_LDFLAGS ?= -Wl,-Bsymbolic-functions
120
121 CFLAGS += $(shell dpkg-buildflags --get CFLAGS)
122 LDFLAGS += $(shell dpkg-buildflags --get LDFLAGS)
123 CPPFLAGS += $(shell dpkg-buildflags --get CPPFLAGS)
124
125 ifeq (${DEB_HOST_ARCH},alpha)
126 CFLAGS += -DHAVE_NETINET_IN_H
127 else
128 CFLAGS += -D__NO_STRING_INLINES
129 endif
130
131 ifeq (${DEB_HOST_ARCH_OS},linux)
132 BUILD_STATIC = build-static
133 E2FSCK_STATIC = ${staticbuilddir}/e2fsck/e2fsck.static
134 else
135 E2FSCK_STATIC = ${stdbuilddir}/e2fsck/e2fsck.static
136 endif
137
138 BF_CFLAGS = -Os -fomit-frame-pointer
139
140 COMMON_CONF_FLAGS = --disable-e2initrd-helper --enable-elf-shlibs \
141         --enable-quota --infodir=/usr/share/info
142 ifeq ($(UTIL_LINUX_NG),yes)
143 COMMON_CONF_FLAGS += --disable-fsck --disable-libblkid \
144                         --disable-libuuid --disable-uuidd
145 else
146 COMMON_CONF_FLAGS += --enable-fsck
147 endif
148
149 ifneq ($(strip $(DEB_HOST_MULTIARCH)),)
150 MULTIARCH_CONF ?= --with-multiarch=$(DEB_HOST_MULTIARCH)
151 # This doesn't work yet because gdb and lintian don't expect and/or
152 # don't work with /usr/lib/<triplet>/debug
153 #USRLIB = /usr/lib/$(DEB_HOST_MULTIARCH)
154 USRLIB ?= /usr/lib
155 else
156 USRLIB ?= /usr/lib
157 endif
158
159 STD_CONF_FLAGS ?= --enable-symlink-install $(MULTIARCH_CONF)
160
161 BF_CONF_FLAGS ?= --disable-nls --disable-imager --disable-testio-debug \
162         --disable-uuidd --disable-tls --disable-debugfs
163
164 STATIC_CONF_FLAGS ?= --disable-nls --disable-imager \
165         --disable-uuidd --disable-tls
166
167 MIPS_NOPIC_CONF_FLAGS ?= --disable-nls --disable-imager \
168         --disable-uuidd --disable-tls \
169         --disable-resizer # --disable-debugfs
170
171 # we can't use those flags at configure time
172 MIPS_CFLAGS ?= -G 0 -fno-pic -mno-abicalls
173 MIPS_CFLAGS_64 ?= -mabi=64 -G 0 -fno-pic -mno-abicalls
174
175 ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
176 ifneq (,$(findstring $(DEB_BUILD_ARCH),mips mipsel))
177 ismips=ismips
178 endif
179 endif
180
181 M4_ARGS=
182 ifeq ($(UTIL_LINUX_NG),yes)
183 M4_ARGS+=-DUTIL_LINUX_NG
184 else
185 M4_ARGS+=-UUTIL_LINUX_NG
186 endif
187
188 ifneq ($(strip $(DEB_HOST_MULTIARCH)),)
189 M4_ARGS+=-DDO_MULTIARCH
190 else
191 M4_ARGS+=-UDO_MULTIARCH
192 endif
193
194 ifneq ($(SKIP_DIETLIBC),)
195 M4_ARGS+=-UDIETLIBC
196 WITH_DIET_LIBC = 
197 else
198 M4_ARGS+=-DDIETLIBC
199 WITH_DIET_LIBC = --with-diet-libc 
200 endif
201
202 FILES_FIXUP= libcomerr2.files comerr-dev.files libss2.files ss-dev.files \
203         libuuid1.files uuid-dev.files libblkid1.files libblkid-dev.files \
204         e2fslibs.files e2fslibs-dev.files
205
206 debian-files: debian/control debian/e2fsprogs.shlibs.local
207 ifeq ($(strip $(DEB_HOST_MULTIARCH)),)
208         for i in $(FILES_FIXUP); do \
209                 sed -e 's;lib/\*/;lib/;' debian/$$i.in > debian/$$i; \
210         done
211 else
212         for i in $(FILES_FIXUP); do cp debian/$$i.in debian/$$i; done
213 endif
214
215 mrproper: clean
216         rm debian/control debian/e2fsprogs.shlibs.local
217
218 debian/control: debian/control.in debian/rules
219         m4 $(M4_ARGS) < debian/control.in | grep -v ^REMOVE_ME$$ > $@
220
221 debian/e2fsprogs.shlibs.local: debian/e2fsprogs.shlibs.local.in
222         m4 $(M4_ARGS) < debian/e2fsprogs.shlibs.local.in > $@
223
224 ${CFGSTDSTAMP}:
225         dh_testdir
226
227         # Make sure we don't try to rebuild the configure scripts
228         find . -name configure | xargs touch
229
230         mkdir -p ${stdbuilddir}
231 ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
232         cd ${stdbuilddir} && AWK=/usr/bin/awk \
233                 ${topdir}/configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} \
234                 CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
235 else
236         cd ${stdbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
237                 ${topdir}/configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} \
238                 --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
239                 CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
240 endif
241
242   # specially-built MIPS libs
243 ifneq ($(ismips),)
244         mkdir -p ${mipsbuilddir} ${mipsbuilddir64}
245         cd ${mipsbuilddir} && AWK=/usr/bin/awk \
246                 ${topdir}/configure ${MIPS_NOPIC_CONF_FLAGS} CFLAGS="${CFLAGS}"
247         cd ${mipsbuilddir64} && AWK=/usr/bin/awk \
248                 ${topdir}/configure ${MIPS_NOPIC_CONF_FLAGS} CFLAGS="${CFLAGS}"
249 endif
250
251         mkdir -p ${STAMPSDIR}
252         touch ${CFGSTDSTAMP}
253
254 ${CFGBFSTAMP}:
255         dh_testdir
256         rm -f config.cache
257
258         mkdir -p ${bfbuilddir}
259 ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
260         cd ${bfbuilddir} && AWK=/usr/bin/awk \
261                 ${topdir}/configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} \
262                 CFLAGS="${CFLAGS} ${BF_CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
263 else
264         cd ${bfbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
265                 ${topdir}/configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} \
266                 --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
267                 CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
268 endif
269         mkdir -p ${STAMPSDIR}
270         touch ${CFGBFSTAMP}
271
272 ${CFGSTATICSTAMP}:
273         dh_testdir
274         rm -f config.cache
275
276         mkdir -p ${staticbuilddir}
277 ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
278         if type diet > /dev/null  2>&1 ; then \
279                 cd ${staticbuilddir} && AWK=/usr/bin/awk \
280                 ${topdir}/configure ${STATIC_CONF_FLAGS} \
281                 ${WITH_DIET_LIBC} CFLAGS="${CFLAGS}"; \
282         else \
283                 cd ${staticbuilddir} && AWK=/usr/bin/awk \
284                         ${topdir}/configure ${STATIC_CONF_FLAGS} \
285                         CFLAGS="${CFLAGS}"; \
286         fi
287 else
288         cd ${staticbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
289                 ${topdir}/configure ${COMMON_CONF_FLAGS} ${STATIC_CONF_FLAGS} \
290                 --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
291                 CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
292 endif
293         mkdir -p ${STAMPSDIR}
294         touch ${CFGSTATICSTAMP}
295
296 build-arch: build
297 build-indep: build
298 build: build-std build-bf $(BUILD_STATIC)
299
300 build-std: ${BUILDSTDSTAMP}
301 ${BUILDSTDSTAMP}: ${CFGSTDSTAMP}
302         dh_testdir
303         $(MAKE) -C ${stdbuilddir} V=1 all
304         $(MAKE) -C ${stdbuilddir}/e2fsck V=1 e2fsck.static
305         $(MAKE) -C ${stdbuilddir}/po V=1 update-gmo
306
307         ( cd ${stdbuilddir}/doc && $(MAKE) V=1 libext2fs_abt.html )
308         ( cd ${stdbuilddir}/lib/et && $(MAKE) V=1 com_err.info com_err_abt.html )
309
310   # specially-built MIPS libs
311 ifneq ($(ismips),)
312         $(MAKE) -C ${mipsbuilddir}/util V=1
313         $(MAKE) -C ${mipsbuilddir} V=1 \
314                 CFLAGS="${CFLAGS} ${MIPS_CFLAGS}" \
315                 LIB_SUBDIRS="lib/et lib/ext2fs" libs
316         $(MAKE) -C ${mipsbuilddir64}/util V=1
317         $(MAKE) -C ${mipsbuilddir64} V=1 \
318                 CFLAGS="${CFLAGS} ${MIPS_CFLAGS_64}" \
319                 LIB_SUBDIRS="lib/et lib/ext2fs" libs
320 endif
321
322         touch ${BUILDSTDSTAMP}
323
324 build-bf: ${BUILDBFSTAMP}
325 ${BUILDBFSTAMP}: ${CFGBFSTAMP}
326         dh_testdir
327         $(MAKE) -C ${bfbuilddir} V=1 libs
328         $(MAKE) -C ${bfbuilddir}/e2fsck V=1 all
329         $(MAKE) -C ${bfbuilddir}/misc V=1 all
330         touch ${BUILDBFSTAMP}
331
332 build-static: ${BUILDSTATICSTAMP}
333 ${BUILDSTATICSTAMP}: ${CFGSTATICSTAMP}
334         dh_testdir
335         $(MAKE) -C ${staticbuilddir} V=1 libs
336         $(MAKE) -C ${staticbuilddir}/e2fsck V=1 all e2fsck.static
337         touch ${BUILDSTATICSTAMP}
338
339 clean:
340         dh_testdir
341         rm -rf ${STAMPSDIR}
342         [ ! -f ${stdbuilddir}/Makefile ] || $(MAKE) -C ${stdbuilddir} distclean
343         [ ! -f ${bfbuilddir}/Makefile ] || $(MAKE) -C ${bfbuilddir} distclean
344         [ ! -f ${staticbuilddir}/Makefile ] || $(MAKE) -C ${staticbuilddir} distclean
345         rm -rf ${stdbuilddir} ${bfbuilddir} ${staticbuilddir} ${mipsbuilddir} ${mipsbuilddir64}
346         rm -f debian/*.substvars
347         dh_clean
348
349 install: cleanup install-std
350
351 # This rule allows to factorize the dh_clean between the 2 install rules
352 # This must be launched before install-* (if launching them by hand, for
353 # exemple) or results are unpredictable
354 cleanup:
355         dh_testdir
356         dh_testroot
357         dh_prep
358
359 install-std: DH_OPTIONS=
360 install-std: build
361         dh_testdir
362         dh_testroot
363         dh_installdirs
364
365         mkdir -p ${tmpdir}/sbin
366         $(MAKE) -C ${stdbuilddir} install DESTDIR=${tmpdir} \
367                 INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
368   # static libs and .h files
369         $(MAKE) -C ${stdbuilddir} install-libs DESTDIR=${tmpdir} LDCONFIG=true
370
371   # statically-linked fsck
372         ${INSTALL_PROGRAM} $(E2FSCK_STATIC) ${tmpdir}/sbin
373         cp ${mandir}/man8/e2fsck.8 ${mandir}/man8/e2fsck.static.8
374   # remove static quota library for now
375         rm ${tmpdir}/usr/include/quota/mkquota.h
376         find ${tmpdir}/usr/lib -name quota.pc -o -name libquota.a | xargs rm
377
378 ifeq ($(DEB_BUILD_GNU_SYSTEM), gnu) 
379         ${INSTALL} -m 0644 misc/mke2fs-hurd.conf ${tmpdir}/etc/mke2fs.conf
380 endif
381
382         dh_movefiles
383         test -z "`find ${tmpdir} -type f`"
384
385   # specially-built MIPS libs
386 ifneq ($(ismips),)
387         $(INSTALL) -p -m 0644 ${mipsbuilddir}/lib/libext2fs.a \
388                 ${debdir}/e2fslibs-dev/usr/lib/libext2fs-nopic.a
389         $(INSTALL) -p -m 0644 ${mipsbuilddir64}/lib/libext2fs.a \
390                 ${debdir}/e2fslibs-dev/usr/lib/lib64ext2fs-nopic.a
391 endif
392
393 install-udeb: DH_OPTIONS=
394 install-udeb: build
395         dh_testdir
396         dh_testroot
397
398         $(MAKE) -C ${bfbuilddir} install-shlibs-libs-recursive DESTDIR=${udebdir} \
399                 INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
400         $(MAKE) -C ${bfbuilddir}/e2fsck install DESTDIR=${udebdir} \
401                 INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
402         $(MAKE) -C ${bfbuilddir}/misc install DESTDIR=${udebdir} \
403                 INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
404         $(MAKE) -C ${bfbuilddir}/resize install DESTDIR=${udebdir} \
405                 INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
406
407         rm -rf ${udebdir}/usr
408         find ${udebdir}/sbin -type f -a ! -name e2fsck \
409                 -a ! -name mke2fs -a ! -name tune2fs \
410                 -a ! -name resize2fs -a ! -name badblocks -print | xargs rm
411
412         (cd ${udebdir}/sbin; ln -s e2fsck fsck.ext2 ; \
413                 ln -s e2fsck fsck.ext3 ; ln -s e2fsck fsck.ext4 ; \
414                 ln -s mke2fs mkfs.ext2 ; ln -s mke2fs mkfs.ext3 ; \
415                 ln -s mke2fs mkfs.ext4)
416
417 ifneq ($(UTIL_LINUX_NG),yes)
418         mkdir -p ${blkidudebdir}/lib
419         mv ${udebdir}/lib/libblkid.* ${blkidudebdir}/lib
420
421         mkdir -p ${uuidudebdir}/lib
422         mv ${udebdir}/lib/libuuid.* ${uuidudebdir}/lib
423 endif
424
425 binary-indep: 
426   # no arch-independant debs.
427
428 binary-arch: DH_OPTIONS= -a
429 binary-arch: install install-udeb
430         dh_testdir
431         dh_testroot
432
433   # lintian overrides
434         for i in $$(cd debian && echo *.lintian-overrides); do \
435                 pkg=$${i%.lintian-overrides} ;\
436                 if test "$${pkg}" != source ; then \
437                         $(INSTALL) -m 0644 -D -p debian/$$i ${debdir}/$${pkg}/usr/share/lintian/overrides/$${pkg} ;\
438                 fi ;\
439         done
440
441   # symlinks to prepare dh_installdocs run
442
443 ifneq ($(UTIL_LINUX_NG),yes)
444         mkdir -p ${debdir}/libblkid${BLKID_SOVERSION}/usr/share/doc/libblkid${BLKID_SOVERSION}
445         mkdir -p ${debdir}/libblkid-dev/usr/share/doc
446         ln -sf libblkid${BLKID_SOVERSION} ${debdir}/libblkid-dev/usr/share/doc/libblkid-dev
447 endif
448
449         mkdir -p ${debdir}/libss${SS_SOVERSION}/usr/share/doc/libss${SS_SOVERSION}
450         mkdir -p ${debdir}/ss-dev/usr/share/doc
451         ln -sf libss${SS_SOVERSION} ${debdir}/ss-dev/usr/share/doc/ss-dev
452
453         mkdir -p ${debdir}/libcomerr${COMERR_SOVERSION}/usr/share/doc/libcomerr${COMERR_SOVERSION}
454         mkdir -p ${debdir}/comerr-dev/usr/share/doc
455         ln -sf libcomerr${COMERR_SOVERSION} ${debdir}/comerr-dev/usr/share/doc/comerr-dev
456
457 ifneq ($(UTIL_LINUX_NG),yes)
458         mkdir -p ${debdir}/libuuid${UUID_SOVERSION}/usr/share/doc/libuuid${UUID_SOVERSION}
459         mkdir -p ${debdir}/uuid-dev/usr/share/doc
460 #       ln -sf libuuid${UUID_SOVERSION} ${debdir}/uuid-dev/usr/share/doc/uuid-dev
461 endif
462
463         mkdir -p ${debdir}/e2fslibs/usr/share/doc/e2fslibs
464         mkdir -p ${debdir}/e2fslibs-dev/usr/share/doc
465         ln -sf e2fslibs ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs-dev
466
467 ifneq ($(UTIL_LINUX_NG),yes)
468         $(INSTALL) -p -m 0644 debian/libblkid.copyright \
469                 ${debdir}/libblkid${BLKID_SOVERSION}/usr/share/doc/libblkid${BLKID_SOVERSION}/copyright
470 endif
471
472         dh_installdocs -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
473
474   # HTML docs
475         $(INSTALL) -d ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs/html-info/
476         $(INSTALL) -p -m 0644 ${stdbuilddir}/doc/*.html \
477            ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs/html-info/
478         $(INSTALL) -d ${debdir}/comerr-dev/usr/share/doc/libcomerr${COMERR_SOVERSION}/html-info/
479         $(INSTALL) -p -m 0644 ${stdbuilddir}/lib/et/*.html \
480            ${debdir}/comerr-dev/usr/share/doc/libcomerr${COMERR_SOVERSION}/html-info/
481
482   # texinfo docs
483         mkdir -p ${debdir}/comerr-dev/usr/share/doc/libcomerr${COMERR_SOVERSION}
484         $(INSTALL) -p -m 0644 ${topdir}/doc/libext2fs.texinfo \
485            ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs/libext2fs.texi
486         $(INSTALL) -p -m 0644 ${topdir}/lib/et/com_err.texinfo \
487            ${debdir}/comerr-dev/usr/share/doc/libcomerr${COMERR_SOVERSION}/com_err.texi
488
489         $(INSTALL) -d ${debdir}/comerr-dev/usr/share/doc/libcomerr${COMERR_SOVERSION}/examples
490         $(INSTALL) -p -m 0644 lib/ss/ss_err.et \
491                 ${stdbuilddir}/lib/ext2fs/ext2_err.et \
492                 ${debdir}/comerr-dev/usr/share/doc/libcomerr${COMERR_SOVERSION}/examples
493         $(INSTALL) -d ${debdir}/ss-dev/usr/share/doc/libss${SS_SOVERSION}/examples
494         $(INSTALL) -p -m 0644 debugfs/debug_cmds.ct \
495                 ${debdir}/ss-dev/usr/share/doc/libss${SS_SOVERSION}/examples
496
497         dh_installinfo -pcomerr-dev ${stdbuilddir}/lib/et/com_err.info
498         dh_installinfo -pe2fslibs-dev ${stdbuilddir}/doc/libext2fs.info
499
500         DH_OPTIONS= dh_installchangelogs -pe2fsprogs \
501                 -plibcomerr${COMERR_SOVERSION} \
502                 -plibss${SS_SOVERSION} \
503                 -pe2fslibs -pe2fsck-static \
504                 -pe2fsprogs-dbg -pe2fslibs-dbg \
505                 -plibcomerr2-dbg -plibss2-dbg
506 ifneq ($(UTIL_LINUX_NG),yes)
507         DH_OPTIONS= dh_installchangelogs -plibuuid${UUID_SOVERSION} \
508                 -puuid-dev -puuid-runtime -puuid-runtime-dbg -plibuuid1-dbg \
509                 -plibblkid${BLKID_SOVERSION} -plibblkid1-dbg
510 endif
511
512         dh_fixperms
513 ifneq ($(ismips),)
514         dh_strip -k -Xlib64ext2fs-nopic.a
515 else
516         dh_strip -k
517 endif
518
519         # debug package stuff
520         rm -rf ${udebdir}/usr
521 ifneq ($(UTIL_LINUX_NG),yes)
522         rm -rf ${blkidudebdir}/usr
523         rm -rf ${uuidudebdir}/usr
524 endif
525
526 ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
527         mkdir -p ${debugdir}/$(USRLIB)
528         mv ${maindir}/usr/lib/debug ${debugdir}/$(USRLIB)
529         rm -rf ${maindir}/usr/lib/debug
530         mv ${e2fsckstaticdir}/usr/lib/debug/sbin/* \
531                 ${debugdir}/$(USRLIB)/debug
532         rm -rf ${e2fsckstaticdir}/usr/lib
533
534 ifneq ($(UTIL_LINUX_NG),yes)
535         mkdir -p ${uuidruntimedbgdir}/$(USRLIB)
536         mv ${uuidruntimedir}/usr/lib/debug ${uuidruntimedbgdir}/$(USRLIB)
537         rmdir ${uuidruntimedir}/usr/lib
538 endif
539
540         mkdir -p ${libext2dbgdir}/$(USRLIB)
541         mv ${libext2dir}/usr/lib/debug ${libext2dbgdir}/$(USRLIB)
542         rmdir ${libext2dir}/usr/lib
543
544         mkdir -p ${libcomerrdbgdir}/$(USRLIB)
545         mv ${libcomerrdir}/usr/lib/debug ${libcomerrdbgdir}/$(USRLIB)
546         rmdir ${libcomerrdir}/usr/lib
547
548         mkdir -p ${libssdbgdir}/$(USRLIB)
549         mv ${libssdir}/usr/lib/debug ${libssdbgdir}/$(USRLIB)
550         rmdir ${libssdir}/usr/lib
551
552 ifneq ($(UTIL_LINUX_NG),yes)
553         mkdir -p ${libuuiddbgdir}/$(USRLIB)
554         mv ${libuuiddir}/usr/lib/debug ${libuuiddbgdir}/$(USRLIB)
555         rmdir ${libuuiddir}/usr/lib
556
557         mkdir -p ${libblkiddbgdir}/$(USRLIB)
558         mv ${libblkiddir}/usr/lib/debug ${libblkiddbgdir}/$(USRLIB)
559         rmdir ${libblkiddir}/usr/lib
560 endif
561 endif
562
563         # dpkg symbol handling
564 ifneq (,$(findstring update-symbols,$(DEB_BUILD_OPTIONS)))
565 SYMBOL_LIBS := e2fslibs libcomerr2 libss2
566 ifneq ($(UTIL_LINUX_NG),yes)
567 SYMBOL_LIBS += libblkid1 libuuid1
568 endif
569         for i in $(SYMBOL_LIBS); \
570         do \
571                 echo "Generating symbols for $$i..."; \
572                 dpkg-gensymbols -p$$i -Pdebian/$$i > debian/$$i.tmp-patch; \
573                 cat debian/$$i.tmp-patch; \
574                 patch debian/$$i.symbols < debian/$$i.tmp-patch; \
575                 /bin/rm debian/$$i.tmp-patch; \
576         done
577 endif
578
579         for i in e2fsprogs e2fsprogs-dbg e2fslibs e2fslibs-dbg; do \
580            $(INSTALL) -p -m 0644 debian/copyright \
581                 ${debdir}/$$i/usr/share/doc/$$i/copyright; \
582         done
583
584 ifneq ($(UTIL_LINUX_NG),yes)
585         $(INSTALL) -p -m 0644 debian/uuid-runtime.copyright \
586                 ${uuidruntimedbgdir}/usr/share/doc/uuid-runtime-dbg/copyright
587 endif
588
589         $(INSTALL) -p -m 0644 debian/libcomerr2.copyright \
590                 ${libcomerrdbgdir}/usr/share/doc/libcomerr2-dbg/copyright
591
592         $(INSTALL) -p -m 0644 debian/libss2.copyright \
593                 ${libssdbgdir}/usr/share/doc/libss2-dbg/copyright
594
595 ifneq ($(UTIL_LINUX_NG),yes)
596         $(INSTALL) -p -m 0644 debian/libblkid.copyright \
597                 ${libblkiddbgdir}/usr/share/doc/libblkid1-dbg/copyright
598
599         $(INSTALL) -p -m 0644 debian/libuuid1.copyright \
600                 ${libuuiddbgdir}/usr/share/doc/libuuid1-dbg/copyright
601 endif
602
603         dh_compress
604
605         dh_makeshlibs -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
606         dh_makeshlibs -plibcomerr${COMERR_SOVERSION} \
607                 -V 'libcomerr2 (>= 1.33-3)'
608 ifneq ($(UTIL_LINUX_NG),yes)
609         dh_makeshlibs -plibblkid${BLKID_SOVERSION} -V 'libblkid1 (>= 1.39-1)'
610         echo "udeb: libblkid 1 libblkid1-udeb" >> \
611                 debian/libblkid1/DEBIAN/shlibs
612         echo "udeb: libuuid 1 libuuid1-udeb" >> debian/libuuid1/DEBIAN/shlibs
613 endif
614
615         dh_installdeb
616         dh_shlibdeps -l${stdbuilddir}/lib
617         dh_shlibdeps -pe2fsprogs -l${stdbuilddir}/lib \
618                 -u"-Ldebian/e2fsprogs.shlibs.local"
619         dh_shlibdeps -pe2fsprogs-udeb -l${stdbuilddir}/lib \
620                 -u"-Ldebian/e2fsprogs-udeb.shlibs.local"
621
622         dh_gencontrol -Ncomerr-dev -Nss-dev -Nuuid-dev \
623                 -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
624         DH_OPTIONS= dh_gencontrol -pcomerr-dev \
625           -u '-v${COMERR_VERSION}-${MAIN_VERSION} -VmainBinary=${MAIN_VERSION}'
626         DH_OPTIONS= dh_gencontrol -pss-dev \
627           -u '-v${SS_VERSION}-${MAIN_VERSION} -VmainBinary=${MAIN_VERSION}'
628 ifneq ($(UTIL_LINUX_NG),yes)
629         DH_OPTIONS= dh_gencontrol -puuid-dev \
630           -u '-v${UUID_VERSION}-${MAIN_VERSION} -VmainBinary=${MAIN_VERSION}'
631 endif
632         dh_gencontrol   -pe2fsprogs-udeb -- -fdebian/files~
633 ifneq ($(UTIL_LINUX_NG),yes)
634         dh_gencontrol   -plibblkid1-udeb -- -fdebian/files~
635         dh_gencontrol   -plibuuid1-udeb -- -fdebian/files~
636 endif
637
638         dpkg-distaddfile $(UDEB_NAME) debian-installer $(UDEB_PRIORITY)
639 ifneq ($(UTIL_LINUX_NG),yes)
640         dpkg-distaddfile $(BLKID_UDEB_NAME) debian-installer $(BLKID_UDEB_PRIORITY)
641         dpkg-distaddfile $(UUID_UDEB_NAME) debian-installer $(UUID_UDEB_PRIORITY)
642 endif
643         dh_md5sums -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
644         dh_builddeb -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
645         dh_builddeb -pe2fsprogs-udeb --filename=$(UDEB_NAME)
646 ifneq ($(UTIL_LINUX_NG),yes)
647         dh_builddeb -plibblkid1-udeb --filename=$(BLKID_UDEB_NAME)
648         dh_builddeb -plibuuid1-udeb --filename=$(UUID_UDEB_NAME)
649 endif
650
651 binary: binary-indep binary-arch
652
653 .PHONY: binary binary-arch binary-indep clean checkroot mrproper \
654         debug_flags debian-files
655
656 debug_flags:
657         @echo CFLAGS is $(CFLAGS)
658         @echo LDFLAGS is $(LDFLAGS)
659         @echo CPPFLAGS is $(CPPFLAGS)