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