Home | History | Annotate | Download | only in libs
      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 # Uncomment this to turn on verbose mode.
     11 export DH_VERBOSE=1
     12 
     13 package = e2fsprogs
     14 ARCH = $(shell dpkg --print-architecture)
     15 
     16 # find the version for the main package, from changelog file
     17 MAIN_VERSION = $(shell head -1 debian/changelog | cut '-d ' -f 2 | sed 's/[()]//g')
     18 # find versions for libraries going into their own packages, from their Makefile.in's
     19 COMERR_VERSION = $(shell grep ELF_VERSION lib/et/Makefile.in | cut '-d ' -f3)
     20 COMERR_MAJOR = $(word 1,$(subst ., ,$(COMERR_VERSION)))
     21 SS_VERSION = $(shell grep ELF_VERSION lib/ss/Makefile.in | cut '-d ' -f3)
     22 SS_MAJOR = $(word 1,$(subst ., ,$(SS_VERSION)))
     23 
     24 topdir = $(shell pwd)
     25 debdir = $(topdir)/debian
     26 maindir = $(debdir)/tmp
     27 builddir = $(topdir)/builddir
     28 docdir = $(maindir)/usr/doc/$(package)
     29 
     30 SUBPACKAGES_DIRS = tmp e2fslibsg e2fslibsg-dev comerr$(COMERR_MAJOR)g comerrg-dev \
     31 	ss$(SS_MAJOR)g ssg-dev
     32 
     33 installdoc = install -m 644
     34 installbin = install -m 755
     35 
     36 ifeq ($(ARCH),alpha)
     37 CCOPTS = -g -O2 -fsigned-char -DHAVE_NETINET_IN_H
     38 LIBC-DEV = libc6.1-dev
     39 else
     40 CCOPTS = -g -O2 -fsigned-char
     41 LIBC-DEV = libc6-dev
     42 endif
     43 
     44 build: configured
     45 	dh_testdir
     46 	make -C $(builddir)
     47 	make -C $(builddir)/misc findsuper
     48 	cd doc && texi2html -split_chapter libext2fs.texinfo
     49 	cd lib/et && texi2html -split_chapter -expandinfo com_err.texinfo
     50 	touch build
     51 
     52 configured:
     53 	dh_testdir
     54 	mkdir -p $(builddir)
     55 	cd $(builddir) && CFLAGS="$(CFLAGS)" \
     56 		../configure --enable-elf-shlibs --enable-dynamic-e2fsck \
     57 		--with-ccopts="$(CCOPTS)"
     58 	touch configured
     59 
     60 clean:
     61 	dh_testdir
     62 	rm -f build configured install
     63 	-make -C $(builddir) -i distclean
     64 	rm -rf $(builddir)
     65 	rm -f doc/libext2fs_*.html lib/et/com_err_*.html
     66 	dh_clean
     67 
     68 binary-indep: build
     69   # no arch-independant debs.
     70 
     71 binary-arch: build
     72 	dh_testversion 0.56 # == 0.53 + fixes
     73 	dh_testdir -a
     74 	dh_testroot -a
     75 	dh_clean -a -k
     76 	dh_installdirs -a
     77 
     78 	make -C $(builddir) install DESTDIR=$(maindir)
     79 	install -m 755 $(builddir)/misc/findsuper $(maindir)/sbin
     80   # static libs and .h files
     81 	make -C $(builddir) install-libs DESTDIR=$(maindir)
     82 	install -m 644 $(builddir)/lib/ss/ss_err.h $(maindir)/usr/include/ss/
     83 
     84 # fix and install compile_et script
     85 	sed s%$(topdir)/lib/et%/usr/share/comerr% \
     86 	  <$(builddir)/lib/et/compile_et \
     87 	  >$(debdir)/comerrg-dev/usr/bin/compile_et
     88 	chmod 755 $(debdir)/comerrg-dev/usr/bin/compile_et
     89 # add support files for compile_et
     90 	install -m 644 lib/et/et_c.awk lib/et/et_h.awk \
     91 	  $(debdir)/comerrg-dev/usr/share/comerr/
     92 
     93 # fix and install mk_cmds script
     94 	sed s%$(topdir)/lib/ss%/usr/share/ss% \
     95 	  <$(builddir)/lib/ss/mk_cmds \
     96 	  >$(debdir)/ssg-dev/usr/bin/mk_cmds
     97 	chmod 755 $(debdir)/ssg-dev/usr/bin/mk_cmds
     98 # add support files for mk_cmds
     99 	install -m 644 lib/ss/ct_c.awk lib/ss/ct_c.sed \
    100 	  $(debdir)/ssg-dev/usr/share/ss/
    101 
    102 # docs
    103 	mkdir -p $(debdir)/e2fslibsg-dev/usr/doc/e2fslibsg
    104 	ln -sf e2fslibsg $(debdir)/e2fslibsg-dev/usr/doc/e2fslibsg-dev
    105 	mkdir -p $(maindir)/usr/doc/e2fslibsg
    106 	ln -sf e2fslibsg $(maindir)/usr/doc/e2fsprogs
    107 	mkdir -p $(debdir)/comerrg-dev/usr/doc/comerr$(COMERR_MAJOR)g
    108 	ln -sf comerr$(COMERR_MAJOR)g $(debdir)/comerrg-dev/usr/doc/comerrg-dev
    109 	mkdir -p $(debdir)/ssg-dev/usr/doc/ss$(SS_MAJOR)g
    110 	ln -sf ss$(SS_MAJOR)g $(debdir)/ssg-dev/usr/doc/ssg-dev
    111 	dh_installdocs -a
    112 
    113   # HTML docs
    114 	install -d $(debdir)/e2fslibsg-dev/usr/doc/e2fslibsg-dev/html-info/
    115 	install -p $(topdir)/doc/libext2fs_*.html \
    116 	   $(debdir)/e2fslibsg-dev/usr/doc/e2fslibsg-dev/html-info/
    117 	install -d $(debdir)/comerrg-dev/usr/doc/comerrg-dev/html-info/
    118 	install -p $(topdir)/lib/et/com_err_*.html \
    119 	   $(debdir)/comerrg-dev/usr/doc/comerrg-dev/html-info/
    120 
    121   # texinfo docs
    122 	install -p $(topdir)/doc/libext2fs.texinfo \
    123 	   $(debdir)/e2fslibsg-dev/usr/doc/e2fslibsg/libext2fs.texi
    124 	install -p $(topdir)/lib/et/com_err.texinfo \
    125 	   $(debdir)/comerrg-dev/usr/doc/comerr2g/com_err.texi
    126 
    127   # doc-base support
    128 	install -d $(debdir)/e2fslibsg-dev/usr/share/doc-base/
    129 	install -p -m 644 $(debdir)/libext2fs.docbase \
    130 	   $(debdir)/e2fslibsg-dev/usr/share/doc-base/libext2fs
    131 	install -d $(debdir)/comerrg-dev/usr/share/doc-base/
    132 	install -p -m 644 $(debdir)/com_err.docbase \
    133 	   $(debdir)/comerrg-dev/usr/share/doc-base/com_err
    134 
    135   # examples
    136 	dh_installexamples -a
    137 
    138   # dh_installmanpages still makes a mess as of 0.54 (see below dh_movefiles)
    139 	install -p $(topdir)/lib/et/compile_et.1 $(maindir)/usr/man/man1/
    140 	install -d $(maindir)/usr/man/man3/
    141 	install -p $(topdir)/lib/et/com_err.3 $(maindir)/usr/man/man3/
    142 	ln -s e2fsck.8 $(maindir)/usr/man/man8/fsck.ext2.8
    143 	ln -s mke2fs.8 $(maindir)/usr/man/man8/mkfs.ext2.8
    144 
    145 	dh_movefiles -a
    146   # cleanup empty dirs
    147 	cd  $(maindir) && rmdir usr/man/cat? bin lib usr/include/* usr/include \
    148 		usr/info usr/lib usr/man/man3 usr/doc/e2fslibsg
    149 
    150 #	dh_installmenu -a
    151 
    152   # broken + useless in 0.52
    153   #	dh_installmanpages -a
    154 
    155 	dh_undocumented -a
    156 
    157 	dh_installchangelogs -pe2fslibsg -pcomerr$(COMERR_MAJOR)g -pss$(SS_MAJOR)g ChangeLog
    158 
    159 	dh_strip -a
    160 	dh_compress -a
    161 	dh_fixperms -a
    162 
    163 	echo "libcdev:Depends=$(LIBC-DEV)" > debian/comerrg-dev.substvars
    164 	echo "libcdev:Depends=$(LIBC-DEV)" > debian/ssg-dev.substvars
    165 	echo "libcdev:Depends=$(LIBC-DEV)" > debian/e2fslibsg-dev.substvars
    166 
    167 	dh_installdeb -a
    168 	LD_LIBRARY_PATH=$(builddir)/lib:/lib:/usr/lib \
    169 	  dh_shlibdeps -a
    170 	dh_gencontrol -u '-isp' -pe2fsprogs -pe2fslibsg -pe2fslibsg-dev
    171 	dh_gencontrol -u '-isp' -pcomerr$(COMERR_MAJOR)g -pcomerrg-dev \
    172 	  -u '-v$(COMERR_VERSION)-$(MAIN_VERSION)'
    173 	dh_gencontrol -u '-isp' -pss$(SS_MAJOR)g -pssg-dev \
    174 	  -u '-v$(SS_VERSION)-$(MAIN_VERSION)'
    175 	dh_makeshlibs -a
    176 #	dh_du -a
    177 	dh_md5sums -a
    178 	dh_builddeb -a
    179 
    180 binary: binary-indep binary-arch
    181 
    182 .PHONY: binary binary-arch binary-indep clean checkroot
    183