#**************************************************************
#  
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#  
#    http://www.apache.org/licenses/LICENSE-2.0
#  
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License.
#  
#**************************************************************
PRJ=..$/..$/..

PRJNAME=i18npool
TARGET=localedata
.IF "$(GUI)" == "OS2"
TARGET=ld
.ENDIF
LIBTARGET=NO

# Disable debugging on MSC compilers, due linker bug
.IF "$(COM)"=="MSC"
debug!=
.ENDIF

.IF "$(OS)" == "WNT"
my_file = file:///
.ELSE
my_file = file://
.END

my_components = sax.inbuild

# --- Settings -----------------------------------------------------

.INCLUDE :  settings.mk

# macro to link with localedata_en library
.IF "$(GUI)" == "WNT"
.IF "$(COM)"=="GCC"
LINK_LOCALEDATA_EN_LIB=-l$(SHL1TARGET)
LINK_LOCALEDATA_ES_LIB=-l$(SHL2TARGET)
.ELSE
LINK_LOCALEDATA_EN_LIB=$(LB)$/i$(SHL1TARGET).lib
LINK_LOCALEDATA_ES_LIB=$(LB)$/i$(SHL2TARGET).lib
.ENDIF
.ELIF "$(GUI)" == "OS2"
LINK_LOCALEDATA_EN_LIB=$(LB)$/i$(SHL1TARGET).lib
LINK_LOCALEDATA_ES_LIB=$(LB)$/i$(SHL2TARGET).lib
.ELSE
LINK_LOCALEDATA_EN_LIB=-l$(SHL1TARGET)
LINK_LOCALEDATA_ES_LIB=-l$(SHL2TARGET)
.ENDIF

# --- Files --------------------------------------------------------

# English Locales
SHL1TARGET=localedata_en
.IF "$(GUI)" == "OS2"
SHL1TARGET=ld_en
.ENDIF
SHL1IMPLIB=i$(SHL1TARGET)

SHL1VERSIONMAP=localedata_en.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)

SHL1OBJS= \
	$(SLO)$/localedata_en_AU.obj \
	$(SLO)$/localedata_en_BZ.obj \
	$(SLO)$/localedata_en_CA.obj \
	$(SLO)$/localedata_en_GB.obj \
	$(SLO)$/localedata_en_GH.obj \
	$(SLO)$/localedata_en_IE.obj \
	$(SLO)$/localedata_en_JM.obj \
	$(SLO)$/localedata_en_NA.obj \
	$(SLO)$/localedata_en_NZ.obj \
	$(SLO)$/localedata_en_PH.obj \
	$(SLO)$/localedata_en_TT.obj \
	$(SLO)$/localedata_en_US.obj \
	$(SLO)$/localedata_en_ZA.obj \
	$(SLO)$/localedata_en_ZW.obj

LIB1TARGET=	$(SLB)$/$(SHL1TARGET).lib
LIB1OBJFILES=$(SHL1OBJS)

# Spanish Locales
SHL2TARGET=localedata_es
.IF "$(GUI)" == "OS2"
SHL2TARGET=ld_es
.ENDIF
SHL2IMPLIB=i$(SHL2TARGET)

SHL2VERSIONMAP=localedata_es.map
SHL2DEF=$(MISC)$/$(SHL2TARGET).def
DEF2NAME=$(SHL2TARGET)

SHL2STDLIBS=	$(LINK_LOCALEDATA_EN_LIB)
SHL2DEPN=$(SHL1TARGETN)
SHL2OBJS= \
	$(SLO)$/localedata_es_AR.obj \
	$(SLO)$/localedata_es_BO.obj \
	$(SLO)$/localedata_es_CL.obj \
	$(SLO)$/localedata_es_CO.obj \
	$(SLO)$/localedata_es_CR.obj \
	$(SLO)$/localedata_es_DO.obj \
	$(SLO)$/localedata_es_EC.obj \
	$(SLO)$/localedata_es_ES.obj \
	$(SLO)$/localedata_es_GT.obj \
	$(SLO)$/localedata_es_HN.obj \
	$(SLO)$/localedata_es_MX.obj \
	$(SLO)$/localedata_es_NI.obj \
	$(SLO)$/localedata_es_PA.obj \
	$(SLO)$/localedata_es_PE.obj \
	$(SLO)$/localedata_es_PR.obj \
	$(SLO)$/localedata_es_PY.obj \
	$(SLO)$/localedata_es_SV.obj \
	$(SLO)$/localedata_es_UY.obj \
	$(SLO)$/localedata_es_VE.obj \
	$(SLO)$/localedata_gl_ES.obj

