1*34dd1e25SAndrew Rist/**************************************************************
2*34dd1e25SAndrew Rist *
3*34dd1e25SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*34dd1e25SAndrew Rist * or more contributor license agreements.  See the NOTICE file
5*34dd1e25SAndrew Rist * distributed with this work for additional information
6*34dd1e25SAndrew Rist * regarding copyright ownership.  The ASF licenses this file
7*34dd1e25SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*34dd1e25SAndrew Rist * "License"); you may not use this file except in compliance
9*34dd1e25SAndrew Rist * with the License.  You may obtain a copy of the License at
10*34dd1e25SAndrew Rist *
11*34dd1e25SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12*34dd1e25SAndrew Rist *
13*34dd1e25SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*34dd1e25SAndrew Rist * software distributed under the License is distributed on an
15*34dd1e25SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*34dd1e25SAndrew Rist * KIND, either express or implied.  See the License for the
17*34dd1e25SAndrew Rist * specific language governing permissions and limitations
18*34dd1e25SAndrew Rist * under the License.
19*34dd1e25SAndrew Rist *
20*34dd1e25SAndrew Rist *************************************************************/
21*34dd1e25SAndrew Rist
22cdf0e10cSrcweir#*************************************************************************
23cdf0e10cSrcweir#
24cdf0e10cSrcweir#  The Contents of this file are made available subject to the terms of
25cdf0e10cSrcweir#  the BSD license.
26cdf0e10cSrcweir#
27cdf0e10cSrcweir#  Copyright 2000, 2010 Oracle and/or its affiliates.
28cdf0e10cSrcweir#  All rights reserved.
29cdf0e10cSrcweir#
30cdf0e10cSrcweir#  Redistribution and use in source and binary forms, with or without
31cdf0e10cSrcweir#  modification, are permitted provided that the following conditions
32cdf0e10cSrcweir#  are met:
33cdf0e10cSrcweir#  1. Redistributions of source code must retain the above copyright
34cdf0e10cSrcweir#     notice, this list of conditions and the following disclaimer.
35cdf0e10cSrcweir#  2. Redistributions in binary form must reproduce the above copyright
36cdf0e10cSrcweir#     notice, this list of conditions and the following disclaimer in the
37cdf0e10cSrcweir#     documentation and/or other materials provided with the distribution.
38cdf0e10cSrcweir#  3. Neither the name of Sun Microsystems, Inc. nor the names of its
39cdf0e10cSrcweir#     contributors may be used to endorse or promote products derived
40cdf0e10cSrcweir#     from this software without specific prior written permission.
41cdf0e10cSrcweir#
42cdf0e10cSrcweir#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
43cdf0e10cSrcweir#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
44cdf0e10cSrcweir#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
45cdf0e10cSrcweir#  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
46cdf0e10cSrcweir#  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
47cdf0e10cSrcweir#  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
48cdf0e10cSrcweir#  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
49cdf0e10cSrcweir#  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
50cdf0e10cSrcweir#  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
51cdf0e10cSrcweir#  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
52cdf0e10cSrcweir#  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
53cdf0e10cSrcweir#
54cdf0e10cSrcweir#**************************************************************************
55cdf0e10cSrcweir# Builds the UCB examples of the Developers Guide.
56cdf0e10cSrcweir
57cdf0e10cSrcweirPRJ=../../..
58cdf0e10cSrcweirSETTINGS=$(PRJ)/settings
59cdf0e10cSrcweir
60cdf0e10cSrcweirinclude $(SETTINGS)/settings.mk
61cdf0e10cSrcweirinclude $(SETTINGS)/std.mk
62cdf0e10cSrcweirinclude $(SETTINGS)/dk.mk
63cdf0e10cSrcweir
64cdf0e10cSrcweir# Define non-platform/compiler specific settings
65cdf0e10cSrcweirEXAMPLE_NAME=UCBExamples
66cdf0e10cSrcweirOUT_APP_CLASS = $(OUT_CLASS)/$(EXAMPLE_NAME)
67cdf0e10cSrcweirOUT_APP_MISC = $(OUT_MISC)/$(EXAMPLE_NAME)
68cdf0e10cSrcweir
69cdf0e10cSrcweirAPP1_NAME=ChildrenRetriever
70cdf0e10cSrcweirAPP1_JAR=$(OUT_APP_CLASS)/$(APP1_NAME).jar
71cdf0e10cSrcweirAPP2_NAME=DataStreamComposer
72cdf0e10cSrcweirAPP2_JAR=$(OUT_APP_CLASS)/$(APP2_NAME).jar
73cdf0e10cSrcweirAPP3_NAME=DataStreamRetriever
74cdf0e10cSrcweirAPP3_JAR=$(OUT_APP_CLASS)/$(APP3_NAME).jar
75cdf0e10cSrcweirAPP4_NAME=PropertiesComposer
76cdf0e10cSrcweirAPP4_JAR=$(OUT_APP_CLASS)/$(APP4_NAME).jar
77cdf0e10cSrcweirAPP5_NAME=PropertiesRetriever
78cdf0e10cSrcweirAPP5_JAR=$(OUT_APP_CLASS)/$(APP5_NAME).jar
79cdf0e10cSrcweirAPP6_NAME=ResourceCreator
80cdf0e10cSrcweirAPP6_JAR=$(OUT_APP_CLASS)/$(APP6_NAME).jar
81cdf0e10cSrcweirAPP7_NAME=ResourceManager
82cdf0e10cSrcweirAPP7_JAR=$(OUT_APP_CLASS)/$(APP7_NAME).jar
83cdf0e10cSrcweirAPP8_NAME=ResourceRemover
84cdf0e10cSrcweirAPP8_JAR=$(OUT_APP_CLASS)/$(APP8_NAME).jar
85cdf0e10cSrcweir
86cdf0e10cSrcweirAPP_JAVAFILES  = \
87cdf0e10cSrcweir	Helper.java \
88cdf0e10cSrcweir	MyActiveDataSink.java \
89cdf0e10cSrcweir	MyInputStream.java
90cdf0e10cSrcweir
91cdf0e10cSrcweirAPP_CLASSFILES = $(patsubst %.java,$(OUT_APP_CLASS)/%.class,$(APP_JAVAFILES))
92cdf0e10cSrcweirAPP_CLASSNAMES = $(patsubst %.java,%.class,$(APP_JAVAFILES))
93cdf0e10cSrcweir
94cdf0e10cSrcweirSDK_CLASSPATH = $(subst $(EMPTYSTRING) $(PATH_SEPARATOR),$(PATH_SEPARATOR),$(CLASSPATH)\
95cdf0e10cSrcweir		$(PATH_SEPARATOR)$(OUT_APP_CLASS))
96cdf0e10cSrcweir
97cdf0e10cSrcweirOUT_APP_CLASS = $(OUT_CLASS)/$(EXAMPLE_NAME)
98cdf0e10cSrcweir
99cdf0e10cSrcweir# Targets
100cdf0e10cSrcweir.PHONY: ALL
101cdf0e10cSrcweirALL : \
102cdf0e10cSrcweir	UCBExamples
103cdf0e10cSrcweir
104cdf0e10cSrcweirinclude $(SETTINGS)/stdtarget.mk
105cdf0e10cSrcweir
106cdf0e10cSrcweir$(APP_CLASSFILES) : $(APP_JAVAFILES)
107cdf0e10cSrcweir	-$(MKDIR) $(subst /,$(PS),$(@D))
108cdf0e10cSrcweir	$(SDK_JAVAC) $(JAVAC_FLAGS) -classpath "$(SDK_CLASSPATH)" -d $(OUT_APP_CLASS) $(APP_JAVAFILES)
109cdf0e10cSrcweir
110cdf0e10cSrcweir$(OUT_APP_CLASS)/%.class : %.java $(APP_CLASSFILES)
111cdf0e10cSrcweir	-$(MKDIR) $(subst /,$(PS),$(@D))
112cdf0e10cSrcweir	$(SDK_JAVAC) $(JAVAC_FLAGS) -classpath "$(SDK_CLASSPATH)" -d $(OUT_APP_CLASS) $<
113cdf0e10cSrcweir
114cdf0e10cSrcweir$(OUT_APP_CLASS)/$(APP2_NAME).class : $(APP2_NAME).java $(OUT_APP_CLASS)/DataStreamRetriever.class $(APP_CLASSFILES)
115cdf0e10cSrcweir	-$(MKDIR) $(subst /,$(PS),$(@D))
116cdf0e10cSrcweir	$(SDK_JAVAC) $(JAVAC_FLAGS) -classpath "$(SDK_CLASSPATH)" -d $(OUT_APP_CLASS) $<
117cdf0e10cSrcweir
118cdf0e10cSrcweir$(OUT_APP_CLASS)/$(APP6_NAME).class : $(APP6_NAME).java $(OUT_APP_CLASS)/DataStreamRetriever.class $(APP_CLASSFILES)
119cdf0e10cSrcweir	-$(MKDIR) $(subst /,$(PS),$(@D))
120cdf0e10cSrcweir	$(SDK_JAVAC) $(JAVAC_FLAGS) -classpath "$(SDK_CLASSPATH)" -d $(OUT_APP_CLASS) $<
121cdf0e10cSrcweir
122cdf0e10cSrcweir$(OUT_APP_CLASS)/%.mf :
123cdf0e10cSrcweir	-$(MKDIR) $(subst /,$(PS),$(@D))
124cdf0e10cSrcweir	@echo Main-Class: com.sun.star.lib.loader.Loader> $@
125cdf0e10cSrcweir	$(ECHOLINE)>> $@
126cdf0e10cSrcweir	@echo Name: com/sun/star/lib/loader/Loader.class>> $@
127cdf0e10cSrcweir	@echo Application-Class: $*>> $@
128cdf0e10cSrcweir
129cdf0e10cSrcweir$(OUT_APP_CLASS)/%.jar : $(OUT_APP_CLASS)/%.mf $(OUT_APP_CLASS)/%.class $(APP_CLASSFILES)
130cdf0e10cSrcweir	-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
131cdf0e10cSrcweir	-$(MKDIR) $(subst /,$(PS),$(@D))
132cdf0e10cSrcweir	+cd $(subst /,$(PS),$(OUT_APP_CLASS)) && $(SDK_JAR) cvfm $(@F) $*.mf $*.class $(APP_CLASSNAMES)
133cdf0e10cSrcweir	+$(SDK_JAR) uvf $@ $(SDK_JAVA_UNO_BOOTSTRAP_FILES)
134cdf0e10cSrcweir
135cdf0e10cSrcweir$(APP2_JAR) : $(OUT_APP_CLASS)/$(APP2_NAME).mf $(OUT_APP_CLASS)/$(APP2_NAME).class $(OUT_APP_CLASS)/DataStreamRetriever.class $(APP_CLASSFILES)
136cdf0e10cSrcweir	-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
137cdf0e10cSrcweir	-$(MKDIR) $(subst /,$(PS),$(@D))
138cdf0e10cSrcweir	+cd $(subst /,$(PS),$(OUT_APP_CLASS)) && $(SDK_JAR) cvfm $(@F) $(basename $(@F)).mf $(basename $(@F)).class DataStreamRetriever.class $(APP_CLASSNAMES)
139cdf0e10cSrcweir	+$(SDK_JAR) uvf $@ $(SDK_JAVA_UNO_BOOTSTRAP_FILES)
140cdf0e10cSrcweir
141cdf0e10cSrcweir$(APP6_JAR) : $(OUT_APP_CLASS)/$(APP6_NAME).mf $(OUT_APP_CLASS)/$(APP6_NAME).class $(OUT_APP_CLASS)/DataStreamRetriever.class $(APP_CLASSFILES)
142cdf0e10cSrcweir	-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
143cdf0e10cSrcweir	-$(MKDIR) $(subst /,$(PS),$(@D))
144cdf0e10cSrcweir	+cd $(subst /,$(PS),$(OUT_APP_CLASS)) && $(SDK_JAR) cvfm $(@F) $(basename $(@F)).mf $(basename $(@F)).class DataStreamRetriever.class $(APP_CLASSNAMES)
145cdf0e10cSrcweir	+$(SDK_JAR) uvf $@ $(SDK_JAVA_UNO_BOOTSTRAP_FILES)
146cdf0e10cSrcweir
147cdf0e10cSrcweir
148cdf0e10cSrcweir$(APP1_JAR) : $(OUT_APP_CLASS)/$(APP1_NAME).mf $(OUT_APP_CLASS)/$(APP1_NAME).class
149cdf0e10cSrcweir$(APP2_JAR) : $(OUT_APP_CLASS)/$(APP2_NAME).mf $(OUT_APP_CLASS)/$(APP2_NAME).class
150cdf0e10cSrcweir$(APP3_JAR) : $(OUT_APP_CLASS)/$(APP3_NAME).mf $(OUT_APP_CLASS)/$(APP3_NAME).class
151cdf0e10cSrcweir$(APP4_JAR) : $(OUT_APP_CLASS)/$(APP4_NAME).mf $(OUT_APP_CLASS)/$(APP4_NAME).class
152cdf0e10cSrcweir$(APP5_JAR) : $(OUT_APP_CLASS)/$(APP5_NAME).mf $(OUT_APP_CLASS)/$(APP5_NAME).class
153cdf0e10cSrcweir$(APP6_JAR) : $(OUT_APP_CLASS)/$(APP6_NAME).mf $(OUT_APP_CLASS)/$(APP6_NAME).class
154cdf0e10cSrcweir$(APP7_JAR) : $(OUT_APP_CLASS)/$(APP7_NAME).mf $(OUT_APP_CLASS)/$(APP7_NAME).class
155cdf0e10cSrcweir$(APP8_JAR) : $(OUT_APP_CLASS)/$(APP8_NAME).mf $(OUT_APP_CLASS)/$(APP8_NAME).class
156cdf0e10cSrcweir
157cdf0e10cSrcweirUCBExamples : $(APP1_JAR) $(APP2_JAR) $(APP3_JAR) $(APP4_JAR) $(APP5_JAR) $(APP6_JAR) $(APP7_JAR) $(APP8_JAR)
158cdf0e10cSrcweir	@echo --------------------------------------------------------------------------------
159cdf0e10cSrcweir	@echo Please use one of the following commands to execute the examples!
160cdf0e10cSrcweir	@echo -
161cdf0e10cSrcweir	@echo $(MAKE) $(APP1_NAME).run
162cdf0e10cSrcweir	@echo $(MAKE) $(APP2_NAME).run
163cdf0e10cSrcweir	@echo $(MAKE) $(APP3_NAME).run
164cdf0e10cSrcweir	@echo $(MAKE) $(APP4_NAME).run
165cdf0e10cSrcweir	@echo $(MAKE) $(APP5_NAME).run
166cdf0e10cSrcweir	@echo $(MAKE) $(APP6_NAME).run
167cdf0e10cSrcweir	@echo $(MAKE) $(APP7_NAME).run
168cdf0e10cSrcweir	@echo $(MAKE) $(APP8_NAME).run
169cdf0e10cSrcweir	@echo --------------------------------------------------------------------------------
170cdf0e10cSrcweir
171cdf0e10cSrcweir%.run: $(OUT_APP_CLASS)/%.jar
172cdf0e10cSrcweir	-$(MKDIR) $(subst /,$(PS),$(OUT_APP_MISC))
173cdf0e10cSrcweir	$(SDK_JAVA) -Dcom.sun.star.lib.loader.unopath="$(OFFICE_PROGRAM_PATH)" -jar $< -workdir=$(OUT_APP_MISC)
174cdf0e10cSrcweir
175cdf0e10cSrcweir.PHONY: clean
176cdf0e10cSrcweirclean :
177cdf0e10cSrcweir	-$(DELRECURSIVE) $(subst /,$(PS),$(OUT_APP_CLASS))
178