~ubuntu-branches/ubuntu/precise/icedtea-web/precise

21.1.11 by Matthias Klose
Really use OpenJDK 7 for the icedtea-7 plugin. Closes: #662239.
1
# Source directories
2
3
NETX_DIR = $(abs_top_builddir)/netx.build
4
NETX_SRCDIR = $(abs_top_srcdir)/netx
5
NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources
6
NETX_EXTRA_DIR=$(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources
7
NETX_EXTRA_DIST_DIR=$(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources
8
9
REPORT_STYLES_DIRNAME=report-styles
10
11
TESTS_SRCDIR=$(abs_top_srcdir)/tests
12
TESTS_DIR=$(abs_top_builddir)/tests.build
13
14
NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit
15
NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit
16
17
JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner
18
JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner
19
20
JNLP_TESTS_ENGINE_SRCDIR=$(TESTS_SRCDIR)/netx/jnlp_testsengine
21
JNLP_TESTS_SRCDIR=$(TESTS_SRCDIR)/jnlp_tests
22
JNLP_TESTS_ENGINE_DIR=$(TESTS_DIR)/netx/jnlp_testsengine
23
JNLP_TESTS_SERVER_DEPLOYDIR=$(TESTS_DIR)/jnlp_test_server
24
JNLP_TESTS_DIR=$(TESTS_DIR)/jnlp_tests
25
KEYSTORE_NAME=teststore.ks
26
27
JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar
28
UNIT_CLASS_NAMES = $(abs_top_builddir)/unit_class_names
29
REPRODUCERS_CLASS_NAMES = $(abs_top_builddir)/reproducers_class_names
30
31
# Build directories
32
33
BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0
34
35
if WITH_RHINO
36
  RHINO_RUNTIME=:$(RHINO_JAR)
37
else
38
  RHINO_RUNTIME=
39
endif
40
41
RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME)
42
43
# Flags
44
IT_CFLAGS=$(CFLAGS) $(ARCHFLAG)
45
IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE)
46
IT_LANGUAGE_SOURCE_VERSION=6
47
IT_CLASS_TARGET_VERSION=6
48
IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION)
49
50
#
51
# We need the jars in bootclasspath for a couple of reasons
52
#  - we use classes (in the sun.applet package) loaded by the bootclassloader
53
#    using another classloader to load classes from the same package causes an
54
#    IllegalAccessException
55
#  - we want full privileges
56
#
57
LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)"
58
PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"'
59
60
# Fake update version to work with the Deployment Toolkit script used by Oracle
61
# http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html
62
JDK_UPDATE_VERSION=50
63
64
# Sources list
65
66
PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java
67
68
NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \
69
	net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \
70
	net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \
71
	net.sourceforge.jnlp.runtime net.sourceforge.jnlp.security \
72
	net.sourceforge.jnlp.security.viewer net.sourceforge.jnlp.services \
73
	net.sourceforge.jnlp.tools net.sourceforge.jnlp.util
74
75
# Conditional defintions
76
if ENABLE_PLUGIN
77
ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin
78
LIVECONNECT_DIR = netscape sun/applet
79
PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp
80
PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp
81
LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java
82
ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/IcedTeaPlugin.so stamps/liveconnect-dist.stamp
83
PLUGIN_PKGS = sun.applet netscape.security netscape.javascript
84
endif
85
86
if CP_SUPPORTS_REFLINK
87
  REFLINK = --reflink=auto
88
endif
89
90
if SRC_DIR_HARDLINKABLE
91
  SRC_DIR_LINK = -l
92
else
93
  SRC_DIR_LINK = $(REFLINK)
94
endif
95
96
if ENABLE_DOCS
97
JAVADOC_OPTS=-use -keywords -encoding UTF-8 -splitIndex \
98
 -bottom '<font size="-1"> <a href="http://icedtea.classpath.org/bugzilla">Submit a bug or feature</a></font>'
99
if JAVADOC_SUPPORTS_J_OPTIONS
100
JAVADOC_MEM_OPTS=-J-Xmx1024m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m
101
endif
102
endif
103
104
if WITH_RHINO
105
  RHINO_TESTS=check-pac-functions
106
else
107
  RHINO_TESTS=
108
endif
109
110
if WITH_JUNIT
111
  JUNIT_TESTS=stamps/run-netx-unit-tests.stamp
112
else
113
  JUNIT_TESTS=
114
endif
115
116
117
PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION)
118
119
EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \
120
 itweb-settings.desktop.in $(top_srcdir)/tests
121
122
# binary names
123
javaws:= $(shell echo javaws | sed '@program_transform_name@')
124
itweb_settings:= $(shell echo itweb-settings | sed '@program_transform_name@')
125
126
# the launcher needs to know $(bindir) and $(datadir) which can be different at
127
# make-time from configure-time
128
edit_launcher_script = sed \
129
  -e 's|[@]LAUNCHER_BOOTCLASSPATH[@]|$(LAUNCHER_BOOTCLASSPATH)|g' \
130
  -e 's|[@]JAVAWS_BIN_LOCATION[@]|$(bindir)/$(javaws)|g' \
131
  -e 's|[@]ITWEB_SETTINGS_BIN_LOCATION[@]|$(bindir)/$(itweb_settings)|g' \
132
  -e 's|[@]JAVA[@]|$(JAVA)|g' \
133
  -e 's|[@]JRE[@]|$(SYSTEM_JRE_DIR)|g'
134
135
# Top-Level Targets
136
# =================
137
138
all-local: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \
139
 javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop
140
141
check-local: $(RHINO_TESTS) $(JUNIT_TESTS)
142
143
clean-local: clean-netx clean-plugin clean-liveconnect clean-extra clean-bootstrap-directory \
144
 clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests
145
	if [ -e stamps ] ; then \
146
	  rmdir stamps ; \
147
	fi
148
149
.PHONY: clean-IcedTeaPlugin clean-add-netx clean-add-netx-debug clean-add-plugin clean-add-plugin-debug \
150
 clean-bootstrap-directory clean-native-ecj clean-desktop-files clean-netx-docs clean-docs clean-plugin-docs \
