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

Last change on this file since 427 was 418, checked in by dmik, 13 years ago

Merge icedtea-web v1.3 to trunk.

File size: 48.6 KB
Line 
1# Source directories
2
3export NETX_DIR = $(abs_top_builddir)/netx.build
4export NETX_SRCDIR = $(abs_top_srcdir)/netx
5export NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources
6export NETX_EXTRA_DIR=$(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources
7export NETX_EXTRA_DIST_DIR=$(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources
8
9export REPORT_STYLES_DIRNAME=report-styles
10
11export TESTS_SRCDIR=$(abs_top_srcdir)/tests
12export TESTS_DIR=$(abs_top_builddir)/tests.build
13
14export NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit
15export NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit
16
17export JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner
18export JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner
19
20
21export JNLP_TESTS_ENGINE_SRCDIR=$(TESTS_SRCDIR)/test-extensions
22export JNLP_TESTS_ENGINE_TESTS_SRCDIR=$(TESTS_SRCDIR)/test-extensions-tests
23export JNLP_TESTS_SRCDIR=$(TESTS_SRCDIR)/reproducers
24export JNLP_TESTS_ENGINE_DIR=$(TESTS_DIR)/jnlp_testsengine
25export JNLP_TESTS_ENGINE_TESTS_DIR=$(TESTS_DIR)/netx/jnlp_testsengine_tests
26export JNLP_TESTS_SERVER_DEPLOYDIR=$(TESTS_DIR)/jnlp_test_server
27export JNLP_TESTS_DIR=$(TESTS_DIR)/jnlp_tests
28export PRIVATE_KEYSTORE_NAME=teststore.ks
29export PRIVATE_KEYSTORE_PASS=123456789
30export EXPORTED_TEST_CERT_PREFIX=icedteatests
31export EXPORTED_TEST_CERT_SUFFIX=crt
32export TEST_CERT_ALIAS=icedteaweb
33export PUBLIC_KEYSTORE=${HOME}/.icedtea/security/trusted.certs
34export PUBLIC_KEYSTORE_PASS=changeit
35
36export JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar
37export UNIT_CLASS_NAMES = $(abs_top_builddir)/unit_class_names
38export REPRODUCERS_CLASS_NAMES = $(abs_top_builddir)/reproducers_class_names
39export REPRODUCERS_CLASS_WHITELIST = $(abs_top_srcdir)/netx-dist-tests-whitelist
40export EMMA_JAVA_ARGS=-Xmx2G
41export EMMA_MODIFIED_FILES=tests-output.xml ServerAccess-logs.xml stdout.log stderr.log all.log
42export EMMA_BACKUP_SUFFIX=_noEmma
43export EMMA_SUFFIX=_withEmma
44export META_MANIFEST = META-INF/MANIFEST.MF
45export SIGNED_REPRODUCERS=signed
46export SIMPLE_REPRODUCERS=simple
47export CUSTOM_REPRODUCERS=custom
48export ALL_NONCUSTOM_REPRODUCERS=$(SIMPLE_REPRODUCERS) $(SIGNED_REPRODUCERS)
49export ALL_REPRODUCERS=$(ALL_NONCUSTOM_REPRODUCERS) $(CUSTOM_REPRODUCERS)
50
51
52# linking variables
53export PLUGIN_LINK_NAME=libjavaplugin.so
54export MOZILLA_LOCAL_PLUGINDIR=${HOME}/.mozilla/plugins
55export MOZILLA_GLOBAL64_PLUGINDIR=/usr/lib64/mozilla/plugins
56export MOZILLA_GLOBAL32_PLUGINDIR=/usr/lib/mozilla/plugins
57export OPERA_GLOBAL64_PLUGINDIR=/usr/lib64/opera/plugins
58export OPERA_GLOBAL32_PLUGINDIR=/usr/lib/opera/plugins
59export BUILT_PLUGIN_LIBRARY=IcedTeaPlugin.so
60export MOZILLA_LOCAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origU
61export MOZILLA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origMG
62export OPERA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origOG
63export MOZILLA_FAMILY_TEST= "$(FIREFOX)" != "" -o "$(CHROMIUM)" != "" -o "$(CHROME)" != "" -o "$(MIDORI)" != "" -o "$(EPIPHANY)" != ""
64# end of linking variables
65
66# Build directories
67
68export BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0
69
70if WITH_RHINO
71 RHINO_RUNTIME=:$(RHINO_JAR)
72else
73 RHINO_RUNTIME=
74endif
75
76export RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME):$(BOOT_DIR)/jre/lib/resources.jar
77
78# Flags
79export IT_CFLAGS=$(CFLAGS) $(ARCHFLAG)
80export IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE)
81export IT_LANGUAGE_SOURCE_VERSION=6
82export IT_CLASS_TARGET_VERSION=6
83export IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION)
84
85#
86# We need the jars in bootclasspath for a couple of reasons
87# - we use classes (in the sun.applet package) loaded by the bootclassloader
88# using another classloader to load classes from the same package causes an
89# IllegalAccessException
90# - we want full privileges
91#
92export LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)"
93export PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"'
94
95# Fake update version to work with the Deployment Toolkit script used by Oracle
96# http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html
97export JDK_UPDATE_VERSION=50
98
99# Sources list
100
101export PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java
102
103export NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \
104 net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \
105 net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \
106 net.sourceforge.jnlp.runtime net.sourceforge.jnlp.security \
107 net.sourceforge.jnlp.security.viewer net.sourceforge.jnlp.services \
108 net.sourceforge.jnlp.tools net.sourceforge.jnlp.util
109
110# Conditional defintions
111if ENABLE_PLUGIN
112export ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin
113export LIVECONNECT_DIR = netscape sun/applet
114export PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp
115export PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp
116export LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java
117export ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) stamps/liveconnect-dist.stamp
118export PLUGIN_PKGS = sun.applet netscape.security netscape.javascript
119endif
120
121if CP_SUPPORTS_REFLINK
122 REFLINK = --reflink=auto
123endif
124
125if SRC_DIR_HARDLINKABLE
126 SRC_DIR_LINK = -l
127else
128 SRC_DIR_LINK = $(REFLINK)
129endif
130
131if ENABLE_DOCS
132JAVADOC_OPTS=-use -keywords -encoding UTF-8 -splitIndex \
133 -bottom '<font size="-1"> <a href="http://icedtea.classpath.org/bugzilla">Submit a bug or feature</a></font>'
134if JAVADOC_SUPPORTS_J_OPTIONS
135JAVADOC_MEM_OPTS=-J-Xmx1024m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m
136endif
137endif
138
139if WITH_RHINO
140 RHINO_TESTS=stamps/check-pac-functions.stamp
141else
142 RHINO_TESTS=
143endif
144
145if WITH_JUNIT
146 JUNIT_TESTS=stamps/run-netx-unit-tests.stamp
147else
148 JUNIT_TESTS=
149endif
150
151
152export PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION)
153
154export EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \
155 itweb-settings.desktop.in $(top_srcdir)/tests
156
157# reproducers `D`shortcuts
158export DTEST_SERVER=-Dtest.server.dir=$(JNLP_TESTS_SERVER_DEPLOYDIR)
159export DJAVAWS_BUILD=-Djavaws.build.bin=$(DESTDIR)$(bindir)/$(javaws)
160export DBROWSERS=-Dused.browsers=$(FIREFOX):$(CHROMIUM):$(CHROME):$(OPERA):$(MIDORI):$(EPIPHANY)
161export REPRODUCERS_DPARAMETERS= $(DTEST_SERVER) $(DJAVAWS_BUILD) $(DBROWSERS) $(BROWSER_TESTS_MODIFICATION)
162# end of `D`shortcuts
163
164#exported autoconf copies
165export EXPORTED_JAVAC=$(BOOT_DIR)/bin/javac
166#end of exported autoconf copies
167
168# binary names
169javaws:= $(shell echo javaws | sed '@program_transform_name@')
170itweb_settings:= $(shell echo itweb-settings | sed '@program_transform_name@')
171
172# the launcher needs to know $(bindir) and $(datadir) which can be different at
173# make-time from configure-time
174edit_launcher_script = sed \
175 -e 's|[@]LAUNCHER_BOOTCLASSPATH[@]|$(LAUNCHER_BOOTCLASSPATH)|g' \
176 -e 's|[@]JAVAWS_BIN_LOCATION[@]|$(bindir)/$(javaws)|g' \
177 -e 's|[@]ITWEB_SETTINGS_BIN_LOCATION[@]|$(bindir)/$(itweb_settings)|g' \
178 -e 's|[@]JAVA[@]|$(JAVA)|g' \
179 -e 's|[@]JRE[@]|$(SYSTEM_JRE_DIR)|g'
180
181# Top-Level Targets
182# =================
183
184all-local: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \
185 javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop
186
187check-local: $(RHINO_TESTS) $(JUNIT_TESTS)
188
189clean-local: clean-netx clean-plugin clean-liveconnect clean-extra \
190 clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests clean-bootstrap-directory
191 if [ -e stamps ] ; then \
192 rmdir stamps ; \
193 fi
194
195.PHONY: clean-IcedTeaPlugin clean-add-netx clean-add-netx-debug clean-add-plugin clean-add-plugin-debug \
196 clean-bootstrap-directory clean-native-ecj clean-desktop-files clean-netx-docs clean-docs clean-plugin-docs \
197 clean-tests check-local clean-launchers stamps/check-pac-functions.stamp stamps/run-netx-unit-tests.stamp clean-netx-tests \
198 clean-junit-runner clean-netx-unit-tests
199
200install-exec-local:
201 ${mkinstalldirs} $(DESTDIR)$(bindir) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/ $(DESTDIR)$(libdir)
202if ENABLE_PLUGIN
203 ${INSTALL_PROGRAM} $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) $(DESTDIR)$(libdir)
204 ${INSTALL_DATA} $(abs_top_builddir)/liveconnect/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
205endif
206 ${INSTALL_DATA} $(NETX_DIR)/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
207 ${INSTALL_PROGRAM} launcher.build/$(javaws) $(DESTDIR)$(bindir)
208 ${INSTALL_DATA} extra-lib/about.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jar
209 ${INSTALL_PROGRAM} launcher.build/$(itweb_settings) $(DESTDIR)$(bindir)
210
211install-data-local:
212 ${mkinstalldirs} -d $(DESTDIR)$(mandir)/man1
213 ${INSTALL_DATA} $(NETX_SRCDIR)/javaws.1 $(DESTDIR)$(mandir)/man1
214 ${INSTALL_DATA} $(NETX_RESOURCE_DIR)/about.jnlp $(DESTDIR)$(datarootdir)/$(PACKAGE_NAME)
215if ENABLE_DOCS
216 ${mkinstalldirs} $(DESTDIR)$(htmldir)
217 (cd ${abs_top_builddir}/docs/netx; \
218 for files in $$(find . -type f); \
219 do \
220 ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \
221 done)
222if ENABLE_PLUGIN
223 (cd ${abs_top_builddir}/docs/plugin; \
224 for files in $$(find . -type f); \
225 do \
226 ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \
227 done)
228endif
229endif
230
231uninstall-local:
232 rm -f $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)
233 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
234 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
235 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jnlp
236 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jar
237 rm -f $(DESTDIR)$(mandir)/man1/javaws.1
238 rm -f $(DESTDIR)$(bindir)/$(javaws)
239 rm -f $(DESTDIR)$(bindir)/$(itweb_settings)
240 rm -rf $(DESTDIR)$(htmldir)
241
242# Plugin
243
244if ENABLE_PLUGIN
245# IcedTeaPlugin.so.
246# Separate compile and link invocations to ensure intermediate object
247# is listed before -l options. See:
248# http://developer.mozilla.org/en/docs/XPCOM_Glue
249
250PLUGIN_SRC=IcedTeaNPPlugin.cc IcedTeaScriptablePluginObject.cc \
251 IcedTeaJavaRequestProcessor.cc IcedTeaPluginRequestProcessor.cc \
252 IcedTeaPluginUtils.cc
253
254PLUGIN_OBJECTS=IcedTeaNPPlugin.o IcedTeaScriptablePluginObject.o \
255 IcedTeaJavaRequestProcessor.o IcedTeaPluginRequestProcessor.o \
256 IcedTeaPluginUtils.o
257
258$(PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc
259 mkdir -p $(PLUGIN_DIR) && \
260 cd $(PLUGIN_DIR) && \
261 $(CXX) $(CXXFLAGS) \
262 $(DEFS) $(VERSION_DEFS) \
263 -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
264 -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \
265 -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \
266 -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \
267 -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \
268 -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \
269 -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \
270 $(GLIB_CFLAGS) \
271 $(GTK_CFLAGS) \
272 $(MOZILLA_CFLAGS) \
273 -fPIC -o $@ -c $<
274
275$(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY): $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS))
276 cd $(PLUGIN_DIR) && \
277 $(CXX) $(CXXFLAGS) \
278 $(PLUGIN_OBJECTS) \
279 $(GLIB_LIBS) \
280 $(GTK_LIBS) \
281 $(MOZILLA_LIBS)\
282 -shared -o $@
283
284clean-IcedTeaPlugin:
285 rm -f $(PLUGIN_DIR)/*.o
286 rm -f $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY)
287 if [ $(abs_top_srcdir) != $(abs_top_builddir) ]; then \
288 if [ -e $(abs_top_builddir)/plugin/icedteanp ] ; then \
289 rmdir $(abs_top_builddir)/plugin/icedteanp ; \
290 rmdir $(abs_top_builddir)/plugin ; \
291 fi ; \
292 fi
293endif
294
295stamps/plugin.stamp: $(ICEDTEAPLUGIN_TARGET)
296 mkdir -p stamps
297 touch stamps/plugin.stamp
298
299clean-plugin: $(ICEDTEAPLUGIN_CLEAN)
300 rm -f stamps/plugin.stamp
301
302liveconnect-source-files.txt:
303 if test "x${LIVECONNECT_DIR}" != x; then \
304 find $(LIVECONNECT_SRCS) -name '*.java' | sort > $@ ; \
305 sed -i '/_OS2/ d' $@
306 fi
307 touch $@
308
309stamps/liveconnect.stamp: liveconnect-source-files.txt stamps/netx.stamp
310 if test "x${LIVECONNECT_DIR}" != x; then \
311 mkdir -p $(abs_top_builddir)/liveconnect && \
312 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
313 -d $(abs_top_builddir)/liveconnect \
314 -bootclasspath $(NETX_DIR):$(RUNTIME) \
315 -sourcepath $(LIVECONNECT_SRCS) \
316 @liveconnect-source-files.txt ; \
317 fi
318 mkdir -p stamps
319 touch $@
320
321stamps/liveconnect-dist.stamp: stamps/liveconnect.stamp
322 if test "x${LIVECONNECT_DIR}" != x; then \
323 (cd $(abs_top_builddir)/liveconnect ; \
324 mkdir -p lib ; \
325 $(BOOT_DIR)/bin/jar cf lib/classes.jar $(LIVECONNECT_DIR) ; \
326 cp -pPR $(SRC_DIR_LINK) $(LIVECONNECT_SRCS) src; \
327 find src -type f -exec chmod 640 '{}' ';' -o -type d -exec chmod 750 '{}' ';'; \
328 cd src ; \
329 $(ZIP) -qr $(abs_top_builddir)/liveconnect/lib/src.zip $(LIVECONNECT_DIR) ) ; \
330 fi
331 mkdir -p stamps
332 touch $@
333
334clean-liveconnect:
335 rm -rf $(abs_top_builddir)/liveconnect
336 rm -f stamps/liveconnect-dist.stamp
337 rm -f liveconnect-source-files.txt
338 rm -f stamps/liveconnect.stamp
339
340# NetX
341# requires availability of OpenJDK source code including
342# a patch applied to sun.plugin.AppletViewerPanel and generated sources
343
344netx-source-files.txt:
345 find $(NETX_SRCDIR) -name '*.java' | sort > $@
346if !WITH_RHINO
347 sed -i '/RhinoBasedPacEvaluator/ d' $@
348endif
349
350stamps/netx.stamp: netx-source-files.txt stamps/bootstrap-directory.stamp
351 mkdir -p $(NETX_DIR)
352 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
353 -d $(NETX_DIR) \
354 -sourcepath $(NETX_SRCDIR) \
355 -bootclasspath $(RUNTIME) \
356 @netx-source-files.txt
357 (cd $(NETX_RESOURCE_DIR); \
358 for files in $$(find . -type f); \
359 do \
360 ${INSTALL_DATA} -D $${files} \
361 $(NETX_DIR)/net/sourceforge/jnlp/resources/$${files}; \
362 done)
363 cp -a $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \
364 $(NETX_DIR)/net/sourceforge/jnlp/runtime
365 cp -a build.properties $(NETX_DIR)/net/sourceforge/jnlp/
366 mkdir -p stamps
367 touch $@
368
369stamps/netx-dist.stamp: stamps/netx.stamp $(abs_top_builddir)/netx.manifest
370 (cd $(NETX_DIR) ; \
371 mkdir -p lib ; \
372 $(BOOT_DIR)/bin/jar cfm lib/classes.jar \
373 $(abs_top_builddir)/netx.manifest javax/jnlp net ; \
374 cp -pPR $(SRC_DIR_LINK) $(NETX_SRCDIR) src; \
375 find src -type f -exec chmod 640 '{}' ';' -o -type d -exec chmod 750 '{}' ';'; \
376 cd src ; \
377 $(ZIP) -qr $(NETX_DIR)/lib/src.zip javax net )
378 mkdir -p stamps
379 touch $@
380
381clean-netx:
382 rm -rf $(NETX_DIR)
383 rm -f stamps/netx-dist.stamp
384 rm -f netx-source-files.txt
385 rm -f stamps/netx.stamp
386
387clean-desktop-files:
388 rm -f javaws.desktop
389 rm -f itweb-settings.desktop
390
391# extras -- used to create about.jar for javaws.
392extra-source-files.txt:
393 find $(abs_top_srcdir)/extra -name '*.java' | sort > $@
394
395stamps/extra-class-files.stamp: extra-source-files.txt stamps/netx.stamp
396 mkdir -p extra-lib
397 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d extra-lib \
398 -sourcepath $(abs_top_srcdir)/extra -cp netx.build \
399 -bootclasspath $(RUNTIME) @extra-source-files.txt
400 (cd $(NETX_EXTRA_DIR); \
401 for files in $$(find . -type f); \
402 do \
403 ${INSTALL_DATA} -D $${files} \
404 $(NETX_EXTRA_DIST_DIR)/$${files}; \
405 done)
406 mkdir -p stamps
407 touch $@
408
409clean-extra:
410 rm -rf extra-lib
411 rm -f stamps/extra-class-files.stamp
412 rm -f extra-source-files.txt
413
414extra-lib/about.jar: stamps/extra-class-files.stamp
415 $(BOOT_DIR)/bin/jar cf $@ -C extra-lib net ;
416
417launcher.build/$(javaws): launcher/javaws.in
418 mkdir -p launcher.build
419 $(edit_launcher_script) < $< > $@
420
421launcher.build/$(itweb_settings): launcher/itweb-settings.in
422 mkdir -p launcher.build
423 $(edit_launcher_script) < $< > $@
424
425clean-launchers:
426 rm -f launcher.build/$(javaws)
427 rm -f launcher.build/$(itweb_settings)
428 if [ -e launcher.build ] ; then \
429 rmdir launcher.build ; \
430 fi
431
432javaws.desktop: javaws.desktop.in
433 sed "s#PATH_TO_JAVAWS#$(bindir)/$(javaws)#" < $(srcdir)/javaws.desktop.in > javaws.desktop
434
435itweb-settings.desktop: $(srcdir)/itweb-settings.desktop.in
436 sed "s#PATH_TO_ITWEB_SETTINGS#$(bindir)/$(itweb_settings)#" \
437 < $(srcdir)/itweb-settings.desktop.in > itweb-settings.desktop
438
439# documentation
440
441stamps/docs.stamp: stamps/netx-docs.stamp stamps/plugin-docs.stamp
442 touch stamps/docs.stamp
443
444clean-docs: clean-netx-docs clean-plugin-docs
445 if [ -e ${abs_top_builddir}/docs ] ; then \
446 rmdir ${abs_top_builddir}/docs ; \
447 fi
448 rm -f stamps/docs.stamp
449
450stamps/netx-docs.stamp: stamps/bootstrap-directory.stamp
451if ENABLE_DOCS
452 $(BOOT_DIR)/bin/javadoc $(JAVADOC_MEM_OPTS) $(JAVADOC_OPTS) \
453 -d ${abs_top_builddir}/docs/netx -sourcepath $(NETX_SRCDIR) \
454 -doctitle 'IcedTea-Web: NetX API Specification' \
455 -windowtitle 'IcedTea-Web: NetX ' \
456 -header '<strong>IcedTea-Web<br/>NetX</strong>' \
457 $(NETX_PKGS)
458endif
459 mkdir -p stamps
460 touch stamps/netx-docs.stamp
461
462clean-netx-docs:
463 rm -rf ${abs_top_builddir}/docs/netx
464 rm -f stamps/netx-docs.stamp
465
466stamps/plugin-docs.stamp: stamps/bootstrap-directory.stamp
467if ENABLE_DOCS
468if ENABLE_PLUGIN
469 $(BOOT_DIR)/bin/javadoc $(JAVADOC_MEM_OPTS) $(JAVADOC_OPTS) \
470 -d ${abs_top_builddir}/docs/plugin -sourcepath $(NETX_SRCDIR):$(LIVECONNECT_SRCS) \
471 -doctitle 'IcedTea-Web: Plugin API Specification' \
472 -windowtitle 'IcedTea-Web: Plugin ' \
473 -header '<strong>IcedTea-Web<br/>Plugin</strong>' \
474 $(PLUGIN_PKGS)
475endif
476endif
477 mkdir -p stamps
478 touch stamps/plugin-docs.stamp
479
480clean-plugin-docs:
481 rm -rf ${abs_top_builddir}/docs/plugin
482 rm -f stamps/plugin-docs.stamp
483
484
485# check
486# ==========================
487
488clean-tests: clean-netx-tests
489 if [ -e $(TESTS_DIR) ]; then \
490 rmdir $(TESTS_DIR) ; \
491 fi
492
493stamps/check-pac-functions.stamp: stamps/bootstrap-directory.stamp
494 ./jrunscript $(abs_top_srcdir)/tests/netx/pac/pac-funcs-test.js \
495 $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js) ; \
496 mkdir -p stamps && \
497 touch $@
498
499junit-runner-source-files.txt:
500 find $(JUNIT_RUNNER_SRCDIR) -name '*.java' | sort > $@
501
502$(JUNIT_RUNNER_JAR): junit-runner-source-files.txt stamps/netx-dist-tests-compile.stamp
503 mkdir -p $(JUNIT_RUNNER_DIR) && \
504 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
505 -d $(JUNIT_RUNNER_DIR) \
506 -classpath $(JUNIT_JAR):$(JNLP_TESTS_ENGINE_DIR) \
507 @junit-runner-source-files.txt && \
508 $(BOOT_DIR)/bin/jar cf $@ -C $(JUNIT_RUNNER_DIR) .
509
510stamps/junit-jnlp-dist-dirs: junit-jnlp-dist-simple.txt stamps/junit-jnlp-dist-signed.stamp junit-jnlp-dist-custom.txt
511 mkdir -p $(JNLP_TESTS_SERVER_DEPLOYDIR)
512 mkdir -p $(JNLP_TESTS_DIR)
513 touch $@
514
515junit-jnlp-dist-custom.txt:
516 cd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \
517 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@
518
519junit-jnlp-dist-simple.txt:
520 cd $(JNLP_TESTS_SRCDIR)/simple/ ; \
521 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@
522
523stamps/junit-jnlp-dist-signed.stamp:
524 types=($(SIGNED_REPRODUCERS)) ; \
525 for which in "$${types[@]}" ; do \
526 pushd $(JNLP_TESTS_SRCDIR)/$$which/ ; \
527 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \
528 popd ; \
529 done ; \
530 mkdir -p stamps && \
531 touch $@
532
533stamps/netx-dist-tests-prepare-reproducers.stamp: stamps/junit-jnlp-dist-dirs
534 types=($(ALL_NONCUSTOM_REPRODUCERS)); \
535 for which in "$${types[@]}" ; do \
536 . $(abs_top_srcdir)/NEW_LINE_IFS ; \
537 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
538 IFS="$$IFS_BACKUP" ; \
539 for dir in "$${simpleReproducers[@]}" ; do \
540 echo "processing: $$dir" ; \
541 mkdir -p "$(JNLP_TESTS_DIR)/$$dir" ; \
542 if [ -e "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ]; then \
543 d=`pwd` ; \
544 cd "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ; \
545 srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \
546 notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \
547 $(BOOT_DIR)/bin/javac -cp $(NETX_DIR)/lib/classes.jar -d "$(JNLP_TESTS_DIR)/$$dir/" $$srcFiles ; \
548 if [ -n "$$notSrcFiles" ] ; then \
549 cp -R --parents $$notSrcFiles "$(JNLP_TESTS_DIR)/$$dir/" ; \
550 fi ; \
551 cd "$(JNLP_TESTS_DIR)/$$dir/" ; \
552 if [ -f $(META_MANIFEST) ]; \
553 then \
554 $(BOOT_DIR)/bin/jar cfm "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $(META_MANIFEST) * ; \
555 else \
556 $(BOOT_DIR)/bin/jar cf "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \
557 fi; \
558 cd "$$d" ; \
559 fi; \
560 done ; \
561 done ; \
562 mkdir -p stamps && \
563 touch $@
564
565stamps/netx-dist-tests-sign-some-reproducers.stamp: stamps/netx-dist-tests-prepare-reproducers.stamp
566 keystore=$(abs_top_builddir)/$(PRIVATE_KEYSTORE_NAME); \
567 types=($(SIGNED_REPRODUCERS)) ; \
568 for which in "$${types[@]}" ; do \
569 tcaw=$(TEST_CERT_ALIAS)_$$which ; \
570 $(BOOT_DIR)/bin/keytool -genkey -alias $$tcaw -keystore $$keystore -keypass $(PRIVATE_KEYSTORE_PASS) -storepass $(PRIVATE_KEYSTORE_PASS) -dname "cn=$$tcaw, ou=$$tcaw, o=$$tcaw, c=$$tcaw" ; \
571 . $(abs_top_srcdir)/NEW_LINE_IFS ; \
572 signedReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
573 IFS="$$IFS_BACKUP" ; \
574 for dir in "$${signedReproducers[@]}" ; do \
575 $(BOOT_DIR)/bin/jarsigner -keystore $$keystore -storepass $(PRIVATE_KEYSTORE_PASS) -keypass $(PRIVATE_KEYSTORE_PASS) "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $$tcaw ; \
576 done ; \
577 done ; \
578 mkdir -p stamps && \
579 touch $@
580
581stamps/change-dots-to-paths.stamp: stamps/netx-dist-tests-sign-some-reproducers.stamp
582 pushd $(JNLP_TESTS_SERVER_DEPLOYDIR); \
583 types=($(ALL_NONCUSTOM_REPRODUCERS)); \
584 for which in "$${types[@]}" ; do \
585 . $(abs_top_srcdir)/NEW_LINE_IFS ; \
586 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
587 IFS="$$IFS_BACKUP" ; \
588 for dir in "$${simpleReproducers[@]}" ; do \
589 if test "$${dir:0:1}" = "." ; then \
590 echo "reproducer $$dir starts with dot. It is forbidden" ; \
591 exit 5; \
592 fi; \
593 if test "$${dir:(-1)}" = "." ; then \
594 echo "reproducer $$dir ends with dot. It is forbidden" ; \
595 exit 5; \
596 fi; \
597 q=`expr index "$$dir" .`; \
598 r=$$? ; \
599 if [ $$r = 0 ]; then \
600 slashed_dir="./$${dir//.//}" ; \
601 path="`dirname $$slashed_dir`" ; \
602 file="`basename $$slashed_dir`.jar" ; \
603 echo "copying $$dir.jar to $$path as $$file" ; \
604 mkdir --parents $$path ; \
605 cp $$dir".jar" "$$path"/"$$file" ; \
606 fi ; \
607 done ; \
608 done ; \
609 popd ; \
610 mkdir -p stamps && \
611 touch $@
612
613#this always tries to remove previous testcert
614#the code is copypasted from netx-dist-tests-remove-cert-from-public, because
615#with depending to not stamped target we always have to rerun reproducers targets
616stamps/exported-test-certs.stamp: stamps/change-dots-to-paths.stamp
617 -types=($(SIGNED_REPRODUCERS)) ; \
618 for which in "$${types[@]}" ; do \
619 $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) ; \
620 done ;
621 types=($(SIGNED_REPRODUCERS)) ; \
622 for which in "$${types[@]}" ; do \
623 keytool -export -alias $(TEST_CERT_ALIAS)_$$which -file $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) -storepass $(PRIVATE_KEYSTORE_PASS) -keystore $(PRIVATE_KEYSTORE_NAME) ; \
624 done ;
625 mkdir -p stamps && \
626 touch $@
627
628stamps/netx-dist-tests-import-cert-to-public: stamps/exported-test-certs.stamp
629 types=($(SIGNED_REPRODUCERS)) ; \
630 for which in "$${types[@]}" ; do \
631 yes | $(BOOT_DIR)/bin/keytool -import -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) -file $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) ;\
632 done ;
633 mkdir -p stamps && \
634 touch $@
635
636netx-dist-tests-remove-cert-from-public:
637 -types=($(SIGNED_REPRODUCERS)) ; \
638 for which in "$${types[@]}" ; do \
639 $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) ; \
640 done ;
641 -rm -rf stamps/netx-dist-tests-import-cert-to-public
642
643netx-dist-tests-source-files.txt:
644 find $(JNLP_TESTS_ENGINE_SRCDIR) -name '*.java' | sort > $@
645
646stamps/netx-dist-tests-compile.stamp: stamps/netx.stamp \
647 stamps/junit-jnlp-dist-dirs netx-dist-tests-source-files.txt
648 mkdir -p $(JNLP_TESTS_ENGINE_DIR);
649 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
650 -d $(JNLP_TESTS_ENGINE_DIR) \
651 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \
652 @netx-dist-tests-source-files.txt && \
653 mkdir -p stamps && \
654 touch $@
655
656netx-dist-tests-tests-source-files.txt:
657 find $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) -name '*.java' | sort > $@
658
659stamps/netx-dist-tests-tests-compile.stamp: stamps/junit-jnlp-dist-dirs netx-dist-tests-tests-source-files.txt stamps/netx-dist-tests-compile.stamp
660 mkdir -p $(JNLP_TESTS_ENGINE_TESTS_DIR);
661 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
662 -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \
663 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \
664 @netx-dist-tests-tests-source-files.txt && \
665 mkdir -p stamps && \
666 touch $@
667
668stamps/netx-dist-tests-compile-testcases.stamp: stamps/netx.stamp stamps/junit-jnlp-dist-dirs \
669 netx-dist-tests-source-files.txt stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-tests-compile.stamp
670 types=($(ALL_REPRODUCERS)); \
671 for which in "$${types[@]}" ; do \
672 . $(abs_top_srcdir)/NEW_LINE_IFS ; \
673 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
674 IFS="$$IFS_BACKUP" ; \
675 for dir in "$${simpleReproducers[@]}" ; do \
676 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
677 -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \
678 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \
679 "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/"* ; \
680 done ; \
681 done ; \
682 mkdir -p stamps && \
683 touch $@
684
685stamps/netx-dist-tests-copy-resources.stamp: stamps/junit-jnlp-dist-dirs
686 types=($(ALL_REPRODUCERS)); \
687 for which in "$${types[@]}" ; do \
688 . $(abs_top_srcdir)/NEW_LINE_IFS ; \
689 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
690 IFS="$$IFS_BACKUP" ; \
691 for dir in "$${simpleReproducers[@]}" ; do \
692 cp -R "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/resources/"* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \
693 done ; \
694 done ; \
695 mkdir -p stamps && \
696 touch $@
697
698$(REPRODUCERS_CLASS_NAMES): $(REPRODUCERS_CLASS_WHITELIST)
699 whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
700 cd $(JNLP_TESTS_ENGINE_TESTS_DIR) ; \
701 class_names= ; \
702 for test in `find -type f` ; do \
703 class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \
704 class_name=`echo $$class_name | sed -e 's|/|.|g' ` ; \
705 INLCUDE="NO" ; \
706 for x in $$whiteListed ; do \
707 q=`expr match "$$class_name" "$$x"`; \
708 r=$$? ; \
709 if [ $$r = 0 ]; then \
710 echo "$$class_name will be included in reproducers testcases because of $$x pattern in $(REPRODUCERS_CLASS_WHITELIST). Matching was $$q"; \
711 INLCUDE="YES" ; \
712 fi; \
713 done; \
714 if [ "$$INLCUDE" = "YES" ]; then \
715 class_names="$$class_names $$class_name" ; \
716 else \
717 echo "$$class_name had no match in $(REPRODUCERS_CLASS_WHITELIST). Excluding"; \
718 fi; \
719 done ; \
720 echo $$class_names > $(REPRODUCERS_CLASS_NAMES)
721
722stamps/run-netx-dist-tests.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \
723 javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop \
724 stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \
725 stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/netx-dist-tests-copy-resources.stamp\
726 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) stamps/process-custom-reproducers.stamp
727 cd $(JNLP_TESTS_ENGINE_DIR) ; \
728 class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \
729 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(JNLP_TESTS_ENGINE_TESTS_DIR) \
730 $(BOOT_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \
731 -Xbootclasspath:$(RUNTIME) CommandLine $$class_names
732if WITH_XSLTPROC
733 $(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(JNLP_TESTS_ENGINE_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_reproducers.html
734 $(XSLTPROC) --stringparam logs logs_reproducers.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(JNLP_TESTS_ENGINE_DIR)/tests-output.xml > $(TESTS_DIR)/index_reproducers.html
735endif
736 touch $@
737
738stamps/process-custom-reproducers.stamp: stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \
739 stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/netx-dist-tests-copy-resources.stamp\
740 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES)
741 . $(abs_top_srcdir)/NEW_LINE_IFS ; \
742 customReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-custom.txt `); \
743 IFS="$$IFS_BACKUP" ; \
744 for dir in "$${customReproducers[@]}" ; do \
745 pushd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/$$dir/srcs; \
746 $(MAKE) prepare-reproducer ; \
747 popd ; \
748 done ; \
749 mkdir -p stamps && \
750 touch $@
751
752clean-custom-reproducers: junit-jnlp-dist-custom.txt
753 . $(abs_top_srcdir)/NEW_LINE_IFS ; \
754 customReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-custom.txt `); \
755 IFS="$$IFS_BACKUP" ; \
756 for dir in "$${customReproducers[@]}" ; do \
757 pushd $(JNLP_TESTS_SRCDIR)/custom/$$dir/srcs; \
758 $(MAKE) clean-reproducer ; \
759 popd ; \
760 done ; \
761 rm -f stamps/process-custom-reproducers.stamp
762
763#for global-links you must be root, for opera there do not exists user-links
764#although this targets will indeed create symbolic links to enable
765#icedtea-web plugin inside browser it is intended for testing purposes
766if ENABLE_PLUGIN
767stamps/user-links.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp \
768 launcher.build/$(javaws) stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)
769 if [ $(MOZILLA_FAMILY_TEST) ] ; then \
770 if [ -e $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ] ; then \
771 mv -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) $(MOZILLA_LOCAL_BACKUP_FILE) ; \
772 echo "$(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) backed up as $(MOZILLA_LOCAL_BACKUP_FILE)" ; \
773 else \
774 echo "$(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) doesn't exists, nothing to be backed up to $(MOZILLA_LOCAL_BACKUP_FILE)" ; \
775 fi ; \
776 pushd $(MOZILLA_LOCAL_PLUGINDIR) ; \
777 ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \
778 echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \
779 popd ; \
780 fi ; \
781 touch $@
782
783restore-user-links:
784 if [ $(MOZILLA_FAMILY_TEST) ] ; then \
785 if [ -e $(MOZILLA_LOCAL_BACKUP_FILE) ] ; then \
786 mv -f $(MOZILLA_LOCAL_BACKUP_FILE) $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ; \
787 echo "$(MOZILLA_LOCAL_BACKUP_FILE) restored as $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME)" ; \
788 else \
789 rm -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ; \
790 echo "$(MOZILLA_LOCAL_BACKUP_FILE) do not exists, nothing to be restored. $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) removed" ; \
791 fi ; \
792 fi ;
793 if [ -e stamps/user-links.stamp ] ; then \
794 rm -f stamps/user-links.stamp ; \
795 fi
796
797stamps/global-links.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \
798 stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)
799 if [ $(MOZILLA_FAMILY_TEST) ] ; then \
800 dir="$(MOZILLA_GLOBAL32_PLUGINDIR)" ; \
801 arch=`arch` ; \
802 if [ "$$arch" = "x86_64" ] ; then \
803 dir="$(MOZILLA_GLOBAL64_PLUGINDIR)" ; \
804 fi ; \
805 if [ -e "$$dir"/$(PLUGIN_LINK_NAME) ] ; then \
806 mv -f "$$dir"/$(PLUGIN_LINK_NAME) $(MOZILLA_GLOBAL_BACKUP_FILE) ; \
807 echo "$$dir/$(PLUGIN_LINK_NAME) backed up as $(MOZILLA_GLOBAL_BACKUP_FILE)" ; \
808 else \
809 echo "$$dir/$(PLUGIN_LINK_NAME) do not exists, nothing to be backed up to $(MOZILLA_GLOBAL_BACKUP_FILE)" ; \
810 fi ; \
811 pushd "$$dir" ; \
812 ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \
813 echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \
814 popd ; \
815 fi ;
816 if [ "$(OPERA)" != "" ] ; then \
817 dir="$(OPERA_GLOBAL32_PLUGINDIR)" ; \
818 arch=`arch` ; \
819 if [ "$$arch" = "x86_64" ] ; then \
820 dir="$(OPERA_GLOBAL64_PLUGINDIR)" ; \
821 fi ; \
822 if [ -e "$$dir"/$(PLUGIN_LINK_NAME) ] ; then \
823 mv -f "$$dir"/$(PLUGIN_LINK_NAME) $(OPERA_GLOBAL_BACKUP_FILE) ; \
824 echo "$$dir/$(PLUGIN_LINK_NAME) backed up as $(OPERA_GLOBAL_BACKUP_FILE) "; \
825 else \
826 echo "$$dir/$(PLUGIN_LINK_NAME) do not exists, nothing to be backed up to $(OPERA_GLOBAL_BACKUP_FILE) "; \
827 fi ; \
828 pushd "$$dir" ; \
829 ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \
830 echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \
831 popd ; \
832 fi ; \
833 touch $@
834
835restore-global-links:
836 if [ $(MOZILLA_FAMILY_TEST) ] ; then \
837 dir="$(MOZILLA_GLOBAL32_PLUGINDIR)" ; \
838 arch=`arch` ; \
839 if [ "$$arch" = "x86_64" ] ; then \
840 dir="$(MOZILLA_GLOBAL64_PLUGINDIR)" ; \
841 fi ; \
842 if [ -e $(MOZILLA_GLOBAL_BACKUP_FILE) ] ; then \
843 mv -f $(MOZILLA_GLOBAL_BACKUP_FILE) "$$dir"/$(PLUGIN_LINK_NAME) ; \
844 echo "$(MOZILLA_GLOBAL_BACKUP_FILE) restored as $$dir/$(PLUGIN_LINK_NAME)" ; \
845 else \
846 rm -f "$$dir"/$(PLUGIN_LINK_NAME) ; \
847 echo "$(MOZILLA_GLOBAL_BACKUP_FILE) do not exists, nothing to be restored. $$dir/$(PLUGIN_LINK_NAME) removed" ; \
848 fi ; \
849 fi ;
850 if [ "$(OPERA)" != "" ] ; then \
851 dir="$(OPERA_GLOBAL32_PLUGINDIR)" ; \
852 arch=`arch` ; \
853 if [ "$$arch" = "x86_64" ] ; then \
854 dir="$(OPERA_GLOBAL64_PLUGINDIR)" ; \
855 fi ; \
856 if [ -e $(OPERA_GLOBAL_BACKUP_FILE) ] ; then \
857 mv -f $(OPERA_GLOBAL_BACKUP_FILE) "$$dir"/$(PLUGIN_LINK_NAME) ; \
858 echo "$(OPERA_GLOBAL_BACKUP_FILE) restored as $$dir/$(PLUGIN_LINK_NAME)" ; \
859 else \
860 rm -f "$$dir"/$(PLUGIN_LINK_NAME) ; \
861 echo "$(OPERA_GLOBAL_BACKUP_FILE) do not exist, nothing to be restored. $$dir/$(PLUGIN_LINK_NAME) removed" ; \
862 fi ; \
863 fi ;
864 if [ -e stamps/global-links.stamp ] ; then \
865 rm -f stamps/global-links.stamp ; \
866 fi
867endif
868
869netx-unit-tests-source-files.txt:
870 find $(NETX_UNIT_TEST_SRCDIR) -name '*.java' | sort > $@
871
872stamps/netx-unit-tests-compile.stamp: stamps/netx.stamp \
873 netx-unit-tests-source-files.txt stamps/netx-dist-tests-compile.stamp
874 mkdir -p $(NETX_UNIT_TEST_DIR) && \
875 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
876 -d $(NETX_UNIT_TEST_DIR) \
877 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \
878 @netx-unit-tests-source-files.txt && \
879 mkdir -p stamps && \
880 touch $@
881
882$(TESTS_DIR)/$(REPORT_STYLES_DIRNAME):
883 mkdir $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)
884 cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.css $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/
885 cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.js $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/
886
887$(UNIT_CLASS_NAMES):
888 cd $(NETX_UNIT_TEST_DIR) ; \
889 class_names= ; \
890 for test in `find -type f` ; do \
891 class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \
892 class_name=`echo $$class_name | sed -e 's|/|.|g' ` ; \
893 class_names="$$class_names $$class_name" ; \
894 done ; \
895 echo $$class_names > $(UNIT_CLASS_NAMES);
896
897stamps/run-netx-unit-tests.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR) \
898 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(UNIT_CLASS_NAMES)
899 filename=" " ; \
900 cd $(NETX_UNIT_TEST_SRCDIR) ; \
901 for file in `find . -type f \! -iname "*.java"`; do\
902 filename=`echo $$file `; \
903 cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \
904 done ; \
905 cd $(NETX_UNIT_TEST_DIR) ; \
906 class_names=`cat $(UNIT_CLASS_NAMES)` ; \
907 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(JNLP_TESTS_ENGINE_DIR):. \
908 $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names
909if WITH_XSLTPROC
910 $(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(NETX_UNIT_TEST_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_unit.html
911 $(XSLTPROC) --stringparam logs logs_unit.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(NETX_UNIT_TEST_DIR)/tests-output.xml > $(TESTS_DIR)/index_unit.html
912endif
913 mkdir -p stamps && \
914 touch $@
915
916#warning, during this target tests.build/netx/unit/tests-output.xml is backup and rewriten (but not coresponding html file)
917#xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored
918#you can add -ix "-*Test*" -ix "-*test*" to ignore all test cases from statistics
919stamps/run-unit-test-code-coverage.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR) \
920 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(UNIT_CLASS_NAMES)
921if WITH_EMMA
922 cd $(NETX_UNIT_TEST_DIR) ; \
923 for file in $(EMMA_MODIFIED_FILES) ; do \
924 mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \
925 done ;\
926 class_names=`cat $(UNIT_CLASS_NAMES)` ; \
927 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emmarun \
928 -Dreport.html.out.encoding=UTF-8 \
929 -raw \
930 -sp $(NETX_SRCDIR) \
931 -sp $(NETX_UNIT_TEST_SRCDIR) \
932 -sp $(JUNIT_RUNNER_SRCDIR) \
933 -r html \
934 -r xml \
935 -cp $(NETX_DIR)/lib/classes.jar \
936 -cp $(JUNIT_JAR) \
937 -cp $(JUNIT_RUNNER_JAR) \
938 -cp $(BOOT_DIR)/jre/lib/rt.jar \
939 -cp $(BOOT_DIR)/jre/lib/jsse.jar \
940 -cp $(BOOT_DIR)/jre/lib/resources.jar \
941 -cp $(RHINO_RUNTIME) \
942 -cp $(JNLP_TESTS_ENGINE_DIR) \
943 -cp . \
944 -ix "-org.junit.*" \
945 -ix "-junit.*" \
946 CommandLine $$class_names ; \
947 for file in $(EMMA_MODIFIED_FILES) ; do \
948 mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_SUFFIX)" ; \
949 mv $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" $(NETX_UNIT_TEST_DIR)/$$file ; \
950 done ;
951else
952 echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ;
953 exit 5
954endif
955 touch $@
956
957#warning, during this target tests.build/netx/jnlp_testsengine/tests-output.xml is backup and rewriten (but not coresponding html file)
958#xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored
959stamps/run-reproducers-test-code-coverage.stamp: stamps/run-netx-dist-tests.stamp $(REPRODUCERS_CLASS_NAMES)
960if WITH_EMMA
961 cd $(TESTS_DIR) ; \
962 for file in $(EMMA_MODIFIED_FILES) ; do \
963 mv $(JNLP_TESTS_ENGINE_DIR)/$$file $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \
964 done ;\
965 echo "backuping javaws and netx.jar in $(DESTDIR)" ; \
966 netx_backup=$(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx_backup.jar ; \
967 javaws_backup=$(DESTDIR)$(bindir)/javaws_backup ; \
968 mv $(DESTDIR)$(bindir)/javaws $$javaws_backup ; \
969 mv $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar $$netx_backup ; \
970 nw_bootclasspath="$(LAUNCHER_BOOTCLASSPATH):$(EMMA_JAR):$$netx_backup" ; \
971 instructed_dir=$(TESTS_DIR)/instr ; \
972 echo "instrumenting netx.jar from $$netx_backup through $$instructed_dir" ; \
973 $(BOOT_DIR)/bin/java -cp $(EMMA_JAR) emma instr -d $$instructed_dir -ip $$netx_backup ; \
974 pushd $$instructed_dir ; \
975 $(BOOT_DIR)/bin/jar -cf $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar * ; \
976 popd ; \
977 rm -rf $$instructed_dir ; \
978 echo "patching $(javaws)" ; \
979 cat $$javaws_backup | sed "s,$(LAUNCHER_BOOTCLASSPATH),$$nw_bootclasspath," > $(DESTDIR)$(bindir)/$(javaws) ; \
980 chmod 777 $(DESTDIR)$(bindir)/$(javaws) ; \
981 testcases_srcs=( ) ; \
982 k=0 ; \
983 types=($(ALL_REPRODUCERS)); \
984 for which in "$${types[@]}" ; do \
985 . $(abs_top_srcdir)/NEW_LINE_IFS ; \
986 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
987 IFS="$$IFS_BACKUP" ; \
988 for dir in "$${simpleReproducers[@]}" ; do \
989 testcases_srcs[k]="-sp" ; \
990 k=$$((k+1)) ; \
991 testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
992 k=$$((k+1)) ; \
993 done ; \
994 done ; \
995 cd $(JNLP_TESTS_ENGINE_DIR) ; \
996 class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \
997 $(BOOT_DIR)/bin/java \
998 $(EMMA_JAVA_ARGS) \
999 $(REPRODUCERS_DPARAMETERS) \
1000 -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) emmarun \
1001 -raw \
1002 -cp $(NETX_DIR)/lib/classes.jar \
1003 -cp $(JUNIT_JAR) \
1004 -cp $(JUNIT_RUNNER_JAR) \
1005 -cp $(BOOT_DIR)/jre/lib/rt.jar \
1006 -cp $(BOOT_DIR)/jre/lib/jsse.jar \
1007 -cp $(BOOT_DIR)/jre/lib/resources.jar \
1008 -cp $(RHINO_RUNTIME) \
1009 -cp . \
1010 -cp $(JNLP_TESTS_ENGINE_TESTS_DIR) \
1011 -ix "-org.junit.*" \
1012 -ix "-junit.*" \
1013 CommandLine $$class_names ; \
1014 mv $(JNLP_TESTS_ENGINE_DIR)/coverage.ec $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec ; \
1015 mv $(JNLP_TESTS_ENGINE_DIR)/coverage.es $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \
1016 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \
1017 -in $(TESTS_DIR)/coverage.em \
1018 -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec \
1019 -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \
1020 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emma report \
1021 -Dreport.html.out.encoding=UTF-8 \
1022 -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es \
1023 -sp $(NETX_SRCDIR) \
1024 -sp $(NETX_UNIT_TEST_SRCDIR) \
1025 -sp $(JUNIT_RUNNER_SRCDIR) \
1026 -sp $(JNLP_TESTS_ENGINE_SRCDIR) \
1027 -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \
1028 -r html \
1029 -r xml \
1030 "$${testcases_srcs[@]}" ; \
1031 echo "restoring javaws and netx.jar in $(DESTDIR)" ; \
1032 rm -f $(DESTDIR)$(bindir)/$(javaws) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \
1033 rm -f $(DESTDIR)$(bindir)/$(javaws); \
1034 mv $$javaws_backup $(DESTDIR)$(bindir)/$(javaws); \
1035 mv $$netx_backup $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \
1036 for file in $(EMMA_MODIFIED_FILES) ; do \
1037 mv $(JNLP_TESTS_ENGINE_DIR)/$$file $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_SUFFIX)" ; \
1038 mv $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" $(JNLP_TESTS_ENGINE_DIR)/$$file ; \
1039 done ;\
1040 rm $(JNLP_TESTS_ENGINE_DIR)/coverage.txt ;
1041else
1042 echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ;
1043 exit 5
1044endif
1045 touch $@
1046
1047run-test-code-coverage: run-unit-test-code-coverage run-reproducers-test-code-coverage
1048if WITH_EMMA
1049 cd $(TESTS_DIR) ; \
1050 k=0 ; \
1051 types=($(ALL_REPRODUCERS)); \
1052 for which in "$${types[@]}" ; do \
1053 . $(abs_top_srcdir)/NEW_LINE_IFS ; \
1054 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
1055 IFS="$$IFS_BACKUP" ; \
1056 for dir in "$${simpleReproducers[@]}" ; do \
1057 testcases_srcs[k]="-sp" ; \
1058 k=$$((k+1)) ; \
1059 testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
1060 k=$$((k+1)) ; \
1061 done ; \
1062 done ; \
1063 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \
1064 -in $(NETX_UNIT_TEST_DIR)/coverage.es \
1065 -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \
1066 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emma report \
1067 -Dreport.html.out.encoding=UTF-8 \
1068 -in $(TESTS_DIR)/coverage.es \
1069 -in $(TESTS_DIR)/coverage.em \
1070 -sp $(NETX_SRCDIR) \
1071 -sp $(NETX_UNIT_TEST_SRCDIR) \
1072 -sp $(JUNIT_RUNNER_SRCDIR) \
1073 -sp $(JNLP_TESTS_ENGINE_SRCDIR) \
1074 -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \
1075 "$${testcases_srcs[@]}" \
1076 -r html \
1077 -r xml ;
1078else
1079 echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ;
1080 exit 5
1081endif
1082
1083clean-netx-tests: clean-netx-unit-tests clean-junit-runner clean-netx-dist-tests clean-test-code-coverage
1084 if [ -e $(TESTS_DIR)/netx ]; then \
1085 rmdir $(TESTS_DIR)/netx ; \
1086 fi
1087
1088clean-junit-runner:
1089 rm -f junit-runner-source-files.txt
1090 rm -rf $(JUNIT_RUNNER_DIR)
1091 rm -f $(JUNIT_RUNNER_JAR)
1092
1093clean-netx-unit-tests: clean_tests_reports
1094 rm -f netx-unit-tests-source-files.txt
1095 rm -rf $(NETX_UNIT_TEST_DIR)
1096 rm -f $(UNIT_CLASS_NAMES)
1097 rm -f stamps/check-pac-functions.stamp
1098 rm -f stamps/run-netx-unit-tests.stamp
1099 rm -f stamps/netx-unit-tests-compile.stamp
1100
1101clean_tests_reports:
1102 rm -rf $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/
1103 rm -f $(TESTS_DIR)/*.html
1104
1105clean-netx-dist-tests: clean_tests_reports netx-dist-tests-remove-cert-from-public clean-custom-reproducers
1106 rm -f netx-dist-tests-source-files.txt
1107 rm -rf $(JNLP_TESTS_ENGINE_TESTS_DIR)
1108 rm -rf $(JNLP_TESTS_DIR)
1109 rm -rf $(JNLP_TESTS_SERVER_DEPLOYDIR)
1110 rm -rf $(JNLP_TESTS_ENGINE_DIR)
1111 rm -f stamps/junit-jnlp-dist-dirs
1112 rm -f stamps/netx-dist-tests-compile.stamp
1113 rm -f stamps/netx-dist-tests-tests-compile.stamp
1114 rm -f stamps/netx-dist-tests-prepare-reproducers.stamp
1115 rm -f stamps/netx-dist-tests-compile-testcases.stamp
1116 rm -f stamps/netx-dist-tests-copy-resources.stamp
1117 rm -f stamps/netx-dist-tests-sign-some-reproducers.stamp
1118 rm -f stamps/change-dots-to-paths.stamp
1119 rm -f junit-jnlp-dist-simple.txt
1120 rm -f junit-jnlp-dist-custom.txt
1121 rm -f netx-dist-tests-tests-source-files.txt
1122 types=($(SIGNED_REPRODUCERS)) ; \
1123 for which in "$${types[@]}" ; do \
1124 rm -f junit-jnlp-dist-$$which.txt ; \
1125 rm -f $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) ; \
1126 done ;
1127 rm -f stamps/exported-test-certs.stamp
1128 rm -f stamps/junit-jnlp-dist-signed.stamp
1129 rm -f $(REPRODUCERS_CLASS_NAMES)
1130 rm -f $(abs_top_builddir)/$(PRIVATE_KEYSTORE_NAME)
1131 rm -f stamps/run-netx-dist-tests.stamp
1132
1133clean-unit-test-code-coverage:
1134 if [ -e stamps/run-unit-test-code-coverage.stamp ]; then \
1135 rm -rf $(NETX_UNIT_TEST_DIR)/coverage ; \
1136 rm -f $(NETX_UNIT_TEST_DIR)/coverage.xml ; \
1137 rm -f $(NETX_UNIT_TEST_DIR)/coverageX.es ; \
1138 rm -f $(NETX_UNIT_TEST_DIR)/coverageX.ec ; \
1139 rm -f $(NETX_UNIT_TEST_DIR)/coverage.es ; \
1140 rm -f $(NETX_UNIT_TEST_DIR)/tests-output_withEmma.xml ; \
1141 rm -f stamps/run-unit-test-code-coverage.stamp ; \
1142 fi
1143
1144clean-reproducers-test-code-coverage:
1145 if [ -e stamps/run-reproducers-test-code-coverage.stamp ]; then \
1146 rm -rf $(JNLP_TESTS_ENGINE_DIR)/coverage ; \
1147 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.xml ; \
1148 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \
1149 rm -f $(JNLP_TESTS_ENGINE_DIR)/tests-output_withEmma.xml ; \
1150 rm -f stamps/run-reproducers-test-code-coverage.stamp ; \
1151 fi
1152
1153clean-test-code-coverage: clean-unit-test-code-coverage clean-reproducers-test-code-coverage
1154 if [ -e $(TESTS_DIR)/coverage.xml ]; then \
1155 rm -rf $(TESTS_DIR)/coverage ; \
1156 rm -f $(TESTS_DIR)/coverage.xml ; \
1157 rm -f $(TESTS_DIR)/coverage.es ; \
1158 rm -f $(TESTS_DIR)/coverage.em ; \
1159 fi
1160
1161
1162# plugin tests
1163
1164if ENABLE_PLUGIN
1165stamps/plugin-tests.stamp: $(PLUGIN_TEST_SRCS) stamps/plugin.stamp
1166 mkdir -p plugin/tests/LiveConnect
1167 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
1168 -d plugin/tests/LiveConnect \
1169 -classpath liveconnect/lib/classes.jar \
1170 $(PLUGIN_TEST_SRCS) ;
1171 $(BOOT_DIR)/bin/jar cf plugin/tests/LiveConnect/PluginTest.jar \
1172 plugin/tests/LiveConnect/*.class ;
1173 cp -pPR $(SRC_DIR_LINK) $(abs_top_srcdir)/plugin/tests/LiveConnect/*.{js,html} \
1174 plugin/tests/LiveConnect ;
1175 echo "Done. Now launch \"firefox file://`pwd`/index.html\"" ;
1176 mkdir -p stamps
1177 touch stamps/plugin-tests.stamp
1178endif
1179
1180# Bootstrap Directory Targets
1181# ===========================
1182
1183stamps/native-ecj.stamp:
1184 mkdir -p stamps ; \
1185 if test "x$(GCJ)" != "xno"; then \
1186 $(GCJ) $(IT_CFLAGS) -Wl,-Bsymbolic -findirect-dispatch -o native-ecj \
1187 --main=org.eclipse.jdt.internal.compiler.batch.Main ${ECJ_JAR} ; \
1188 fi ; \
1189 touch stamps/native-ecj.stamp
1190
1191clean-native-ecj:
1192 rm -f native-ecj
1193 rm -rf stamps/native-ecj.stamp
1194
1195# bootstrap
1196stamps/bootstrap-directory.stamp: stamps/native-ecj.stamp
1197 mkdir -p $(BOOT_DIR)/bin stamps/
1198 ln -sf $(JAVA) $(BOOT_DIR)/bin/java
1199 ln -sf $(JAR) $(BOOT_DIR)/bin/jar
1200 ln -sf $(abs_top_builddir)/javac $(BOOT_DIR)/bin/javac
1201 ln -sf $(JAVADOC) $(BOOT_DIR)/bin/javadoc
1202 if [ -e "$(KEYTOOL)" ] ; then \
1203 ln -sf $(KEYTOOL) $(BOOT_DIR)/bin/keytool ;\
1204 else \
1205 echo "#! /bin/sh" > $(BOOT_DIR)/bin/keytool ;\
1206 echo "echo \"keytool not exist on your system, signed part of reproducers test will fail\"" >> $(BOOT_DIR)/bin/keytool ;\
1207 chmod 777 $(BOOT_DIR)/bin/keytool ;\
1208 fi
1209 if [ -e "$(JARSIGNER)" ] ; then \
1210 ln -sf $(JARSIGNER) $(BOOT_DIR)/bin/jarsigner ;\
1211 else \
1212 echo "#! /bin/sh" > $(BOOT_DIR)/bin/jarsigner ;\
1213 echo "echo \"jarsigner not exist on your system, signed part of reproducers test will fail\"" >> $(BOOT_DIR)/bin/jarsigner ;\
1214 chmod 777 $(BOOT_DIR)/bin/jarsigner ;\
1215 fi
1216 mkdir -p $(BOOT_DIR)/jre/lib && \
1217 ln -s $(SYSTEM_JRE_DIR)/lib/rt.jar $(BOOT_DIR)/jre/lib && \
1218 if [ -e $(SYSTEM_JRE_DIR)/lib/jsse.jar ] ; then \
1219 ln -s $(SYSTEM_JRE_DIR)/lib/jsse.jar $(BOOT_DIR)/jre/lib ; \
1220 else \
1221 ln -s rt.jar $(BOOT_DIR)/jre/lib/jsse.jar ; \
1222 fi
1223 if [ -e $(SYSTEM_JRE_DIR)/lib/resources.jar ] ; then \
1224 ln -s $(SYSTEM_JRE_DIR)/lib/resources.jar $(BOOT_DIR)/jre/lib ; \
1225 else \
1226 ln -s rt.jar $(BOOT_DIR)/jre/lib/resources.jar ; \
1227 fi
1228 ln -sf $(SYSTEM_JRE_DIR)/lib/$(JRE_ARCH_DIR) \
1229 $(BOOT_DIR)/jre/lib/ && \
1230 if ! test -d $(BOOT_DIR)/jre/lib/$(INSTALL_ARCH_DIR); \
1231 then \
1232 ln -sf ./$(JRE_ARCH_DIR) \
1233 $(BOOT_DIR)/jre/lib/$(INSTALL_ARCH_DIR); \
1234 fi;
1235 mkdir -p $(BOOT_DIR)/include && \
1236 for i in $(SYSTEM_JDK_DIR)/include/*; do \
1237 test -r $$i | continue; \
1238 i=`basename $$i`; \
1239 rm -f $(BOOT_DIR)/include/$$i; \
1240 ln -s $(SYSTEM_JDK_DIR)/include/$$i $(BOOT_DIR)/include/$$i; \
1241 done
1242 mkdir -p stamps
1243 touch stamps/bootstrap-directory.stamp
1244
1245clean-bootstrap-directory:
1246 rm -rf $(BOOT_DIR)
1247 if [ -e ${abs_top_builddir}/bootstrap ] ; then \
1248 rmdir ${abs_top_builddir}/bootstrap ; \
1249 fi
1250 rm -f stamps/bootstrap-directory.stamp
1251
1252# Target Aliases
1253# ===============
1254
1255add-netx: stamps/add-netx.stamp
1256
1257add-netx-debug: stamps/add-netx-debug.stamp
1258
1259netx: stamps/netx.stamp
1260
1261netx-dist: stamps/netx-dist.stamp
1262
1263plugin: stamps/plugin.stamp
1264
1265plugin-tests: stamps/plugin-tests.stamp
1266
1267check-pac-functions: stamps/check-pac-functions.stamp
1268
1269run-netx-unit-tests: stamps/run-netx-unit-tests.stamp
1270
1271links: stamps/global-links.stamp
1272
1273user-links: stamps/user-links.stamp
1274
1275run-netx-dist-tests: stamps/run-netx-dist-tests.stamp
1276
1277run-unit-test-code-coverage: stamps/run-unit-test-code-coverage.stamp
1278
1279run-reproducers-test-code-coverage: stamps/run-reproducers-test-code-coverage.stamp
Note: See TracBrowser for help on using the repository browser.