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