151
 clean-tests check-local clean-launchers check-pac-functions stamps/run-netx-unit-tests.stamp clean-netx-tests \
152
 clean-junit-runner clean-netx-unit-tests
153
154
install-exec-local:
155
	${mkinstalldirs} $(DESTDIR)$(bindir) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/ $(DESTDIR)$(libdir)
156
if ENABLE_PLUGIN
157
	${INSTALL_PROGRAM} $(PLUGIN_DIR)/IcedTeaPlugin.so $(DESTDIR)$(libdir)
158
	${INSTALL_DATA} $(abs_top_builddir)/liveconnect/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
159
endif
160
	${INSTALL_DATA} $(NETX_DIR)/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
161
	${INSTALL_PROGRAM} launcher.build/$(javaws) $(DESTDIR)$(bindir)
162
	${INSTALL_DATA} extra-lib/about.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jar
163
	${INSTALL_PROGRAM} launcher.build/$(itweb_settings) $(DESTDIR)$(bindir)
164
165
install-data-local:
166
	${mkinstalldirs} -d $(DESTDIR)$(mandir)/man1
167
	${INSTALL_DATA} $(NETX_SRCDIR)/javaws.1 $(DESTDIR)$(mandir)/man1
168
	${INSTALL_DATA} $(NETX_RESOURCE_DIR)/about.jnlp $(DESTDIR)$(datarootdir)/$(PACKAGE_NAME)
169
if ENABLE_DOCS
170
	${mkinstalldirs} $(DESTDIR)$(htmldir)
171
	(cd ${abs_top_builddir}/docs/netx; \
172
	 for files in $$(find . -type f); \
173
	 do \
174
	   ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \
175
	 done)
176
if ENABLE_PLUGIN
177
	(cd ${abs_top_builddir}/docs/plugin; \
178
	 for files in $$(find . -type f); \
179
	 do \
180
	   ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \
181
	 done)
182
endif
183
endif
184
185
uninstall-local:
186
	rm -f $(DESTDIR)$(libdir)/IcedTeaPlugin.so
187
	rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
188
	rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
189
	rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jnlp
190
	rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jar
191
	rm -f $(DESTDIR)$(mandir)/man1/javaws.1
192
	rm -f $(DESTDIR)$(bindir)/$(javaws)
193
	rm -f $(DESTDIR)$(bindir)/$(itweb_settings)
194
	rm -rf $(DESTDIR)$(htmldir)
195
196
# Plugin
197
198
if ENABLE_PLUGIN
199
# IcedTeaPlugin.so.
200
# Separate compile and link invocations to ensure intermediate object
201
# is listed before -l options.  See:
202
# http://developer.mozilla.org/en/docs/XPCOM_Glue
203
204
PLUGIN_SRC=IcedTeaNPPlugin.cc IcedTeaScriptablePluginObject.cc \
205
        IcedTeaJavaRequestProcessor.cc IcedTeaPluginRequestProcessor.cc \
206
		IcedTeaPluginUtils.cc
207
208
PLUGIN_OBJECTS=IcedTeaNPPlugin.o IcedTeaScriptablePluginObject.o \
209
        IcedTeaJavaRequestProcessor.o IcedTeaPluginRequestProcessor.o \
210
		IcedTeaPluginUtils.o
211
212
$(PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc
213
	mkdir -p $(PLUGIN_DIR) && \
214
	cd $(PLUGIN_DIR) && \
215
	$(CXX) $(CXXFLAGS) \
216
	   $(DEFS) $(VERSION_DEFS) \
217
	  -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
218
	  -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \
219
	  -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \
220
	  -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \
221
	  -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \
222
	  -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \
223
	  -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \
224
	  $(GLIB_CFLAGS) \
225
	  $(GTK_CFLAGS) \
226
	  $(MOZILLA_CFLAGS) \
227
	  -fPIC -o $@ -c $<
228
229
$(PLUGIN_DIR)/IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS))
230
	cd $(PLUGIN_DIR) && \
231
	$(CXX) $(CXXFLAGS) \
232
	  $(PLUGIN_OBJECTS) \
233
	  $(GLIB_LIBS) \
234
	  $(GTK_LIBS) \
235
	  $(MOZILLA_LIBS)\
236
	  -shared -o $@
