summaryrefslogtreecommitdiffstats
path: root/dilos/core/tde-i18n/debian/rules
blob: 719b4ba23170bf6c54375498bfeeeb35925b2164 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/usr/bin/make -f

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

I18N_DIR_PREFIX := tde-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_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| .*||" | \
                         xargs -r dpkg --compare-versions 1.17.0 lt \
                         && echo xz || echo gzip)
ifeq ($(deb_default_compress),gzip)
DEB_DH_BUILDDEB_ARGS += -- -Z$(shell dpkg-deb --help | grep -q ":.* xz[,.]" \
                               && echo xz || echo bzip2)
endif

DEB_CMAKE_EXTRA_FLAGS := \
 -DCMAKE_INSTALL_PREFIX="/usr" \
 -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::
	dh_testdir
	dh_prep

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 $@


install::
	dh_testdir
	dh_testroot

install:: $(I18N_INSTALL)

$(I18N_INSTALL): build
	cd $(cur_lang_dir)/build && \
	DESTDIR=$(CURDIR)/debian/$(cur_pkg) $(MAKE) install $(DEB_MAKE_PARALLEL)


clean: $(I18N_CLEAN) debian-clean

$(I18N_CLEAN):
	dh_testdir
	rm -rf $(cur_lang_dir)/build

debian-clean:
	dh_testdir
	rm -rf debian/$(I18N_DEST_PREFIX)-*
	rm -f debian/stamp__*
	dh_clean


binary-arch: build
	dh_testroot
	dh_testdir


binary-indep: build install
	dh_testroot
	dh_testdir
	dh_installdocs
	dh_installmenu
	dh_installchangelogs
	dh_strip
	$(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)


# Below here is fairly generic really
binary: binary-indep binary-arch

.PHONY: binary binary-arch binary-indep clean build install $(I18N_INSTALL)