LIB2TARGET=	$(SLB)$/$(SHL2TARGET).lib
LIB2OBJFILES=$(SHL2OBJS)

# European Locales
SHL3TARGET=localedata_euro
.IF "$(GUI)" == "OS2"
SHL3TARGET=ld_eur
.ENDIF
SHL3IMPLIB=i$(SHL3TARGET)

SHL3VERSIONMAP=localedata_euro.map
SHL3DEF=$(MISC)$/$(SHL3TARGET).def
DEF3NAME=$(SHL3TARGET)

SHL3STDLIBS=	$(LINK_LOCALEDATA_EN_LIB)
SHL3DEPN=$(SHL1TARGETN) $(SHL2TARGETN)
SHL3OBJS=	\
	$(SLO)$/localedata_ast_ES.obj	\
	$(SLO)$/localedata_be_BY.obj	\
	$(SLO)$/localedata_bg_BG.obj	\
	$(SLO)$/localedata_br_FR.obj	\
	$(SLO)$/localedata_bs_BA.obj	\
	$(SLO)$/localedata_ca_ES.obj	\
	$(SLO)$/localedata_cs_CZ.obj	\
	$(SLO)$/localedata_cv_RU.obj	\
	$(SLO)$/localedata_cy_GB.obj	\
	$(SLO)$/localedata_da_DK.obj	\
	$(SLO)$/localedata_de_AT.obj	\
	$(SLO)$/localedata_de_CH.obj	\
	$(SLO)$/localedata_de_DE.obj	\
	$(SLO)$/localedata_de_LI.obj	\
	$(SLO)$/localedata_de_LU.obj	\
	$(SLO)$/localedata_dsb_DE.obj	\
	$(SLO)$/localedata_el_GR.obj	\
	$(SLO)$/localedata_et_EE.obj	\
	$(SLO)$/localedata_eu.obj	\
	$(SLO)$/localedata_fi_FI.obj	\
	$(SLO)$/localedata_fo_FO.obj	\
	$(SLO)$/localedata_fr_BE.obj	\
	$(SLO)$/localedata_fr_CA.obj	\
	$(SLO)$/localedata_fr_CH.obj	\
	$(SLO)$/localedata_fr_FR.obj	\
	$(SLO)$/localedata_fr_LU.obj	\
	$(SLO)$/localedata_fr_MC.obj	\
	$(SLO)$/localedata_fur_IT.obj	\
	$(SLO)$/localedata_fy_NL.obj	\
	$(SLO)$/localedata_ga_IE.obj	\
	$(SLO)$/localedata_gd_GB.obj	\
	$(SLO)$/localedata_gsc_FR.obj	\
	$(SLO)$/localedata_hr_HR.obj	\
	$(SLO)$/localedata_hsb_DE.obj	\
	$(SLO)$/localedata_is_IS.obj	\
	$(SLO)$/localedata_it_CH.obj	\
	$(SLO)$/localedata_it_IT.obj	\
	$(SLO)$/localedata_ka_GE.obj	\
	$(SLO)$/localedata_kl_GL.obj	\
	$(SLO)$/localedata_la_VA.obj	\
	$(SLO)$/localedata_lb_LU.obj	\
	$(SLO)$/localedata_lt_LT.obj	\
	$(SLO)$/localedata_ltg_LV.obj	\
	$(SLO)$/localedata_lv_LV.obj	\
	$(SLO)$/localedata_mk_MK.obj	\
	$(SLO)$/localedata_mt_MT.obj	\
	$(SLO)$/localedata_nb_NO.obj	\
	$(SLO)$/localedata_nl_BE.obj	\
	$(SLO)$/localedata_nl_NL.obj	\
	$(SLO)$/localedata_nn_NO.obj	\
	$(SLO)$/localedata_no_NO.obj	\
	$(SLO)$/localedata_oc_FR.obj	\
	$(SLO)$/localedata_pl_PL.obj	\
	$(SLO)$/localedata_pt_BR.obj	\
	$(SLO)$/localedata_pt_PT.obj	\
	$(SLO)$/localedata_ro_RO.obj	\
	$(SLO)$/localedata_rue_SK.obj	\
	$(SLO)$/localedata_ru_RU.obj	\
	$(SLO)$/localedata_sc_IT.obj	\
	$(SLO)$/localedata_sh_ME.obj	\
	$(SLO)$/localedata_sh_RS.obj	\
	$(SLO)$/localedata_sh_YU.obj	\
	$(SLO)$/localedata_sk_SK.obj	\
	$(SLO)$/localedata_sl_SI.obj	\
	$(SLO)$/localedata_sr_ME.obj	\
	$(SLO)$/localedata_sr_RS.obj	\
	$(SLO)$/localedata_sr_YU.obj	\
	$(SLO)$/localedata_sv_FI.obj	\
	$(SLO)$/localedata_sv_SE.obj	\
	$(SLO)$/localedata_tr_TR.obj	\
	$(SLO)$/localedata_uk_UA.obj	\
	$(SLO)$/localedata_wa_BE.obj

