xref: /trunk/main/i18npool/Library_i18npool.mk (revision 7f6ffbef)
1*7f6ffbefSDamjan Jovanovic#**************************************************************
2*7f6ffbefSDamjan Jovanovic#
3*7f6ffbefSDamjan Jovanovic#  Licensed to the Apache Software Foundation (ASF) under one
4*7f6ffbefSDamjan Jovanovic#  or more contributor license agreements.  See the NOTICE file
5*7f6ffbefSDamjan Jovanovic#  distributed with this work for additional information
6*7f6ffbefSDamjan Jovanovic#  regarding copyright ownership.  The ASF licenses this file
7*7f6ffbefSDamjan Jovanovic#  to you under the Apache License, Version 2.0 (the
8*7f6ffbefSDamjan Jovanovic#  "License"); you may not use this file except in compliance
9*7f6ffbefSDamjan Jovanovic#  with the License.  You may obtain a copy of the License at
10*7f6ffbefSDamjan Jovanovic#
11*7f6ffbefSDamjan Jovanovic#    http://www.apache.org/licenses/LICENSE-2.0
12*7f6ffbefSDamjan Jovanovic#
13*7f6ffbefSDamjan Jovanovic#  Unless required by applicable law or agreed to in writing,
14*7f6ffbefSDamjan Jovanovic#  software distributed under the License is distributed on an
15*7f6ffbefSDamjan Jovanovic#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*7f6ffbefSDamjan Jovanovic#  KIND, either express or implied.  See the License for the
17*7f6ffbefSDamjan Jovanovic#  specific language governing permissions and limitations
18*7f6ffbefSDamjan Jovanovic#  under the License.
19*7f6ffbefSDamjan Jovanovic#
20*7f6ffbefSDamjan Jovanovic#**************************************************************
21*7f6ffbefSDamjan Jovanovic
22*7f6ffbefSDamjan Jovanovic
23*7f6ffbefSDamjan Jovanovic
24*7f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_Library,i18npool))
25*7f6ffbefSDamjan Jovanovic
26*7f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_package_headers,i18npool,i18npool_inc))
27*7f6ffbefSDamjan Jovanovic
28*7f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_precompiled_header,i18npool,$(SRCDIR)/i18npool/inc/pch/precompiled_i18npool))
29*7f6ffbefSDamjan Jovanovic
30*7f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_set_componentfile,i18npool,i18npool/util/i18npool))
31*7f6ffbefSDamjan Jovanovic
32*7f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_set_include,i18npool,\
33*7f6ffbefSDamjan Jovanovic	$$(INCLUDE) \
34*7f6ffbefSDamjan Jovanovic	-I$(SRCDIR)/i18npool/inc \
35*7f6ffbefSDamjan Jovanovic	-I$(SRCDIR)/i18npool/inc/pch \
36*7f6ffbefSDamjan Jovanovic	-I$(WORKDIR)/CustomTarget/i18npool/source/collator \
37*7f6ffbefSDamjan Jovanovic	-I$(OUTDIR)/inc \
38*7f6ffbefSDamjan Jovanovic))
39*7f6ffbefSDamjan Jovanovic
40*7f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_api,i18npool, \
41*7f6ffbefSDamjan Jovanovic	offapi \
42*7f6ffbefSDamjan Jovanovic	udkapi \
43*7f6ffbefSDamjan Jovanovic))
44*7f6ffbefSDamjan Jovanovic
45*7f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_defs,i18npool,\
46*7f6ffbefSDamjan Jovanovic	-DI18NPOOL_DLLIMPLEMENTATION \
47*7f6ffbefSDamjan Jovanovic))
48*7f6ffbefSDamjan Jovanovic
49*7f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_linked_libs,i18npool,\
50*7f6ffbefSDamjan Jovanovic	comphelper \
51*7f6ffbefSDamjan Jovanovic	cppu \
52*7f6ffbefSDamjan Jovanovic	cppuhelper \
53*7f6ffbefSDamjan Jovanovic	i18nisolang1 \
54*7f6ffbefSDamjan Jovanovic	i18nutil \
55*7f6ffbefSDamjan Jovanovic	sal \
56*7f6ffbefSDamjan Jovanovic	stl \
57*7f6ffbefSDamjan Jovanovic	$(gb_STDLIBS) \
58*7f6ffbefSDamjan Jovanovic))
59*7f6ffbefSDamjan Jovanovic
60*7f6ffbefSDamjan Jovanovic$(call gb_Library_use_external,i18npool,icui18n)
61*7f6ffbefSDamjan Jovanovic$(call gb_Library_use_external,i18npool,icudata)
62*7f6ffbefSDamjan Jovanovic$(call gb_Library_use_external,i18npool,icuuc)
63*7f6ffbefSDamjan Jovanovic
64*7f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_exception_objects,i18npool,\
65*7f6ffbefSDamjan Jovanovic	i18npool/source/registerservices/registerservices \
66*7f6ffbefSDamjan Jovanovic	i18npool/source/breakiterator/breakiteratorImpl \
67*7f6ffbefSDamjan Jovanovic	i18npool/source/breakiterator/breakiterator_cjk \
68*7f6ffbefSDamjan Jovanovic	i18npool/source/breakiterator/breakiterator_ctl \
69*7f6ffbefSDamjan Jovanovic	i18npool/source/breakiterator/breakiterator_th \
70*7f6ffbefSDamjan Jovanovic	i18npool/source/breakiterator/breakiterator_unicode \
71*7f6ffbefSDamjan Jovanovic	i18npool/source/breakiterator/xdictionary \
72*7f6ffbefSDamjan Jovanovic	i18npool/source/characterclassification/characterclassificationImpl \
73*7f6ffbefSDamjan Jovanovic	i18npool/source/characterclassification/cclass_unicode \
74*7f6ffbefSDamjan Jovanovic	i18npool/source/characterclassification/cclass_unicode_parser \
75*7f6ffbefSDamjan Jovanovic	i18npool/source/characterclassification/scripttypedetector \
76*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliteration_body \
77*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliteration_caseignore \
78*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliterationImpl \
79*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliteration_commonclass \
80*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliteration_OneToOne \
81*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliteration_Ignore \
82*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliteration_Numeric \
83*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/hiraganaToKatakana \
84*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/katakanaToHiragana \
85*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreKana \
86*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/halfwidthToFullwidth \
87*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/fullwidthToHalfwidth \
88*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreWidth \
89*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/smallToLarge_ja_JP \
90*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/largeToSmall_ja_JP \
91*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreSize_ja_JP \
92*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreMinusSign_ja_JP \
93*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreIterationMark_ja_JP \
94*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreTraditionalKana_ja_JP \
95*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreTraditionalKanji_ja_JP \
96*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP \
97*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreZiZu_ja_JP \
98*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreBaFa_ja_JP \
99*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreTiJi_ja_JP \
100*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreHyuByu_ja_JP \
101*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreSeZe_ja_JP \
102*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP \
103*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP \
104*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreSeparator_ja_JP \
105*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreSpace_ja_JP \
106*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreMiddleDot_ja_JP \
107*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/textToPronounce_zh \
108*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/numtochar \
109*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/numtotext_cjk \
110*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/chartonum \
111*7f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/texttonum \
112*7f6ffbefSDamjan Jovanovic	i18npool/source/calendar/calendarImpl \
113*7f6ffbefSDamjan Jovanovic	i18npool/source/calendar/calendar_gregorian \
114*7f6ffbefSDamjan Jovanovic	i18npool/source/calendar/calendar_hijri \
115*7f6ffbefSDamjan Jovanovic	i18npool/source/calendar/calendar_jewish \
116*7f6ffbefSDamjan Jovanovic	i18npool/source/numberformatcode/numberformatcode \
117*7f6ffbefSDamjan Jovanovic	i18npool/source/defaultnumberingprovider/defaultnumberingprovider \
118*7f6ffbefSDamjan Jovanovic	i18npool/source/nativenumber/nativenumbersupplier \
119*7f6ffbefSDamjan Jovanovic	i18npool/source/inputchecker/inputsequencechecker \
120*7f6ffbefSDamjan Jovanovic	i18npool/source/inputchecker/inputsequencechecker_th \
121*7f6ffbefSDamjan Jovanovic	i18npool/source/inputchecker/inputsequencechecker_hi \
122*7f6ffbefSDamjan Jovanovic	i18npool/source/ordinalsuffix/ordinalsuffix \
123*7f6ffbefSDamjan Jovanovic	i18npool/source/localedata/localedata \
124*7f6ffbefSDamjan Jovanovic	i18npool/source/indexentry/indexentrysupplier \
125*7f6ffbefSDamjan Jovanovic	i18npool/source/indexentry/indexentrysupplier_asian \
126*7f6ffbefSDamjan Jovanovic	i18npool/source/indexentry/indexentrysupplier_ja_phonetic \
127*7f6ffbefSDamjan Jovanovic	i18npool/source/indexentry/indexentrysupplier_default \
128*7f6ffbefSDamjan Jovanovic	i18npool/source/indexentry/indexentrysupplier_common \
129*7f6ffbefSDamjan Jovanovic	i18npool/source/textconversion/textconversionImpl \
130*7f6ffbefSDamjan Jovanovic	i18npool/source/textconversion/textconversion \
131*7f6ffbefSDamjan Jovanovic	i18npool/source/textconversion/textconversion_ko \
132*7f6ffbefSDamjan Jovanovic	i18npool/source/textconversion/textconversion_zh \
133*7f6ffbefSDamjan Jovanovic	i18npool/source/collator/collatorImpl \
134*7f6ffbefSDamjan Jovanovic	i18npool/source/collator/chaptercollator \
135*7f6ffbefSDamjan Jovanovic	i18npool/source/collator/collator_unicode \
136*7f6ffbefSDamjan Jovanovic))
137*7f6ffbefSDamjan Jovanovic
138*7f6ffbefSDamjan Jovanovic$(call gb_Library_get_headers_target,i18npool) : $(WORKDIR)/CustomTarget/i18npool/source/collator/lrl_include.hxx
139*7f6ffbefSDamjan Jovanovic
140*7f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/collator/lrl_include.hxx : $(wildcard $(SRCDIR)/i18npool/source/collator/data/*.txt)
141*7f6ffbefSDamjan Jovanovic	mkdir -p $(dir $@) \
142*7f6ffbefSDamjan Jovanovic	&& LOCAL_RULE_LANGS="$(sort $(foreach txt,$(wildcard $(SRCDIR)/i18npool/source/collator/data/*.txt),$(firstword $(subst _, ,$(notdir $(txt))))))" \
143*7f6ffbefSDamjan Jovanovic	&& echo \#define LOCAL_RULE_LANGS \"$${LOCAL_RULE_LANGS}\" > $@
144*7f6ffbefSDamjan Jovanovic
145*7f6ffbefSDamjan Jovanovic
146*7f6ffbefSDamjan Jovanovic# fdo#31271 ")" reclassified in more recent ICU/Unicode Standards
147*7f6ffbefSDamjan Jovanovicinclude $(OUTDIR)/inc/icuversion.mk
148*7f6ffbefSDamjan JovanovicICU_RECLASSIFIED_BRACKET := $(shell [ ${ICU_MAJOR} -ge 5 -o \( ${ICU_MAJOR} -eq 4 -a ${ICU_MINOR} -ge 4 \) ] && echo YES)
149*7f6ffbefSDamjan Jovanovic
150*7f6ffbefSDamjan Jovanovic
151*7f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%.txt : $(SRCDIR)/i18npool/source/breakiterator/data/%.txt
152*7f6ffbefSDamjan Jovanovicifeq ($(ICU_RECLASSIFIED_BRACKET),YES)
153*7f6ffbefSDamjan Jovanovic	mkdir -p $(dir $@) && \
154*7f6ffbefSDamjan Jovanovic	sed "s#\[:LineBreak =  Close_Punctuation:\]#\[\[:LineBreak =  Close_Punctuation:\] \[:LineBreak = Close_Parenthesis:\]\]#" $< > $@
155*7f6ffbefSDamjan Jovanovicelse
156*7f6ffbefSDamjan Jovanovic	mkdir -p $(dir $@) && \
157*7f6ffbefSDamjan Jovanovic	cp $< $@
158*7f6ffbefSDamjan Jovanovicendif
159*7f6ffbefSDamjan Jovanovic
160*7f6ffbefSDamjan Jovanovic
161*7f6ffbefSDamjan Jovanovicifeq ($(SYSTEM_ICU),YES)
162*7f6ffbefSDamjan JovanovicGENCMN := $(SYSTEM_GENCMN)
163*7f6ffbefSDamjan JovanovicGENBRK := $(SYSTEM_GENBRK)
164*7f6ffbefSDamjan JovanovicGENCCODE := $(SYSTEM_GENCCODE)
165*7f6ffbefSDamjan Jovanovicelse
166*7f6ffbefSDamjan JovanovicGENCMN := $(gb_Augment_Library_Path) $(OUTDIR)/bin/gencmn$(gb_Executable_EXT)
167*7f6ffbefSDamjan JovanovicGENBRK := $(gb_Augment_Library_Path) $(OUTDIR)/bin/genbrk$(gb_Executable_EXT)
168*7f6ffbefSDamjan JovanovicGENCCODE := $(gb_Augment_Library_Path) $(OUTDIR)/bin/genccode$(gb_Executable_EXT)
169*7f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%.brk : $(OUTDIR)/bin/genbrk$(gb_Executable_EXT)
170*7f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%_brk.c: $(OUTDIR)/bin/genccode$(gb_Executable_EXT)
171*7f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/OpenOffice_dat.c : $(OUTDIR)/bin/gencmn$(gb_Executable_EXT)
172*7f6ffbefSDamjan Jovanovicendif
173*7f6ffbefSDamjan Jovanovic
174*7f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%.brk : $(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%.txt
175*7f6ffbefSDamjan Jovanovic	$(GENBRK) -r $(call gb_Helper_convert_native,$<) -o $(call gb_Helper_convert_native,$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/$*.brk)
176*7f6ffbefSDamjan Jovanovic
177*7f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%_brk.c : $(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%.brk
178*7f6ffbefSDamjan Jovanovic	$(GENCCODE) -n OpenOffice -d $(call gb_Helper_convert_native,$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data) $(call gb_Helper_convert_native,$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/$*.brk)
179*7f6ffbefSDamjan Jovanovic
180*7f6ffbefSDamjan Jovanovic# 'gencmn', 'genbrk' and 'genccode' are tools generated and delivered by icu project to process icu breakiterator rules.
181*7f6ffbefSDamjan Jovanovic# The output of gencmn generates warnings under Windows. We want to minimize the patches to external tools,
182*7f6ffbefSDamjan Jovanovic# so the output (OpenOffice_icu_dat.c) is changed here to include a pragma to disable the warnings.
183*7f6ffbefSDamjan Jovanovic# Output of gencmn is redirected to OpenOffice_icu_tmp.c with the -t switch.
184*7f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/OpenOffice_dat.c : $(wildcard $(SRCDIR)/i18npool/source/breakiterator/data/*.txt)
185*7f6ffbefSDamjan Jovanovic	RESPONSEFILE=$(call var2filecr,$(shell $(gb_MKTEMP)),1,$(foreach txt,$(wildcard $(SRCDIR)/i18npool/source/breakiterator/data/*.txt),$(notdir $(basename $(txt))).brk)) \
186*7f6ffbefSDamjan Jovanovic	&& cat $${RESPONSEFILE} \
187*7f6ffbefSDamjan Jovanovic	&& $(GENCMN) -n OpenOffice -t tmp -S -d $(call gb_Helper_convert_native,$(dir $@)) O $(call gb_Helper_convert_native,$${RESPONSEFILE}) \
188*7f6ffbefSDamjan Jovanovic	&& echo "#ifdef _MSC_VER" > $@ \
189*7f6ffbefSDamjan Jovanovic	&& echo "#pragma warning( disable : 4229 4668 )" >> $@ \
190*7f6ffbefSDamjan Jovanovic	&& echo "#endif" >> $@ \
191*7f6ffbefSDamjan Jovanovic	&& cat $(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/OpenOffice_tmp.c >> $@ \
192*7f6ffbefSDamjan Jovanovic	&& rm -f $${RESPONSEFILE}
193*7f6ffbefSDamjan Jovanovic
194*7f6ffbefSDamjan Jovanovic#$(eval $(call gb_Library_add_generated_cobjects,i18npool,\
195*7f6ffbefSDamjan Jovanovic#	$(foreach txt,$(wildcard $(SRCDIR)/i18npool/source/breakiterator/data/*.txt),CustomTarget/i18npool/source/breakiterator/data/$(notdir $(basename $(txt)))_brk) \
196*7f6ffbefSDamjan Jovanovic#))
197*7f6ffbefSDamjan Jovanovic
198*7f6ffbefSDamjan Jovanovic$(foreach txt,$(wildcard $(SRCDIR)/i18npool/source/breakiterator/data/*.txt),$(eval $(call gb_Library_add_generated_cobject,i18npool,CustomTarget/i18npool/source/breakiterator/data/$(notdir $(basename $(txt)))_brk)))
199*7f6ffbefSDamjan Jovanovic
200*7f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_generated_cobject,i18npool,CustomTarget/i18npool/source/breakiterator/data/OpenOffice_dat))
201*7f6ffbefSDamjan Jovanovic
202*7f6ffbefSDamjan Jovanovic# vim: set noet sw=4 ts=4:
203*7f6ffbefSDamjan Jovanovic
204