scuffed-code/icu4c/debian/rules
Yves Arrouye 9bebb22d73 ICU-678 Changed the Debian build so that it will pick the ICU
version
number automatically, and generate the appropriate control file and
maintainer scripts. It will also add an entry to the changelog
every time the ICU version number is greater than the last one that
has an entry in the changelog.

X-SVN-Rev: 2977
2000-11-21 19:39:00 +00:00

224 lines
6.9 KiB
Makefile
Executable File

#!/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)
# 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 's/^[ ]*\#[ ]*define[ ]*U_ICU_VERSION[ ]*"\([^"]*\)".*/\1/p' $(srcdir)/common/unicode/utypes.h)
lib_version := $(shell echo $(version) | sed -e 's/\.//' -e 's/^\([^.]*\)$$/\1.0/')
lib_version_major := $(shell echo $(lib_version) | 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
# shared library versions, option 1
version:=$(shell sed -n 's/^[ ]*\#[ ]*define[ ]*U_ICU_VERSION[ ]*"\([^"]*\)".*/\1/p' $(srcdir)/common/unicode/utypes.h)
major:=$(shell echo $(version) | sed -e 's/\.//' -e 's/\..*//')
# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so
#version=`ls src/.libs/lib*.so.* | \
# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
#major=`ls src/.libs/lib*.so.* | \
# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`
# 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)' $(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 $(builddir)/build-stamp
$(builddir)/build-stamp:
@$(MAKE) -f debian/rules $(addprefix debian/,$(DEBIAN_FILES))
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))
$(RM) debian/*docs
if test -d $(builddir) -a $(builddir) != $(srcdir); then rmdir `find $(builddir) -type d -print | sort -r`; 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
# We have nothing to do by default.
# Build some Debian files
DEBIAN_FILES = control icu.conffiles icu.postinst icu.prerm libicu$(lib_version_major).prerm.in libicu$(lib_version_major).prerm libicu$(lib_version_major).postinst
debian/libicu$(lib_version_major).%: debian/libicu.%
cp $< $@
debian/%: debian/%.in
cd $(builddir) \
&& CONFIG_FILES=$(builddir_relative_topdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
# Build architecture-dependent files here.
binary-arch: build install
# dh_testversion
dh_testdir
dh_testroot
rm debian/tmp/usr/sbin/gentest
#
# build libicu${major} package by moving files from icu-dev
#
dh_movefiles -plibicu$(major) \
usr/lib/libicuuc.so.* \
usr/lib/libicui18n.so.* \
usr/lib/libicutoolutil.so.* \
usr/lib/libustdio.so.*
#
# build icu package by moving files from icu-dev
#
dh_movefiles -picu \
etc \
usr/sbin \
$(icudatadir)/README \
$(iculibdir)/*.cnv \
$(iculibdir)/u*.dat \
$(iculibdir)/tz.dat \
usr/share/man
rm debian/tmp/$(pkglibdir)/current
rm debian/tmp/$(iculibdir)/cnvalias.dat
#
# build icu-locales package by moving files from icu-dev
#
dh_movefiles -picu-locales \
$(iculibdir)/*.res \
$(iculibdir)/*.brk
#
# build icu-data from the source data
#
test -d debian/icu-data/$(datasrcdir) || \
mkdir -p debian/icu-data/$(datasrcdir)
install -m 644 $(srcdir)/../data/ucname.txt \
$(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
unidatafile=`(cd $(srcdir)/../data; ls UnicodeData*.txt)`; cd debian/icu-data/$(datasrcdir) && ln -s unidata/UnicodeData.txt $$unidatafile
#
# 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 UnicodeData*.txt ucname.txt
#
# move the rest of the development files
# in their package
#
dh_movefiles usr
#
# do a bit of cleanup
#
rm -rf debian/tmp/etc debian/tmp/usr/sbin \
debian/tmp/usr/share/man
#
# continue to prepare packages
#
# dh_installdebconf
dh_installdocs docs
dh_installexamples $(srcdir)/samples/*
dh_installmenu
# dh_installemacsen
# dh_installpam
# dh_installinit
dh_installcron
dh_installmanpages -picu
dh_installinfo
dh_undocumented -picu genccode.8 gencmn.8 gennames.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_suidregister
dh_makeshlibs
dh_installdeb
# dh_perl
dh_shlibdeps && \
sed 's/ libicu$(lib_version_major)[^,]*,//' debian/libicu$(major).substvars >debian/libicu$(major).substvars.new && mv debian/libicu$(major).substvars.new debian/libicu$(major).substvars
dh_gencontrol -- -Vversion=$(version) -Vmajor=$(major)
dh_md5sums
dh_builddeb
# Automatically update changelog
update-changelog:
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)."; \
fi
binary: update-changelog binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install update-changelog