LIB3TARGET=	$(SLB)$/$(SHL3TARGET).lib
LIB3OBJFILES=$(SHL3OBJS)

# Other Locales
SHL4TARGET=localedata_others
.IF "$(GUI)" == "OS2"
SHL4TARGET=ld_oth
.ENDIF
SHL4IMPLIB=i$(SHL4TARGET)

SHL4VERSIONMAP=localedata_others.map
SHL4DEF=$(MISC)$/$(SHL4TARGET).def
DEF4NAME=$(SHL4TARGET)

SHL4STDLIBS=	$(LINK_LOCALEDATA_EN_LIB)
SHL4DEPN=$(SHL1TARGETN)
SHL4OBJS= \
	$(SLO)$/localedata_af_NA.obj \
	$(SLO)$/localedata_af_ZA.obj \
	$(SLO)$/localedata_ak_GH.obj \
	$(SLO)$/localedata_am_ET.obj \
	$(SLO)$/localedata_ar_DZ.obj \
	$(SLO)$/localedata_ar_EG.obj \
	$(SLO)$/localedata_ar_LB.obj \
	$(SLO)$/localedata_ar_OM.obj \
	$(SLO)$/localedata_ar_SA.obj \
	$(SLO)$/localedata_ar_TN.obj \
	$(SLO)$/localedata_az_AZ.obj \
	$(SLO)$/localedata_bn_IN.obj \
	$(SLO)$/localedata_bn_BD.obj \
	$(SLO)$/localedata_dz_BT.obj \
	$(SLO)$/localedata_ee_GH.obj \
	$(SLO)$/localedata_en_IN.obj \
	$(SLO)$/localedata_eo.obj    \
	$(SLO)$/localedata_fa_IR.obj \
	$(SLO)$/localedata_gu_IN.obj \
	$(SLO)$/localedata_gug_PY.obj \
	$(SLO)$/localedata_haw_US.obj \
	$(SLO)$/localedata_ha_GH.obj \
	$(SLO)$/localedata_he_IL.obj \
	$(SLO)$/localedata_hi_IN.obj \
	$(SLO)$/localedata_hil_PH.obj \
	$(SLO)$/localedata_ht_HT.obj \
	$(SLO)$/localedata_hu_HU.obj \
	$(SLO)$/localedata_hy_AM.obj \
	$(SLO)$/localedata_ia.obj    \
	$(SLO)$/localedata_id_ID.obj \
	$(SLO)$/localedata_ja_JP.obj \
	$(SLO)$/localedata_jbo.obj \
	$(SLO)$/localedata_kk_KZ.obj \
	$(SLO)$/localedata_km_KH.obj \
	$(SLO)$/localedata_kn_IN.obj \
	$(SLO)$/localedata_ko_KR.obj \
	$(SLO)$/localedata_ku_TR.obj \
	$(SLO)$/localedata_ky_KG.obj \
	$(SLO)$/localedata_lg_UG.obj \
	$(SLO)$/localedata_lif_NP.obj \
	$(SLO)$/localedata_ln_CD.obj \
	$(SLO)$/localedata_lo_LA.obj \
	$(SLO)$/localedata_mai_IN.obj \
	$(SLO)$/localedata_ml_IN.obj \
	$(SLO)$/localedata_mn_MN.obj \
	$(SLO)$/localedata_mr_IN.obj \
	$(SLO)$/localedata_ms_MY.obj \
	$(SLO)$/localedata_my_MM.obj \
	$(SLO)$/localedata_ne_NP.obj \
	$(SLO)$/localedata_nr_ZA.obj \
	$(SLO)$/localedata_nso_ZA.obj \
	$(SLO)$/localedata_om_ET.obj \
	$(SLO)$/localedata_or_IN.obj \
	$(SLO)$/localedata_pa_IN.obj \
	$(SLO)$/localedata_plt_MG.obj \
	$(SLO)$/localedata_rw_RW.obj \
	$(SLO)$/localedata_sg_CF.obj \
	$(SLO)$/localedata_shs_CA.obj \
	$(SLO)$/localedata_so_SO.obj \
	$(SLO)$/localedata_ss_ZA.obj \
	$(SLO)$/localedata_st_ZA.obj \
	$(SLO)$/localedata_sw_TZ.obj \
	$(SLO)$/localedata_ta_IN.obj \
	$(SLO)$/localedata_te_IN.obj \
	$(SLO)$/localedata_tg_TJ.obj \
	$(SLO)$/localedata_th_TH.obj \
	$(SLO)$/localedata_ti_ER.obj \
	$(SLO)$/localedata_tk_TM.obj \
	$(SLO)$/localedata_tn_ZA.obj \
	$(SLO)$/localedata_tpi_PG.obj \
	$(SLO)$/localedata_ts_ZA.obj \
	$(SLO)$/localedata_ug_CN.obj \
	$(SLO)$/localedata_ur_PK.obj \
	$(SLO)$/localedata_uz_UZ.obj \
	$(SLO)$/localedata_ve_ZA.obj \
	$(SLO)$/localedata_vi_VN.obj \
	$(SLO)$/localedata_xh_ZA.obj \
	$(SLO)$/localedata_yi_US.obj \
	$(SLO)$/localedata_zh_CN.obj \
	$(SLO)$/localedata_zh_HK.obj \
	$(SLO)$/localedata_zh_MO.obj \
	$(SLO)$/localedata_zh_SG.obj \
	$(SLO)$/localedata_zh_TW.obj \
	$(SLO)$/localedata_zu_ZA.obj

