source: trunk/icedtea-web/Makefile.am@ 399

Last change on this file since 399 was 362, checked in by dmik, 13 years ago

icedtea-web: Use correct base for PluginAppletViewer depending on platform.

File size: 18.2 KB
Line 
1# Source directories
2
3NETX_DIR = $(abs_top_builddir)/netx.build
4NETX_SRCDIR = $(abs_top_srcdir)/netx
5NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources
6NETX_EXTRA_DIR=$(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources
7NETX_EXTRA_DIST_DIR=$(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources
8
9TESTS_SRCDIR=$(abs_top_srcdir)/tests
10TESTS_DIR=$(abs_top_builddir)/tests.build
11
12NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit
13NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit
14
15JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner
16JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner
17
18JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar
19
20# Build directories
21
22BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0
23
24if WITH_RHINO
25 RHINO_RUNTIME=:$(RHINO_JAR)
26else
27 RHINO_RUNTIME=
28endif
29
30RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME)
31
32# Flags
33IT_CFLAGS=$(CFLAGS) $(ARCHFLAG)
34IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE)
35IT_LANGUAGE_SOURCE_VERSION=6
36IT_CLASS_TARGET_VERSION=6
37IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION)
38
39#
40# We need the jars in bootclasspath for a couple of reasons
41# - we use classes (in the sun.applet package) loaded by the bootclassloader
42# using another classloader to load classes from the same package causes an
43# IllegalAccessException
44# - we want full privileges
45#
46LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)"
47PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"'
48
49# Fake update version to work with the Deployment Toolkit script used by Oracle
50# http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html
51JDK_UPDATE_VERSION=50
52
53# Sources list
54
55PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java
56
57NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \
58 net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \
59 net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \
60 net.sourceforge.jnlp.runtime net.sourceforge.jnlp.security \
61 net.sourceforge.jnlp.security.viewer net.sourceforge.jnlp.services \
62 net.sourceforge.jnlp.tools net.sourceforge.jnlp.util
63
64# Conditional defintions
65if ENABLE_PLUGIN
66ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin
67LIVECONNECT_DIR = netscape sun/applet
68PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp
69PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp
70LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java
71ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/IcedTeaPlugin.so stamps/liveconnect-dist.stamp
72PLUGIN_PKGS = sun.applet netscape.security netscape.javascript
73endif
74
75if CP_SUPPORTS_REFLINK
76 REFLINK = --reflink=auto
77endif
78
79if SRC_DIR_HARDLINKABLE
80 SRC_DIR_LINK = -l
81else
82 SRC_DIR_LINK = $(REFLINK)
83endif
84
85if ENABLE_DOCS
86JAVADOC_OPTS=-use -keywords -encoding UTF-8 -splitIndex \
87 -bottom '<font size="-1"> <a href="http://icedtea.classpath.org/bugzilla">Submit a bug or feature</a></font>'
88if JAVADOC_SUPPORTS_J_OPTIONS
89JAVADOC_MEM_OPTS=-J-Xmx1024m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m
90endif
91endif
92
93if WITH_RHINO
94 RHINO_TESTS=check-pac-functions
95else
96 RHINO_TESTS=
97endif
98
99if WITH_JUNIT
100 JUNIT_TESTS=run-netx-unit-tests
101else
102 JUNIT_TESTS=
103endif
104
105
106PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION)
107
108EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \
109 itweb-settings.desktop.in $(top_srcdir)/tests
110
111# binary names
112javaws:= $(shell echo javaws | sed '@program_transform_name@')
113itweb_settings:= $(shell echo itweb-settings | sed '@program_transform_name@')
114
115# the launcher needs to know $(bindir) and $(datadir) which can be different at
116# make-time from configure-time
117edit_launcher_script = sed \
118 -e 's|[@]LAUNCHER_BOOTCLASSPATH[@]|$(LAUNCHER_BOOTCLASSPATH)|g' \
119 -e 's|[@]JAVAWS_BIN_LOCATION[@]|$(bindir)/$(javaws)|g' \
120 -e 's|[@]ITWEB_SETTINGS_BIN_LOCATION[@]|$(bindir)/$(itweb_settings)|g' \
121 -e 's|[@]JAVA[@]|$(JAVA)|g' \
122 -e 's|[@]JRE[@]|$(SYSTEM_JRE_DIR)|g'
123
124# Top-Level Targets
125# =================
126
127all-local: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \
128 javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop
129
130check-local: $(RHINO_TESTS) $(JUNIT_TESTS)
131
132clean-local: clean-netx clean-plugin clean-liveconnect clean-extra clean-bootstrap-directory \
133 clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests
134 if [ -e stamps ] ; then \
135 rmdir stamps ; \
136 fi
137
138.PHONY: clean-IcedTeaPlugin clean-add-netx clean-add-netx-debug clean-add-plugin clean-add-plugin-debug \
139 clean-bootstrap-directory clean-native-ecj clean-desktop-files clean-netx-docs clean-docs clean-plugin-docs \
140 clean-tests check-local clean-launchers check-pac-functions run-netx-unit-tests clean-netx-tests \
141 clean-junit-runner clean-netx-unit-tests
142
143install-exec-local:
144 ${mkinstalldirs} $(DESTDIR)$(bindir) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/ $(DESTDIR)$(libdir)
145if ENABLE_PLUGIN
146 ${INSTALL_PROGRAM} $(PLUGIN_DIR)/IcedTeaPlugin.so $(DESTDIR)$(libdir)
147 ${INSTALL_DATA} $(abs_top_builddir)/liveconnect/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
148endif
149 ${INSTALL_DATA} $(NETX_DIR)/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
150 ${INSTALL_PROGRAM} launcher.build/$(javaws) $(DESTDIR)$(bindir)
151 ${INSTALL_DATA} extra-lib/about.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jar
152 ${INSTALL_PROGRAM} launcher.build/$(itweb_settings) $(DESTDIR)$(bindir)
153
154install-data-local:
155 ${mkinstalldirs} -d $(DESTDIR)$(mandir)/man1
156 ${INSTALL_DATA} $(NETX_SRCDIR)/javaws.1 $(DESTDIR)$(mandir)/man1
157 ${INSTALL_DATA} $(NETX_RESOURCE_DIR)/about.jnlp $(DESTDIR)$(datarootdir)/$(PACKAGE_NAME)
158if ENABLE_DOCS
159 ${mkinstalldirs} $(DESTDIR)$(htmldir)
160 (cd ${abs_top_builddir}/docs/netx; \
161 for files in $$(find . -type f); \
162 do \
163 ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \
164 done)
165if ENABLE_PLUGIN
166 (cd ${abs_top_builddir}/docs/plugin; \
167 for files in $$(find . -type f); \
168 do \
169 ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \
170 done)
171endif
172endif
173
174uninstall-local:
175 rm -f $(DESTDIR)$(libdir)/IcedTeaPlugin.so
176 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
177 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
178 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jnlp
179 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jar
180 rm -f $(DESTDIR)$(mandir)/man1/javaws.1
181 rm -f $(DESTDIR)$(bindir)/$(javaws)
182 rm -f $(DESTDIR)$(bindir)/$(itweb_settings)
183 rm -rf $(DESTDIR)$(htmldir)
184
185# Plugin
186
187if ENABLE_PLUGIN
188# IcedTeaPlugin.so.
189# Separate compile and link invocations to ensure intermediate object
190# is listed before -l options. See:
191# http://developer.mozilla.org/en/docs/XPCOM_Glue
192
193PLUGIN_SRC=IcedTeaNPPlugin.cc IcedTeaScriptablePluginObject.cc \
194 IcedTeaJavaRequestProcessor.cc IcedTeaPluginRequestProcessor.cc \
195 IcedTeaPluginUtils.cc
196
197PLUGIN_OBJECTS=IcedTeaNPPlugin.o IcedTeaScriptablePluginObject.o \
198 IcedTeaJavaRequestProcessor.o IcedTeaPluginRequestProcessor.o \
199 IcedTeaPluginUtils.o
200
201$(PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc
202 mkdir -p $(PLUGIN_DIR) && \
203 cd $(PLUGIN_DIR) && \
204 $(CXX) $(CXXFLAGS) \
205 -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
206 -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \
207 -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \
208 -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \
209 -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \
210 -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \
211 -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \
212 $(GLIB_CFLAGS) \
213 $(GTK_CFLAGS) \
214 $(MOZILLA_CFLAGS) \
215 -fPIC -o $@ -c $<
216
217$(PLUGIN_DIR)/IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS))
218 cd $(PLUGIN_DIR) && \
219 $(CXX) $(CXXFLAGS) \
220 $(PLUGIN_OBJECTS) \
221 $(GLIB_LIBS) \
222 $(GTK_LIBS) \
223 $(MOZILLA_LIBS)\
224 -shared -o $@
225
226clean-IcedTeaPlugin:
227 rm -f $(PLUGIN_DIR)/*.o
228 rm -f $(PLUGIN_DIR)/IcedTeaPlugin.so
229 if [ $(abs_top_srcdir) != $(abs_top_builddir) ]; then \
230 if [ -e $(abs_top_builddir)/plugin/icedteanp ] ; then \
231 rmdir $(abs_top_builddir)/plugin/icedteanp ; \
232 rmdir $(abs_top_builddir)/plugin ; \
233 fi ; \
234 fi
235endif
236
237stamps/plugin.stamp: $(ICEDTEAPLUGIN_TARGET)
238 mkdir -p stamps
239 touch stamps/plugin.stamp
240
241clean-plugin: $(ICEDTEAPLUGIN_CLEAN)
242 rm -f stamps/plugin.stamp
243
244liveconnect-source-files.txt:
245 if test "x${LIVECONNECT_DIR}" != x; then \
246 find $(LIVECONNECT_SRCS) -name '*.java' | sort > $@ ; \
247 sed -i '/_OS2/ d' $@
248 fi
249 touch $@
250
251stamps/liveconnect.stamp: liveconnect-source-files.txt stamps/netx.stamp
252 if test "x${LIVECONNECT_DIR}" != x; then \
253 mkdir -p $(abs_top_builddir)/liveconnect && \
254 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
255 -d $(abs_top_builddir)/liveconnect \
256 -bootclasspath $(NETX_DIR):$(RUNTIME) \
257 -sourcepath $(LIVECONNECT_SRCS) \
258 @liveconnect-source-files.txt ; \
259 fi
260 mkdir -p stamps
261 touch $@
262
263stamps/liveconnect-dist.stamp: stamps/liveconnect.stamp
264 if test "x${LIVECONNECT_DIR}" != x; then \
265 (cd $(abs_top_builddir)/liveconnect ; \
266 mkdir -p lib ; \
267 $(BOOT_DIR)/bin/jar cf lib/classes.jar $(LIVECONNECT_DIR) ; \
268 cp -pPR $(SRC_DIR_LINK) $(LIVECONNECT_SRCS) src; \
269 find src -type f -exec chmod 640 '{}' ';' -o -type d -exec chmod 750 '{}' ';'; \
270 cd src ; \
271 $(ZIP) -qr $(abs_top_builddir)/liveconnect/lib/src.zip $(LIVECONNECT_DIR) ) ; \
272 fi
273 mkdir -p stamps
274 touch $@
275
276clean-liveconnect:
277 rm -rf $(abs_top_builddir)/liveconnect
278 rm -f stamps/liveconnect-dist.stamp
279 rm -f liveconnect-source-files.txt
280 rm -f stamps/liveconnect.stamp
281
282# NetX
283# requires availability of OpenJDK source code including
284# a patch applied to sun.plugin.AppletViewerPanel and generated sources
285
286netx-source-files.txt:
287 find $(NETX_SRCDIR) -name '*.java' | sort > $@
288if !WITH_RHINO
289 sed -i '/RhinoBasedPacEvaluator/ d' $@
290endif
291
292stamps/netx.stamp: netx-source-files.txt stamps/bootstrap-directory.stamp
293 mkdir -p $(NETX_DIR)
294 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
295 -d $(NETX_DIR) \
296 -sourcepath $(NETX_SRCDIR) \
297 -bootclasspath $(RUNTIME) \
298 @netx-source-files.txt
299 (cd $(NETX_RESOURCE_DIR); \
300 for files in $$(find . -type f); \
301 do \
302 ${INSTALL_DATA} -D $${files} \
303 $(NETX_DIR)/net/sourceforge/jnlp/resources/$${files}; \
304 done)
305 cp -a $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \
306 $(NETX_DIR)/net/sourceforge/jnlp/runtime
307 cp -a build.properties $(NETX_DIR)/net/sourceforge/jnlp/
308 mkdir -p stamps
309 touch $@
310
311stamps/netx-dist.stamp: stamps/netx.stamp $(abs_top_builddir)/netx.manifest
312 (cd $(NETX_DIR) ; \
313 mkdir -p lib ; \
314 $(BOOT_DIR)/bin/jar cfm lib/classes.jar \
315 $(abs_top_builddir)/netx.manifest javax/jnlp net ; \
316 cp -pPR $(SRC_DIR_LINK) $(NETX_SRCDIR) src; \
317 find src -type f -exec chmod 640 '{}' ';' -o -type d -exec chmod 750 '{}' ';'; \
318 cd src ; \
319 $(ZIP) -qr $(NETX_DIR)/lib/src.zip javax net )
320 mkdir -p stamps
321 touch $@
322
323clean-netx:
324 rm -rf $(NETX_DIR)
325 rm -f stamps/netx-dist.stamp
326 rm -f netx-source-files.txt
327 rm -f stamps/netx.stamp
328
329clean-desktop-files:
330 rm -f javaws.desktop
331 rm -f itweb-settings.desktop
332
333# extras -- used to create about.jar for javaws.
334extra-source-files.txt:
335 find $(abs_top_srcdir)/extra -name '*.java' | sort > $@
336
337stamps/extra-class-files.stamp: extra-source-files.txt stamps/netx.stamp
338 mkdir -p extra-lib
339 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d extra-lib \
340 -sourcepath $(abs_top_srcdir)/extra -cp netx.build \
341 -bootclasspath $(RUNTIME) @extra-source-files.txt
342 (cd $(NETX_EXTRA_DIR); \
343 for files in $$(find . -type f); \
344 do \
345 ${INSTALL_DATA} -D $${files} \
346 $(NETX_EXTRA_DIST_DIR)/$${files}; \
347 done)
348 mkdir -p stamps
349 touch $@
350
351clean-extra:
352 rm -rf extra-lib
353 rm -f stamps/extra-class-files.stamp
354 rm -f extra-source-files.txt
355
356extra-lib/about.jar: stamps/extra-class-files.stamp
357 $(BOOT_DIR)/bin/jar cf $@ -C extra-lib net ;
358
359launcher.build/$(javaws): launcher/javaws.in
360 mkdir -p launcher.build
361 $(edit_launcher_script) < $< > $@
362
363launcher.build/$(itweb_settings): launcher/itweb-settings.in
364 mkdir -p launcher.build
365 $(edit_launcher_script) < $< > $@
366
367clean-launchers:
368 rm -f launcher.build/$(javaws)
369 rm -f launcher.build/$(itweb_settings)
370 if [ -e launcher.build ] ; then \
371 rmdir launcher.build ; \
372 fi
373
374javaws.desktop: javaws.desktop.in
375 sed "s#PATH_TO_JAVAWS#$(bindir)/$(javaws)#" < $(srcdir)/javaws.desktop.in > javaws.desktop
376
377itweb-settings.desktop: $(srcdir)/itweb-settings.desktop.in
378 sed "s#PATH_TO_ITWEB_SETTINGS#$(bindir)/$(itweb_settings)#" \
379 < $(srcdir)/itweb-settings.desktop.in > itweb-settings.desktop
380
381# documentation
382
383stamps/docs.stamp: stamps/netx-docs.stamp stamps/plugin-docs.stamp
384 touch stamps/docs.stamp
385
386clean-docs: clean-netx-docs clean-plugin-docs
387 if [ -e ${abs_top_builddir}/docs ] ; then \
388 rmdir ${abs_top_builddir}/docs ; \
389 fi
390 rm -f stamps/docs.stamp
391
392stamps/netx-docs.stamp: stamps/bootstrap-directory.stamp
393if ENABLE_DOCS
394 $(BOOT_DIR)/bin/javadoc $(JAVADOC_MEM_OPTS) $(JAVADOC_OPTS) \
395 -d ${abs_top_builddir}/docs/netx -sourcepath $(NETX_SRCDIR) \
396 -doctitle 'IcedTea-Web: NetX API Specification' \
397 -windowtitle 'IcedTea-Web: NetX ' \
398 -header '<strong>IcedTea-Web<br/>NetX</strong>' \
399 $(NETX_PKGS)
400endif
401 mkdir -p stamps
402 touch stamps/netx-docs.stamp
403
404clean-netx-docs:
405 rm -rf ${abs_top_builddir}/docs/netx
406 rm -f stamps/netx-docs.stamp
407
408stamps/plugin-docs.stamp: stamps/bootstrap-directory.stamp
409if ENABLE_DOCS
410if ENABLE_PLUGIN
411 $(BOOT_DIR)/bin/javadoc $(JAVADOC_MEM_OPTS) $(JAVADOC_OPTS) \
412 -d ${abs_top_builddir}/docs/plugin -sourcepath $(NETX_SRCDIR):$(LIVECONNECT_SRCS) \
413 -doctitle 'IcedTea-Web: Plugin API Specification' \
414 -windowtitle 'IcedTea-Web: Plugin ' \
415 -header '<strong>IcedTea-Web<br/>Plugin</strong>' \
416 $(PLUGIN_PKGS)
417endif
418endif
419 mkdir -p stamps
420 touch stamps/plugin-docs.stamp
421
422clean-plugin-docs:
423 rm -rf ${abs_top_builddir}/docs/plugin
424 rm -f stamps/plugin-docs.stamp
425
426
427# check
428# ==========================
429
430clean-tests: clean-netx-tests
431 if [ -e $(TESTS_DIR) ]; then \
432 rmdir $(TESTS_DIR) ; \
433 fi
434
435check-pac-functions: stamps/bootstrap-directory.stamp
436 ./jrunscript $(abs_top_srcdir)/tests/netx/pac/pac-funcs-test.js \
437 $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js)
438
439junit-runner-source-files.txt:
440 find $(JUNIT_RUNNER_SRCDIR) -name '*.java' | sort > $@
441
442$(JUNIT_RUNNER_JAR): junit-runner-source-files.txt
443 mkdir -p $(JUNIT_RUNNER_DIR) && \
444 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
445 -d $(JUNIT_RUNNER_DIR) \
446 -classpath $(JUNIT_JAR) \
447 @junit-runner-source-files.txt && \
448 $(BOOT_DIR)/bin/jar cf $@ -C $(JUNIT_RUNNER_DIR) .
449
450netx-unit-tests-source-files.txt:
451 find $(NETX_UNIT_TEST_SRCDIR) -name '*.java' | sort > $@
452
453stamps/netx-unit-tests-compile.stamp: stamps/netx.stamp \
454 netx-unit-tests-source-files.txt
455 mkdir -p $(NETX_UNIT_TEST_DIR) && \
456 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
457 -d $(NETX_UNIT_TEST_DIR) \
458 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \
459 @netx-unit-tests-source-files.txt && \
460 mkdir -p stamps && \
461 touch $@
462
463run-netx-unit-tests: stamps/netx-unit-tests-compile.stamp \
464 $(JUNIT_RUNNER_JAR)
465 cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/basic.jnlp
466 cd $(NETX_UNIT_TEST_DIR) ; \
467 class_names= ; \
468 for test in `find -type f` ; do \
469 class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \
470 class_name=`echo $$class_name | sed -e 's|/|.|g' ` ; \
471 class_names="$$class_names $$class_name" ; \
472 done ; \
473 echo $$class_names ; \
474 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):. \
475 $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names
476
477clean-netx-tests: clean-netx-unit-tests clean-junit-runner
478 if [ -e $(TESTS_DIR)/netx ]; then \
479 rmdir $(TESTS_DIR)/netx ; \
480 fi
481
482clean-junit-runner:
483 rm -f junit-runner-source-files.txt
484 rm -rf $(JUNIT_RUNNER_DIR)
485 rm -f $(JUNIT_RUNNER_JAR)
486
487clean-netx-unit-tests:
488 rm -f netx-unit-tests-source-files.txt
489 rm -rf $(NETX_UNIT_TEST_DIR)
490 rm -f stamps/netx-unit-tests-compile.stamp
491
492# plugin tests
493
494if ENABLE_PLUGIN
495stamps/plugin-tests.stamp: $(PLUGIN_TEST_SRCS) stamps/plugin.stamp
496 mkdir -p plugin/tests/LiveConnect
497 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
498 -d plugin/tests/LiveConnect \
499 -classpath liveconnect/lib/classes.jar \
500 $(PLUGIN_TEST_SRCS) ;
501 $(BOOT_DIR)/bin/jar cf plugin/tests/LiveConnect/PluginTest.jar \
502 plugin/tests/LiveConnect/*.class ;
503 cp -pPR $(SRC_DIR_LINK) $(abs_top_srcdir)/plugin/tests/LiveConnect/*.{js,html} \
504 plugin/tests/LiveConnect ;
505 echo "Done. Now launch \"firefox file://`pwd`/index.html\"" ;
506 mkdir -p stamps
507 touch stamps/plugin-tests.stamp
508endif
509
510# Bootstrap Directory Targets
511# ===========================
512
513stamps/native-ecj.stamp:
514 mkdir -p stamps ; \
515 if test "x$(GCJ)" != "xno"; then \
516 $(GCJ) $(IT_CFLAGS) -Wl,-Bsymbolic -findirect-dispatch -o native-ecj \
517 --main=org.eclipse.jdt.internal.compiler.batch.Main ${ECJ_JAR} ; \
518 fi ; \
519 touch stamps/native-ecj.stamp
520
521clean-native-ecj:
522 rm -f native-ecj
523 rm -rf stamps/native-ecj.stamp
524
525# bootstrap
526stamps/bootstrap-directory.stamp: stamps/native-ecj.stamp
527 mkdir -p $(BOOT_DIR)/bin stamps/
528 ln -sf $(JAVA) $(BOOT_DIR)/bin/java
529 ln -sf $(JAR) $(BOOT_DIR)/bin/jar
530 ln -sf $(abs_top_builddir)/javac $(BOOT_DIR)/bin/javac
531 ln -sf $(JAVADOC) $(BOOT_DIR)/bin/javadoc
532 mkdir -p $(BOOT_DIR)/jre/lib && \
533 ln -s $(SYSTEM_JRE_DIR)/lib/rt.jar $(BOOT_DIR)/jre/lib && \
534 if [ -e $(SYSTEM_JRE_DIR)/lib/jsse.jar ] ; then \
535 ln -s $(SYSTEM_JRE_DIR)/lib/jsse.jar $(BOOT_DIR)/jre/lib ; \
536 else \
537 ln -s rt.jar $(BOOT_DIR)/jre/lib/jsse.jar ; \
538 fi
539 ln -sf $(SYSTEM_JRE_DIR)/lib/$(JRE_ARCH_DIR) \
540 $(BOOT_DIR)/jre/lib/ && \
541 if ! test -d $(BOOT_DIR)/jre/lib/$(INSTALL_ARCH_DIR); \
542 then \
543 ln -sf ./$(JRE_ARCH_DIR) \
544 $(BOOT_DIR)/jre/lib/$(INSTALL_ARCH_DIR); \
545 fi;
546 mkdir -p $(BOOT_DIR)/include && \
547 for i in $(SYSTEM_JDK_DIR)/include/*; do \
548 test -r $$i | continue; \
549 i=`basename $$i`; \
550 rm -f $(BOOT_DIR)/include/$$i; \
551 ln -s $(SYSTEM_JDK_DIR)/include/$$i $(BOOT_DIR)/include/$$i; \
552 done
553 mkdir -p stamps
554 touch stamps/bootstrap-directory.stamp
555
556clean-bootstrap-directory:
557 rm -rf $(BOOT_DIR)
558 if [ -e ${abs_top_builddir}/bootstrap ] ; then \
559 rmdir ${abs_top_builddir}/bootstrap ; \
560 fi
561 rm -f stamps/bootstrap-directory.stamp
562
563# Target Aliases
564# ===============
565
566add-netx: stamps/add-netx.stamp
567
568add-netx-debug: stamps/add-netx-debug.stamp
569
570netx: stamps/netx.stamp
571
572netx-dist: stamps/netx-dist.stamp
573
574plugin: stamps/plugin.stamp
575
576plugin-tests: stamps/plugin-tests.stamp
Note: See TracBrowser for help on using the repository browser.