summaryrefslogtreecommitdiffstats
path: root/ubuntu/_base/applications/office/koffice-i18n/debian/rules
diff options
context:
space:
mode:
Diffstat (limited to 'ubuntu/_base/applications/office/koffice-i18n/debian/rules')
-rwxr-xr-xubuntu/_base/applications/office/koffice-i18n/debian/rules189
1 files changed, 123 insertions, 66 deletions
diff --git a/ubuntu/_base/applications/office/koffice-i18n/debian/rules b/ubuntu/_base/applications/office/koffice-i18n/debian/rules
index 8fb58ece9..a9ca115a3 100755
--- a/ubuntu/_base/applications/office/koffice-i18n/debian/rules
+++ b/ubuntu/_base/applications/office/koffice-i18n/debian/rules
@@ -3,11 +3,36 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
+I18N_DIR_PREFIX := koffice-i18n
+I18N_DEST_PREFIX := $(I18N_DIR_PREFIX)
+I18N_DIR_PAT := $(I18N_DIR_PREFIX)-%
+I18N_DIRS := $(wildcard $(I18N_DIR_PREFIX)-*)
+
+# Stamps and support variables
+cur_lang = $(word 2,$(subst __, ,$@))
+cur_lang_target = $(subst @,_,$(cur_lang))
+cur_lang_dir = $(patsubst %,$(I18N_DIR_PREFIX)-%,$(cur_lang))
+cur_pkg_lang = $(subst _,,$(subst @,,$(subst @latn,latin,$(shell echo $(cur_lang) | tr '[:upper:]' '[:lower:]'))))
+cur_pkg = $(I18N_DEST_PREFIX)-$(cur_pkg_lang)-trinity
+
+STAMP_BUILD := $(patsubst $(I18N_DIR_PAT),debian/stamp__%__build,$(I18N_DIRS))
+I18N_INSTALL := $(patsubst $(I18N_DIR_PAT),install__%,$(I18N_DIRS))
+I18N_CLEAN := $(patsubst $(I18N_DIR_PAT),clean__%,$(I18N_DIRS))
+
+DEB_BUILD_PARALLEL ?= true
+
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
DEB_PARALLEL_JOBS ?= $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
DEB_MAKE_PARALLEL ?= $(and $(DEB_BUILD_PARALLEL),$(DEB_PARALLEL_JOBS),-j$(DEB_PARALLEL_JOBS))
+ifneq "$(wildcard /usr/bin/ninja)" ""
+MAKE = ninja -v
+DEB_MAKE_ENVVARS += DESTDIR=$(DEB_DESTDIR)
+DEB_MAKE_INSTALL_TARGET = install
+DEB_CMAKE_NORMAL_ARGS += -GNinja
+endif
+
# The default gzip compressor has been changed in dpkg >= 1.17.0.
deb_default_compress = $(shell LANG=C dpkg-deb --version | head -n1 | \
sed -e "s|.*version ||" -e "s| .*||" | \
@@ -18,91 +43,123 @@ DEB_DH_BUILDDEB_ARGS += -- -Z$(shell dpkg-deb --help | grep -q ":.* xz[,.]" \
&& echo xz || echo bzip2)
endif
-languages = `ls -1d *i18n*`
+DEB_CMAKE_EXTRA_FLAGS := \
+ -DCMAKE_EXPORT_COMPILE_COMMANDS="ON" \
+ -DCMAKE_INSTALL_PREFIX="/opt/trinity" \
+ -DCONFIG_INSTALL_DIR="/etc/trinity" \
+ -DSYSCONF_INSTALL_DIR="/etc/trinity" \
+ -DXDG_MENU_INSTALL_DIR="/etc/xdg/menus" \
+ -DCMAKE_VERBOSE_MAKEFILE="ON" \
+ -DBUILD_ALL="ON"
+
-build-stamp:
+build::
dh_testdir
+ dh_prep
+
+ifneq "$(wildcard /usr/bin/ninja)" ""
+
+build:: debian/stamp__build
+
+debian/stamp__build:
+ [ -d build ] || \
+ mkdir build
+ cd build && \
+ cmake .. $(DEB_CMAKE_NORMAL_ARGS) $(DEB_CMAKE_EXTRA_FLAGS) && \
+ $(MAKE) $(DEB_MAKE_PARALLEL)
+ touch $@
+
+else
+
+build:: $(STAMP_BUILD)
+
+$(STAMP_BUILD):
+ # Building the '$(cur_lang)' language ...
+ [ -d $(cur_lang_dir)/build ] || \
+ mkdir $(cur_lang_dir)/build
+ [ -e $(cur_lang_dir)/CMakeLists.txt ] || \
+ ln -s ../template/commonCMakeLists.txt $(cur_lang_dir)/CMakeLists.txt
+ cd $(cur_lang_dir)/build && \
+ cmake .. $(DEB_CMAKE_NORMAL_ARGS) $(DEB_CMAKE_EXTRA_FLAGS) && \
+ $(MAKE) $(DEB_MAKE_PARALLEL)
+ touch $@
- # Regenerate build system
-ifneq "$(wildcard /usr/share/libtool/ltmain.sh)" ""
- cp -f /usr/share/libtool/ltmain.sh admin/ltmain.sh
-endif
-ifneq "$(wildcard /usr/share/libtool/config/ltmain.sh)" ""
- cp -f /usr/share/libtool/config/ltmain.sh admin/ltmain.sh
endif
-ifneq "$(wildcard /usr/share/libtool/build-aux/ltmain.sh)" ""
- cp -f /usr/share/libtool/build-aux/ltmain.sh admin/ltmain.sh
+
+install::
+ dh_testdir
+ dh_testroot
+
+install:: $(I18N_INSTALL)
+ dh_testdir
+ cat debian/control-source > debian/control
+ find debian -name "control-lang-*" | LANG=C sort | xargs -r cat >> debian/control
+
+$(I18N_INSTALL): build
+ifneq "$(wildcard /usr/bin/ninja)" ""
+ [ ! -e $(cur_lang_dir)/CMakeLists.txt ] || \
+ DESTDIR=$(CURDIR)/debian/$(cur_pkg) $(MAKE) -C build install-$(cur_lang_target)
+else
+ cd $(cur_lang_dir)/build && \
+ DESTDIR=$(CURDIR)/debian/$(cur_pkg) $(MAKE) install $(DEB_MAKE_PARALLEL)
endif
- cp -f /usr/share/aclocal/libtool.m4 admin/libtool.m4.in
-
- #Configure languages.
- -for i in $(languages); do \
- cd $$i && \
- autoreconf && automake -f && $(MAKE) -f ../admin/Makefile.common && \
- ./configure $(configkde); \
- $(MAKE) $(DEB_MAKE_PARALLEL); \
- cd ..; \
- done
-
- touch build-stamp
-
-build: build-stamp
--include debian/debiandirs
-
-clean:
- dh_clean
+ sed -e "s|@lang@|$(cur_lang)|g" \
+ -e "s|@pkg_lang@|$(cur_pkg_lang)|g" \
+ -e "s|@lang_desc@|$$(sed -n '/^\[$(cur_lang)\]/,/^\[/s#^Name=##p' /opt/trinity/share/locale/all_languages)|" \
+ < debian/control-lang > debian/control-lang-$(cur_pkg_lang); \
+
+ifneq "$(wildcard /usr/bin/ninja)" ""
+
+clean: debian-clean
+
+else
+
+clean: $(I18N_CLEAN) debian-clean
+
+$(I18N_CLEAN):
dh_testdir
-
- # Remove all language directories.
- rm -rf build-stamp
- rm -rf debian/*18n*
+ rm -rf $(cur_lang_dir)/build
+
+endif
-binary-indep: build
+debian-clean:
dh_testdir
+ rm -rf build
+ rm -rf debian/$(I18N_DEST_PREFIX)-*
+ rm -f debian/stamp__*
+ rm -f debian/control-lang-*
+ cat debian/control-source > debian/control
+ sed -e "s|@lang@|all|g" \
+ -e "s|-@pkg_lang@||g" \
+ -e "s|@lang_desc@|All languages|" \
+ < debian/control-lang >> debian/control
+ dh_clean
+
+
+binary-arch: build
dh_testroot
- dh_clean -k
-
- -for i in $(languages); do \
- ( \
- cd $$i && \
- echo $$(install_dir) && \
- $(MAKE) install DESTDIR=`pwd`/../debian/$$i-trinity $(DEB_MAKE_PARALLEL); \
- cd .. \
- ) \
- done
-
-
- mkdir debian/koffice-i18n-engb-trinity
- cp -aR debian/koffice-i18n-en_GB-trinity/* debian/koffice-i18n-engb-trinity/
-
- mkdir debian/koffice-i18n-ptbr-trinity
- cp -aR debian/koffice-i18n-pt_BR-trinity/* debian/koffice-i18n-ptbr-trinity/
-
- mkdir debian/koffice-i18n-srlatin-trinity
- cp -aR debian/koffice-i18n-sr@Latn-trinity/* debian/koffice-i18n-srlatin-trinity/
-
- mkdir debian/koffice-i18n-zhcn-trinity
- cp -aR debian/koffice-i18n-zh_CN-trinity/* debian/koffice-i18n-zhcn-trinity/
-
- mkdir debian/koffice-i18n-zhtw-trinity
- cp -aR debian/koffice-i18n-zh_TW-trinity/* debian/koffice-i18n-zhtw-trinity/
-
-
- #Removing duplicate kdgantt.mo files.
- -rm -f `find . -name "kdgantt.mo"`
+ dh_testdir
+
+binary-indep: build install
+ dh_testroot
+ dh_testdir
dh_installdocs
dh_installmenu
dh_installchangelogs
dh_strip
- dh_link
+ $(if $(wildcard /usr/bin/dh_strip_nondeterminism),\
+ dh_strip_nondeterminism)
dh_compress -X.docbook -X.css -X-license -X.dcl -X.bz2
dh_fixperms
dh_installdeb
+ dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb $(DEB_DH_BUILDDEB_ARGS)
-binary: binary-indep
-.PHONY: binary binary-indep clean
+# Below here is fairly generic really
+binary: binary-indep binary-arch
+
+.PHONY: binary binary-arch binary-indep clean build install $(I18N_INSTALL)