#!/usr/bin/make -f # Copyright (c) 2000-2004 International Business Machines # Corporation and others. All Rights Reserved. # ICU debian/rules that uses debhelper. # The Debian packages for ICU are created and maintained by # Yves Arrouye . They are part of Debian GNU/Linux # since the Debian woody release. # Decide whether we want to automatically manage the repackaging of # the common data from individual files or not. ICU_AUTO_COMMON=NO # 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 # This is where data needs to be moved ifeq ($(ICU_AUTO_COMMON),YES) icufildir = $(iculibdir)/files else icufildir = $(iculibdir) endif # Build flags CFLAGS = -O3 # -Wall ifeq ($(shell uname -m),s390) CXXFLAGS = -O1 # -Wall else CXXFLAGS = -O # -Wall endif 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='$(CXXFLAGS)' INSTALL_PROGRAM='$(INSTALL_PROGRAM)' $(SHELL) $(builddir_relative_srcdir)/configure --srcdir=$(builddir_relative_srcdir) --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --with-data-packaging=files --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 README.Debian.libicu$(major)-dev debian/%: debian/%.in cd $(builddir) \ && CONFIG_FILES=$(builddir_relative_topdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status debian/libicu$(major)%: debian/libicu% cp $< $@ debian/README.Debian.libicu$(major)%: debian/README.Debian.libicu% cp $< $@ debian-files: $(addprefix debian/,$(DEBIAN_FILES)) $(builddir)/build-stamp: dh_testdir # Add here commands to compile the package. $(MAKE) -C $(builddir) $(MAKE) -C $(builddir) doc touch $@ clean: update-debian-files dh_testdir dh_testroot -test -r /usr/share/misc/config.sub && \ cp -f /usr/share/misc/config.sub $(srcdir)/config.sub -test -r /usr/share/misc/config.guess && \ cp -f /usr/share/misc/config.guess $(srcdir)/config.guess $(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 $(MAKE) -C $(builddir) install-doc 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 # for d in locales translit brkitr; do \ test -d debian/icu-i18ndata/$(datasrcdir)/$$d || \ mkdir -p debian/icu-i18ndata/$(datasrcdir)/$$d; \ install -m 644 $(srcdir)/data/$$d/*.* \ debian/icu-i18ndata/$(datasrcdir)/$$d; \ done # # build icu-data from the source data # for d in mappings unidata misc; do \ test -d debian/icu-data/$(datasrcdir)/$$d || \ mkdir -p debian/icu-data/$(datasrcdir)/$$d; \ install -m 644 $(srcdir)/data/$$d/*.* \ debian/icu-data/$(datasrcdir)/$$d; \ done # 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.* mkdir debian/libicu$(major)/usr/lib/icu # # massage data files # # $(RM) debian/tmp/$(iculibdir)/cnvalias.dat ifneq ($(iculibdir),$(icufildir)) test -d debian/tmp/$(icufildir) || mkdir debian/tmp/$(icufildir) mv debian/tmp/$(iculibdir)/*.* debian/tmp/$(icufildir) mv debian/tmp/$(icufildir)/*msg.dat debian/tmp/$(iculibdir) mv debian/tmp/$(icufildir)/*.inc debian/tmp/$(iculibdir) endif # # build icu package by moving files from icu-dev # $(RM) debian/tmp/$(iculibdir)/../Makefile.inc debian/tmp/$(iculibdir)/../current ifneq ($(iculibdir),$(icufildir)) dh_movefiles -picu \ $(iculibdir)/*msg.dat endif # The license.html must be installed with ICU's source code. # This includes the headers. dh_movefiles -picu \ etc \ usr/bin \ usr/sbin \ $(icudatadir)/license.html \ $(iculibdir)/*.inc \ $(icufildir)/*.cnv \ $(icufildir)/*.dat \ usr/share/man # # build icu-locales package by moving files from icu-dev # dh_movefiles -picu-locales \ $(icufildir)/*.res \ $(icufildir)/*.brk # # move the rest of the development files # in their package # dh_movefiles -a 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 -a dh_installexamples -a $(srcdir)/samples/* find debian/libicu$(major)-dev -name CVS -o -name .cvsignore | xargs $(RM) -r dh_installmenu -a # dh_installemacsen # dh_installpam # dh_installinit dh_installcron -a dh_installmanpages -picu dh_installinfo -a # dh_undocumented -picu dh_installchangelogs -a dh_link -a dh_strip -a dh_compress -a dh_fixperms -a # You may want to make some executables suid here. dh_makeshlibs -a dh_installdeb -a # dh_perl dh_shlibdeps -a -ldebian/libicu$(major)/usr/lib dh_gencontrol -a -- -Vversion=$(version) -Vmajor=$(major) dh_md5sums -a dh_builddeb -a # Automatically update changelog and control update-debian-files: if [ x"$$NO_AUTO_DCH" = x ]; \ then \ 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). (This comment is generated.)"; \ sed 's/libicu[0-9][0-9]*/libicu$(major)/g' debian/control >debian/control.new && mv debian/control.new debian/control; \ fi; \ fi binary: update-debian-files binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install debian-files update-changelog