Ignore:
Timestamp:
Feb 11, 2013, 8:53:47 PM (13 years ago)
Author:
dmik
Message:

Merge icedtea-web v1.3 to trunk.

Location:
trunk/icedtea-web
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/icedtea-web

  • trunk/icedtea-web/Makefile.am

    r362 r418  
    11# Source directories
    22
    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 TESTS_SRCDIR=$(abs_top_srcdir)/tests
    10 TESTS_DIR=$(abs_top_builddir)/tests.build
    11 
    12 NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit
    13 NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit
    14 
    15 JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner
    16 JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner
    17 
    18 JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar
     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
    1965
    2066# Build directories
    2167
    22 BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0
     68export BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0
    2369
    2470if WITH_RHINO
     
    2874endif
    2975
    30 RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME)
     76export RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME):$(BOOT_DIR)/jre/lib/resources.jar
    3177
    3278# Flags
    33 IT_CFLAGS=$(CFLAGS) $(ARCHFLAG)
    34 IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE)
    35 IT_LANGUAGE_SOURCE_VERSION=6
    36 IT_CLASS_TARGET_VERSION=6
    37 IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION)
     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)
    3884
    3985#
     
    4490#  - we want full privileges
    4591#
    46 LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)"
    47 PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"'
     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)"'
    4894
    4995# Fake update version to work with the Deployment Toolkit script used by Oracle
    5096# http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html
    51 JDK_UPDATE_VERSION=50
     97export JDK_UPDATE_VERSION=50
    5298
    5399# Sources list
    54100
    55 PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java
    56 
    57 NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \
     101export PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java
     102
     103export NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \
    58104        net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \
    59105        net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \
     
    64110# Conditional defintions
    65111if ENABLE_PLUGIN
    66 ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin
    67 LIVECONNECT_DIR = netscape sun/applet
    68 PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp
    69 PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp
    70 LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java
    71 ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/IcedTeaPlugin.so stamps/liveconnect-dist.stamp
    72 PLUGIN_PKGS = sun.applet netscape.security netscape.javascript
     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
    73119endif
    74120
     
    92138
    93139if WITH_RHINO
    94   RHINO_TESTS=check-pac-functions
     140  RHINO_TESTS=stamps/check-pac-functions.stamp
    95141else
    96142  RHINO_TESTS=
     
    98144
    99145if WITH_JUNIT
    100   JUNIT_TESTS=run-netx-unit-tests
     146  JUNIT_TESTS=stamps/run-netx-unit-tests.stamp
    101147else
    102148  JUNIT_TESTS=
     
    104150
    105151
    106 PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION)
    107 
    108 EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \
     152export PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION)
     153
     154export EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \
    109155 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
    110167
    111168# binary names
     
    130187check-local: $(RHINO_TESTS) $(JUNIT_TESTS)
    131188
    132 clean-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
     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
    134191        if [ -e stamps ] ; then \
    135192          rmdir stamps ; \
     
    138195.PHONY: clean-IcedTeaPlugin clean-add-netx clean-add-netx-debug clean-add-plugin clean-add-plugin-debug \
    139196 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 \
     197 clean-tests check-local clean-launchers stamps/check-pac-functions.stamp stamps/run-netx-unit-tests.stamp clean-netx-tests \
    141198 clean-junit-runner clean-netx-unit-tests
    142199
     
    144201        ${mkinstalldirs} $(DESTDIR)$(bindir) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/ $(DESTDIR)$(libdir)
    145202if ENABLE_PLUGIN
    146         ${INSTALL_PROGRAM} $(PLUGIN_DIR)/IcedTeaPlugin.so $(DESTDIR)$(libdir)
     203        ${INSTALL_PROGRAM} $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) $(DESTDIR)$(libdir)
    147204        ${INSTALL_DATA} $(abs_top_builddir)/liveconnect/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
    148205endif
     
    173230
    174231uninstall-local:
    175         rm -f $(DESTDIR)$(libdir)/IcedTeaPlugin.so
     232        rm -f $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)
    176233        rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
    177234        rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
     
    203260        cd $(PLUGIN_DIR) && \
    204261        $(CXX) $(CXXFLAGS) \
     262           $(DEFS) $(VERSION_DEFS) \
    205263          -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
    206264          -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \
     
    215273          -fPIC -o $@ -c $<
    216274
    217 $(PLUGIN_DIR)/IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS))
     275$(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY): $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS))
    218276        cd $(PLUGIN_DIR) && \
    219277        $(CXX) $(CXXFLAGS) \
     
    226284clean-IcedTeaPlugin:
    227285        rm -f $(PLUGIN_DIR)/*.o
    228         rm -f $(PLUGIN_DIR)/IcedTeaPlugin.so
     286        rm -f $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY)
    229287        if [ $(abs_top_srcdir) != $(abs_top_builddir) ]; then \
    230288          if [ -e $(abs_top_builddir)/plugin/icedteanp ] ; then \
     
    433491        fi
    434492
    435 check-pac-functions: stamps/bootstrap-directory.stamp
     493stamps/check-pac-functions.stamp: stamps/bootstrap-directory.stamp
    436494        ./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)
     495          $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js) ; \
     496        mkdir -p stamps && \
     497        touch $@
    438498
    439499junit-runner-source-files.txt:
    440500        find $(JUNIT_RUNNER_SRCDIR) -name '*.java' | sort > $@
    441501
    442 $(JUNIT_RUNNER_JAR): junit-runner-source-files.txt
     502$(JUNIT_RUNNER_JAR): junit-runner-source-files.txt stamps/netx-dist-tests-compile.stamp
    443503        mkdir -p $(JUNIT_RUNNER_DIR) && \
    444504        $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
    445505          -d $(JUNIT_RUNNER_DIR) \
    446           -classpath $(JUNIT_JAR) \
     506          -classpath $(JUNIT_JAR):$(JNLP_TESTS_ENGINE_DIR) \
    447507          @junit-runner-source-files.txt && \
    448508        $(BOOT_DIR)/bin/jar cf $@  -C $(JUNIT_RUNNER_DIR) .
    449509
     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
    450869netx-unit-tests-source-files.txt:
    451870        find $(NETX_UNIT_TEST_SRCDIR) -name '*.java' | sort > $@
    452871
    453872stamps/netx-unit-tests-compile.stamp: stamps/netx.stamp \
    454  netx-unit-tests-source-files.txt
     873 netx-unit-tests-source-files.txt stamps/netx-dist-tests-compile.stamp
    455874        mkdir -p $(NETX_UNIT_TEST_DIR) && \
    456875        $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
    457876         -d $(NETX_UNIT_TEST_DIR) \
    458          -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \
     877         -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \
    459878         @netx-unit-tests-source-files.txt && \
    460879        mkdir -p stamps && \
    461880        touch $@
    462881
    463 run-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
     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):
    466888        cd $(NETX_UNIT_TEST_DIR) ; \
    467889        class_names= ; \
     
    471893          class_names="$$class_names $$class_name" ; \
    472894        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 
    477 clean-netx-tests: clean-netx-unit-tests clean-junit-runner
     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
    4781084        if [ -e $(TESTS_DIR)/netx ]; then \
    4791085          rmdir $(TESTS_DIR)/netx ; \
     
    4851091        rm -f $(JUNIT_RUNNER_JAR)
    4861092
    487 clean-netx-unit-tests:
     1093clean-netx-unit-tests: clean_tests_reports
    4881094        rm -f netx-unit-tests-source-files.txt
    4891095        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
    4901099        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
    4911161
    4921162# plugin tests
     
    5301200        ln -sf $(abs_top_builddir)/javac $(BOOT_DIR)/bin/javac
    5311201        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
    5321216        mkdir -p $(BOOT_DIR)/jre/lib && \
    5331217        ln -s $(SYSTEM_JRE_DIR)/lib/rt.jar $(BOOT_DIR)/jre/lib && \
     
    5361220        else \
    5371221          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 ; \
    5381227        fi
    5391228        ln -sf $(SYSTEM_JRE_DIR)/lib/$(JRE_ARCH_DIR) \
     
    5751264
    5761265plugin-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 TracChangeset for help on using the changeset viewer.