LIB4TARGET=	$(SLB)$/$(SHL4TARGET).lib
LIB4OBJFILES=$(SHL4OBJS)

DEPOBJFILES= \
	$(SHL1OBJS) \
	$(SHL2OBJS) \
	$(SHL3OBJS) \
	$(SHL4OBJS)

# Interim files generated by the saxparser executable, for dependencies
MY_MISC_CXXFILES := $(foreach,i,$(DEPOBJFILES) $(MISC)/$(i:b).cxx)

# --- Targets ------------------------------------------------------

.INCLUDE :  target.mk

$(MY_MISC_CXXFILES) : $(BIN)$/saxparser$(EXECPOST) $(MISC)/saxparser.rdb

$(MISC)$/localedata_%.cxx : %.xml
    $(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(BIN)$/saxparser $* $< $@ \
        $(my_file)$(PWD)/$(MISC)/saxparser.rdb $(SOLARBINDIR)$/types.rdb \
        -env:OOO_INBUILD_SHAREDLIB_DIR=$(my_file)$(SOLARSHAREDBIN)
    $(RM) $(BIN)$/$(@:b).rdb

$(MISC)/saxparser.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \
        $(MISC)/saxparser.input \
        $(my_components:^"$(SOLARXMLDIR)/":+".component")
    $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
        $(SOLARENV)/bin/packcomponents.xslt $(MISC)/saxparser.input

$(MISC)/saxparser.input :
    echo \
        '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \
        > $@
