1 *122c3632SJürgen Schmidt#************************************************************** 2 *122c3632SJürgen Schmidt# 3 *122c3632SJürgen Schmidt# Licensed to the Apache Software Foundation (ASF) under one 4 *122c3632SJürgen Schmidt# or more contributor license agreements. See the NOTICE file 5 *122c3632SJürgen Schmidt# distributed with this work for additional information 6 *122c3632SJürgen Schmidt# regarding copyright ownership. The ASF licenses this file 7 *122c3632SJürgen Schmidt# to you under the Apache License, Version 2.0 (the 8 *122c3632SJürgen Schmidt# "License"); you may not use this file except in compliance 9 *122c3632SJürgen Schmidt# with the License. You may obtain a copy of the License at 10 *122c3632SJürgen Schmidt# 11 *122c3632SJürgen Schmidt# http://www.apache.org/licenses/LICENSE-2.0 12 *122c3632SJürgen Schmidt# 13 *122c3632SJürgen Schmidt# Unless required by applicable law or agreed to in writing, 14 *122c3632SJürgen Schmidt# software distributed under the License is distributed on an 15 *122c3632SJürgen Schmidt# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 *122c3632SJürgen Schmidt# KIND, either express or implied. See the License for the 17 *122c3632SJürgen Schmidt# specific language governing permissions and limitations 18 *122c3632SJürgen Schmidt# under the License. 19 cdf0e10cSrcweir# 20 *122c3632SJürgen Schmidt#************************************************************** 21 cdf0e10cSrcweir 22 cdf0e10cSrcweir# Builds the OfficeDevLinguistic examples of the Developers Guide. 23 cdf0e10cSrcweir 24 cdf0e10cSrcweirPRJ=../../../.. 25 cdf0e10cSrcweirSETTINGS=$(PRJ)/settings 26 cdf0e10cSrcweir 27 cdf0e10cSrcweirinclude $(SETTINGS)/settings.mk 28 cdf0e10cSrcweirinclude $(SETTINGS)/std.mk 29 cdf0e10cSrcweirinclude $(SETTINGS)/dk.mk 30 cdf0e10cSrcweir 31 cdf0e10cSrcweir# Define non-platform/compiler specific settings 32 cdf0e10cSrcweirEXAMPLE_NAME=OfficeDevLinguisticExample 33 cdf0e10cSrcweirOUT_COMP_CLASS = $(OUT_CLASS)/$(EXAMPLE_NAME) 34 cdf0e10cSrcweir 35 cdf0e10cSrcweirCOMP1_NAME=SampleHyphenator 36 cdf0e10cSrcweirCOMP1_PACKAGE = $(OUT_BIN)/$(COMP1_NAME).$(UNOOXT_EXT) 37 cdf0e10cSrcweirCOMP1_PACKAGE_URL = $(subst \\,\,"$(COMP_PACKAGE_DIR)$(PS)$(COMP1_NAME).$(UNOOXT_EXT)") 38 cdf0e10cSrcweirCOMP1_JAR_NAME = $(COMP1_NAME).uno.jar 39 cdf0e10cSrcweirCOMP1_JAR = $(OUT_COMP_CLASS)/$(COMP1_JAR_NAME) 40 cdf0e10cSrcweirCOMP1_MANIFESTFILE = $(OUT_COMP_CLASS)/$(COMP1_NAME).uno.Manifest 41 cdf0e10cSrcweirCOMP1_UNOPKG_MANIFEST = $(OUT_COMP_CLASS)/$(COMP1_NAME)/META-INF/manifest.xml 42 cdf0e10cSrcweirCOMP1_COMPONENTS=$(COMP1_NAME).components 43 cdf0e10cSrcweir 44 cdf0e10cSrcweirCOMP2_NAME=SampleSpellChecker 45 cdf0e10cSrcweirCOMP2_PACKAGE = $(OUT_BIN)/$(COMP2_NAME).$(UNOOXT_EXT) 46 cdf0e10cSrcweirCOMP2_PACKAGE_URL = $(subst \\,\,"$(COMP_PACKAGE_DIR)$(PS)$(COMP2_NAME).$(UNOOXT_EXT)") 47 cdf0e10cSrcweirCOMP2_JAR_NAME = $(COMP2_NAME).uno.jar 48 cdf0e10cSrcweirCOMP2_JAR = $(OUT_COMP_CLASS)/$(COMP2_JAR_NAME) 49 cdf0e10cSrcweirCOMP2_MANIFESTFILE = $(OUT_COMP_CLASS)/$(COMP2_NAME).uno.Manifest 50 cdf0e10cSrcweirCOMP2_UNOPKG_MANIFEST = $(OUT_COMP_CLASS)/$(COMP2_NAME)/META-INF/manifest.xml 51 cdf0e10cSrcweirCOMP2_COMPONENTS=$(COMP2_NAME).components 52 cdf0e10cSrcweir 53 cdf0e10cSrcweirCOMP3_NAME=SampleThesaurus 54 cdf0e10cSrcweirCOMP3_PACKAGE = $(OUT_BIN)/$(COMP3_NAME).$(UNOOXT_EXT) 55 cdf0e10cSrcweirCOMP3_PACKAGE_URL = $(subst \\,\,"$(COMP_PACKAGE_DIR)$(PS)$(COMP3_NAME).$(UNOOXT_EXT)") 56 cdf0e10cSrcweirCOMP3_JAR_NAME = $(COMP3_NAME).uno.jar 57 cdf0e10cSrcweirCOMP3_JAR = $(OUT_COMP_CLASS)/$(COMP3_JAR_NAME) 58 cdf0e10cSrcweirCOMP3_MANIFESTFILE = $(OUT_COMP_CLASS)/$(COMP3_NAME).uno.Manifest 59 cdf0e10cSrcweirCOMP3_UNOPKG_MANIFEST = $(OUT_COMP_CLASS)/$(COMP3_NAME)/META-INF/manifest.xml 60 cdf0e10cSrcweirCOMP3_COMPONENTS=$(COMP2_NAME).components 61 cdf0e10cSrcweir 62 cdf0e10cSrcweirAPP1_NAME=LinguisticExamples 63 cdf0e10cSrcweirAPP1_JAR=$(OUT_COMP_CLASS)/$(APP1_NAME).jar 64 cdf0e10cSrcweir 65 cdf0e10cSrcweirREGISTERFLAG = $(OUT_MISC)/devguide_officedevlinguistic_register_component.flag 66 cdf0e10cSrcweir 67 cdf0e10cSrcweirJAVAFILES = \ 68 cdf0e10cSrcweir OneInstanceFactory.java \ 69 cdf0e10cSrcweir PropChgHelper.java \ 70 cdf0e10cSrcweir PropChgHelper_Hyph.java \ 71 cdf0e10cSrcweir PropChgHelper_Spell.java \ 72 cdf0e10cSrcweir XHyphenatedWord_impl.java \ 73 cdf0e10cSrcweir XMeaning_impl.java \ 74 cdf0e10cSrcweir XPossibleHyphens_impl.java \ 75 cdf0e10cSrcweir XSpellAlternatives_impl.java \ 76 cdf0e10cSrcweir SampleHyphenator.java \ 77 cdf0e10cSrcweir SampleSpellChecker.java \ 78 cdf0e10cSrcweir SampleThesaurus.java 79 cdf0e10cSrcweir 80 cdf0e10cSrcweirCLASSFILES = $(patsubst %.java,$(OUT_COMP_CLASS)/%.class,$(JAVAFILES)) 81 cdf0e10cSrcweir 82 cdf0e10cSrcweir$(COMP1_NAME)_CLASSFILES = XHyphenatedWord_impl.class \ 83 cdf0e10cSrcweir XPossibleHyphens_impl.class \ 84 cdf0e10cSrcweir PropChgHelper.class \ 85 cdf0e10cSrcweir PropChgHelper_Hyph.class \ 86 cdf0e10cSrcweir OneInstanceFactory.class \ 87 cdf0e10cSrcweir $(COMP1_NAME).class 88 cdf0e10cSrcweir 89 cdf0e10cSrcweir$(COMP2_NAME)_CLASSFILES = XSpellAlternatives_impl.class \ 90 cdf0e10cSrcweir PropChgHelper_Spell.class \ 91 cdf0e10cSrcweir PropChgHelper.class \ 92 cdf0e10cSrcweir OneInstanceFactory.class \ 93 cdf0e10cSrcweir $(COMP2_NAME).class 94 cdf0e10cSrcweir 95 cdf0e10cSrcweir$(COMP3_NAME)_CLASSFILES = XMeaning_impl.class \ 96 cdf0e10cSrcweir OneInstanceFactory.class \ 97 cdf0e10cSrcweir $(COMP3_NAME).class 98 cdf0e10cSrcweir 99 cdf0e10cSrcweirSDK_CLASSPATH = $(subst $(EMPTYSTRING) $(PATH_SEPARATOR),$(PATH_SEPARATOR),$(CLASSPATH)\ 100 cdf0e10cSrcweir $(PATH_SEPARATOR)$(OUT_COMP_CLASS)) 101 cdf0e10cSrcweir 102 cdf0e10cSrcweir.PHONY: ALL 103 cdf0e10cSrcweirALL : $(EXAMPLE_NAME) 104 cdf0e10cSrcweir 105 cdf0e10cSrcweirinclude $(SETTINGS)/stdtarget.mk 106 cdf0e10cSrcweir 107 cdf0e10cSrcweir$(OUT_COMP_CLASS)/%.Manifest : 108 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 109 cdf0e10cSrcweir @echo RegistrationClassName: $(basename $(basename $(@F)))> $@ 110 cdf0e10cSrcweir 111 cdf0e10cSrcweir$(CLASSFILES) : $(JAVAFILES) 112 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 113 cdf0e10cSrcweir $(SDK_JAVAC) $(JAVAC_FLAGS) -classpath "$(SDK_CLASSPATH)" -d $(OUT_COMP_CLASS) $(JAVAFILES) 114 cdf0e10cSrcweir 115 cdf0e10cSrcweir# NOTE: because of gnu make problems with full qualified paths, the pattern 116 cdf0e10cSrcweir# rules for the component jars and the packages doesn't work proper and we 117 cdf0e10cSrcweir# defined explicit rules 118 cdf0e10cSrcweir 119 cdf0e10cSrcweir# rule for component package manifest 120 cdf0e10cSrcweir$(OUT_COMP_CLASS)/%/manifest.xml : 121 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 122 cdf0e10cSrcweir @echo $(OSEP)?xml version="$(QM)1.0$(QM)" encoding="$(QM)UTF-8$(QM)"?$(CSEP) > $@ 123 cdf0e10cSrcweir @echo $(OSEP)!DOCTYPE manifest:manifest PUBLIC "$(QM)-//OpenOffice.org//DTD Manifest 1.0//EN$(QM)" "$(QM)Manifest.dtd$(QM)"$(CSEP) >> $@ 124 cdf0e10cSrcweir @echo $(OSEP)manifest:manifest xmlns:manifest="$(QM)http://openoffice.org/2001/manifest$(QM)"$(CSEP) >> $@ 125 cdf0e10cSrcweir @echo $(SQM) $(SQM)$(OSEP)manifest:file-entry manifest:media-type="$(QM)application/vnd.sun.star.uno-components$(QM)" >> $@ 126 cdf0e10cSrcweir @echo $(SQM) $(SQM)manifest:full-path="$(QM)$(subst /META-INF,,$(subst $(OUT_COMP_CLASS)/,,$(@D))).components$(QM)"/$(CSEP) >> $@ 127 cdf0e10cSrcweir @echo $(OSEP)/manifest:manifest$(CSEP) >> $@ 128 cdf0e10cSrcweir 129 cdf0e10cSrcweir$(COMP1_JAR) : $(COMP1_MANIFESTFILE) $(CLASSFILES) 130 cdf0e10cSrcweir -$(DEL) $(subst \\,\,$(subst /,$(PS),$@)) 131 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 132 cdf0e10cSrcweir cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_JAR) cvfm $(@F) $(<F) $($(basename $(basename $(@F)))_CLASSFILES) 133 cdf0e10cSrcweir 134 cdf0e10cSrcweir$(COMP1_PACKAGE) : $(COMP1_JAR) $(COMP1_UNOPKG_MANIFEST) $(COMP1_COMPONENTS) 135 cdf0e10cSrcweir -$(DEL) $(subst \\,\,$(subst /,$(PS),$@)) 136 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 137 cdf0e10cSrcweir $(SDK_ZIP) $@ $(COMP1_COMPONENTS) 138 cdf0e10cSrcweir cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_ZIP) -u ../../bin/$(@F) $(<F) 139 cdf0e10cSrcweir cd $(subst /,$(PS),$(OUT_COMP_CLASS)/$(subst .$(UNOOXT_EXT),,$(@F))) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml 140 cdf0e10cSrcweir 141 cdf0e10cSrcweir$(COMP2_JAR) : $(COMP2_MANIFESTFILE) $(CLASSFILES) 142 cdf0e10cSrcweir -$(DEL) $(subst \\,\,$(subst /,$(PS),$@)) 143 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 144 cdf0e10cSrcweir cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_JAR) cvfm $(@F) $(<F) $($(basename $(basename $(@F)))_CLASSFILES) 145 cdf0e10cSrcweir 146 cdf0e10cSrcweir$(COMP2_PACKAGE) : $(COMP2_JAR) $(COMP2_UNOPKG_MANIFEST) $(COMP2_COMPONENTS) 147 cdf0e10cSrcweir -$(DEL) $(subst \\,\,$(subst /,$(PS),$@)) 148 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 149 cdf0e10cSrcweir $(SDK_ZIP) $@ $(COMP2_COMPONENTS) 150 cdf0e10cSrcweir cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_ZIP) -u ../../bin/$(@F) $(<F) 151 cdf0e10cSrcweir cd $(subst /,$(PS),$(OUT_COMP_CLASS)/$(subst .$(UNOOXT_EXT),,$(@F))) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml 152 cdf0e10cSrcweir 153 cdf0e10cSrcweir$(COMP3_JAR) : $(COMP3_MANIFESTFILE) $(CLASSFILES) 154 cdf0e10cSrcweir -$(DEL) $(subst \\,\,$(subst /,$(PS),$@)) 155 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 156 cdf0e10cSrcweir cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_JAR) cvfm $(@F) $(<F) $($(basename $(basename $(@F)))_CLASSFILES) 157 cdf0e10cSrcweir 158 cdf0e10cSrcweir$(COMP3_PACKAGE) : $(COMP3_JAR) $(COMP3_UNOPKG_MANIFEST) $(COMP3_COMPONENTS) 159 cdf0e10cSrcweir -$(DEL) $(subst \\,\,$(subst /,$(PS),$@)) 160 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 161 cdf0e10cSrcweir $(SDK_ZIP) $@ $(COMP3_COMPONENTS) 162 cdf0e10cSrcweir cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_ZIP) -u ../../bin/$(@F) $(<F) 163 cdf0e10cSrcweir cd $(subst /,$(PS),$(OUT_COMP_CLASS)/$(subst .$(UNOOXT_EXT),,$(@F))) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml 164 cdf0e10cSrcweir 165 cdf0e10cSrcweir$(REGISTERFLAG) : $(COMP1_PACKAGE) $(COMP2_PACKAGE) $(COMP3_PACKAGE) 166 cdf0e10cSrcweirifeq "$(SDK_AUTO_DEPLOYMENT)" "YES" 167 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 168 cdf0e10cSrcweir -$(DEL) $(subst \\,\,$(subst /,$(PS),$@)) 169 cdf0e10cSrcweir $(DEPLOYTOOL) $(COMP1_PACKAGE_URL) 170 cdf0e10cSrcweir $(DEPLOYTOOL) $(COMP2_PACKAGE_URL) 171 cdf0e10cSrcweir $(DEPLOYTOOL) $(COMP3_PACKAGE_URL) 172 cdf0e10cSrcweir @echo flagged > $(subst /,$(PS),$@) 173 cdf0e10cSrcweirelse 174 cdf0e10cSrcweir @echo -------------------------------------------------------------------------------- 175 cdf0e10cSrcweir @echo If you want to install your component automatically, please set the environment 176 cdf0e10cSrcweir @echo variable SDK_AUTO_DEPLOYMENT = YES. But note that auto deployment is only 177 cdf0e10cSrcweir @echo possible if no office instance is running. 178 cdf0e10cSrcweir @echo -------------------------------------------------------------------------------- 179 cdf0e10cSrcweirendif 180 cdf0e10cSrcweir 181 cdf0e10cSrcweir$(OUT_COMP_CLASS)/%.class : %.java 182 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 183 cdf0e10cSrcweir $(SDK_JAVAC) $(JAVAC_FLAGS) -classpath "$(SDK_CLASSPATH)" -d $(OUT_COMP_CLASS) $< 184 cdf0e10cSrcweir 185 cdf0e10cSrcweir$(OUT_COMP_CLASS)/%.mf : 186 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 187 cdf0e10cSrcweir @echo Main-Class: com.sun.star.lib.loader.Loader> $@ 188 cdf0e10cSrcweir $(ECHOLINE)>> $@ 189 cdf0e10cSrcweir @echo Name: com/sun/star/lib/loader/Loader.class>> $@ 190 cdf0e10cSrcweir @echo Application-Class: $*>> $@ 191 cdf0e10cSrcweir 192 cdf0e10cSrcweir$(APP1_JAR) : $(OUT_COMP_CLASS)/$(APP1_NAME).mf $(OUT_COMP_CLASS)/$(APP1_NAME).class 193 cdf0e10cSrcweir -$(DEL) $(subst \\,\,$(subst /,$(PS),$@)) 194 cdf0e10cSrcweir -$(MKDIR) $(subst /,$(PS),$(@D)) 195 cdf0e10cSrcweir +cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_JAR) cvfm $(@F) $(basename $(@F)).mf $(basename $(@F)).class $(basename $(@F))$(QUOTE)$$Client.class 196 cdf0e10cSrcweir +$(SDK_JAR) uvf $@ $(SDK_JAVA_UNO_BOOTSTRAP_FILES) 197 cdf0e10cSrcweir 198 cdf0e10cSrcweir 199 cdf0e10cSrcweir$(EXAMPLE_NAME) : $(REGISTERFLAG) $(APP1_JAR) 200 cdf0e10cSrcweir @echo -------------------------------------------------------------------------------- 201 cdf0e10cSrcweir @echo Please use the following command to execute the example! 202 cdf0e10cSrcweir @echo - 203 cdf0e10cSrcweir @echo $(MAKE) $(APP1_NAME).run 204 cdf0e10cSrcweir @echo -------- 205 cdf0e10cSrcweir @echo Before you can run the examples the components "$(QM)$(COMP1_NAME)$(QM)", 206 cdf0e10cSrcweir @echo "$(QM)$(COMP2_NAME)$(QM)" and "$(QM)$(COMP3_NAME)$(QM)" must be deployed. 207 cdf0e10cSrcweir @echo The components will be automatically deployed if SDK_AUTO_DEPLOYMENT = YES. 208 cdf0e10cSrcweir @echo -------------------------------------------------------------------------------- 209 cdf0e10cSrcweir 210 cdf0e10cSrcweir%.run: $(OUT_COMP_CLASS)/%.jar 211 cdf0e10cSrcweir $(SDK_JAVA) -Dcom.sun.star.lib.loader.unopath="$(OFFICE_PROGRAM_PATH)" -jar $< 212 cdf0e10cSrcweir 213 cdf0e10cSrcweir.PHONY: clean 214 cdf0e10cSrcweirclean : 215 cdf0e10cSrcweir -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_CLASS)) 216 cdf0e10cSrcweir -$(DEL) $(subst \\,\,$(subst /,$(PS),$(COMP1_PACKAGE_URL))) 217 cdf0e10cSrcweir -$(DEL) $(subst \\,\,$(subst /,$(PS),$(COMP2_PACKAGE_URL))) 218 cdf0e10cSrcweir -$(DEL) $(subst \\,\,$(subst /,$(PS),$(COMP3_PACKAGE_URL))) 219 cdf0e10cSrcweir -$(DEL) $(subst \\,\,$(subst /,$(PS),$(REGISTERFLAG))) 220