xref: /trunk/main/ure/source/uretest/Makefile (revision b597708b)
1 #**************************************************************
2 #
3 #  Licensed to the Apache Software Foundation (ASF) under one
4 #  or more contributor license agreements.  See the NOTICE file
5 #  distributed with this work for additional information
6 #  regarding copyright ownership.  The ASF licenses this file
7 #  to you under the Apache License, Version 2.0 (the
8 #  "License"); you may not use this file except in compliance
9 #  with the License.  You may obtain a copy of the License at
10 #
11 #    http://www.apache.org/licenses/LICENSE-2.0
12 #
13 #  Unless required by applicable law or agreed to in writing,
14 #  software distributed under the License is distributed on an
15 #  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 #  KIND, either express or implied.  See the License for the
17 #  specific language governing permissions and limitations
18 #  under the License.
19 #
20 #**************************************************************
21 
22 # The following variable can be set, if necessary (see README):
23 #GCCS_COMPAT := LD_PRELOAD=/lib/libgcc_s.so.1
24 
25 
26 .DELETE_ON_ERROR:
27 
28 
29 PRJ = $(OO_SDK_HOME)
30 
31 include $(PRJ)/settings/settings.mk
32 include $(PRJ)/settings/std.mk
33 
34 ifeq "$(PLATFORM)" "windows"
35 qt = "
36 qt2 =
37 cwd = $(subst \,/,$(shell cd))
38 link_output_switch = -out:
39 link_std_libs = kernel32.lib msvcrt.lib
40 ure_java_url = $(subst $(subst .,., ),%%20,$(subst \,/,$(URLPREFIX)$(OO_SDK_URE_JAVA_DIR)))
41 ure_unorc_url = $(subst $(subst .,., ),%%20,$(subst \,/,$(URLPREFIX)$(OO_SDK_URE_LIB_DIR)/uno.ini))
42 else
43 qt = '
44 qt2 = '
45 cwd = $(PWD)
46 link_output_switch = $(subst .,.,-o )
47 link_std_libs =
48 ure_java_url = $(URLPREFIX)$(OO_SDK_URE_JAVA_DIR)
49 ure_unorc_url = $(URLPREFIX)$(OO_SDK_URE_LIB_DIR)/unorc
50 endif
51 
52 
53 .PHONY: ALL
54 ALL: test
55 
56 include $(PRJ)/settings/stdtarget.mk
57 
58 
59 .PHONY: test
60 test: test-cpptest test-javatest test-javanative test-clientserver
61 
62 .PHONY: test-cpptest
63 test-cpptest: out.sdk/cppmain.uno.$(SHAREDLIB_EXT) out.sdk/types.rdb \
64             out.sdk/services.rdb
65 	$(GCCS_COMPAT) uno \
66             -c test.cpp.cppmain.Component -l $(URLPREFIX)$(cwd)/$< \
67             -ro "$(subst \,/,$(URLPREFIX)$(URE_TYPES))" -ro out.sdk/types.rdb \
68             -ro "$(subst \,/,$(URLPREFIX)$(URE_SERVICES))" \
69             -ro out.sdk/services.rdb
70 
71 .PHONY: test-javatest
72 test-javatest: out.sdk/javamain.uno.jar out.sdk/types.rdb out.sdk/services.rdb
73 	$(GCCS_COMPAT) uno \
74             -c test.java.javamain.Component -l $(URLPREFIX)$(cwd)/$< \
75             -ro "$(subst \,/,$(URLPREFIX)$(URE_TYPES))" -ro out.sdk/types.rdb \
76             -ro "$(subst \,/,$(URLPREFIX)$(URE_SERVICES))" \
77             -ro out.sdk/services.rdb
78 
79 .PHONY: test-javanative
80 test-javanative: out.sdk/runner.jar out.sdk/javanative.jar \
81             out.sdk/javanative.rc out.sdk/services.rdb out.sdk/types.rdb
82 	$(GCCS_COMPAT) $(SDK_JAVA) -jar out.sdk/runner.jar $(ure_java_url)/ \
83             $(URLPREFIX)$(cwd)/out.sdk/javanative.jar \
84             $(URLPREFIX)$(cwd)/out.sdk/javanative.rc
85 
86 do_server = $(GCCS_COMPAT) uno -c test.cpp.cppserver.Component \
87     -l $(URLPREFIX)$(cwd)/out.sdk/cppserver.uno.$(SHAREDLIB_EXT) \
88     -ro "$(subst \,/,$(URLPREFIX)$(URE_TYPES))" -ro out.sdk/types.rdb \
89     -ro "$(subst \,/,$(URLPREFIX)$(URE_SERVICES))" -ro out.sdk/services.rdb \
90     -u "uno:pipe,name=ure_test;urp;server" --singleaccept
91 do_client = $(SDK_JAVA) -jar out.sdk/runner.jar $(ure_java_url)/ \
92     $(URLPREFIX)$(cwd)/out.sdk/javaclient.jar \
93     "uno:pipe,name=ure_test;urp;server"
94 .PHONY: test-clientserver
95 test-clientserver: out.sdk/cppserver.uno.$(SHAREDLIB_EXT) out.sdk/runner.jar \
96             out.sdk/javaclient.jar
97 ifeq "$(PLATFORM)" "windows"
98 	echo $(subst %,%%,$(do_server)) > out.sdk/server.bat
99 	echo $(subst %,%%,$(do_client)) > out.sdk/client.bat
100 	@ echo Execute test-clientserver manually: start out.sdk\server.bat
101 	@ echo and then simultaneously start out.sdk\client.bat
102 else
103 	$(do_server) &
104 	sleep 5 && $(do_client)
105 endif
106 
107 
108 .PHONY: clean
109 clean:
110 	$(DELRECURSIVE) $(subst /,$(PS),out.sdk)
111 
112 
113 out.sdk/cppmain.uno.$(SHAREDLIB_EXT): out.sdk/cppmain.$(OBJ_EXT) version.map | \
114             out.sdk
115 	$(LINK) $(COMP_LINK_FLAGS) $(link_output_switch)$@ $< $(LINK_LIBS) \
116             $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB) $(SALHELPERLIB) \
117             $(link_std_libs)
118 
119 out.sdk/cppmain.$(OBJ_EXT): cppmain.cc out.sdk/cpputypes.cppumaker.flag \
120             out.sdk/types.cppumaker.flag | out.sdk
121 	$(CC) $(CC_FLAGS) $(CC_OUTPUT_SWITCH)$@ -I$(PRJ)/include/stl \
122             $(CC_INCLUDES) -Iout.sdk/include/cpputypes -Iout.sdk/include/types \
123             $(CC_DEFINES) $<
124 
125 
126 out.sdk/cpptest.uno.$(SHAREDLIB_EXT): out.sdk/cpptest.$(OBJ_EXT) version.map | \
127             out.sdk
128 	$(LINK) $(COMP_LINK_FLAGS) $(link_output_switch)$@ $< $(LINK_LIBS) \
129             $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB) $(link_std_libs)
130 
131 out.sdk/cpptest.$(OBJ_EXT): cpptest.cc out.sdk/cpputypes.cppumaker.flag \
132             out.sdk/types.cppumaker.flag | out.sdk
133 	$(CC) $(CC_FLAGS) $(CC_OUTPUT_SWITCH)$@ -I$(PRJ)/include/stl \
134             $(CC_INCLUDES) -Iout.sdk/include/cpputypes -Iout.sdk/include/types \
135             $(CC_DEFINES) $<
136 
137 
138 out.sdk/cppserver.uno.$(SHAREDLIB_EXT): out.sdk/cppserver.$(OBJ_EXT) \
139             version.map | out.sdk
140 	$(LINK) $(COMP_LINK_FLAGS) $(link_output_switch)$@ $< $(LINK_LIBS) \
141             $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB) $(link_std_libs)
142 
143 out.sdk/cppserver.$(OBJ_EXT): cppserver.cc out.sdk/cpputypes.cppumaker.flag \
144             out.sdk/types.cppumaker.flag | out.sdk
145 	$(CC) $(CC_FLAGS) $(CC_OUTPUT_SWITCH)$@ -I$(PRJ)/include/stl \
146             $(CC_INCLUDES) -Iout.sdk/include/cpputypes -Iout.sdk/include/types \
147             $(CC_DEFINES) $<
148 
149 
150 out.sdk/cpputypes.cppumaker.flag: | out.sdk
151 	$(CPPUMAKER) -O./out.sdk/include/cpputypes \
152             "-Tcom.sun.star.lang.DisposedException;com.sun.star.lang.EventObject;com.sun.star.lang.XMain;com.sun.star.lang.XMultiComponentFactory;com.sun.star.lang.XMultiServiceFactory;com.sun.star.lang.XSingleComponentFactory;com.sun.star.lang.XSingleServiceFactory;com.sun.star.lang.XTypeProvider;com.sun.star.registry.XRegistryKey;com.sun.star.uno.DeploymentException;com.sun.star.uno.Exception;com.sun.star.uno.RuntimeException;com.sun.star.uno.XAggregation;com.sun.star.uno.XComponentContext;com.sun.star.uno.XCurrentContext;com.sun.star.uno.XInterface;com.sun.star.uno.XWeak" \
153             -B/UCR "$(URE_TYPES)"
154 	touch $@
155 
156 out.sdk/types.cppumaker.flag: out.sdk/types.rdb | out.sdk
157 	$(CPPUMAKER) -O./out.sdk/include/types -B/UCR $< "-X$(URE_TYPES)"
158 	touch $@
159 
160 
161 out.sdk/javamain.uno.jar: \
162             out.sdk/class/javamain/test/java/javamain/JavaMain.class \
163             out.sdk/javamain.mf | out.sdk
164 	$(SDK_JAR) cfm $@ out.sdk/javamain.mf -C out.sdk/class/javamain test
165 
166 out.sdk/javamain.mf: javamain.mf.template | out.sdk
167 	sed -e $(qt)s~^Class-Path:$$~& tester.jar~$(qt) \
168             -e $(qt)s~^UNO-Type-Path:$$~& types.jar~$(qt) $< > $@
169 
170 out.sdk/class/javamain/test/java/javamain/JavaMain.class: JavaMain.java \
171             out.sdk/tester.jar | out.sdk/class
172 	- $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/javamain)
173 	$(MKDIR) $(subst /,$(PS),out.sdk/class/javamain)
174 	$(SDK_JAVAC) $(JAVAC_FLAGS) \
175             -classpath "$(CLASSPATH)$(PATH_SEPARATOR)out.sdk/tester.jar" \
176             -sourcepath . -d out.sdk/class/javamain $<
177 
178 
179 out.sdk/runner.jar: out.sdk/class/runner/test/java/runner/Runner.class \
180             out.sdk/runner.mf | out.sdk
181 	$(SDK_JAR) cfm $@ out.sdk/runner.mf -C out.sdk/class/runner test
182 
183 out.sdk/runner.mf: runner.mf.template | out.sdk
184 	sed -e \
185             $(qt)s~^Class-Path:$$~& $(ure_java_url)/unoloader.jar~$(qt) \
186             -e $(qt)s~^UNO-Type-Path:$$~& ~$(qt) $< > $@
187 
188 out.sdk/class/runner/test/java/runner/Runner.class: Runner.java | out.sdk/class
189 	- $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/runner)
190 	$(MKDIR) $(subst /,$(PS),out.sdk/class/runner)
191 	$(SDK_JAVAC) $(JAVAC_FLAGS) -sourcepath . -d out.sdk/class/runner $<
192 
193 
194 out.sdk/tester.jar: out.sdk/class/tester/test/java/tester/Tester.class \
195             out.sdk/tester.mf | out.sdk
196 	$(SDK_JAR) cfm $@ out.sdk/tester.mf -C out.sdk/class/tester test
197 
198 out.sdk/tester.mf: tester.mf.template | out.sdk
199 	sed -e $(qt)s~^Class-Path:$$~& types.jar~$(qt) \
200             -e $(qt)s~^UNO-Type-Path:$$~& types.jar~$(qt) $< > $@
201 
202 out.sdk/class/tester/test/java/tester/Tester.class: Tester.java \
203             out.sdk/types.jar | out.sdk/class
204 	- $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/tester)
205 	$(MKDIR) $(subst /,$(PS),out.sdk/class/tester)
206 	$(SDK_JAVAC) $(JAVAC_FLAGS) \
207             -classpath "$(CLASSPATH)$(PATH_SEPARATOR)out.sdk/types.jar" \
208             -sourcepath . -d out.sdk/class/tester $<
209 
210 
211 out.sdk/javatest.uno.jar: \
212             out.sdk/class/javatest/test/java/javatest/JavaTest.class \
213             out.sdk/javatest.mf | out.sdk
214 	$(SDK_JAR) cfm $@ out.sdk/javatest.mf -C out.sdk/class/javatest test
215 
216 out.sdk/javatest.mf: javatest.mf.template | out.sdk
217 	sed -e $(qt)s~^Class-Path:$$~& types.jar~$(qt) \
218             -e $(qt)s~^UNO-Type-Path:$$~& types.jar~$(qt) $< > $@
219 
220 out.sdk/class/javatest/test/java/javatest/JavaTest.class: JavaTest.java \
221             out.sdk/types.jar | out.sdk/class
222 	- $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/javatest)
223 	$(MKDIR) $(subst /,$(PS),out.sdk/class/javatest)
224 	$(SDK_JAVAC) $(JAVAC_FLAGS) \
225             -classpath "$(CLASSPATH)$(PATH_SEPARATOR)out.sdk/types.jar" \
226             -sourcepath . -d out.sdk/class/javatest $<
227 
228 
229 out.sdk/javanative.jar: \
230             out.sdk/class/javanative/test/java/javanative/JavaNative.class \
231             out.sdk/javanative.mf | out.sdk
232 	$(SDK_JAR) cfm $@ out.sdk/javanative.mf -C out.sdk/class/javanative test
233 
234 out.sdk/javanative.mf: javanative.mf.template | out.sdk
235 	sed -e $(qt)s~^Class-Path:$$~& tester.jar~$(qt) \
236             -e $(qt)s~^UNO-Type-Path:$$~& types.jar~$(qt) $< > $@
237 
238 out.sdk/class/javanative/test/java/javanative/JavaNative.class: \
239             JavaNative.java out.sdk/tester.jar | out.sdk/class
240 	- $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/javanative)
241 	$(MKDIR) $(subst /,$(PS),out.sdk/class/javanative)
242 	$(SDK_JAVAC) $(JAVAC_FLAGS) \
243             -classpath "$(CLASSPATH)$(PATH_SEPARATOR)out.sdk/tester.jar" \
244             -sourcepath . -d out.sdk/class/javanative $<
245 
246 out.sdk/javanative.rc: | out.sdk
247 	echo $(qt2)URE_INTERNAL_LIB_DIR=$${$(subst :,\u003A,$(ure_unorc_url)):URE_INTERNAL_LIB_DIR}$(qt2) > $@
248 	echo $(qt2)URE_INTERNAL_JAVA_DIR=$${$(subst :,\u003A,$(ure_unorc_url)):URE_INTERNAL_JAVA_DIR}$(qt2) >> $@
249 	echo $(qt2)UNO_TYPES=$${$(subst :,\u003A,$(ure_unorc_url)):UNO_TYPES} $(URLPREFIX)$(cwd)/out.sdk/types.rdb$(qt2) >> $@
250 	echo $(qt2)UNO_SERVICES=$${$(subst :,\u003A,$(ure_unorc_url)):UNO_SERVICES} $(URLPREFIX)$(cwd)/out.sdk/services.rdb$(qt2) >> $@
251 
252 
253 out.sdk/javaclient.jar: \
254             out.sdk/class/javaclient/test/java/javaclient/JavaClient.class \
255             out.sdk/javaclient.mf | out.sdk
256 	$(SDK_JAR) cfm $@ out.sdk/javaclient.mf -C out.sdk/class/javaclient test
257 
258 out.sdk/javaclient.mf: javaclient.mf.template | out.sdk
259 	sed -e $(qt)s~^Class-Path:$$~& types.jar~$(qt) \
260             -e $(qt)s~^UNO-Type-Path:$$~& types.jar~$(qt) $< > $@
261 
262 out.sdk/class/javaclient/test/java/javaclient/JavaClient.class: \
263             JavaClient.java out.sdk/types.jar | out.sdk/class
264 	- $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/javaclient)
265 	$(MKDIR) $(subst /,$(PS),out.sdk/class/javaclient)
266 	$(SDK_JAVAC) $(JAVAC_FLAGS) \
267             -classpath "$(CLASSPATH)$(PATH_SEPARATOR)out.sdk/types.jar" \
268             -sourcepath . -d out.sdk/class/javaclient $<
269 
270 
271 out.sdk/types.jar: out.sdk/types.javamaker.flag out.sdk/types.mf | out.sdk
272 	$(SDK_JAR) cfm $@ out.sdk/types.mf -C out.sdk/class/types test
273 
274 out.sdk/types.mf: types.mf.template | out.sdk
275 	sed -e $(qt)s~^Class-Path:$$~& ~$(qt) \
276             -e $(qt)s~^UNO-Type-Path:$$~& \<\>~$(qt) $< > $@
277 
278 out.sdk/types.javamaker.flag: out.sdk/types.rdb | out.sdk out.sdk/class
279 	- $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/types)
280 	$(JAVAMAKER) -O./out.sdk/class/types -B/UCR $< "-X$(URE_TYPES)"
281 	touch $@
282 
283 
284 out.sdk/types.rdb: out.sdk/types.urd | out.sdk
285 	$(REGMERGE) $@ /UCR $<
286 
287 out.sdk/types.urd: types.idl | out.sdk
288 	$(IDLC) -O$(@D) -I$(IDL_DIR) -cid -we $<
289 
290 
291 out.sdk/services.rdb: out.sdk/cpptest.uno.$(SHAREDLIB_EXT) \
292             out.sdk/javatest.uno.jar | out.sdk
293 	$(DEL) $(subst /,$(PS),$@)
294 	$(REGCOMP) -register -r $@ \
295             -c $(URLPREFIX)$(cwd)/out.sdk/cpptest.uno.$(SHAREDLIB_EXT)
296 	$(REGCOMP) -register -br "$(URE_TYPES)" -br "$(URE_SERVICES)" -r $@ \
297             -c $(URLPREFIX)$(cwd)/out.sdk/javatest.uno.jar
298 
299 
300 out.sdk:
301 	$(MKDIR) $(subst /,$(PS),$@)
302 
303 out.sdk/class: | out.sdk
304 	$(MKDIR) $(subst /,$(PS),$@)
305