1*b1cdbd2cSJim Jagielski#**************************************************************
2*b1cdbd2cSJim Jagielski#
3*b1cdbd2cSJim Jagielski#  Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski#  or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski#  distributed with this work for additional information
6*b1cdbd2cSJim Jagielski#  regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski#  to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski#  "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski#  with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski#
11*b1cdbd2cSJim Jagielski#    http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski#
13*b1cdbd2cSJim Jagielski#  Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski#  software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski#  KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski#  specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski#  under the License.
19*b1cdbd2cSJim Jagielski#
20*b1cdbd2cSJim Jagielski#**************************************************************
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim JagielskiPRJ=..$/..
24*b1cdbd2cSJim JagielskiPRJNAME=i18npool
25*b1cdbd2cSJim JagielskiTARGET=breakiterator
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim JagielskiTARGETTYPE=CUI
28*b1cdbd2cSJim JagielskiENABLE_EXCEPTIONS=TRUE
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski# --- Settings -----------------------------------------------------
31*b1cdbd2cSJim Jagielski
32*b1cdbd2cSJim Jagielski.INCLUDE :  settings.mk
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski# --- Files --------------------------------------------------------
35*b1cdbd2cSJim Jagielski
36*b1cdbd2cSJim Jagielski# grab all .txt files under data directory, which are breakiterator rule files.
37*b1cdbd2cSJim JagielskiMY_BRK_TXTFILES:=$(shell @ls data/*.txt)
38*b1cdbd2cSJim Jagielski
39*b1cdbd2cSJim Jagielski# insert "OpenOffice" as icu package name in front of the  name of each rule file for searching on application provided data
40*b1cdbd2cSJim JagielskiMY_BRK_BRKFILES:=$(subst,data/,$(MISC)$/ $(MY_BRK_TXTFILES:s/.txt/.brk/))
41*b1cdbd2cSJim Jagielski
42*b1cdbd2cSJim Jagielski# OpenOffice_dat.c is a generated file from the rule file list by gencmn
43*b1cdbd2cSJim JagielskiMY_MISC_CXXFILES := \
44*b1cdbd2cSJim Jagielski        $(MISC)$/OpenOffice_dat.c \
45*b1cdbd2cSJim Jagielski        $(MY_BRK_BRKFILES:s/.brk/_brk.c/)
46*b1cdbd2cSJim Jagielski
47*b1cdbd2cSJim JagielskiSLOFILES=   \
48*b1cdbd2cSJim Jagielski	    $(SLO)$/breakiteratorImpl.obj \
49*b1cdbd2cSJim Jagielski	    $(SLO)$/breakiterator_cjk.obj \
50*b1cdbd2cSJim Jagielski	    $(SLO)$/breakiterator_ctl.obj \
51*b1cdbd2cSJim Jagielski	    $(SLO)$/breakiterator_th.obj \
52*b1cdbd2cSJim Jagielski	    $(SLO)$/breakiterator_unicode.obj \
53*b1cdbd2cSJim Jagielski	    $(SLO)$/xdictionary.obj \
54*b1cdbd2cSJim Jagielski        $(subst,$(MISC)$/,$(SLO)$/ $(MY_MISC_CXXFILES:s/.c/.obj/))
55*b1cdbd2cSJim Jagielski
56*b1cdbd2cSJim JagielskiOBJFILES   = $(OBJ)$/gendict.obj
57*b1cdbd2cSJim Jagielski
58*b1cdbd2cSJim JagielskiAPP1TARGET = gendict
59*b1cdbd2cSJim JagielskiAPP1RPATH = NONE
60*b1cdbd2cSJim Jagielski
61*b1cdbd2cSJim JagielskiDEPOBJFILES   = $(OBJ)$/gendict.obj
62*b1cdbd2cSJim JagielskiAPP1OBJS   = $(DEPOBJFILES)
63*b1cdbd2cSJim Jagielski
64*b1cdbd2cSJim JagielskiAPP1STDLIBS = $(SALLIB)
65*b1cdbd2cSJim Jagielski
66*b1cdbd2cSJim Jagielski# --- Targets ------------------------------------------------------
67*b1cdbd2cSJim Jagielski
68*b1cdbd2cSJim Jagielski.IF "$(SYSTEM_ICU)" == "YES"
69*b1cdbd2cSJim JagielskiGENCMN:=$(SYSTEM_GENCMN)
70*b1cdbd2cSJim JagielskiGENBRK:=$(SYSTEM_GENBRK)
71*b1cdbd2cSJim JagielskiGENCCODE:=$(SYSTEM_GENCCODE)
72*b1cdbd2cSJim Jagielski.ELSE
73*b1cdbd2cSJim JagielskiGENCMN:=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)$/gencmn
74*b1cdbd2cSJim JagielskiGENBRK:=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)$/genbrk
75*b1cdbd2cSJim JagielskiGENCCODE:=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)$/genccode
76*b1cdbd2cSJim Jagielski.ENDIF
77*b1cdbd2cSJim Jagielski
78*b1cdbd2cSJim Jagielski.INCLUDE .IGNORE :  icuversion.mk
79*b1cdbd2cSJim Jagielski
80*b1cdbd2cSJim Jagielski$(MISC)$/%.txt : data/%.txt
81*b1cdbd2cSJim Jagielski# fdo#31271 ")" reclassified in more recent ICU/Unicode Standards
82*b1cdbd2cSJim Jagielski.IF "$(ICU_MAJOR)" >= "5" || ("$(ICU_MAJOR)" == "4" && "$(ICU_MINOR)" >= "4")
83*b1cdbd2cSJim Jagielski    $(SED) "s#\[:LineBreak =  Close_Punctuation:\]#\[\[:LineBreak =  Close_Punctuation:\] \[:LineBreak = Close_Parenthesis:\]\]#" $< > $@
84*b1cdbd2cSJim Jagielski.ELSE
85*b1cdbd2cSJim Jagielski    $(COPY) $< $@
86*b1cdbd2cSJim Jagielski.ENDIF
87*b1cdbd2cSJim Jagielski
88*b1cdbd2cSJim Jagielski$(MISC)$/%.brk : $(MISC)/%.txt
89*b1cdbd2cSJim Jagielski    $(WRAPCMD) $(GENBRK) -r $< -o $(MISC)$/$*.brk
90*b1cdbd2cSJim Jagielski
91*b1cdbd2cSJim Jagielski$(MISC)$/%_brk.c : $(MISC)$/%.brk
92*b1cdbd2cSJim Jagielski    $(WRAPCMD) $(GENCCODE) -n OpenOffice -d $(MISC)$ $(MISC)$/$*.brk
93*b1cdbd2cSJim Jagielski
94*b1cdbd2cSJim Jagielski# 'gencmn', 'genbrk' and 'genccode' are tools generated and delivered by icu project to process icu breakiterator rules.
95*b1cdbd2cSJim Jagielski# The output of gencmn generates warnings under Windows. We want to minimize the patches to external tools,
96*b1cdbd2cSJim Jagielski# so the output (OpenOffice_icu_dat.c) is changed here to include a pragma to disable the warnings.
97*b1cdbd2cSJim Jagielski# Output of gencmn is redirected to OpenOffice_icu_tmp.c with the -t switch.
98*b1cdbd2cSJim Jagielski$(MISC)$/OpenOffice_%.c : $(MY_BRK_BRKFILES:s/.brk/_brk.c/)
99*b1cdbd2cSJim Jagielski    $(WRAPCMD) $(GENCMN) -n OpenOffice -t tmp -S -d $(MISC) O $(mktmp $(subst,$(MISC)$/, $(MY_BRK_BRKFILES:t"\n")))
100*b1cdbd2cSJim Jagielski    echo $(USQ)#ifdef _MSC_VER$(USQ) > $@
101*b1cdbd2cSJim Jagielski    echo $(USQ)#pragma warning( disable : 4229 4668 )$(USQ) >> $@
102*b1cdbd2cSJim Jagielski    echo $(USQ)#endif$(USQ) >> $@
103*b1cdbd2cSJim Jagielski    $(TYPE) $(@:s/_dat/_tmp/) >> $@
104*b1cdbd2cSJim Jagielski
105*b1cdbd2cSJim Jagielski.INCLUDE :	target.mk
106*b1cdbd2cSJim Jagielski
107