| #!/usr/bin/make -f |
| # ICU debian/rules that uses debhelper. |
| |
| # The Debian packages for ICU are created and maintained by |
| # Yves Arrouye <yves@debian.org>. They are part of Debian GNU/Linux |
| # since the Debian woody release. |
| |
| # Uncomment this to turn on verbose mode. |
| #export DH_VERBOSE=1 |
| |
| # This is the debhelper compatability version to use. |
| export DH_COMPAT=2 |
| #firstdir := $(shell sed -n 's/Package: \(.*\)/\1/p' debian/control | head -1)else |
| |
| # Where the source for ICU is, where to build |
| srcdir = source |
| builddir = build |
| # How to get to $(srcdir) from $(builddir) |
| builddir_relative_topdir = .. |
| builddir_relative_srcdir = $(builddir_relative_topdir)/$(srcdir) |
| |
| # Getting the ICU version numbers, stolen from configure.in (that's okay, I |
| # wrote the configure.in part anyway) |
| |
| version := $(shell sed -n -e 's/^[ ]*\#[ ]*define[ ]*U_ICU_VERSION[ ]*"\([^"]*\)".*/\1/p' $(srcdir)/common/unicode/uversion.h) |
| libversion := $(shell echo $(version) | sed -e 's/\.//' -e 's/^\([^.]*\)$$/\1.0/') |
| major := $(shell echo $(libversion) | sed 's/\..*//') |
| |
| # ICU installation directories, w/o the initial slash |
| pkgdatadir = usr/share/icu |
| icudatadir = $(pkgdatadir)/$(version) |
| pkglibdir = usr/lib/icu |
| iculibdir = $(pkglibdir)/$(version) |
| datasrcdir = usr/share/icu/$(version)/data |
| |
| # Build flags |
| |
| CFLAGS = -O2 # -Wall |
| CXXFLAGS = -O2 # -Wall |
| INSTALL_PROGRAM = /usr/bin/install |
| |
| ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) |
| CFLAGS += -g |
| CXXFLAGS += -g |
| endif |
| ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) |
| INSTALL_PROGRAM += -s |
| endif |
| |
| all: build |
| |
| configure: $(builddir)/configure-stamp |
| $(builddir)/configure-stamp: |
| # Add here commands to configure the package. |
| test -d $(builddir) || mkdir $(builddir) |
| cd $(builddir); CFLAGS='$(CFLAGS)' CXXFLAGS='$(CFLAGS)' INSTALL_PROGRAM='$(INSTALL_PROGRAM)' $(SHELL) $(builddir_relative_srcdir)/configure --srcdir=$(builddir_relative_srcdir) --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --with-data-packaging=files --disable-rpath --enable-shared --enable-static --disable-samples |
| touch $@ |
| |
| build: $(builddir)/configure-stamp debian-files $(builddir)/build-stamp |
| |
| # Build some Debian files |
| DEBIAN_FILES=icu.conffiles postinst prerm icu.postinst icu.prerm libicu$(major).postinst |
| |
| debian/%: debian/%.in |
| cd $(builddir) \ |
| && CONFIG_FILES=$(builddir_relative_topdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status |
| |
| debian/libicu$(major).%: debian/libicu.% |
| cp $< $@ |
| |
| debian-files: $(addprefix debian/,$(DEBIAN_FILES)) |
| |
| $(builddir)/build-stamp: |
| dh_testdir |
| |
| # Add here commands to compile the package. |
| $(MAKE) -C $(builddir) |
| |
| touch $@ |
| |
| clean: |
| dh_testdir |
| dh_testroot |
| $(RM) $(builddir)/build-stamp $(builddir)/configure-stamp |
| |
| # Add here commands to clean up after the build process. |
| -$(MAKE) -C $(builddir) distclean |
| #-$(RM) `find $(builddir)/samples $(builddir)/test -name Makefile -print` |
| -$(RM) `find $(builddir) -name Makefile -print` |
| dh_clean |
| $(RM) $(addprefix debian/,$(DEBIAN_FILES)) debian/control.new |
| |
| #if test -d $(builddir) -a $(builddir) != $(srcdir); then rmdir `find $(builddir) -type d -print | sort -r`; fi |
| if test -d $(builddir) -a $(builddir) != $(srcdir); then $(RM) -r $(builddir); fi |
| |
| install: build |
| dh_testdir |
| dh_testroot |
| dh_clean -k |
| dh_installdirs |
| |
| # Add here commands to install the package into debian/tmp |
| $(MAKE) -C $(builddir) install DESTDIR=`pwd`/debian/tmp |
| |
| # Build architecture-independent files here. |
| binary-indep: build install |
| # |
| # build icu-doc package by moving files |
| # |
| mv debian/tmp/usr/share/doc/icu debian/tmp/usr/share/doc/icu-doc |
| dh_movefiles -picu-doc \ |
| usr/share/doc/icu-doc |
| # |
| # build icu-i18ndata from the source data |
| # |
| test -d debian/icu-i18ndata/$(datasrcdir) || \ |
| mkdir -p debian/icu-i18ndata/$(datasrcdir) |
| install -m 644 $(srcdir)/../data/*.txt \ |
| $(srcdir)/../data/*.brk \ |
| debian/icu-i18ndata/$(datasrcdir) |
| cd debian/icu-i18ndata/$(datasrcdir) && \ |
| $(RM) convrtrs.txt |
| # |
| # build icu-data from the source data |
| # |
| test -d debian/icu-data/$(datasrcdir) || \ |
| mkdir -p debian/icu-data/$(datasrcdir) |
| install -m 644 $(srcdir)/../data/*.ucm \ |
| debian/icu-data/$(datasrcdir) |
| test -d debian/icu-data/$(datasrcdir)/unidata || \ |
| mkdir -p debian/icu-data/$(datasrcdir)/unidata |
| install -m 644 $(srcdir)/../data/unidata/*.* \ |
| debian/icu-data/$(datasrcdir)/unidata |
| |
| # Build architecture-dependent files here. |
| binary-arch: build install |
| # dh_testversion |
| dh_testdir |
| dh_testroot |
| # |
| # build libicu${major} package by moving files from icu-dev |
| # |
| $(RM) debian/tmp/usr/lib/libicuctestfw.* |
| dh_movefiles -plibicu$(major) \ |
| usr/lib/*.so.* \ |
| usr/lib/libicudt* |
| mkdir debian/libicu$(major)/usr/lib/icu |
| # |
| # build icu package by moving files from icu-dev |
| # |
| $(RM) debian/tmp/$(iculibdir)/../Makefile.inc debian/tmp/$(iculibdir)/../current |
| dh_movefiles -picu \ |
| etc \ |
| usr/bin \ |
| usr/sbin \ |
| $(icudatadir)/README \ |
| $(iculibdir)/*.cnv \ |
| $(iculibdir)/u*.dat \ |
| $(iculibdir)/tz.dat \ |
| $(iculibdir)/Makefile.inc \ |
| usr/share/man |
| $(RM) debian/tmp/$(iculibdir)/cnvalias.dat |
| # |
| # build icu-locales package by moving files from icu-dev |
| # |
| dh_movefiles -picu-locales \ |
| $(iculibdir)/*.res \ |
| $(iculibdir)/*.brk |
| # |
| # move the rest of the development files |
| # in their package |
| # |
| dh_movefiles usr |
| # |
| # do a bit of cleanup |
| # |
| $(RM) -r debian/tmp/etc debian/tmp/usr/sbin \ |
| debian/tmp/usr/share/man |
| # |
| # continue to prepare packages |
| # |
| # dh_installdebconf |
| dh_installdocs |
| dh_installexamples $(srcdir)/samples/* |
| find debian/libicu-dev -name CVS -o -name .cvsignore | xargs $(RM) -r |
| dh_installmenu |
| # dh_installemacsen |
| # dh_installpam |
| # dh_installinit |
| dh_installcron |
| dh_installmanpages -picu |
| dh_installinfo |
| dh_undocumented -picu gennorm.8 genprops.8 gentz.8 pkgdata.8 |
| dh_installchangelogs |
| dh_link |
| dh_strip |
| dh_compress |
| dh_fixperms |
| # You may want to make some executables suid here. |
| dh_makeshlibs |
| dh_installdeb |
| # dh_perl |
| dh_shlibdeps -ldebian/libicu$(major)/usr/lib |
| dh_gencontrol -- -Vversion=$(version) -Vmajor=$(major) |
| dh_md5sums |
| dh_builddeb |
| |
| # Automatically update changelog and control |
| update-debian-files: |
| cvers=`sed -n 's/^icu (\([^)]*\)).*/\1/p' debian/changelog | head -1`; if dpkg --compare-versions $$cvers lt $(version)-1; then \ |
| dch -v $(version)-1 "Update to ICU version $(version)."; \ |
| sed 's/libicu[0-9][0-9]*/libicu$(major)/g' debian/control >debian/control.new && mv debian/control.new debian/control; \ |
| fi |
| |
| binary: update-debian-files binary-indep binary-arch |
| .PHONY: build clean binary-indep binary-arch binary install debian-files update-changelog |
| |