1#*************************************************************************
2#*
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# Copyright 2000, 2010 Oracle and/or its affiliates.
6#
7# OpenOffice.org - a multi-platform office productivity suite
8#
9# This file is part of OpenOffice.org.
10#
11# OpenOffice.org is free software: you can redistribute it and/or modify
12# it under the terms of the GNU Lesser General Public License version 3
13# only, as published by the Free Software Foundation.
14#
15# OpenOffice.org is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18# GNU Lesser General Public License version 3 for more details
19# (a copy is included in the LICENSE file that accompanied this code).
20#
21# You should have received a copy of the GNU Lesser General Public License
22# version 3 along with OpenOffice.org.  If not, see
23# <http://www.openoffice.org/license.html>
24# for a copy of the LGPLv3 License.
25#
26#************************************************************************
27
28PRJ=..$/..$/..
29
30PRJNAME=i18npool
31TARGET=localedata
32.IF "$(GUI)" == "OS2"
33TARGET=ld
34.ENDIF
35LIBTARGET=NO
36
37# Disable debugging on MSC compilers, due linker bug
38.IF "$(COM)"=="MSC"
39debug!=
40.ENDIF
41
42.IF "$(OS)" == "WNT"
43my_file = file:///
44.ELSE
45my_file = file://
46.END
47
48my_components = sax.inbuild
49
50# --- Settings -----------------------------------------------------
51
52.INCLUDE :  settings.mk
53
54# macro to link with localedata_en library
55.IF "$(GUI)" == "WNT"
56.IF "$(COM)"=="GCC"
57LINK_LOCALEDATA_EN_LIB=-l$(SHL1TARGET)
58LINK_LOCALEDATA_ES_LIB=-l$(SHL2TARGET)
59.ELSE
60LINK_LOCALEDATA_EN_LIB=$(LB)$/i$(SHL1TARGET).lib
61LINK_LOCALEDATA_ES_LIB=$(LB)$/i$(SHL2TARGET).lib
62.ENDIF
63.ELIF "$(GUI)" == "OS2"
64LINK_LOCALEDATA_EN_LIB=$(LB)$/i$(SHL1TARGET).lib
65LINK_LOCALEDATA_ES_LIB=$(LB)$/i$(SHL2TARGET).lib
66.ELSE
67LINK_LOCALEDATA_EN_LIB=-l$(SHL1TARGET)
68LINK_LOCALEDATA_ES_LIB=-l$(SHL2TARGET)
69.ENDIF
70
71# --- Files --------------------------------------------------------
72
73# English Locales
74SHL1TARGET=localedata_en
75.IF "$(GUI)" == "OS2"
76SHL1TARGET=ld_en
77.ENDIF
78SHL1IMPLIB=i$(SHL1TARGET)
79
80SHL1VERSIONMAP=localedata_en.map
81SHL1DEF=$(MISC)$/$(SHL1TARGET).def
82DEF1NAME=$(SHL1TARGET)
83
84SHL1OBJS= \
85	$(SLO)$/localedata_en_AU.obj \
86	$(SLO)$/localedata_en_BZ.obj \
87	$(SLO)$/localedata_en_CA.obj \
88	$(SLO)$/localedata_en_GB.obj \
89	$(SLO)$/localedata_en_GH.obj \
90	$(SLO)$/localedata_en_IE.obj \
91	$(SLO)$/localedata_en_JM.obj \
92	$(SLO)$/localedata_en_NA.obj \
93	$(SLO)$/localedata_en_NZ.obj \
94	$(SLO)$/localedata_en_PH.obj \
95	$(SLO)$/localedata_en_TT.obj \
96	$(SLO)$/localedata_en_US.obj \
97	$(SLO)$/localedata_en_ZA.obj \
98	$(SLO)$/localedata_en_ZW.obj
99
100LIB1TARGET=	$(SLB)$/$(SHL1TARGET).lib
101LIB1OBJFILES=$(SHL1OBJS)
102
103# Spanish Locales
104SHL2TARGET=localedata_es
105.IF "$(GUI)" == "OS2"
106SHL2TARGET=ld_es
107.ENDIF
108SHL2IMPLIB=i$(SHL2TARGET)
109
110SHL2VERSIONMAP=localedata_es.map
111SHL2DEF=$(MISC)$/$(SHL2TARGET).def
112DEF2NAME=$(SHL2TARGET)
113
114SHL2STDLIBS=	$(LINK_LOCALEDATA_EN_LIB)
115SHL2DEPN=$(SHL1TARGETN)
116SHL2OBJS= \
117	$(SLO)$/localedata_es_AR.obj \
118	$(SLO)$/localedata_es_BO.obj \
119	$(SLO)$/localedata_es_CL.obj \
120	$(SLO)$/localedata_es_CO.obj \
121	$(SLO)$/localedata_es_CR.obj \
122	$(SLO)$/localedata_es_DO.obj \
123	$(SLO)$/localedata_es_EC.obj \
124	$(SLO)$/localedata_es_ES.obj \
125	$(SLO)$/localedata_es_GT.obj \
126	$(SLO)$/localedata_es_HN.obj \
127	$(SLO)$/localedata_es_MX.obj \
128	$(SLO)$/localedata_es_NI.obj \
129	$(SLO)$/localedata_es_PA.obj \
130	$(SLO)$/localedata_es_PE.obj \
131	$(SLO)$/localedata_es_PR.obj \
132	$(SLO)$/localedata_es_PY.obj \
133	$(SLO)$/localedata_es_SV.obj \
134	$(SLO)$/localedata_es_UY.obj \
135	$(SLO)$/localedata_es_VE.obj \
136	$(SLO)$/localedata_gl_ES.obj
137
138LIB2TARGET=	$(SLB)$/$(SHL2TARGET).lib
139LIB2OBJFILES=$(SHL2OBJS)
140
141# European Locales
142SHL3TARGET=localedata_euro
143.IF "$(GUI)" == "OS2"
144SHL3TARGET=ld_eur
145.ENDIF
146SHL3IMPLIB=i$(SHL3TARGET)
147
148SHL3VERSIONMAP=localedata_euro.map
149SHL3DEF=$(MISC)$/$(SHL3TARGET).def
150DEF3NAME=$(SHL3TARGET)
151
152SHL3STDLIBS=	$(LINK_LOCALEDATA_EN_LIB)
153SHL3DEPN=$(SHL1TARGETN) $(SHL2TARGETN)
154SHL3OBJS=	\
155	$(SLO)$/localedata_ast_ES.obj	\
156	$(SLO)$/localedata_be_BY.obj	\
157	$(SLO)$/localedata_bg_BG.obj	\
158	$(SLO)$/localedata_br_FR.obj	\
159	$(SLO)$/localedata_bs_BA.obj	\
160	$(SLO)$/localedata_ca_ES.obj	\
161	$(SLO)$/localedata_cs_CZ.obj	\
162	$(SLO)$/localedata_cv_RU.obj	\
163	$(SLO)$/localedata_cy_GB.obj	\
164	$(SLO)$/localedata_da_DK.obj	\
165	$(SLO)$/localedata_de_AT.obj	\
166	$(SLO)$/localedata_de_CH.obj	\
167	$(SLO)$/localedata_de_DE.obj	\
168	$(SLO)$/localedata_de_LI.obj	\
169	$(SLO)$/localedata_de_LU.obj	\
170	$(SLO)$/localedata_dsb_DE.obj	\
171	$(SLO)$/localedata_el_GR.obj	\
172	$(SLO)$/localedata_et_EE.obj	\
173	$(SLO)$/localedata_eu.obj	\
174	$(SLO)$/localedata_fi_FI.obj	\
175	$(SLO)$/localedata_fo_FO.obj	\
176	$(SLO)$/localedata_fr_BE.obj	\
177	$(SLO)$/localedata_fr_CA.obj	\
178	$(SLO)$/localedata_fr_CH.obj	\
179	$(SLO)$/localedata_fr_FR.obj	\
180	$(SLO)$/localedata_fr_LU.obj	\
181	$(SLO)$/localedata_fr_MC.obj	\
182	$(SLO)$/localedata_fur_IT.obj	\
183	$(SLO)$/localedata_fy_NL.obj	\
184	$(SLO)$/localedata_ga_IE.obj	\
185	$(SLO)$/localedata_gsc_FR.obj	\
186	$(SLO)$/localedata_hr_HR.obj	\
187	$(SLO)$/localedata_hsb_DE.obj	\
188	$(SLO)$/localedata_is_IS.obj	\
189	$(SLO)$/localedata_it_CH.obj	\
190	$(SLO)$/localedata_it_IT.obj	\
191	$(SLO)$/localedata_ka_GE.obj	\
192	$(SLO)$/localedata_kl_GL.obj	\
193	$(SLO)$/localedata_la_VA.obj	\
194	$(SLO)$/localedata_lb_LU.obj	\
195	$(SLO)$/localedata_lt_LT.obj	\
196	$(SLO)$/localedata_ltg_LV.obj	\
197	$(SLO)$/localedata_lv_LV.obj	\
198	$(SLO)$/localedata_mk_MK.obj	\
199	$(SLO)$/localedata_mt_MT.obj	\
200	$(SLO)$/localedata_nb_NO.obj	\
201	$(SLO)$/localedata_nl_BE.obj	\
202	$(SLO)$/localedata_nl_NL.obj	\
203	$(SLO)$/localedata_nn_NO.obj	\
204	$(SLO)$/localedata_no_NO.obj	\
205	$(SLO)$/localedata_oc_FR.obj	\
206	$(SLO)$/localedata_pl_PL.obj	\
207	$(SLO)$/localedata_pt_BR.obj	\
208	$(SLO)$/localedata_pt_PT.obj	\
209	$(SLO)$/localedata_ro_RO.obj	\
210	$(SLO)$/localedata_rue_SK.obj	\
211	$(SLO)$/localedata_ru_RU.obj	\
212	$(SLO)$/localedata_sc_IT.obj	\
213	$(SLO)$/localedata_sh_ME.obj	\
214	$(SLO)$/localedata_sh_RS.obj	\
215	$(SLO)$/localedata_sh_YU.obj	\
216	$(SLO)$/localedata_sk_SK.obj	\
217	$(SLO)$/localedata_sl_SI.obj	\
218	$(SLO)$/localedata_sr_ME.obj	\
219	$(SLO)$/localedata_sr_RS.obj	\
220	$(SLO)$/localedata_sr_YU.obj	\
221	$(SLO)$/localedata_sv_FI.obj	\
222	$(SLO)$/localedata_sv_SE.obj	\
223	$(SLO)$/localedata_tr_TR.obj	\
224	$(SLO)$/localedata_uk_UA.obj	\
225	$(SLO)$/localedata_wa_BE.obj
226
227LIB3TARGET=	$(SLB)$/$(SHL3TARGET).lib
228LIB3OBJFILES=$(SHL3OBJS)
229
230# Other Locales
231SHL4TARGET=localedata_others
232.IF "$(GUI)" == "OS2"
233SHL4TARGET=ld_oth
234.ENDIF
235SHL4IMPLIB=i$(SHL4TARGET)
236
237SHL4VERSIONMAP=localedata_others.map
238SHL4DEF=$(MISC)$/$(SHL4TARGET).def
239DEF4NAME=$(SHL4TARGET)
240
241SHL4STDLIBS=	$(LINK_LOCALEDATA_EN_LIB)
242SHL4DEPN=$(SHL1TARGETN)
243SHL4OBJS= \
244	$(SLO)$/localedata_af_NA.obj \
245	$(SLO)$/localedata_af_ZA.obj \
246	$(SLO)$/localedata_ak_GH.obj \
247	$(SLO)$/localedata_am_ET.obj \
248	$(SLO)$/localedata_ar_DZ.obj \
249	$(SLO)$/localedata_ar_EG.obj \
250	$(SLO)$/localedata_ar_LB.obj \
251	$(SLO)$/localedata_ar_OM.obj \
252	$(SLO)$/localedata_ar_SA.obj \
253	$(SLO)$/localedata_ar_TN.obj \
254	$(SLO)$/localedata_az_AZ.obj \
255	$(SLO)$/localedata_bn_IN.obj \
256	$(SLO)$/localedata_bn_BD.obj \
257	$(SLO)$/localedata_dz_BT.obj \
258	$(SLO)$/localedata_ee_GH.obj \
259	$(SLO)$/localedata_en_IN.obj \
260	$(SLO)$/localedata_eo.obj    \
261	$(SLO)$/localedata_fa_IR.obj \
262	$(SLO)$/localedata_gu_IN.obj \
263	$(SLO)$/localedata_gug_PY.obj \
264	$(SLO)$/localedata_haw_US.obj \
265	$(SLO)$/localedata_ha_GH.obj \
266	$(SLO)$/localedata_he_IL.obj \
267	$(SLO)$/localedata_hi_IN.obj \
268	$(SLO)$/localedata_hil_PH.obj \
269	$(SLO)$/localedata_ht_HT.obj \
270	$(SLO)$/localedata_hu_HU.obj \
271	$(SLO)$/localedata_hy_AM.obj \
272	$(SLO)$/localedata_ia.obj    \
273	$(SLO)$/localedata_id_ID.obj \
274	$(SLO)$/localedata_ja_JP.obj \
275	$(SLO)$/localedata_jbo.obj \
276	$(SLO)$/localedata_kk_KZ.obj \
277	$(SLO)$/localedata_km_KH.obj \
278	$(SLO)$/localedata_kn_IN.obj \
279	$(SLO)$/localedata_ko_KR.obj \
280	$(SLO)$/localedata_ku_TR.obj \
281	$(SLO)$/localedata_ky_KG.obj \
282	$(SLO)$/localedata_lg_UG.obj \
283	$(SLO)$/localedata_lif_NP.obj \
284	$(SLO)$/localedata_ln_CD.obj \
285	$(SLO)$/localedata_lo_LA.obj \
286	$(SLO)$/localedata_mai_IN.obj \
287	$(SLO)$/localedata_ml_IN.obj \
288	$(SLO)$/localedata_mn_MN.obj \
289	$(SLO)$/localedata_mr_IN.obj \
290	$(SLO)$/localedata_ms_MY.obj \
291	$(SLO)$/localedata_my_MM.obj \
292	$(SLO)$/localedata_ne_NP.obj \
293	$(SLO)$/localedata_nr_ZA.obj \
294	$(SLO)$/localedata_nso_ZA.obj \
295	$(SLO)$/localedata_om_ET.obj \
296	$(SLO)$/localedata_or_IN.obj \
297	$(SLO)$/localedata_pa_IN.obj \
298	$(SLO)$/localedata_plt_MG.obj \
299	$(SLO)$/localedata_rw_RW.obj \
300	$(SLO)$/localedata_sg_CF.obj \
301	$(SLO)$/localedata_shs_CA.obj \
302	$(SLO)$/localedata_so_SO.obj \
303	$(SLO)$/localedata_ss_ZA.obj \
304	$(SLO)$/localedata_st_ZA.obj \
305	$(SLO)$/localedata_sw_TZ.obj \
306	$(SLO)$/localedata_ta_IN.obj \
307	$(SLO)$/localedata_te_IN.obj \
308	$(SLO)$/localedata_tg_TJ.obj \
309	$(SLO)$/localedata_th_TH.obj \
310	$(SLO)$/localedata_ti_ER.obj \
311	$(SLO)$/localedata_tk_TM.obj \
312	$(SLO)$/localedata_tn_ZA.obj \
313	$(SLO)$/localedata_tpi_PG.obj \
314	$(SLO)$/localedata_ts_ZA.obj \
315	$(SLO)$/localedata_ug_CN.obj \
316	$(SLO)$/localedata_ur_PK.obj \
317	$(SLO)$/localedata_uz_UZ.obj \
318	$(SLO)$/localedata_ve_ZA.obj \
319	$(SLO)$/localedata_vi_VN.obj \
320	$(SLO)$/localedata_xh_ZA.obj \
321	$(SLO)$/localedata_yi_US.obj \
322	$(SLO)$/localedata_zh_CN.obj \
323	$(SLO)$/localedata_zh_HK.obj \
324	$(SLO)$/localedata_zh_MO.obj \
325	$(SLO)$/localedata_zh_SG.obj \
326	$(SLO)$/localedata_zh_TW.obj \
327	$(SLO)$/localedata_zu_ZA.obj
328
329LIB4TARGET=	$(SLB)$/$(SHL4TARGET).lib
330LIB4OBJFILES=$(SHL4OBJS)
331
332DEPOBJFILES= \
333	$(SHL1OBJS) \
334	$(SHL2OBJS) \
335	$(SHL3OBJS) \
336	$(SHL4OBJS)
337
338# Interim files generated by the saxparser executable, for dependencies
339MY_MISC_CXXFILES := $(foreach,i,$(DEPOBJFILES) $(MISC)/$(i:b).cxx)
340
341# --- Targets ------------------------------------------------------
342
343.INCLUDE :  target.mk
344
345$(MY_MISC_CXXFILES) : $(BIN)$/saxparser$(EXECPOST) $(MISC)/saxparser.rdb
346
347$(MISC)$/localedata_%.cxx : %.xml
348    $(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(BIN)$/saxparser $* $< $@ \
349        $(my_file)$(PWD)/$(MISC)/saxparser.rdb $(SOLARBINDIR)$/types.rdb \
350        -env:OOO_INBUILD_SHAREDLIB_DIR=$(my_file)$(SOLARSHAREDBIN)
351    $(RM) $(BIN)$/$(@:b).rdb
352
353$(MISC)/saxparser.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \
354        $(MISC)/saxparser.input \
355        $(my_components:^"$(SOLARXMLDIR)/":+".component")
356    $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
357        $(SOLARENV)/bin/packcomponents.xslt $(MISC)/saxparser.input
358
359$(MISC)/saxparser.input :
360    echo \
361        '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \
362        > $@
363