1*8809db7aSAndrew Rist#**************************************************************
2*8809db7aSAndrew Rist#
3*8809db7aSAndrew Rist#  Licensed to the Apache Software Foundation (ASF) under one
4*8809db7aSAndrew Rist#  or more contributor license agreements.  See the NOTICE file
5*8809db7aSAndrew Rist#  distributed with this work for additional information
6*8809db7aSAndrew Rist#  regarding copyright ownership.  The ASF licenses this file
7*8809db7aSAndrew Rist#  to you under the Apache License, Version 2.0 (the
8*8809db7aSAndrew Rist#  "License"); you may not use this file except in compliance
9*8809db7aSAndrew Rist#  with the License.  You may obtain a copy of the License at
10*8809db7aSAndrew Rist#
11*8809db7aSAndrew Rist#    http://www.apache.org/licenses/LICENSE-2.0
12*8809db7aSAndrew Rist#
13*8809db7aSAndrew Rist#  Unless required by applicable law or agreed to in writing,
14*8809db7aSAndrew Rist#  software distributed under the License is distributed on an
15*8809db7aSAndrew Rist#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*8809db7aSAndrew Rist#  KIND, either express or implied.  See the License for the
17*8809db7aSAndrew Rist#  specific language governing permissions and limitations
18*8809db7aSAndrew Rist#  under the License.
19*8809db7aSAndrew Rist#
20*8809db7aSAndrew Rist#**************************************************************
21cdf0e10cSrcweirPRJ=..$/..
22cdf0e10cSrcweirPRJNAME=writerfilter
23cdf0e10cSrcweirTARGET=resourcemodel
24cdf0e10cSrcweir#LIBTARGET=NO
25cdf0e10cSrcweir#USE_DEFFILE=TRUE
26cdf0e10cSrcweirENABLE_EXCEPTIONS=TRUE
27cdf0e10cSrcweir
28cdf0e10cSrcweir# --- Settings -----------------------------------------------------
29cdf0e10cSrcweir
30cdf0e10cSrcweir.INCLUDE :  settings.mk
31cdf0e10cSrcweir.INCLUDE :  $(PRJ)$/inc$/writerfilter.mk
32cdf0e10cSrcweir
33cdf0e10cSrcweir#CFLAGS+=-DISOLATION_AWARE_ENABLED -DWIN32_LEAN_AND_MEAN -DXML_UNICODE -D_NTSDK -DUNICODE -D_UNICODE -D_WIN32_WINNT=0x0501
34cdf0e10cSrcweir#CFLAGS+=-wd4710 -wd4711 -wd4514 -wd4619 -wd4217 -wd4820
35cdf0e10cSrcweirCDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION
36cdf0e10cSrcweir
37cdf0e10cSrcweir
38cdf0e10cSrcweir# --- Files --------------------------------------------------------
39cdf0e10cSrcweir
40cdf0e10cSrcweir# work around gcc taking hours and/or OOM'ing on this file
41cdf0e10cSrcweirNOOPTFILES= \
42cdf0e10cSrcweir	$(SLO)$/qnametostr.obj
43cdf0e10cSrcweir
44cdf0e10cSrcweirSLOFILES= \
45cdf0e10cSrcweir	$(SLO)$/Fraction.obj \
46cdf0e10cSrcweir	$(SLO)$/LoggedResources.obj \
47cdf0e10cSrcweir	$(SLO)$/Protocol.obj \
48cdf0e10cSrcweir	$(SLO)$/ResourceModelHelper.obj \
49cdf0e10cSrcweir	$(SLO)$/TagLogger.obj \
50cdf0e10cSrcweir	$(SLO)$/WW8Analyzer.obj \
51cdf0e10cSrcweir	$(SLO)$/XPathLogger.obj \
52cdf0e10cSrcweir	$(SLO)$/qnametostr.obj \
53cdf0e10cSrcweir	$(SLO)$/resourcemodel.obj \
54cdf0e10cSrcweir	$(SLO)$/sprmcodetostr.obj \
55cdf0e10cSrcweir	$(SLO)$/util.obj \
56cdf0e10cSrcweir
578a115b9cSPedro Giffuni# FreeBSD/Linux 64-bit: compiler (gcc 4.2.x) fails with 'out of memory'
588a115b9cSPedro Giffuni.IF "$(OUTPATH)"=="unxfbsdx" || "$(OUTPATH)"=="unxfbsdi" || "$(OUTPATH)"=="unxlngx6"
59cdf0e10cSrcweirNOOPTFILES= \
60cdf0e10cSrcweir	$(SLO)$/qnametostr.obj
61cdf0e10cSrcweir.ENDIF
62cdf0e10cSrcweir
63cdf0e10cSrcweirSHL1TARGET=$(TARGET)
64cdf0e10cSrcweir
65cdf0e10cSrcweir.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
66cdf0e10cSrcweirRTFTOKLIB=-lrtftok
67cdf0e10cSrcweirDOCTOKLIB=-ldoctok
68cdf0e10cSrcweirOOXMLLIB=-looxml
69cdf0e10cSrcweir.ELIF "$(GUI)"=="WNT"
70cdf0e10cSrcweirRTFTOKLIB=$(LB)$/irtftok.lib
71cdf0e10cSrcweirDOCTOKLIB=$(LB)$/idoctok.lib
72cdf0e10cSrcweirOOXMLLIB=$(LB)$/iooxml.lib
73cdf0e10cSrcweir.ENDIF
74cdf0e10cSrcweir
75cdf0e10cSrcweirSHL1STDLIBS=$(SALLIB)\
76cdf0e10cSrcweir	$(CPPULIB)\
77cdf0e10cSrcweir	$(CPPUHELPERLIB) \
78cdf0e10cSrcweir    $(COMPHELPERLIB)
79cdf0e10cSrcweir
80cdf0e10cSrcweirSHL1IMPLIB=i$(SHL1TARGET)
81cdf0e10cSrcweirSHL1USE_EXPORTS=name
82cdf0e10cSrcweir
83cdf0e10cSrcweirSHL1OBJS=$(SLOFILES)
84cdf0e10cSrcweir
85cdf0e10cSrcweirSHL1DEF=$(MISC)$/$(SHL1TARGET).def
86cdf0e10cSrcweirDEF1NAME=$(SHL1TARGET)
87cdf0e10cSrcweirDEFLIB1NAME=$(TARGET)
88cdf0e10cSrcweir
89cdf0e10cSrcweir# --- Targets ------------------------------------------------------
90cdf0e10cSrcweir
91cdf0e10cSrcweir.INCLUDE :	target.mk
92cdf0e10cSrcweir
93cdf0e10cSrcweirRESOURCEMODELCXXOUTDIR=$(MISC)
94cdf0e10cSrcweirDOCTOKHXXOUTDIR=$(INCCOM)$/doctok
95cdf0e10cSrcweirOOXMLHXXOUTDIR=$(INCCOM)$/ooxml
96cdf0e10cSrcweir
97cdf0e10cSrcweirDOCTOKHXXOUTDIRCREATED=$(DOCTOKHXXOUTDIR)$/created
98cdf0e10cSrcweirOOXMLHXXOUTDIRCREATED=$(OOXMLHXXOUTDIR)$/created
99cdf0e10cSrcweir
100cdf0e10cSrcweirOOXMLMODEL=..$/ooxml$/model.xml
101cdf0e10cSrcweirOOXMLPREPROCESSXSL=..$/ooxml$/modelpreprocess.xsl
102cdf0e10cSrcweirOOXMLPREPROCESSXSLCOPIED=$(MISC)$/modelpreprocess.xsl
103cdf0e10cSrcweirOOXMLQNAMETOSTRXSL=..$/ooxml$/qnametostr.xsl
104cdf0e10cSrcweirOOXMLANALYZERXSL=..$/ooxml$/analyzer.xsl
105cdf0e10cSrcweirOOXMLRESOURCEIDSXSL=..$/ooxml$/resourceids.xsl
106cdf0e10cSrcweirOOXMLFACTORYTOOLSXSL=..$/ooxml$/factorytools.xsl
107cdf0e10cSrcweirDOCTOKMODEL=..$/doctok$/resources.xmi
108cdf0e10cSrcweirDOCTOKQNAMETOSTRXSL=..$/doctok$/qnametostr.xsl
109cdf0e10cSrcweirDOCTOKANALYZERXSL=..$/doctok$/analyzer.xsl
110cdf0e10cSrcweirDOCTOKSPRMCODETOSTRXSL=..$/doctok$/sprmcodetostr.xsl
111cdf0e10cSrcweirDOCTOKRESOURCEIDSXSL=..$/doctok$/resourceids.xsl
112cdf0e10cSrcweirDOCTOKSPRMIDSXSL=..$/doctok$/sprmids.xsl
113cdf0e10cSrcweirDOCTOKRESOURCETOOLS=..$/doctok$/resourcetools.xsl
114cdf0e10cSrcweir
115cdf0e10cSrcweirNSPROCESS=namespace_preprocess.pl
116cdf0e10cSrcweir
117cdf0e10cSrcweirMODELPROCESSED=$(MISC)$/model_preprocessed.xml
118cdf0e10cSrcweir
119cdf0e10cSrcweirQNAMETOSTRCXX=$(RESOURCEMODELCXXOUTDIR)$/qnametostr.cxx
120cdf0e10cSrcweirOOXMLQNAMETOSTRTMP=$(RESOURCEMODELCXXOUTDIR)$/OOXMLqnameToStr.tmp
121cdf0e10cSrcweirDOCTOKQNAMETOSTRTMP=$(RESOURCEMODELCXXOUTDIR)$/DOCTOKqnameToStr.tmp
122cdf0e10cSrcweirSPRMCODETOSTRCXX=$(RESOURCEMODELCXXOUTDIR)$/sprmcodetostr.cxx
123cdf0e10cSrcweirSPRMCODETOSTRTMP=$(RESOURCEMODELCXXOUTDIR)$/sprmcodetostr.tmp
124cdf0e10cSrcweirDOCTOKRESOURCEIDSHXX=$(DOCTOKHXXOUTDIR)$/resourceids.hxx
125cdf0e10cSrcweirSPRMIDSHXX=$(DOCTOKHXXOUTDIR)$/sprmids.hxx
126cdf0e10cSrcweirOOXMLRESOURCEIDSHXX=$(OOXMLHXXOUTDIR)$/resourceids.hxx
127cdf0e10cSrcweir
128cdf0e10cSrcweirNSXSL=$(MISC)$/namespacesmap.xsl
129cdf0e10cSrcweirNAMESPACESTXT=$(SOLARVER)$/$(INPATH)$/inc$(UPDMINOREXT)$/oox$/token$/namespaces.txt
130cdf0e10cSrcweir
131cdf0e10cSrcweirGENERATEDHEADERS=$(DOCTOKRESOURCEIDSHXX) $(OOXMLRESOURCEIDSHXX) $(SPRMIDSHXX)
132cdf0e10cSrcweirGENERATEDFILES= \
133cdf0e10cSrcweir	$(GENERATEDHEADERS) \
134cdf0e10cSrcweir	$(QNAMETOSTRCXX) \
135cdf0e10cSrcweir	$(SPRMCODETOSTRCXX) \
136cdf0e10cSrcweir	$(MODELPROCESSED) \
137cdf0e10cSrcweir	$(OOXMLQNAMETOSTRTMP) \
138cdf0e10cSrcweir	$(DOCTOKQNAMETOSTRTMP) \
139cdf0e10cSrcweir	$(SPRMCODETOSTRTMP)
140cdf0e10cSrcweir
141cdf0e10cSrcweir$(OOXMLQNAMETOSTRTMP): $(OOXMLQNAMETOSTRXSL) $(MODELPROCESSED)
142cdf0e10cSrcweir    @echo "Making:   " $(@:f)
143cdf0e10cSrcweir	$(XSLTPROC) $(OOXMLQNAMETOSTRXSL:s!\!/!) $(MODELPROCESSED) > $@
144cdf0e10cSrcweir
145cdf0e10cSrcweir$(DOCTOKQNAMETOSTRTMP): $(DOCTOKQNAMETOSTRXSL) $(DOCTOKMODEL)
146cdf0e10cSrcweir    @echo "Making:   " $(@:f)
147cdf0e10cSrcweir	$(XSLTPROC) $(DOCTOKQNAMETOSTRXSL:s!\!/!) $(DOCTOKMODEL) > $@
148cdf0e10cSrcweir
149cdf0e10cSrcweir$(QNAMETOSTRCXX): $(OOXMLQNAMETOSTRTMP) $(DOCTOKQNAMETOSTRTMP) qnametostrheader qnametostrfooter $(OOXMLFACTORYTOOLSXSL) $(DOCTOKRESOURCETOOLS)
150cdf0e10cSrcweir	@$(TYPE) qnametostrheader $(OOXMLQNAMETOSTRTMP) $(DOCTOKQNAMETOSTRTMP) qnametostrfooter > $@
151cdf0e10cSrcweir
152cdf0e10cSrcweir$(SPRMCODETOSTRTMP): $(DOCTOKSPRMCODETOSTRXSL) $(DOCTOKMODEL)
153cdf0e10cSrcweir    @echo "Making:   " $(@:f)
154cdf0e10cSrcweir	$(XSLTPROC) $(DOCTOKSPRMCODETOSTRXSL:s!\!/!) $(DOCTOKMODEL) > $@
155cdf0e10cSrcweir
156cdf0e10cSrcweir$(SPRMCODETOSTRCXX): sprmcodetostrheader $(SPRMCODETOSTRTMP) sprmcodetostrfooter
157cdf0e10cSrcweir	@$(TYPE) $< > $@
158cdf0e10cSrcweir
159cdf0e10cSrcweir$(SLO)$/sprmcodetostr.obj: $(SPRMCODETOSTRCXX)
160cdf0e10cSrcweir$(SLO)$/qnametostr.obj: $(QNAMETOSTRCXX)
161cdf0e10cSrcweir
162cdf0e10cSrcweir$(SLOFILES): $(GENERATEDHEADERS)
163cdf0e10cSrcweir
164cdf0e10cSrcweir$(DOCTOKHXXOUTDIRCREATED):
165cdf0e10cSrcweir	@$(MKDIRHIER) $(DOCTOKHXXOUTDIR)
166cdf0e10cSrcweir	@$(TOUCH) $@
167cdf0e10cSrcweir
168cdf0e10cSrcweir$(DOCTOKRESOURCEIDSHXX): $(DOCTOKHXXOUTDIRCREATED) $(DOCTOKRESOURCETOOLS) $(DOCTOKRESOURCEIDSXSL) $(DOCTOKMODEL)
169cdf0e10cSrcweir    @echo "Making:   " $(@:f)
170cdf0e10cSrcweir	$(COMMAND_ECHO)$(XSLTPROC) $(DOCTOKRESOURCEIDSXSL:s!\!/!) $(DOCTOKMODEL) > $@
171cdf0e10cSrcweir
172cdf0e10cSrcweir$(OOXMLHXXOUTDIRCREATED):
173cdf0e10cSrcweir	@$(MKDIRHIER) $(OOXMLHXXOUTDIR)
174cdf0e10cSrcweir	@$(TOUCH) $@
175cdf0e10cSrcweir
176cdf0e10cSrcweir$(OOXMLPREPROCESSXSLCOPIED): $(OOXMLPREPROCESSXSL)
177cdf0e10cSrcweir	@$(COPY) $(OOXMLPREPROCESSXSL) $@
178cdf0e10cSrcweir
179cdf0e10cSrcweir$(NSXSL) : $(OOXMLMODEL) $(NAMESPACESTXT) $(NSPROCESS)
180cdf0e10cSrcweir	@$(PERL) $(NSPROCESS) $(NAMESPACESTXT) > $@
181cdf0e10cSrcweir
182cdf0e10cSrcweir$(MODELPROCESSED): $(NSXSL) $(OOXMLPREPROCESSXSLCOPIED) $(OOXMLMODEL)
183cdf0e10cSrcweir	@echo "Making:   " $(@:f)
184cdf0e10cSrcweir	$(COMMAND_ECHO)$(XSLTPROC) $(NSXSL) $(OOXMLMODEL) > $@
185cdf0e10cSrcweir
186cdf0e10cSrcweir$(OOXMLRESOURCEIDSHXX): $(OOXMLHXXOUTDIRCREATED) $(OOXMLFACTORYTOOLSXSL) $(OOXMLRESOURCEIDSXSL) $(MODELPROCESSED)
187cdf0e10cSrcweir    @echo "Making:   " $(@:f)
188cdf0e10cSrcweir	$(COMMAND_ECHO)$(XSLTPROC) $(OOXMLRESOURCEIDSXSL:s!\!/!) $(MODELPROCESSED) > $@
189cdf0e10cSrcweir
190cdf0e10cSrcweir$(SPRMIDSHXX): $(DOCTOKHXXOUTDIRCREATED) $(DOCTOKSPRMIDSXSL) $(DOCTOKMODEL)
191cdf0e10cSrcweir    @echo "Making:   " $(@:f)
192cdf0e10cSrcweir	$(COMMAND_ECHO)$(XSLTPROC) $(DOCTOKSPRMIDSXSL:s!\!/!) $(DOCTOKMODEL) > $@
193cdf0e10cSrcweir
194cdf0e10cSrcweir.PHONY: genclean genmake gendirs
195cdf0e10cSrcweir
196cdf0e10cSrcweirgenclean:
197cdf0e10cSrcweir	rm -f $(GENERATEDFILES)
198cdf0e10cSrcweir
199cdf0e10cSrcweirgenmake: $(GENERATEDFILES)
200cdf0e10cSrcweir
201