237
238
clean-IcedTeaPlugin:
239
	rm -f $(PLUGIN_DIR)/*.o
240
	rm -f $(PLUGIN_DIR)/IcedTeaPlugin.so
241
	if [ $(abs_top_srcdir) != $(abs_top_builddir) ]; then \
242
	  if [ -e $(abs_top_builddir)/plugin/icedteanp ] ; then \
243
	    rmdir $(abs_top_builddir)/plugin/icedteanp ; \
244
	    rmdir $(abs_top_builddir)/plugin ; \
245
	  fi ; \
246
	fi
247
endif
248
249
stamps/plugin.stamp: $(ICEDTEAPLUGIN_TARGET)
250
	mkdir -p stamps
251
	touch stamps/plugin.stamp
252
253
clean-plugin: $(ICEDTEAPLUGIN_CLEAN)
254
	rm -f stamps/plugin.stamp
255
256
liveconnect-source-files.txt:
257
	if test "x${LIVECONNECT_DIR}" != x; then \
258
	  find $(LIVECONNECT_SRCS) -name '*.java' | sort > $@ ; \
259
	fi
260
	touch $@
261
262
stamps/liveconnect.stamp: liveconnect-source-files.txt stamps/netx.stamp
263
	if test "x${LIVECONNECT_DIR}" != x; then \
264
	  mkdir -p $(abs_top_builddir)/liveconnect && \
265
	  $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
266
	      -d $(abs_top_builddir)/liveconnect \
267
	      -bootclasspath $(NETX_DIR):$(RUNTIME) \
268
	      -sourcepath $(LIVECONNECT_SRCS) \
269
	      @liveconnect-source-files.txt ; \
270
	fi
271
	mkdir -p stamps
272
	touch $@
273
274
stamps/liveconnect-dist.stamp: stamps/liveconnect.stamp
275
	if test "x${LIVECONNECT_DIR}" != x; then \
276
	  (cd $(abs_top_builddir)/liveconnect ; \
277
	   mkdir -p lib ; \
278
	   $(BOOT_DIR)/bin/jar cf lib/classes.jar $(LIVECONNECT_DIR) ; \
279
	   cp -pPR $(SRC_DIR_LINK) $(LIVECONNECT_SRCS) src; \
280
	   find src -type f -exec chmod 640 '{}' ';' -o -type d -exec chmod 750 '{}' ';'; \
281
	   cd src ; \
282
	   $(ZIP) -qr $(abs_top_builddir)/liveconnect/lib/src.zip $(LIVECONNECT_DIR) ) ; \
283
	fi
284
	mkdir -p stamps
285
	touch $@
286
287
clean-liveconnect:
288
	rm -rf $(abs_top_builddir)/liveconnect
289
	rm -f stamps/liveconnect-dist.stamp
290
	rm -f liveconnect-source-files.txt
291
	rm -f stamps/liveconnect.stamp
292
293
# NetX
294
# requires availability of OpenJDK source code including
295
# a patch applied to sun.plugin.AppletViewerPanel and generated sources
296
297
netx-source-files.txt:
298
	find $(NETX_SRCDIR) -name '*.java' | sort > $@
299
if !WITH_RHINO
300
	sed -i '/RhinoBasedPacEvaluator/ d' $@
301
endif
302
303
stamps/netx.stamp: netx-source-files.txt stamps/bootstrap-directory.stamp
304
	mkdir -p $(NETX_DIR)
305
	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
306
	    -d $(NETX_DIR) \
307
	    -sourcepath $(NETX_SRCDIR) \
308
	    -bootclasspath $(RUNTIME) \
309
	    @netx-source-files.txt
310
	(cd $(NETX_RESOURCE_DIR); \
311
	 for files in $$(find . -type f); \
312
	 do \
313
	   ${INSTALL_DATA} -D $${files} \
314
	   $(NETX_DIR)/net/sourceforge/jnlp/resources/$${files}; \
315
	 done)
316
	cp -a $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \
317
	  $(NETX_DIR)/net/sourceforge/jnlp/runtime
318
	cp -a build.properties $(NETX_DIR)/net/sourceforge/jnlp/
319
	mkdir -p stamps
320
	touch $@
321
322
stamps/netx-dist.stamp: stamps/netx.stamp $(abs_top_builddir)/netx.manifest
323
	(cd $(NETX_DIR) ; \
324
	 mkdir -p lib ; \
325
	 $(BOOT_DIR)/bin/jar cfm lib/classes.jar \
326
	  $(abs_top_builddir)/netx.manifest javax/jnlp net ; \
327
	 cp -pPR $(SRC_DIR_LINK) $(NETX_SRCDIR) src; \
328
	 find src -type f -exec chmod 640 '{}' ';' -o -type d -exec chmod 750 '{}' ';'; \
329
	 cd src ; \
330
	 $(ZIP) -qr $(NETX_DIR)/lib/src.zip javax net )
331
	mkdir -p stamps
332
	touch $@
333
334
clean-netx:
335
	rm -rf $(NETX_DIR)
336
	rm -f stamps/netx-dist.stamp
337
	rm -f netx-source-files.txt
338
	rm -f stamps/netx.stamp
339
340
clean-desktop-files:
341
	rm -f javaws.desktop
342
	rm -f itweb-settings.desktop
343
344
# extras -- used to create about.jar for javaws.
345
extra-source-files.txt:
346
	find $(abs_top_srcdir)/extra -name '*.java' | sort > $@
347
348
stamps/extra-class-files.stamp: extra-source-files.txt stamps/netx.stamp
349
	mkdir -p extra-lib
350
	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d extra-lib \
351
          -sourcepath $(abs_top_srcdir)/extra -cp netx.build \
352
          -bootclasspath $(RUNTIME) @extra-source-files.txt
353
	(cd $(NETX_EXTRA_DIR); \
354
	 for files in $$(find . -type f); \
355
	 do \
356
	   ${INSTALL_DATA} -D $${files} \
357
	   $(NETX_EXTRA_DIST_DIR)/$${files}; \
358
	 done)
359
	mkdir -p stamps
360
	touch $@
361
362
clean-extra:
363
	rm -rf extra-lib
364
	rm -f stamps/extra-class-files.stamp
365
	rm -f extra-source-files.txt
366
367
extra-lib/about.jar: stamps/extra-class-files.stamp
368
	$(BOOT_DIR)/bin/jar cf $@ -C extra-lib net ;
369
370
launcher.build/$(javaws): launcher/javaws.in
371
	mkdir -p launcher.build
372
	$(edit_launcher_script) < $< > $@
373
374
launcher.build/$(itweb_settings): launcher/itweb-settings.in
375
	mkdir -p launcher.build
376
	$(edit_launcher_script) < $< > $@
377
378
clean-launchers:
379
	rm -f launcher.build/$(javaws)
380
	rm -f launcher.build/$(itweb_settings)
381
	if [ -e launcher.build ] ; then \
382
	  rmdir launcher.build ; \
383
	fi
384
385
javaws.desktop: javaws.desktop.in
386
	sed "s#PATH_TO_JAVAWS#$(bindir)/$(javaws)#" < $(srcdir)/javaws.desktop.in > javaws.desktop
387
388
itweb-settings.desktop: $(srcdir)/itweb-settings.desktop.in
389
	sed "s#PATH_TO_ITWEB_SETTINGS#$(bindir)/$(itweb_settings)#" \
390
	  < $(srcdir)/itweb-settings.desktop.in > itweb-settings.desktop
391
392
# documentation
393
394
stamps/docs.stamp: stamps/netx-docs.stamp stamps/plugin-docs.stamp
395
	touch stamps/docs.stamp
396
397
clean-docs: clean-netx-docs clean-plugin-docs
398
	if [ -e ${abs_top_builddir}/docs ] ; then \
399
	  rmdir ${abs_top_builddir}/docs ; \
400
	fi
401
	rm -f stamps/docs.stamp
402
403
stamps/netx-docs.stamp: stamps/bootstrap-directory.stamp
404
if ENABLE_DOCS
405
	$(BOOT_DIR)/bin/javadoc $(JAVADOC_MEM_OPTS) $(JAVADOC_OPTS) \
406
	 -d ${abs_top_builddir}/docs/netx -sourcepath $(NETX_SRCDIR) \
407
	 -doctitle 'IcedTea-Web: NetX API Specification' \
408
	 -windowtitle 'IcedTea-Web: NetX ' \
409
	 -header '<strong>IcedTea-Web<br/>NetX</strong>' \
410
	 $(NETX_PKGS)
411
endif
412
	mkdir -p stamps
413
	touch stamps/netx-docs.stamp
414
415
clean-netx-docs:
416
	rm -rf ${abs_top_builddir}/docs/netx
417
	rm -f stamps/netx-docs.stamp
418
419
stamps/plugin-docs.stamp: stamps/bootstrap-directory.stamp
420
if ENABLE_DOCS
421
if ENABLE_PLUGIN
422
	$(BOOT_DIR)/bin/javadoc $(JAVADOC_MEM_OPTS) $(JAVADOC_OPTS) \
423
	 -d ${abs_top_builddir}/docs/plugin -sourcepath $(NETX_SRCDIR):$(LIVECONNECT_SRCS) \
424
	 -doctitle 'IcedTea-Web: Plugin API Specification' \
425
	 -windowtitle 'IcedTea-Web: Plugin ' \
426
	 -header '<strong>IcedTea-Web<br/>Plugin</strong>' \
427
	 $(PLUGIN_PKGS)
428
endif
429
endif
430
	mkdir -p stamps
431
	touch stamps/plugin-docs.stamp
432
433
clean-plugin-docs:
434
	rm -rf ${abs_top_builddir}/docs/plugin
435
	rm -f stamps/plugin-docs.stamp
436
437
438
# check
439
# ==========================
440
441
clean-tests: clean-netx-tests
442
	if [ -e $(TESTS_DIR) ]; then \
443
		rmdir $(TESTS_DIR) ; \
444
	fi
445
446
check-pac-functions: stamps/bootstrap-directory.stamp
447
	./jrunscript $(abs_top_srcdir)/tests/netx/pac/pac-funcs-test.js \
448
	  $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js)
449
450
junit-runner-source-files.txt:
451
	find $(JUNIT_RUNNER_SRCDIR) -name '*.java' | sort > $@
452
453
$(JUNIT_RUNNER_JAR): junit-runner-source-files.txt
454
	mkdir -p $(JUNIT_RUNNER_DIR) && \
455
	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
456
	  -d $(JUNIT_RUNNER_DIR) \
457
	  -classpath $(JUNIT_JAR) \
458
	  @junit-runner-source-files.txt && \
459
	$(BOOT_DIR)/bin/jar cf $@  -C $(JUNIT_RUNNER_DIR) .
460
461
stamps/junit-jnlp-dist-dirs: junit-jnlp-dist-simple.txt junit-jnlp-dist-signed.txt
462
	mkdir -p $(JNLP_TESTS_SERVER_DEPLOYDIR)
463
	mkdir -p $(JNLP_TESTS_DIR)
464
	mkdir -p $(JNLP_TESTS_ENGINE_DIR)
465
	touch $@
466
467
junit-jnlp-dist-simple.txt:
468
	cd $(JNLP_TESTS_SRCDIR)/simple/ ; \
469
	find .  -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@
470
471
junit-jnlp-dist-signed.txt: 
472
	cd $(JNLP_TESTS_SRCDIR)/signed/ ; \
473
	find .  -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@
474
475
stamps/netx-dist-tests-prepare-reproducers.stamp: stamps/junit-jnlp-dist-dirs
476
	types=(simple signed); \
477
	for which in "$${types[@]}" ; do \
478
	  . $(abs_top_srcdir)/NEW_LINE_IFS ; \
479
	  simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
480
	  IFS="$$IFS_BACKUP" ; \
481
	  for dir in "$${simpleReproducers[@]}" ; do \
482
	    echo "processing: $$dir" ; \
483
	    mkdir -p "$(JNLP_TESTS_DIR)/$$dir" ; \
484
	    d=`pwd` ; \
485
	    cd "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ; \
486
	    srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \
487
	    notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \
488
	    $(BOOT_DIR)/bin/javac -d  "$(JNLP_TESTS_DIR)/$$dir/" $$srcFiles ; \
489
	    if [ -n "$$notSrcFiles" ] ; then \
490
	      cp -R --parents "$$notSrcFiles" "$(JNLP_TESTS_DIR)/$$dir/" ; \
491
	    fi ; \
492
	    cd "$(JNLP_TESTS_DIR)/$$dir/" ; \
493
	    $(BOOT_DIR)/bin/jar cf "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \
494
	    cd "$$d" ; \
495
	    cp -R "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/resources/"*  $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \
496
	  done ; \
497
	done ; \
498
	mkdir -p stamps && \
499
	touch $@
500
501
stamps/netx-dist-tests-sign-some-reproducers.stamp: stamps/netx-dist-tests-prepare-reproducers.stamp
502
	alias=icedteaweb; \
503
	keystore=$(abs_top_builddir)/$(KEYSTORE_NAME); \
504
	pass=123456789; \
505
	$(BOOT_DIR)/bin/keytool -genkey -alias $$alias -keystore $$keystore -keypass $$pass -storepass $$pass -dname "cn=$$alias, ou=$$alias, o=$$alias, c=$$alias" ; \
506
	  . $(abs_top_srcdir)/NEW_LINE_IFS ; \
507
	signedReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-signed.txt `); \
508
	  IFS="$$IFS_BACKUP" ; \
509
	for dir in "$${signedReproducers[@]}" ; do \
510
	 $(BOOT_DIR)/bin/jarsigner -keystore $$keystore -storepass $$pass -keypass $$pass  "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar"  $$alias ; \
511
 	done ; \
512
 	mkdir -p stamps && \
513
 	touch $@
514
515
netx-dist-tests-source-files.txt:
516
	find $(JNLP_TESTS_ENGINE_SRCDIR) -name '*.java' | sort > $@
517
518
stamps/netx-dist-tests-compile.stamp: stamps/netx.stamp \
519
 stamps/junit-jnlp-dist-dirs netx-dist-tests-source-files.txt
520
	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
521
	 -d $(JNLP_TESTS_ENGINE_DIR) \
522
	 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \
523
	 @netx-dist-tests-source-files.txt && \
524
	mkdir -p stamps && \
525
	touch $@
526
527
stamps/netx-dist-tests-compile-testcases.stamp: stamps/netx.stamp stamps/junit-jnlp-dist-dirs \
528
 netx-dist-tests-source-files.txt stamps/netx-dist-tests-compile.stamp
529
	types=(simple signed); \
530
	for which in "$${types[@]}" ; do \
531
	  . $(abs_top_srcdir)/NEW_LINE_IFS ; \
532
	  simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
533
	  IFS="$$IFS_BACKUP" ; \
534
	  for dir in "$${simpleReproducers[@]}" ; do \
535
	    $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
536
	    -d $(JNLP_TESTS_ENGINE_DIR) \
537
	    -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \
538
	    "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/"* ; \
539
	  done ; \
540
	done ; \
541
	mkdir -p stamps && \
542
	touch $@
543
544
$(REPRODUCERS_CLASS_NAMES):
545
	cd $(JNLP_TESTS_ENGINE_DIR) ; \
546
	class_names= ; \
547
	for test in `find -type f` ; do \
548
	  class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \
549
	  class_name=`echo $$class_name | sed -e 's|/|.|g' ` ; \
550
	  class_names="$$class_names $$class_name" ; \
551
	done ; \
552
	echo $$class_names > $(REPRODUCERS_CLASS_NAMES)
553
554
stamps/run-netx-dist-tests.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \
555
 javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop \
556
 stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-sign-some-reproducers.stamp \
557
 stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) \
558
 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES)
559
	cd $(JNLP_TESTS_ENGINE_DIR) ; \
560
	class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \
561
	CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):. \
562
	  $(BOOT_DIR)/bin/java -Dtest.server.dir=$(JNLP_TESTS_SERVER_DEPLOYDIR) -Djavaws.build.bin=$(DESTDIR)$(bindir)/javaws \
563
	 -Xbootclasspath:$(RUNTIME) CommandLine $$class_names \
564
	  > stdout.log 2> stderr.log ; \
565
	 cat stdout.log ; \
566
	 cat stderr.log >&2
567
if WITH_XSLTPROC
568
	$(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(JNLP_TESTS_ENGINE_DIR)/tests-output.xml > $(TESTS_DIR)/index_reproducers.html
569
endif
570
	touch $@
571
572
netx-unit-tests-source-files.txt:
573
	find $(NETX_UNIT_TEST_SRCDIR) -name '*.java' | sort > $@
574
575
stamps/netx-unit-tests-compile.stamp: stamps/netx.stamp \
576
 netx-unit-tests-source-files.txt
577
	mkdir -p $(NETX_UNIT_TEST_DIR) && \
578
	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
579
	 -d $(NETX_UNIT_TEST_DIR) \
580
	 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \
581
	 @netx-unit-tests-source-files.txt && \
582
	mkdir -p stamps && \
583
	touch $@
584
585
$(TESTS_DIR)/$(REPORT_STYLES_DIRNAME):
586
	mkdir $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)
587
	cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.css $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/
588
	cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.js $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/
589
590
$(UNIT_CLASS_NAMES):
591
	cd $(NETX_UNIT_TEST_DIR) ; \
592
	class_names= ; \
593
	for test in `find -type f` ; do \
594
	  class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \
595
	  class_name=`echo $$class_name | sed -e 's|/|.|g' ` ; \
596
	  class_names="$$class_names $$class_name" ; \
597
	done ; \
598
	echo $$class_names > $(UNIT_CLASS_NAMES);
599
600
stamps/run-netx-unit-tests.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR)  \
601
 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)  $(UNIT_CLASS_NAMES)
602
	filename=" " ; \
603
	cd $(NETX_UNIT_TEST_SRCDIR) ; \
604
	for file in `find . -type f \! -iname "*.java"`; do\
605
		filename=`echo $$file `; \
606
		cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \
607
	done ; \
608
	cd $(NETX_UNIT_TEST_DIR) ; \
609
	class_names=`cat $(UNIT_CLASS_NAMES)` ; \
610
	CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):. \
611
	  $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names \
612
	  > stdout.log 2> stderr.log ; \
613
	cat stdout.log ; \
614
	cat stderr.log >&2
615
if WITH_XSLTPROC
616
	$(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(NETX_UNIT_TEST_DIR)/tests-output.xml > $(TESTS_DIR)/index_unit.html
617
endif
618
	touch $@
619
620
#warning,  during this target tests.build/netx/unit/tests-output.xml is backup and rewriten (but not coresponding html file)
621
#xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored
622
#you can add -ix "-*Test*" -ix "-*test*"  to ignore all test cases from statistics
623
stamps/run-unit-test-code-coverage.stamp: check  $(UNIT_CLASS_NAMES);
624
if WITH_EMMA
625
	mv $(NETX_UNIT_TEST_DIR)/tests-output.xml  $(NETX_UNIT_TEST_DIR)/tests-output.xml_noEmma ; \
626
	cd $(NETX_UNIT_TEST_DIR) ; \
627
	class_names=`cat $(UNIT_CLASS_NAMES)` ; \
628
	$(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emmarun \
629
	 -Dreport.html.out.encoding=UTF-8 \
630
	 -raw \
631
	 -sp $(NETX_SRCDIR) \
632
	 -sp $(NETX_UNIT_TEST_SRCDIR) \
633
	 -sp $(JUNIT_RUNNER_SRCDIR) \
634
	 -r html \
635
	 -r xml \
636
	 -cp $(NETX_DIR)/lib/classes.jar \
637
	 -cp $(JUNIT_JAR) \
638
	 -cp $(JUNIT_RUNNER_JAR) \
639
	 -cp $(BOOT_DIR)/jre/lib/rt.jar \
640
	 -cp $(BOOT_DIR)/jre/lib/jsse.jar \
641
	 -cp $(RHINO_RUNTIME) \
642
	 -cp . \
643
	 -ix "-org.junit.*" \
644
	 -ix "-junit.*" \
645
	 CommandLine $$class_names ;  \
646
	mv $(NETX_UNIT_TEST_DIR)/tests-output.xml  $(NETX_UNIT_TEST_DIR)/tests-output_withEmma.xml ; \
647
	mv $(NETX_UNIT_TEST_DIR)/tests-output.xml_noEmma  $(NETX_UNIT_TEST_DIR)/tests-output.xml ; 
648
else 
649
	echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ;
650
	exit 5
651
endif 
652
	touch $@
653
654
#warning,  during this target tests.build/netx/jnlp_testsengine/tests-output.xml is backup and rewriten (but not coresponding html file)
655
#xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored
656
stamps/run-reproducers-test-code-coverage.stamp: stamps/run-netx-dist-tests.stamp $(REPRODUCERS_CLASS_NAMES)
657
if WITH_EMMA
658
	cd $(TESTS_DIR) ; \
659
	mv $(JNLP_TESTS_ENGINE_DIR)/tests-output.xml  $(JNLP_TESTS_ENGINE_DIR)/tests-output.xml_noEmma ; \
660
	echo "backuping javaws and netx.jar in $(DESTDIR)" ; \
661
	netx_backup=$(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx_backup.jar ; \
662
	javaws_backup=$(DESTDIR)$(bindir)/javaws_backup ; \
663
	mv $(DESTDIR)$(bindir)/javaws $$javaws_backup ;  \
664
	mv $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar $$netx_backup ; \
665
	nw_bootclasspath="$(LAUNCHER_BOOTCLASSPATH):$(EMMA_JAR):$$netx_backup" ; \
666
	instructed_dir=$(TESTS_DIR)/instr ; \
667
	echo "instrumenting netx.jar from $$netx_backup through $$instructed_dir" ; \
668
	$(BOOT_DIR)/bin/java -cp  $(EMMA_JAR) emma instr -d $$instructed_dir -ip $$netx_backup ; \
669
	pushd $$instructed_dir ; \
670
	$(BOOT_DIR)/bin/jar -cf $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar * ; \
671
	popd ; \
672
	rm -rf $$instructed_dir ; \
673
	echo "patching javaws" ; \
674
	cat $$javaws_backup | sed "s,$(LAUNCHER_BOOTCLASSPATH),$$nw_bootclasspath," > $(DESTDIR)$(bindir)/javaws ; \
675
	chmod 777 $(DESTDIR)$(bindir)/javaws ; \
676
	testcases_srcs=( ) ; \
677
	k=0 ; \
678
	types=(simple signed); \
679
	for which in "$${types[@]}" ; do \
680
	  . $(abs_top_srcdir)/NEW_LINE_IFS ; \
681
	  simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
682
	  IFS="$$IFS_BACKUP" ; \
683
	  for dir in "$${simpleReproducers[@]}" ; do \
684
	    testcases_srcs[k]="-sp" ; \
685
	    k=$$((k+1)) ; \
686
	    testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
687
	    k=$$((k+1)) ; \
688
	    done ; \
689
	  done ; \
690
	cd $(JNLP_TESTS_ENGINE_DIR) ; \
691
	class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \
692
	$(BOOT_DIR)/bin/java  \
693
	 -Dtest.server.dir=$(JNLP_TESTS_SERVER_DEPLOYDIR) \
694
	 -Djavaws.build.bin=$(DESTDIR)$(bindir)/javaws \
695
	 -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) emmarun  \
696
	   -raw \
697
	   -cp $(NETX_DIR)/lib/classes.jar \
698
	   -cp $(JUNIT_JAR) \
699
	   -cp $(JUNIT_RUNNER_JAR) \
700
	   -cp $(BOOT_DIR)/jre/lib/rt.jar \
701
	   -cp $(BOOT_DIR)/jre/lib/jsse.jar \
702
	   -cp $(RHINO_RUNTIME) \
703
	   -cp . \
704
	   -ix "-org.junit.*" \
705
	   -ix "-junit.*" \
706
	   CommandLine $$class_names ; \
707
	mv $(JNLP_TESTS_ENGINE_DIR)/coverage.ec $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec ; \
708
	mv $(JNLP_TESTS_ENGINE_DIR)/coverage.es $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \
709
	$(BOOT_DIR)/bin/java -cp $(EMMA_JAR) emma merge \
710
	  -in $(TESTS_DIR)/coverage.em \
711
	  -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec \
712
	  -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \
713
	$(BOOT_DIR)/bin/java -cp $(EMMA_JAR)  -Demma.report.html.out.encoding=UTF-8 emma report \
714
	  -Dreport.html.out.encoding=UTF-8 \
715
	  -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es  \
716
	  -sp $(NETX_SRCDIR) \
717
	  -sp $(NETX_UNIT_TEST_SRCDIR) \
718
	  -sp $(JUNIT_RUNNER_SRCDIR) \
719
	  -sp $(JNLP_TESTS_ENGINE_SRCDIR) \
720
	  -r html \
721
	  -r xml \
722
	  "$${testcases_srcs[@]}" ; \
723
	echo "restoring javaws and netx.jar in $(DESTDIR)" ; \
724
	rm -f $(DESTDIR)$(bindir)/javaws $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \
725
	rm -f $(DESTDIR)$(bindir)/javaws;  \
726
	mv $$javaws_backup $(DESTDIR)$(bindir)/javaws;  \
727
	mv $$netx_backup $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \
728
	mv $(JNLP_TESTS_ENGINE_DIR)/tests-output.xml  $(JNLP_TESTS_ENGINE_DIR)/tests-output_withEmma.xml ; \
729
	mv $(JNLP_TESTS_ENGINE_DIR)/tests-output.xml_noEmma  $(JNLP_TESTS_ENGINE_DIR)/tests-output.xml ; \
730
	rm $(JNLP_TESTS_ENGINE_DIR)/coverage.txt ; 
731
else
732
	echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ;
733
	exit 5
734
endif
735
	touch $@
736
737
run-test-code-coverage: run-unit-test-code-coverage run-reproducers-test-code-coverage
738
if WITH_EMMA
739
	cd $(TESTS_DIR) ; \
740
	k=0 ; \
741
	types=(simple signed); \
742
	for which in "$${types[@]}" ; do \
743
	  . $(abs_top_srcdir)/NEW_LINE_IFS ; \
744
	  simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
745
	  IFS="$$IFS_BACKUP" ; \
746
	  for dir in "$${simpleReproducers[@]}" ; do \
747
	    testcases_srcs[k]="-sp" ; \
748
	    k=$$((k+1)) ; \
749
	    testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
750
	    k=$$((k+1)) ; \
751
	  done ; \
752
	done ; \
753
	$(BOOT_DIR)/bin/java -cp $(EMMA_JAR) emma merge \
754
	 -in $(NETX_UNIT_TEST_DIR)/coverage.es \
755
	 -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \
756
	$(BOOT_DIR)/bin/java -cp $(EMMA_JAR)  -Demma.report.html.out.encoding=UTF-8 emma report \
757
	 -Dreport.html.out.encoding=UTF-8 \
758
	 -in $(TESTS_DIR)/coverage.es \
759
	 -in $(TESTS_DIR)/coverage.em \
760
	 -sp $(NETX_SRCDIR) \
761
	 -sp $(NETX_UNIT_TEST_SRCDIR) \
762
	 -sp $(JUNIT_RUNNER_SRCDIR) \
763
	 -sp $(JNLP_TESTS_ENGINE_SRCDIR) \
764
	 "$${testcases_srcs[@]}" \
765
	 -r html \
766
	 -r xml ; 
767
else
768
	echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ;
769
	exit 5
770
endif
771
772
clean-netx-tests: clean-netx-unit-tests clean-junit-runner clean-netx-dist-tests clean-test-code-coverage
773
	if [ -e $(TESTS_DIR)/netx ]; then \
774
	  rmdir $(TESTS_DIR)/netx ; \
775
	fi
776
777
clean-junit-runner:
778
	rm -f junit-runner-source-files.txt
779
	rm -rf $(JUNIT_RUNNER_DIR)
780
	rm -f $(JUNIT_RUNNER_JAR)
781
782
clean-netx-unit-tests: clean_tests_reports
783
	rm -f netx-unit-tests-source-files.txt
784
	rm -rf $(NETX_UNIT_TEST_DIR)
785
	rm -f $(UNIT_CLASS_NAMES)
786
	rm -f stamps/run-netx-unit-tests.stamp
787
	rm -f stamps/netx-unit-tests-compile.stamp
788
789
clean_tests_reports:
790
	rm -rf  $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/
791
	rm -f  $(TESTS_DIR)/index*.html
792
793
clean-netx-dist-tests: clean_tests_reports
794
	rm -f netx-dist-tests-source-files.txt
795
	rm -rf $(JNLP_TESTS_DIR)
796
	rm -rf $(JNLP_TESTS_SERVER_DEPLOYDIR)
797
	rm -rf $(JNLP_TESTS_ENGINE_DIR)
798
	rm -f stamps/junit-jnlp-dist-dirs
799
	rm -f stamps/netx-dist-tests-compile.stamp
800
	rm -f stamps/netx-dist-tests-prepare-reproducers.stamp
801
	rm -f stamps/netx-dist-tests-compile-testcases.stamp
802
	rm -f stamps/netx-dist-tests-sign-some-reproducers.stamp
803
	rm -f junit-jnlp-dist-simple.txt
804
	rm -f junit-jnlp-dist-signed.txt
805
	rm -f $(REPRODUCERS_CLASS_NAMES)
806
	rm -f $(abs_top_builddir)/$(KEYSTORE_NAME)
807
	rm -f stamps/run-netx-dist-tests.stamp
808
809
clean-unit-test-code-coverage:
810
	if [ -e stamps/run-unit-test-code-coverage.stamp ]; then \
811
	  rm -rf $(NETX_UNIT_TEST_DIR)/coverage ; \
812
	  rm -f $(NETX_UNIT_TEST_DIR)/coverage.xml ; \
813
	  rm -f $(NETX_UNIT_TEST_DIR)/coverageX.es ; \
814
	  rm -f $(NETX_UNIT_TEST_DIR)/coverageX.ec ; \
815
	  rm -f $(NETX_UNIT_TEST_DIR)/coverage.es ; \
816
	  rm -f $(NETX_UNIT_TEST_DIR)/tests-output_withEmma.xml ; \
817
	  rm -f stamps/run-unit-test-code-coverage.stamp ; \
818
	fi
819
820
clean-reproducers-test-code-coverage:
821
	if [ -e stamps/run-reproducers-test-code-coverage.stamp ]; then \
822
	 rm -rf $(JNLP_TESTS_ENGINE_DIR)/coverage ; \
823
	 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.xml ; \
824
	 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \
825
	 rm -f $(JNLP_TESTS_ENGINE_DIR)/tests-output_withEmma.xml ; \
826
	 rm -f stamps/run-reproducers-test-code-coverage.stamp ; \
827
	fi
828
829
clean-test-code-coverage: clean-unit-test-code-coverage clean-reproducers-test-code-coverage
830
	if [ -e $(TESTS_DIR)/coverage.xml ]; then \
831
	  rm -rf $(TESTS_DIR)/coverage  ; \
832
	  rm -f $(TESTS_DIR)/coverage.xml  ; \
833
	  rm -f $(TESTS_DIR)/coverage.es  ; \
834
	  rm -f $(TESTS_DIR)/coverage.em ; \
835
	fi
836
837
838
# plugin tests
839
840
if ENABLE_PLUGIN
841
stamps/plugin-tests.stamp: $(PLUGIN_TEST_SRCS) stamps/plugin.stamp
842
	mkdir -p plugin/tests/LiveConnect
843
	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
844
	 -d plugin/tests/LiveConnect \
845
	 -classpath liveconnect/lib/classes.jar \
846
	 $(PLUGIN_TEST_SRCS) ;
847
	$(BOOT_DIR)/bin/jar cf plugin/tests/LiveConnect/PluginTest.jar \
848
	  plugin/tests/LiveConnect/*.class ;
849
	cp -pPR $(SRC_DIR_LINK) $(abs_top_srcdir)/plugin/tests/LiveConnect/*.{js,html} \
850
	  plugin/tests/LiveConnect ;
851
	echo "Done. Now launch \"firefox file://`pwd`/index.html\"" ;
852
	mkdir -p stamps
853
	touch stamps/plugin-tests.stamp
854
endif
855
856
# Bootstrap Directory Targets
857
# ===========================
858
859
stamps/native-ecj.stamp: 
860
	mkdir -p stamps ; \
861
	if test "x$(GCJ)" != "xno"; then \
862
	  $(GCJ) $(IT_CFLAGS) -Wl,-Bsymbolic -findirect-dispatch -o native-ecj \
863
	    --main=org.eclipse.jdt.internal.compiler.batch.Main ${ECJ_JAR} ; \
864
	fi ; \
865
	touch stamps/native-ecj.stamp
866
867
clean-native-ecj:
868
	rm -f native-ecj
869
	rm -rf stamps/native-ecj.stamp
870
871
# bootstrap
872
stamps/bootstrap-directory.stamp: stamps/native-ecj.stamp
873
	mkdir -p $(BOOT_DIR)/bin stamps/
874
	ln -sf $(JAVA) $(BOOT_DIR)/bin/java
875
	ln -sf $(JAR) $(BOOT_DIR)/bin/jar
876
	ln -sf $(abs_top_builddir)/javac $(BOOT_DIR)/bin/javac
877
	ln -sf $(JAVADOC) $(BOOT_DIR)/bin/javadoc
878
	if [ -e "$(KEYTOOL)" ] ; then \
879
	  ln -sf $(KEYTOOL) $(BOOT_DIR)/bin/keytool ;\
880
	else \
881
	  echo "#! /bin/sh" > $(BOOT_DIR)/bin/keytool ;\
882
	  echo "echo \"keytool not exist on your system, signed part of reproducers test will fail\"" >> $(BOOT_DIR)/bin/keytool ;\
883
	  chmod 777 $(BOOT_DIR)/bin/keytool ;\
884
	fi
885
	if [ -e "$(JARSIGNER)" ] ; then \
886
	  ln -sf $(JARSIGNER) $(BOOT_DIR)/bin/jarsigner ;\
887
	else \
888
	  echo "#! /bin/sh" > $(BOOT_DIR)/bin/jarsigner ;\
889
	  echo "echo \"jarsigner not exist on your system, signed part of reproducers test will fail\"" >> $(BOOT_DIR)/bin/jarsigner ;\
890
	  chmod 777 $(BOOT_DIR)/bin/jarsigner ;\
891
	fi
892
	mkdir -p $(BOOT_DIR)/jre/lib && \
893
	ln -s $(SYSTEM_JRE_DIR)/lib/rt.jar $(BOOT_DIR)/jre/lib && \
894
	if [ -e $(SYSTEM_JRE_DIR)/lib/jsse.jar ] ; then \
895
	  ln -s $(SYSTEM_JRE_DIR)/lib/jsse.jar $(BOOT_DIR)/jre/lib ; \
896
	else \
897
	  ln -s rt.jar $(BOOT_DIR)/jre/lib/jsse.jar ; \
898
	fi
899
	ln -sf $(SYSTEM_JRE_DIR)/lib/$(JRE_ARCH_DIR) \
900
	  $(BOOT_DIR)/jre/lib/ && \
901
	if ! test -d $(BOOT_DIR)/jre/lib/$(INSTALL_ARCH_DIR); \
902
	  then \
903
	  ln -sf ./$(JRE_ARCH_DIR) \
904
	    $(BOOT_DIR)/jre/lib/$(INSTALL_ARCH_DIR); \
905
	fi;
906
	mkdir -p $(BOOT_DIR)/include && \
907
	for i in $(SYSTEM_JDK_DIR)/include/*; do \
908
	  test -r $$i | continue; \
909
	  i=`basename $$i`; \
910
	  rm -f $(BOOT_DIR)/include/$$i; \
911
	  ln -s $(SYSTEM_JDK_DIR)/include/$$i $(BOOT_DIR)/include/$$i; \
912
	done
913
	mkdir -p stamps
914
	touch stamps/bootstrap-directory.stamp
915
916
clean-bootstrap-directory:
917
	rm -rf $(BOOT_DIR)
918
	if [ -e ${abs_top_builddir}/bootstrap ] ; then \
919
	  rmdir ${abs_top_builddir}/bootstrap ; \
920
	fi
921
	rm -f stamps/bootstrap-directory.stamp
922
923
# Target Aliases
924
# ===============
925
926
add-netx: stamps/add-netx.stamp
927
928
add-netx-debug: stamps/add-netx-debug.stamp
929
930
netx: stamps/netx.stamp
931
932
netx-dist: stamps/netx-dist.stamp
933
934
plugin: stamps/plugin.stamp
935
936
plugin-tests: stamps/plugin-tests.stamp
937
938
run-netx-unit-tests: stamps/run-netx-unit-tests.stamp
939
940
run-netx-dist-tests: stamps/run-netx-dist-tests.stamp
941
942
run-unit-test-code-coverage: stamps/run-unit-test-code-coverage.stamp
943
944
run-reproducers-test-code-coverage: stamps/run-reproducers-test-code-coverage.stamp