Ignore:
Timestamp:
Sep 24, 2014, 9:34:21 PM (11 years ago)
Author:
dmik
Message:

icedtea-web: Merge version 1.5.1 from vendor to trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/icedtea-web/Makefile.am

    r418 r429  
    11# Source directories
     2
     3export TOP_BUILD_DIR = $(abs_top_builddir)
    24
    35export NETX_DIR = $(abs_top_builddir)/netx.build
    46export NETX_SRCDIR = $(abs_top_srcdir)/netx
    57export NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources
    6 export NETX_EXTRA_DIR=$(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources
    7 export NETX_EXTRA_DIST_DIR=$(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources
    88
    99export REPORT_STYLES_DIRNAME=report-styles
     
    1313
    1414export NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit
    15 export NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit
     15export NETX_TEST_DIR=$(TESTS_DIR)/netx
     16export NETX_UNIT_TEST_DIR=$(NETX_TEST_DIR)/unit
    1617
    1718export JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner
    1819export JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner
    1920
    20 
    21 export JNLP_TESTS_ENGINE_SRCDIR=$(TESTS_SRCDIR)/test-extensions
    22 export JNLP_TESTS_ENGINE_TESTS_SRCDIR=$(TESTS_SRCDIR)/test-extensions-tests
    23 export JNLP_TESTS_SRCDIR=$(TESTS_SRCDIR)/reproducers
    24 export JNLP_TESTS_ENGINE_DIR=$(TESTS_DIR)/jnlp_testsengine
    25 export JNLP_TESTS_ENGINE_TESTS_DIR=$(TESTS_DIR)/netx/jnlp_testsengine_tests
    26 export JNLP_TESTS_SERVER_DEPLOYDIR=$(TESTS_DIR)/jnlp_test_server
    27 export JNLP_TESTS_DIR=$(TESTS_DIR)/jnlp_tests
     21export JACOCO_OPERATOR_DIR=$(TESTS_DIR)/jacoco-operator
     22export JACOCO_OPERATOR_SRCDIR=$(TESTS_SRCDIR)/jacoco-operator
     23
     24export TEST_EXTENSIONS_SRCDIR=$(TESTS_SRCDIR)/test-extensions
     25export TEST_EXTENSIONS_TESTS_SRCDIR=$(TESTS_SRCDIR)/test-extensions-tests
     26export REPRODUCERS_TESTS_SRCDIR=$(TESTS_SRCDIR)/reproducers
     27export TEST_EXTENSIONS_DIR=$(TESTS_DIR)/test-extensions
     28export CPP_UNITTEST_FRAMEWORK_SRCDIR=$(TESTS_SRCDIR)/UnitTest++
     29export CPP_UNITTEST_SRCDIR=$(TESTS_SRCDIR)/cpp-unit-tests
     30export CPP_UNITTEST_DIR=$(TESTS_DIR)/cpp-unit-tests
     31export TEST_EXTENSIONS_COMPATIBILITY_SYMLINK=$(TESTS_DIR)/netx/jnlp_testsengine
     32export TEST_EXTENSIONS_TESTS_DIR=$(TESTS_DIR)/test-extensions-tests
     33export REPRODUCERS_TESTS_SERVER_DEPLOYDIR=$(TESTS_DIR)/reproducers_test_server_deploydir
     34export REPRODUCERS_BUILD_DIR=$(TESTS_DIR)/reproducers.classes
    2835export PRIVATE_KEYSTORE_NAME=teststore.ks
    2936export PRIVATE_KEYSTORE_PASS=123456789
     
    3138export EXPORTED_TEST_CERT_SUFFIX=crt
    3239export TEST_CERT_ALIAS=icedteaweb
    33 export PUBLIC_KEYSTORE=${HOME}/.icedtea/security/trusted.certs
     40export PUBLIC_KEYSTORE_STUB=icedtea-web/security/trusted.certs
    3441export PUBLIC_KEYSTORE_PASS=changeit
     42export SOFTKILLER=softkiller
    3543
    3644export JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar
     
    4351export EMMA_SUFFIX=_withEmma
    4452export META_MANIFEST = META-INF/MANIFEST.MF
    45 export SIGNED_REPRODUCERS=signed
     53export SIGNED_REPRODUCERS=signed signed2
    4654export SIMPLE_REPRODUCERS=simple
    4755export CUSTOM_REPRODUCERS=custom
     
    4957export ALL_REPRODUCERS=$(ALL_NONCUSTOM_REPRODUCERS) $(CUSTOM_REPRODUCERS)
    5058
     59export JACOCO_PATH:=$(shell dirname "$(JACOCO_JAR)")
     60export JACOCO_AGENT=org.jacoco.agent.jar
     61export JACOCO_ANT=org.jacoco.ant.jar
     62export JACOCO_REPORT=org.jacoco.report.jar
     63export JACOCO_AGENTRT=org.jacoco.agent.rt.jar
     64export JACOCO_CORE=org.jacoco.core.jar
     65export JACOCO_JAVAWS_RESULTS=$(TEST_EXTENSIONS_DIR)/jacoco_javaws.exec
     66export JACOCO_PLUGIN_RESULTS=$(TEST_EXTENSIONS_DIR)/jacoco_plugin.exec
     67export JACOCO_CLASSPATH=$(JACOCO_PATH)/$(JACOCO_CORE):$(JACOCO_PATH)/$(JACOCO_AGENT):$(JACOCO_PATH)/$(JACOCO_REPORT):$(JACOCO_PATH)/$(JACOCO_AGENTRT):$(JACOCO_PATH)/$(JACOCO_ANT):$(ASM_JAR)
     68export JACOCO_AGENT_SWITCH_BODY=-javaagent:$(JACOCO_PATH)/$(JACOCO_AGENTRT)
     69export JACOCO_BASE_EXCLUDE=org.junit.*:junit.*
     70export JACOCO_ADVANCED_EXCLUDE=:*jacoco*:java.lang.*:java.reflect.*:java.util.*:sun.reflect.*
     71export JACOCO_AGENT_SWITCH="$(JACOCO_AGENT_SWITCH_BODY)=excludes=$(JACOCO_BASE_EXCLUDE)"
     72export JACOCO_AGENT_JAVAWS_SWITCH=\"$(JACOCO_AGENT_SWITCH_BODY)=excludes=$(JACOCO_BASE_EXCLUDE)$(JACOCO_ADVANCED_EXCLUDE),xboot=true,destfile=$(JACOCO_JAVAWS_RESULTS)\"
     73export JACOCO_AGENT_PLUGIN_SWITCH=\"$(JACOCO_AGENT_SWITCH_BODY)=excludes=$(JACOCO_BASE_EXCLUDE)$(JACOCO_ADVANCED_EXCLUDE),xboot=true,destfile=$(JACOCO_PLUGIN_RESULTS)\"
     74export JACOCO_OPERATOR_EXEC=$(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(JACOCO_OPERATOR_DIR):$(JACOCO_CLASSPATH):. org.jacoco.operator.Main
    5175
    5276# linking variables
     
    5882export OPERA_GLOBAL32_PLUGINDIR=/usr/lib/opera/plugins
    5983export BUILT_PLUGIN_LIBRARY=IcedTeaPlugin.so
     84export CPP_UNITTEST_FRAMEWORK_BUILDDIR=$(CPP_UNITTEST_DIR)/UnitTest++
     85export CPP_UNITTEST_FRAMEWORK_LIB_NAME=libUnitTest++.a
     86export CPP_UNITTEST_FRAMEWORK_LIB=$(CPP_UNITTEST_FRAMEWORK_BUILDDIR)/$(CPP_UNITTEST_FRAMEWORK_LIB_NAME)
     87export CPP_UNITTEST_EXECUTABLE=$(CPP_UNITTEST_DIR)/IcedTeaPluginUnitTests
    6088export MOZILLA_LOCAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origU
    6189export MOZILLA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origMG
     
    90118#  - we want full privileges
    91119#
    92 export LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)"
    93 export PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"'
     120export LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME):$(TAGSOUP_JAR)"
     121export PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME):$(TAGSOUP_JAR)"'
     122export PLUGIN_COVERAGE_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME):$(JACOCO_CLASSPATH):$(TAGSOUP_JAR)"'
    94123
    95124# Fake update version to work with the Deployment Toolkit script used by Oracle
     
    102131
    103132export NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \
     133        net.sourceforge.jnlp.about \
    104134        net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \
    105135        net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \
    106136        net.sourceforge.jnlp.runtime net.sourceforge.jnlp.security \
    107137        net.sourceforge.jnlp.security.viewer net.sourceforge.jnlp.services \
    108         net.sourceforge.jnlp.tools net.sourceforge.jnlp.util
     138        net.sourceforge.jnlp.tools net.sourceforge.jnlp.util \
     139        sun.applet
     140
     141NETX_EXCLUDE_SRCS=
    109142
    110143# Conditional defintions
     144if HAVE_TAGSOUP
     145NETX_CLASSPATH_ARG=-classpath $(TAGSOUP_JAR)
     146else
     147NETX_EXCLUDE_SRCS+=net.sourceforge.jnlp.MalformedXMLParser.java
     148endif
     149
    111150if ENABLE_PLUGIN
    112151export ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin
     
    117156export ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) stamps/liveconnect-dist.stamp
    118157export PLUGIN_PKGS = sun.applet netscape.security netscape.javascript
     158#this is for plugin testcoverage
     159export COVERABLE_PLUGIN_DIR=$(TESTS_DIR)/icedteanp-build-with-jacoco
    119160endif
    120161
     
    133174 -bottom '<font size="-1"> <a href="http://icedtea.classpath.org/bugzilla">Submit a bug or feature</a></font>'
    134175if JAVADOC_SUPPORTS_J_OPTIONS
    135 JAVADOC_MEM_OPTS=-J-Xmx1024m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m
     176JAVADOC_MEM_OPTS=-J-Xmx1024m -J-Xms128m
    136177endif
    137178endif
     
    152193export PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION)
    153194
    154 export EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \
    155  itweb-settings.desktop.in $(top_srcdir)/tests
     195export EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in policyeditor.desktop.in \
     196 itweb-settings.desktop.in launcher $(top_srcdir)/tests html-gen.sh netx-dist-tests-whitelist NEW_LINE_IFS
    156197
    157198# reproducers `D`shortcuts
    158 export DTEST_SERVER=-Dtest.server.dir=$(JNLP_TESTS_SERVER_DEPLOYDIR)
     199export DTEST_SERVER=-Dtest.server.dir=$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)
    159200export DJAVAWS_BUILD=-Djavaws.build.bin=$(DESTDIR)$(bindir)/$(javaws)
    160201export DBROWSERS=-Dused.browsers=$(FIREFOX):$(CHROMIUM):$(CHROME):$(OPERA):$(MIDORI):$(EPIPHANY)
     
    169210javaws:= $(shell echo javaws | sed '@program_transform_name@')
    170211itweb_settings:= $(shell echo itweb-settings | sed '@program_transform_name@')
     212policyeditor:= $(shell echo policyeditor | sed '@program_transform_name@')
    171213
    172214# the launcher needs to know $(bindir) and $(datadir) which can be different at
    173215# make-time from configure-time
    174216edit_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'
     217  -e "s|[@]LAUNCHER_BOOTCLASSPATH[@]|$(LAUNCHER_BOOTCLASSPATH)|g" \
     218  -e "s|[@]JAVAWS_SPLASH_LOCATION[@]|$(datadir)/$(PACKAGE_NAME)/javaws_splash.png|g" \
     219  -e "s|[@]JAVA[@]|$(JAVA)|g" \
     220  -e "s|[@]JRE[@]|$(SYSTEM_JRE_DIR)|g" \
     221  -e "s|[@]MAIN_CLASS[@]|$${MAIN_CLASS}|g" \
     222  -e "s|[@]BIN_LOCATION[@]|$${BIN_LOCATION}|g" \
     223  -e "s|[@]PROGRAM_NAME[@]|$${PROGRAM_NAME}|g"
    180224
    181225# Top-Level Targets
    182226# =================
    183227
    184 all-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
     228all-local: stamps/netx-dist.stamp stamps/plugin.stamp launcher.build/$(javaws) \
     229 javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop \
     230 launcher.build/$(policyeditor) policyeditor.desktop
    186231
    187232check-local: $(RHINO_TESTS) $(JUNIT_TESTS)
    188233
    189 clean-local: clean-netx clean-plugin clean-liveconnect clean-extra  \
     234clean-local: clean-netx clean-plugin clean-liveconnect \
    190235 clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests clean-bootstrap-directory
    191236        if [ -e stamps ] ; then \
     
    205250endif
    206251        ${INSTALL_DATA} $(NETX_DIR)/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
     252        ${INSTALL_DATA} $(NETX_SRCDIR)/javaws_splash.png $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/javaws_splash.png
    207253        ${INSTALL_PROGRAM} launcher.build/$(javaws) $(DESTDIR)$(bindir)
    208         ${INSTALL_DATA} extra-lib/about.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/about.jar
    209254        ${INSTALL_PROGRAM} launcher.build/$(itweb_settings) $(DESTDIR)$(bindir)
     255        ${INSTALL_PROGRAM} launcher.build/$(policyeditor) $(DESTDIR)$(bindir)
    210256
    211257install-data-local:
    212258        ${mkinstalldirs} -d $(DESTDIR)$(mandir)/man1
    213259        ${INSTALL_DATA} $(NETX_SRCDIR)/javaws.1 $(DESTDIR)$(mandir)/man1
    214         ${INSTALL_DATA} $(NETX_RESOURCE_DIR)/about.jnlp $(DESTDIR)$(datarootdir)/$(PACKAGE_NAME)
     260        ${INSTALL_DATA} $(NETX_SRCDIR)/itweb-settings.1 $(DESTDIR)$(mandir)/man1
     261        ${INSTALL_DATA} $(NETX_SRCDIR)/policyeditor.1 $(DESTDIR)$(mandir)/man1
    215262if ENABLE_DOCS
    216263        ${mkinstalldirs} $(DESTDIR)$(htmldir)
     
    233280        rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
    234281        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
    237282        rm -f $(DESTDIR)$(mandir)/man1/javaws.1
     283        rm -f $(DESTDIR)$(mandir)/man1/itweb-settings.1
     284        rm -f $(DESTDIR)$(mandir)/man1/policyeditor.1
    238285        rm -f $(DESTDIR)$(bindir)/$(javaws)
    239286        rm -f $(DESTDIR)$(bindir)/$(itweb_settings)
     287        rm -f $(DESTDIR)$(bindir)/$(policyeditor)
    240288        rm -rf $(DESTDIR)$(htmldir)
    241289
     
    250298PLUGIN_SRC=IcedTeaNPPlugin.cc IcedTeaScriptablePluginObject.cc \
    251299        IcedTeaJavaRequestProcessor.cc IcedTeaPluginRequestProcessor.cc \
    252                 IcedTeaPluginUtils.cc
     300                IcedTeaPluginUtils.cc IcedTeaParseProperties.cc
    253301
    254302PLUGIN_OBJECTS=IcedTeaNPPlugin.o IcedTeaScriptablePluginObject.o \
    255303        IcedTeaJavaRequestProcessor.o IcedTeaPluginRequestProcessor.o \
    256                 IcedTeaPluginUtils.o
     304                IcedTeaPluginUtils.o IcedTeaParseProperties.o
    257305
    258306$(PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc
     
    269317          -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \
    270318          $(GLIB_CFLAGS) \
    271           $(GTK_CFLAGS) \
    272319          $(MOZILLA_CFLAGS) \
     320          -fvisibility=hidden \
    273321          -fPIC -o $@ -c $<
    274322
     
    278326          $(PLUGIN_OBJECTS) \
    279327          $(GLIB_LIBS) \
    280           $(GTK_LIBS) \
    281           $(MOZILLA_LIBS)\
     328          $(MOZILLA_LIBS) \
    282329          -shared -o $@
     330
     331# Start of CPP Unit test targets
     332
     333# Note that UnitTest++ has its own makefile, however this is avoided because it creates an in-source build.
     334$(CPP_UNITTEST_FRAMEWORK_LIB): $(CPP_UNITTEST_FRAMEWORK_SRCDIR)
     335        mkdir -p $(CPP_UNITTEST_FRAMEWORK_BUILDDIR) && \
     336        pushd $(CPP_UNITTEST_FRAMEWORK_SRCDIR) && \
     337        for cppfile in $$(find $(CPP_UNITTEST_FRAMEWORK_SRCDIR) -name '*.cpp') ; \
     338        do \
     339          objfile="$(CPP_UNITTEST_FRAMEWORK_BUILDDIR)/$$(basename $${cppfile%.cpp}).o" ; \
     340          $(CXX) $(CXXFLAGS) -c $$cppfile -o $$objfile || exit 1 ; \
     341        done ; \
     342        ar cr $(CPP_UNITTEST_FRAMEWORK_LIB) $(CPP_UNITTEST_FRAMEWORK_BUILDDIR)/*.o ; \
     343        popd
     344
     345clean-unittest++:
     346        rm -f $(CPP_UNITTEST_FRAMEWORK_BUILDDIR)/*.o
     347        rm -f $(CPP_UNITTEST_FRAMEWORK_LIB)
     348        if [ -e $(CPP_UNITTEST_FRAMEWORK_BUILDDIR) ] ; then \
     349                rmdir $(CPP_UNITTEST_FRAMEWORK_BUILDDIR) ; \
     350        fi
     351
     352stamps/cpp-unit-tests-compile.stamp: $(CPP_UNITTEST_FRAMEWORK_LIB) $(CPP_UNITTEST_SRCDIR) $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS))
     353        mkdir -p $(CPP_UNITTEST_DIR) && \
     354        pushd $(CPP_UNITTEST_SRCDIR) && \
     355        for cppfile in $$(find $(CPP_UNITTEST_SRCDIR) -name '*.cc') ; \
     356        do \
     357        objfile="$(CPP_UNITTEST_DIR)/$$(basename $${cppfile%.cc}).o" ; \
     358        echo "Compiling $$cppfile to $$objfile"; \
     359        $(CXX) $(CXXFLAGS) \
     360           $(DEFS) $(VERSION_DEFS) \
     361          -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
     362          -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \
     363          -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \
     364          -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \
     365          -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \
     366          -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \
     367          -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \
     368          $(GLIB_CFLAGS) \
     369          $(MOZILLA_CFLAGS) \
     370          "-I$(CPP_UNITTEST_FRAMEWORK_SRCDIR)/src" \
     371          "-I$(PLUGIN_SRCDIR)" \
     372          -o $$objfile -c $$cppfile || exit 1 ; \
     373        done ; \
     374        popd ; \
     375        mkdir -p stamps ; \
     376        touch $@
     377
     378$(CPP_UNITTEST_EXECUTABLE): $(CPP_UNITTEST_FRAMEWORK_LIB) stamps/cpp-unit-tests-compile.stamp
     379        cd $(CPP_UNITTEST_DIR) && \
     380        $(CXX) $(CXXFLAGS) \
     381          $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) \
     382          $(CPP_UNITTEST_DIR)/*.o \
     383          -lrt \
     384          -lpthread \
     385          $(GLIB_LIBS) \
     386          $(MOZILLA_LIBS) \
     387          $(CPP_UNITTEST_FRAMEWORK_LIB)\
     388          $(BUILT_CPP_UNIT_TEST_FRAMEWORK) -o $@
     389
     390clean-cpp-unit-tests:
     391        rm -f stamps/cpp-unit-tests-compile.stamp
     392        rm -f $(CPP_UNITTEST_EXECUTABLE)
     393        rm -f $(CPP_UNITTEST_DIR)/*.o
     394
     395run-cpp-unit-tests: $(CPP_UNITTEST_EXECUTABLE)
     396        $(CPP_UNITTEST_EXECUTABLE)
     397
     398# End of CPP Unit test targets
    283399
    284400clean-IcedTeaPlugin:
     
    313429              -d $(abs_top_builddir)/liveconnect \
    314430              -bootclasspath $(NETX_DIR):$(RUNTIME) \
     431              $(NETX_CLASSPATH_ARG) \
    315432              -sourcepath $(LIVECONNECT_SRCS) \
    316433              @liveconnect-source-files.txt ; \
     
    343460
    344461netx-source-files.txt:
    345         find $(NETX_SRCDIR) -name '*.java' | sort > $@
     462        find $(NETX_SRCDIR) -name '*.java' | sort > $@ ; \
     463        for src in $(NETX_EXCLUDE_SRCS) ; \
     464        do \
     465          sed -i "/$${src}/ d" $@ ; \
     466        done
    346467if !WITH_RHINO
    347468        sed -i '/RhinoBasedPacEvaluator/ d' $@
    348469endif
    349 
    350 stamps/netx.stamp: netx-source-files.txt stamps/bootstrap-directory.stamp
     470if !HAVE_JAVA7
     471        sed -i '/VariableX509TrustManagerJDK7/ d' $@
     472endif
     473
     474stamps/netx-html-gen.stamp:
     475        (cd $$NETX_SRCDIR/..; \
     476        mkdir -p html-gen; \
     477        cp AUTHORS NEWS COPYING ChangeLog html-gen/; \
     478        export HTML_GEN_DEBUG=true; \
     479        bash html-gen.sh 36; \
     480        unset HTML_GEN_DEBUG)
     481        ${INSTALL_DATA} $(NETX_SRCDIR)/../html-gen/*.html $(NETX_RESOURCE_DIR)
     482        rm -r $(NETX_SRCDIR)/../html-gen/
     483        mkdir -p stamps
     484        touch $@
     485
     486stamps/netx.stamp: netx-source-files.txt stamps/bootstrap-directory.stamp stamps/netx-html-gen.stamp
    351487        mkdir -p $(NETX_DIR)
    352488        $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
     
    354490            -sourcepath $(NETX_SRCDIR) \
    355491            -bootclasspath $(RUNTIME) \
     492            $(NETX_CLASSPATH_ARG) \
    356493            @netx-source-files.txt
    357494        (cd $(NETX_RESOURCE_DIR); \
     
    371508         mkdir -p lib ; \
    372509         $(BOOT_DIR)/bin/jar cfm lib/classes.jar \
    373           $(abs_top_builddir)/netx.manifest javax/jnlp net ; \
     510          $(abs_top_builddir)/netx.manifest javax/jnlp net sun; \
    374511         cp -pPR $(SRC_DIR_LINK) $(NETX_SRCDIR) src; \
    375512         find src -type f -exec chmod 640 '{}' ';' -o -type d -exec chmod 750 '{}' ';'; \
    376513         cd src ; \
    377          $(ZIP) -qr $(NETX_DIR)/lib/src.zip javax net )
     514         $(ZIP) -qr $(NETX_DIR)/lib/src.zip javax net sun)
    378515        mkdir -p stamps
    379516        touch $@
     
    384521        rm -f netx-source-files.txt
    385522        rm -f stamps/netx.stamp
     523        rm -f stamps/netx-html-gen.stamp
     524        rm -f $(NETX_RESOURCE_DIR)/{NEWS,AUTHORS,COPYING,ChangeLog}.html
    386525
    387526clean-desktop-files:
     
    389528        rm -f itweb-settings.desktop
    390529
    391 # extras -- used to create about.jar for javaws.
    392 extra-source-files.txt:
    393         find $(abs_top_srcdir)/extra -name '*.java' | sort > $@
    394 
    395 stamps/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 
    409 clean-extra:
    410         rm -rf extra-lib
    411         rm -f stamps/extra-class-files.stamp
    412         rm -f extra-source-files.txt
    413 
    414 extra-lib/about.jar: stamps/extra-class-files.stamp
    415         $(BOOT_DIR)/bin/jar cf $@ -C extra-lib net ;
    416 
    417 launcher.build/$(javaws): launcher/javaws.in
     530launcher.build/$(javaws): launcher/launchers.in
    418531        mkdir -p launcher.build
     532        MAIN_CLASS=net.sourceforge.jnlp.runtime.Boot ;\
     533        BIN_LOCATION=$(bindir)/$(javaws) ;\
     534        PROGRAM_NAME=$(javaws) ;\
    419535        $(edit_launcher_script) < $< > $@
    420536
    421 launcher.build/$(itweb_settings): launcher/itweb-settings.in
     537launcher.build/$(itweb_settings): launcher/launchers.in
    422538        mkdir -p launcher.build
     539        MAIN_CLASS=net.sourceforge.jnlp.controlpanel.CommandLine ;\
     540        BIN_LOCATION=$(bindir)/$(itweb_settings) ;\
     541        PROGRAM_NAME=$(itweb_settings) ;\
     542        $(edit_launcher_script) < $< > $@
     543
     544launcher.build/$(policyeditor): launcher/launchers.in
     545        mkdir -p launcher.build
     546        MAIN_CLASS=net.sourceforge.jnlp.security.policyeditor.PolicyEditor ;\
     547        BIN_LOCATION=$(bindir)/$(policyeditor) ;\
     548        PROGRAM_NAME=$(policyeditor) ;\
    423549        $(edit_launcher_script) < $< > $@
    424550
     
    426552        rm -f launcher.build/$(javaws)
    427553        rm -f launcher.build/$(itweb_settings)
     554        rm -f launcher.build/$(policyeditor)
    428555        if [ -e launcher.build ] ; then \
    429556          rmdir launcher.build ; \
     
    436563        sed "s#PATH_TO_ITWEB_SETTINGS#$(bindir)/$(itweb_settings)#" \
    437564          < $(srcdir)/itweb-settings.desktop.in > itweb-settings.desktop
     565
     566policyeditor.desktop: $(srcdir)/policyeditor.desktop.in
     567        sed 's#PATH_TO_POLICYEDITOR#$(bindir)/$(policyeditor)#' \
     568        < $(srcdir)/policyeditor.desktop.in > policyeditor.desktop
    438569
    439570# documentation
     
    486617# ==========================
    487618
    488 clean-tests: clean-netx-tests
     619clean-tests: clean-netx-tests clean-cpp-unit-tests clean-unittest++
     620        if [ -e $(CPP_UNITTEST_DIR) ] ; then \
     621                rmdir $(CPP_UNITTEST_DIR) ; \
     622        fi
    489623        if [ -e $(TESTS_DIR) ]; then \
    490624                rmdir $(TESTS_DIR) ; \
     
    500634        find $(JUNIT_RUNNER_SRCDIR) -name '*.java' | sort > $@
    501635
    502 $(JUNIT_RUNNER_JAR): junit-runner-source-files.txt stamps/netx-dist-tests-compile.stamp
     636jacoco-operator-source-files.txt:
     637        find $(JACOCO_OPERATOR_SRCDIR) -name '*.java' | sort > $@
     638
     639$(JUNIT_RUNNER_JAR): junit-runner-source-files.txt stamps/test-extensions-compile.stamp
    503640        mkdir -p $(JUNIT_RUNNER_DIR) && \
    504641        $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
    505642          -d $(JUNIT_RUNNER_DIR) \
    506           -classpath $(JUNIT_JAR):$(JNLP_TESTS_ENGINE_DIR) \
     643          -classpath $(JUNIT_JAR):$(TEST_EXTENSIONS_DIR) \
    507644          @junit-runner-source-files.txt && \
    508645        $(BOOT_DIR)/bin/jar cf $@  -C $(JUNIT_RUNNER_DIR) .
    509646
    510647stamps/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)
     648        mkdir -p $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)
     649        mkdir -p $(REPRODUCERS_BUILD_DIR)
    513650        touch $@
    514651
    515652junit-jnlp-dist-custom.txt:
    516         cd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \
     653        cd $(REPRODUCERS_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \
    517654        find .  -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@
    518655
    519656junit-jnlp-dist-simple.txt:
    520         cd $(JNLP_TESTS_SRCDIR)/simple/ ; \
     657        cd $(REPRODUCERS_TESTS_SRCDIR)/simple/ ; \
    521658        find .  -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@
    522659
     
    524661        types=($(SIGNED_REPRODUCERS)) ; \
    525662        for which in "$${types[@]}" ; do \
    526           pushd $(JNLP_TESTS_SRCDIR)/$$which/ ; \
     663          pushd $(REPRODUCERS_TESTS_SRCDIR)/$$which/ ; \
    527664          find .  -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \
    528665          popd ; \
     
    531668        touch $@
    532669
    533 stamps/netx-dist-tests-prepare-reproducers.stamp: stamps/junit-jnlp-dist-dirs
     670stamps/netx-dist-tests-prepare-reproducers.stamp: stamps/junit-jnlp-dist-dirs stamps/liveconnect-dist.stamp stamps/netx-dist.stamp stamps/plugin.stamp
    534671        types=($(ALL_NONCUSTOM_REPRODUCERS)); \
    535672        for which in "$${types[@]}" ; do \
     
    539676          for dir in "$${simpleReproducers[@]}" ; do \
    540677            echo "processing: $$dir" ; \
    541             mkdir -p "$(JNLP_TESTS_DIR)/$$dir" ; \
    542             if [ -e "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ]; then \
     678            mkdir -p "$(REPRODUCERS_BUILD_DIR)/$$dir" ; \
     679            if [ -e "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/srcs/" ]; then \
    543680              d=`pwd` ; \
    544               cd "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ; \
     681              cd "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/srcs/" ; \
    545682              srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \
    546683              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 ; \
     684              $(BOOT_DIR)/bin/javac -cp $(NETX_DIR)/lib/classes.jar:$(abs_top_builddir)/liveconnect -d "$(REPRODUCERS_BUILD_DIR)/$$dir/" $$srcFiles ; \
    548685              if [ -n "$$notSrcFiles" ] ; then \
    549                 cp -R --parents $$notSrcFiles "$(JNLP_TESTS_DIR)/$$dir/" ; \
     686                cp -R --parents $$notSrcFiles "$(REPRODUCERS_BUILD_DIR)/$$dir/" ; \
    550687              fi ; \
    551               cd "$(JNLP_TESTS_DIR)/$$dir/" ; \
     688              cd "$(REPRODUCERS_BUILD_DIR)/$$dir/" ; \
    552689              if [ -f $(META_MANIFEST) ]; \
    553690              then \
    554                 $(BOOT_DIR)/bin/jar cfm "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $(META_MANIFEST) * ; \
     691                $(BOOT_DIR)/bin/jar cfm "$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $(META_MANIFEST) * ; \
    555692              else \
    556                 $(BOOT_DIR)/bin/jar cf "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \
     693                $(BOOT_DIR)/bin/jar cf "$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \
    557694              fi; \
    558695              cd "$$d" ; \
     
    573710            IFS="$$IFS_BACKUP" ; \
    574711          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 ; \
     712           $(BOOT_DIR)/bin/jarsigner -keystore $$keystore -storepass $(PRIVATE_KEYSTORE_PASS) -keypass $(PRIVATE_KEYSTORE_PASS)  "$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/$$dir.jar"  $$tcaw ; \
    576713          done ; \
    577714        done ; \
     
    580717
    581718stamps/change-dots-to-paths.stamp: stamps/netx-dist-tests-sign-some-reproducers.stamp
    582         pushd  $(JNLP_TESTS_SERVER_DEPLOYDIR); \
     719        pushd  $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); \
    583720        types=($(ALL_NONCUSTOM_REPRODUCERS)); \
    584721        for which in "$${types[@]}" ; do \
     
    616753stamps/exported-test-certs.stamp: stamps/change-dots-to-paths.stamp
    617754        -types=($(SIGNED_REPRODUCERS)) ; \
     755        PUBLIC_KEYSTORE=$$XDG_CONFIG_HOME ; \
     756        if test "x$$PUBLIC_KEYSTORE" = x; then \
     757          PUBLIC_KEYSTORE=${HOME}/.config ; \
     758        fi ;\
     759        PUBLIC_KEYSTORE=$$PUBLIC_KEYSTORE/$(PUBLIC_KEYSTORE_STUB); \
     760        keystoredir=`dirname $(PUBLIC_KEYSTORE)`; \
     761        [ ! -d $(keystoredir) ] && mkdir -p $(keystoredir); \
    618762        for which in "$${types[@]}" ; do \
    619           $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) ; \
     763          $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $$PUBLIC_KEYSTORE -storepass $(PUBLIC_KEYSTORE_PASS) ; \
    620764        done ;
    621765        types=($(SIGNED_REPRODUCERS)) ; \
    622766        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) ; \
     767          $(BOOT_DIR)/bin/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) ; \
    624768        done ;
    625769        mkdir -p stamps && \
     
    628772stamps/netx-dist-tests-import-cert-to-public: stamps/exported-test-certs.stamp
    629773        types=($(SIGNED_REPRODUCERS)) ; \
     774        PUBLIC_KEYSTORE=$$XDG_CONFIG_HOME ; \
     775        if test "x$$PUBLIC_KEYSTORE" = x; then \
     776          PUBLIC_KEYSTORE=${HOME}/.config ; \
     777        fi ;\
     778        PUBLIC_KEYSTORE=$$PUBLIC_KEYSTORE/$(PUBLIC_KEYSTORE_STUB); \
     779        keystoredir=`dirname $(PUBLIC_KEYSTORE)`; \
     780        [ ! -d $(keystoredir) ] && mkdir -p $(keystoredir); \
    630781        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) ;\
     782          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) ;\
    632783        done ;
    633784        mkdir -p stamps && \
     
    636787netx-dist-tests-remove-cert-from-public:
    637788        -types=($(SIGNED_REPRODUCERS)) ; \
     789        PUBLIC_KEYSTORE=$$XDG_CONFIG_HOME ; \
     790        if test "x$$PUBLIC_KEYSTORE" = x; then \
     791          PUBLIC_KEYSTORE=${HOME}/.config ; \
     792        fi ;\
     793        PUBLIC_KEYSTORE=$$PUBLIC_KEYSTORE/$(PUBLIC_KEYSTORE_STUB); \
     794        keystoredir=`dirname $(PUBLIC_KEYSTORE)`; \
     795        [ ! -d $(keystoredir) ] && mkdir -p $(keystoredir); \
    638796        for which in "$${types[@]}" ; do \
    639           $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) ; \
     797          $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $$PUBLIC_KEYSTORE -storepass $(PUBLIC_KEYSTORE_PASS) ; \
    640798        done ;
    641799        -rm -rf stamps/netx-dist-tests-import-cert-to-public
    642800
    643 netx-dist-tests-source-files.txt:
    644         find $(JNLP_TESTS_ENGINE_SRCDIR) -name '*.java' | sort > $@
    645 
    646 stamps/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);
     801test-extensions-source-files.txt:
     802        find $(TEST_EXTENSIONS_SRCDIR) -name '*.java' | sort > $@
     803
     804stamps/test-extensions-compile.stamp: stamps/netx-dist.stamp stamps/plugin.stamp stamps/junit-jnlp-dist-dirs test-extensions-source-files.txt
     805        mkdir -p $(TEST_EXTENSIONS_DIR);
     806        mkdir -p $(NETX_TEST_DIR);
     807        ln -s $(TEST_EXTENSIONS_DIR) $(TEST_EXTENSIONS_COMPATIBILITY_SYMLINK);
    649808        $(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 && \
     809         -d $(TEST_EXTENSIONS_DIR) \
     810         -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(abs_top_builddir)/liveconnect/lib/classes.jar \
     811         @test-extensions-source-files.txt && \
    653812        mkdir -p stamps && \
    654813        touch $@
    655814
    656 netx-dist-tests-tests-source-files.txt:
    657         find $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) -name '*.java' | sort > $@
    658 
    659 stamps/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);
     815test-extensions-tests-source-files.txt:
     816        find $(TEST_EXTENSIONS_TESTS_SRCDIR) -name '*.java' | sort > $@
     817
     818stamps/test-extensions-tests-compile.stamp: stamps/junit-jnlp-dist-dirs test-extensions-tests-source-files.txt  stamps/test-extensions-compile.stamp
     819        mkdir -p $(TEST_EXTENSIONS_TESTS_DIR);
    661820        $(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 && \
     821         -d $(TEST_EXTENSIONS_TESTS_DIR) \
     822         -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(TEST_EXTENSIONS_DIR) \
     823         @test-extensions-tests-source-files.txt && \
    665824        mkdir -p stamps && \
    666825        touch $@
    667826
    668 stamps/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
     827stamps/compile-reproducers-testcases.stamp: stamps/netx-dist.stamp stamps/plugin.stamp stamps/junit-jnlp-dist-dirs \
     828 test-extensions-source-files.txt stamps/test-extensions-compile.stamp stamps/test-extensions-tests-compile.stamp
    670829        types=($(ALL_REPRODUCERS)); \
    671830        for which in "$${types[@]}" ; do \
     
    675834          for dir in "$${simpleReproducers[@]}" ; do \
    676835            $(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/"* ; \
     836              -d $(TEST_EXTENSIONS_TESTS_DIR) \
     837              -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(TEST_EXTENSIONS_DIR) \
     838            "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases/"*.java ; \
     839            if [ -d "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases" ]; then \
     840                pushd "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases" ; \
     841                NONJAVA_RESOURCES=`ls | grep -v ".*\\.java$$"` ; \
     842                if [ -n "$$NONJAVA_RESOURCES" ]; then \
     843                    cp $$NONJAVA_RESOURCES $(TEST_EXTENSIONS_TESTS_DIR)/ ; \
     844                fi ; \
     845                popd ; \
     846            fi ; \
    680847          done ; \
    681848        done ; \
     
    683850        touch $@
    684851
    685 stamps/netx-dist-tests-copy-resources.stamp: stamps/junit-jnlp-dist-dirs
     852stamps/copy-reproducers-resources.stamp: stamps/junit-jnlp-dist-dirs
    686853        types=($(ALL_REPRODUCERS)); \
    687854        for which in "$${types[@]}" ; do \
     
    690857          IFS="$$IFS_BACKUP" ; \
    691858          for dir in "$${simpleReproducers[@]}" ; do \
    692             cp -R "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/resources/"*  $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \
     859            cp -R "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/resources/"*  $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/ ; \
    693860          done ; \
    694861        done ; \
     
    698865$(REPRODUCERS_CLASS_NAMES): $(REPRODUCERS_CLASS_WHITELIST)
    699866        whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
    700         cd $(JNLP_TESTS_ENGINE_TESTS_DIR) ; \
     867        cd $(TEST_EXTENSIONS_TESTS_DIR) ; \
    701868        class_names= ; \
    702869        for test in `find -type f` ; do \
     
    720887        echo $$class_names > $(REPRODUCERS_CLASS_NAMES)
    721888
    722 stamps/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\
     889$(TESTS_DIR)/$(SOFTKILLER):
     890        cd  $(TESTS_SRCDIR)/$(SOFTKILLER); \
     891        $(MAKE) ; \
     892        mv $(SOFTKILLER) $(TESTS_DIR)/
     893
     894stamps/run-netx-dist-tests.stamp: stamps/netx-dist.stamp stamps/plugin.stamp launcher.build/$(javaws) \
     895 javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop launcher.build/$(policyeditor) policyeditor.desktop \
     896 stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public $(TESTS_DIR)/softkiller \
     897 stamps/test-extensions-compile.stamp stamps/compile-reproducers-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/copy-reproducers-resources.stamp\
    726898 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) stamps/process-custom-reproducers.stamp
    727         cd $(JNLP_TESTS_ENGINE_DIR) ; \
     899        cd $(TEST_EXTENSIONS_DIR) ; \
    728900        class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \
    729         CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(JNLP_TESTS_ENGINE_TESTS_DIR) \
     901        CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(TEST_EXTENSIONS_TESTS_DIR):$(TEST_EXTENSIONS_SRCDIR) ; \
    730902          $(BOOT_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \
    731          -Xbootclasspath:$(RUNTIME) CommandLine $$class_names
     903         -Xbootclasspath/a:$(RUNTIME):$$CLASSPATH CommandLine $$class_names
    732904if 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
     905        -$(XSLTPROC)  --stringparam logs logs_reproducers.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(TEST_EXTENSIONS_DIR)/tests-output.xml > $(TESTS_DIR)/index_reproducers.html
     906        -$(XSLTPROC)  $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(TEST_EXTENSIONS_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_reproducers.html
     907        -$(XSLTPROC)  $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/textreport.xsl $(TEST_EXTENSIONS_DIR)/tests-output.xml > $(TESTS_DIR)/summary_reproducers.txt
    735908endif
    736909        touch $@
    737910
    738911stamps/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\
     912 stamps/test-extensions-compile.stamp stamps/compile-reproducers-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/copy-reproducers-resources.stamp\
    740913 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES)
    741914        . $(abs_top_srcdir)/NEW_LINE_IFS ; \
     
    743916        IFS="$$IFS_BACKUP" ; \
    744917        for dir in "$${customReproducers[@]}" ; do \
    745           pushd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/$$dir/srcs; \
     918          pushd $(REPRODUCERS_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/$$dir/srcs; \
    746919          $(MAKE) prepare-reproducer ; \
    747920          popd ; \
     
    755928        IFS="$$IFS_BACKUP" ; \
    756929        for dir in "$${customReproducers[@]}" ; do \
    757           pushd $(JNLP_TESTS_SRCDIR)/custom/$$dir/srcs; \
     930          pushd $(REPRODUCERS_TESTS_SRCDIR)/custom/$$dir/srcs; \
    758931          $(MAKE) clean-reproducer ; \
    759932          popd ; \
     
    765938#icedtea-web plugin inside browser it is intended for testing purposes
    766939if ENABLE_PLUGIN
    767 stamps/user-links.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp \
     940stamps/user-links.stamp: stamps/netx-dist.stamp stamps/plugin.stamp \
    768941 launcher.build/$(javaws) stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)
    769942        if [ $(MOZILLA_FAMILY_TEST) ]  ; then  \
     
    795968        fi
    796969
    797 stamps/global-links.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \
     970stamps/global-links.stamp: stamps/netx-dist.stamp stamps/plugin.stamp launcher.build/$(javaws) \
    798971 stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)
    799972        if [ $(MOZILLA_FAMILY_TEST) ]  ; then  \
     
    8711044
    8721045stamps/netx-unit-tests-compile.stamp: stamps/netx.stamp \
    873  netx-unit-tests-source-files.txt stamps/netx-dist-tests-compile.stamp
     1046 netx-unit-tests-source-files.txt stamps/test-extensions-compile.stamp
    8741047        mkdir -p $(NETX_UNIT_TEST_DIR) && \
    8751048        $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
    8761049         -d $(NETX_UNIT_TEST_DIR) \
    877          -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \
     1050         -classpath $(JUNIT_JAR):$(abs_top_builddir)/liveconnect/lib/classes.jar:$(NETX_DIR)/lib/classes.jar:$(TEST_EXTENSIONS_DIR):$(TAGSOUP_JAR) \
    8781051         @netx-unit-tests-source-files.txt && \
    8791052        mkdir -p stamps && \
     
    9051078        cd $(NETX_UNIT_TEST_DIR) ; \
    9061079        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
     1080        CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(abs_top_builddir)/liveconnect/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(TEST_EXTENSIONS_DIR):.:$(TEST_EXTENSIONS_SRCDIR):$(TAGSOUP_JAR) ; \
     1081          $(BOOT_DIR)/bin/java -Xbootclasspath/a:$(RUNTIME):$$CLASSPATH CommandLine $$class_names
    9091082if 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
     1083        -$(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
     1084        -$(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(NETX_UNIT_TEST_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_unit.html
     1085        -$(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/textreport.xsl $(NETX_UNIT_TEST_DIR)/tests-output.xml > $(TESTS_DIR)/summary_unit.txt
    9121086endif
    9131087        mkdir -p stamps && \
     
    9251099        done ;\
    9261100        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 \
     1101        CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(abs_top_builddir)/liveconnect/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(TEST_EXTENSIONS_DIR):.:$(TEST_EXTENSIONS_SRCDIR) ; \
     1102        $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -Xbootclasspath/a:$(RUNTIME):$$CLASSPATH -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emmarun \
    9281103         -Dreport.html.out.encoding=UTF-8 \
    9291104         -raw \
     
    9401115         -cp $(BOOT_DIR)/jre/lib/resources.jar \
    9411116         -cp $(RHINO_RUNTIME) \
    942          -cp $(JNLP_TESTS_ENGINE_DIR) \
     1117         -cp $(TEST_EXTENSIONS_DIR) \
     1118         -cp $(TEST_EXTENSIONS_SRCDIR) \
     1119if HAVE_TAGSOUP
     1120         -cp $(TAGSOUP_JAR) \
     1121endif
    9431122         -cp . \
    9441123         -ix "-org.junit.*" \
     
    9551134        touch $@
    9561135
     1136stamps/compile-jacoco-operator.stamp: jacoco-operator-source-files.txt
     1137if WITH_JACOCO 
     1138        mkdir -p $(JACOCO_OPERATOR_DIR) && \
     1139        $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
     1140          -d $(JACOCO_OPERATOR_DIR) \
     1141          -classpath $(JACOCO_CLASSPATH) \
     1142          @jacoco-operator-source-files.txt ;
     1143else
     1144        echo "Sorry, jacoco coverage report generator  cant be compiled without jacoco installed. Try installing jacoco or specify with-jacoco value" ;
     1145        exit 5
     1146endif
     1147        touch $@
     1148
     1149
     1150#warning,  during this target tests.build/netx/unit/tests-output.xml is backup and rewriten (but not coresponding html file)
     1151#xml results run with jacoco agent however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored
     1152stamps/run-unit-test-code-coverage-jacoco.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR)  \
     1153 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)  $(UNIT_CLASS_NAMES) stamps/compile-jacoco-operator.stamp
     1154if WITH_JACOCO
     1155        filename=" " ; \
     1156        cd $(NETX_UNIT_TEST_SRCDIR) ; \
     1157        for file in `find . -type f \! -iname "*.java"`; do\
     1158                filename=`echo $$file `; \
     1159                cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \
     1160        done ; \
     1161        cd $(NETX_UNIT_TEST_DIR) ; \
     1162        for file in $(EMMA_MODIFIED_FILES) ; do \
     1163          mv $(NETX_UNIT_TEST_DIR)/$$file  $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \
     1164        done ;\
     1165        class_names=`cat $(UNIT_CLASS_NAMES)` ; \
     1166        CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(abs_top_builddir)/liveconnect/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(TEST_EXTENSIONS_DIR):$(JACOCO_CLASSPATH):.:$(TEST_EXTENSIONS_SRCDIR):$(TAGSOUP_JAR) ; \
     1167          $(BOOT_DIR)/bin/java $(JACOCO_AGENT_SWITCH) -Xbootclasspath/a:$(RUNTIME):$$CLASSPATH  CommandLine $$class_names ; \
     1168        for file in $(EMMA_MODIFIED_FILES) ; do \
     1169          mv $(NETX_UNIT_TEST_DIR)/$$file  $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_SUFFIX)" ; \
     1170          mv $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)"  $(NETX_UNIT_TEST_DIR)/$$file ; \
     1171        done ; \
     1172        $(JACOCO_OPERATOR_EXEC) \
     1173          report --die-soon --html-output coverage --xml-output coverage.xml --input-file jacoco.exec \
     1174          --input-srcs  $(NETX_SRCDIR) $(PLUGIN_SRCDIR)/java $(NETX_UNIT_TEST_SRCDIR) $(JUNIT_RUNNER_SRCDIR) $(TEST_EXTENSIONS_SRCDIR) \
     1175          --input-builds $(NETX_DIR)/lib/classes.jar $(abs_top_builddir)/liveconnect/lib/classes.jar $(NETX_UNIT_TEST_DIR) $(JUNIT_RUNNER_JAR)  $(TEST_EXTENSIONS_DIR) \
     1176          --title "IcedTea-Web unit-tests codecoverage" ;
     1177else
     1178        echo "Sorry, coverage report cant be run without jacoco installed. Try installing jacoco or specify with-jacoco value" ;
     1179        exit 5
     1180endif
     1181        touch $@
     1182
    9571183#warning,  during this target tests.build/netx/jnlp_testsengine/tests-output.xml is backup and rewriten (but not coresponding html file)
    9581184#xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored
     
    9611187        cd $(TESTS_DIR) ; \
    9621188        for file in $(EMMA_MODIFIED_FILES) ; do \
    963           mv $(JNLP_TESTS_ENGINE_DIR)/$$file $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \
     1189          mv $(TEST_EXTENSIONS_DIR)/$$file $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \
    9641190        done ;\
    9651191        echo "backuping javaws and netx.jar in $(DESTDIR)" ; \
     
    9891215            testcases_srcs[k]="-sp" ; \
    9901216            k=$$((k+1)) ; \
    991             testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
     1217            testcases_srcs[k]="$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
    9921218            k=$$((k+1)) ; \
    9931219            done ; \
    9941220          done ; \
    995         cd $(JNLP_TESTS_ENGINE_DIR) ; \
     1221        cd $(TEST_EXTENSIONS_DIR) ; \
    9961222        class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \
     1223        CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(abs_top_builddir)/liveconnect/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(TEST_EXTENSIONS_DIR):.:$(TEST_EXTENSIONS_SRCDIR) ; \
    9971224        $(BOOT_DIR)/bin/java  \
    9981225         $(EMMA_JAVA_ARGS) \
    9991226          $(REPRODUCERS_DPARAMETERS) \
    1000          -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) emmarun  \
     1227         -Xbootclasspath/a:$(RUNTIME):$$CLASSPATH -cp $(EMMA_JAR) emmarun  \
    10011228           -raw \
    10021229           -cp $(NETX_DIR)/lib/classes.jar \
     
    10081235           -cp $(RHINO_RUNTIME) \
    10091236           -cp . \
    1010            -cp $(JNLP_TESTS_ENGINE_TESTS_DIR) \
     1237           -cp $(TEST_EXTENSIONS_SRCDIR) \
     1238           -cp $(TEST_EXTENSIONS_TESTS_DIR) \
    10111239           -ix "-org.junit.*" \
    10121240           -ix "-junit.*" \
    10131241           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 ; \
     1242        mv $(TEST_EXTENSIONS_DIR)/coverage.ec $(TEST_EXTENSIONS_DIR)/coverageX.ec ; \
     1243        mv $(TEST_EXTENSIONS_DIR)/coverage.es $(TEST_EXTENSIONS_DIR)/coverageX.es ; \
    10161244        $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \
    10171245          -in $(TESTS_DIR)/coverage.em \
    1018           -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec \
    1019           -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \
     1246          -in $(TEST_EXTENSIONS_DIR)/coverageX.ec \
     1247          -in $(TEST_EXTENSIONS_DIR)/coverageX.es ; \
    10201248        $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR)  -Demma.report.html.out.encoding=UTF-8 emma report \
    10211249          -Dreport.html.out.encoding=UTF-8 \
    1022           -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es  \
     1250          -in $(TEST_EXTENSIONS_DIR)/coverage.es  \
    10231251          -sp $(NETX_SRCDIR) \
    10241252          -sp $(NETX_UNIT_TEST_SRCDIR) \
    10251253          -sp $(JUNIT_RUNNER_SRCDIR) \
    1026           -sp $(JNLP_TESTS_ENGINE_SRCDIR) \
    1027           -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \
     1254          -sp $(TEST_EXTENSIONS_SRCDIR) \
     1255          -sp $(TEST_EXTENSIONS_TESTS_SRCDIR) \
    10281256          -r html \
    10291257          -r xml \
     
    10351263        mv $$netx_backup $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \
    10361264        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 ; \
     1265          mv $(TEST_EXTENSIONS_DIR)/$$file  $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_SUFFIX)" ; \
     1266          mv $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)"  $(TEST_EXTENSIONS_DIR)/$$file ; \
    10391267        done ;\
    1040         rm $(JNLP_TESTS_ENGINE_DIR)/coverage.txt ;
     1268        rm $(TEST_EXTENSIONS_DIR)/coverage.txt ;
    10411269else
    10421270        echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ;
     
    10451273        touch $@
    10461274
    1047 run-test-code-coverage: run-unit-test-code-coverage run-reproducers-test-code-coverage
     1275$(COVERABLE_PLUGIN_DIR):
     1276        mkdir -p $(COVERABLE_PLUGIN_DIR);
     1277       
     1278$(COVERABLE_PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc
     1279        cd $(COVERABLE_PLUGIN_DIR) && \
     1280        $(CXX) $(CXXFLAGS) \
     1281           $(DEFS) $(VERSION_DEFS) \
     1282          -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
     1283          -DPLUGIN_NAME="\"IcedTea-Web Plugin with jacoco coverage agent\"" \
     1284          -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \
     1285          -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \
     1286          -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \
     1287          -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \
     1288          -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_COVERAGE_BOOTCLASSPATH) \
     1289          -DCOVERAGE_AGENT=$(JACOCO_AGENT_PLUGIN_SWITCH) \
     1290          $(GLIB_CFLAGS) \
     1291          $(MOZILLA_CFLAGS) \
     1292          -fvisibility=hidden \
     1293          -fPIC -o $@ -c $<
     1294
     1295$(COVERABLE_PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY): $(addprefix $(COVERABLE_PLUGIN_DIR)/,$(PLUGIN_OBJECTS))
     1296        cd $(COVERABLE_PLUGIN_DIR) && \
     1297        $(CXX) $(CXXFLAGS) \
     1298          $(PLUGIN_OBJECTS) \
     1299          $(GLIB_LIBS) \
     1300          $(MOZILLA_LIBS) \
     1301          -shared -o $@
     1302
     1303stamps/build-fake-plugin.stamp:  $(COVERABLE_PLUGIN_DIR)  $(addprefix $(PLUGIN_SRCDIR)/,$(PLUGIN_SRC)) $(addprefix $(COVERABLE_PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) stamps/liveconnect-dist.stamp  $(COVERABLE_PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY)
     1304        touch $@
     1305
     1306#warning,  during this target tests.build/netx/jnlp_testsengine/tests-output.xml is backup and rewriten (but not coresponding html file)
     1307#xml results run with jacoco agent, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored
     1308stamps/run-reproducers-test-code-coverage-jacoco.stamp: stamps/run-netx-dist-tests.stamp $(REPRODUCERS_CLASS_NAMES) \
     1309stamps/compile-jacoco-operator.stamp stamps/build-fake-plugin.stamp
     1310if WITH_JACOCO
     1311        cd $(TESTS_DIR) ; \
     1312        for file in $(EMMA_MODIFIED_FILES) ; do \
     1313          mv $(TEST_EXTENSIONS_DIR)/$$file $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \
     1314        done ;\
     1315        echo "backuping javaws in $(DESTDIR)$(bindir)" ; \
     1316        javaws_backup=$(DESTDIR)$(bindir)/javaws_backup ; \
     1317        mv $(DESTDIR)$(bindir)/javaws $$javaws_backup ;  \
     1318        echo "patching $(javaws)" ; \
     1319        nw_bootclasspath="$(LAUNCHER_BOOTCLASSPATH):$(JACOCO_CLASSPATH)" ; \
     1320        cat $$javaws_backup | sed "s|COMMAND.k.=\"..JAVA.\"|COMMAND[k]=\"\\$$\\{JAVA\\}\" ;  k=1 ; COMMAND[k]=$(JACOCO_AGENT_JAVAWS_SWITCH)|" | sed "s,$(LAUNCHER_BOOTCLASSPATH),$$nw_bootclasspath," > $(DESTDIR)$(bindir)/$(javaws) ; \
     1321        chmod 777 $(DESTDIR)$(bindir)/$(javaws) ; \
     1322        echo "backuping plugin in $(DESTDIR)/$(libdir)$(BUILT_PLUGIN_LIBRARY)" ; \
     1323        plugin_backup=$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)_backup ; \
     1324        mv $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $$plugin_backup ;  \
     1325        echo "fakeing plugin" ; \
     1326        cp $(COVERABLE_PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) ; \
     1327        testcases_srcs=( ) ; \
     1328        k=0 ; \
     1329        types=($(ALL_REPRODUCERS)); \
     1330        for which in "$${types[@]}" ; do \
     1331          . $(abs_top_srcdir)/NEW_LINE_IFS ; \
     1332          simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
     1333          IFS="$$IFS_BACKUP" ; \
     1334          for dir in "$${simpleReproducers[@]}" ; do \
     1335            testcases_srcs[k]="$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
     1336            k=$$((k+1)) ; \
     1337            done ; \
     1338          done ; \
     1339        cd $(TEST_EXTENSIONS_DIR) ; \
     1340        class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \
     1341        CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(TEST_EXTENSIONS_DIR):$(JACOCO_CLASSPATH):$(TEST_EXTENSIONS_TESTS_DIR):$(TEST_EXTENSIONS_SRCDIR) ; \
     1342          $(BOOT_DIR)/bin/java $(JACOCO_AGENT_SWITCH) $(REPRODUCERS_DPARAMETERS) \
     1343         -Xbootclasspath/a:$(RUNTIME):$$CLASSPATH CommandLine $$class_names ; \
     1344        if [ -f $(JACOCO_JAVAWS_RESULTS) ] ; then \
     1345          jacoco_javaws_results=$(JACOCO_JAVAWS_RESULTS) ; \
     1346          $(JACOCO_OPERATOR_EXEC) \
     1347            report --die-soon --html-output coverage-javaws --xml-output coverage-javaws.xml --input-file $(JACOCO_JAVAWS_RESULTS) \
     1348            --input-srcs  $(NETX_SRCDIR) \
     1349            --input-builds $(NETX_DIR)/lib/classes.jar \
     1350            --title "IcedTea-Web javaws reproducers codecoverage" ; \
     1351        fi; \
     1352        if [ -f $(JACOCO_PLUGIN_RESULTS) ] ; then \
     1353          jacoco_plugin_results=$(JACOCO_PLUGIN_RESULTS) ; \
     1354          $(JACOCO_OPERATOR_EXEC) \
     1355            report --die-soon --html-output coverage-plugin --xml-output coverage-plugin.xml --input-file $(JACOCO_PLUGIN_RESULTS) \
     1356            --input-srcs  $(NETX_SRCDIR) $(PLUGIN_SRCDIR)/java \
     1357            --input-builds $(NETX_DIR)/lib/classes.jar $(abs_top_builddir)/liveconnect/lib/classes.jar \
     1358            --title "IcedTea-Web plugin reproducers codecoverage" ; \
     1359        fi; \
     1360        $(JACOCO_OPERATOR_EXEC) \
     1361          merge --die-soon --input-files jacoco.exec $$jacoco_javaws_results $$jacoco_plugin_results  --output-file jacoco-merged-reproducers.exec ; \
     1362        $(JACOCO_OPERATOR_EXEC) \
     1363          report --html-output coverage --xml-output coverage.xml --input-file jacoco-merged-reproducers.exec \
     1364          --input-srcs  $(NETX_SRCDIR) $(PLUGIN_SRCDIR)/java  $(JUNIT_RUNNER_SRCDIR) $(TEST_EXTENSIONS_SRCDIR) $(TEST_EXTENSIONS_TESTS_SRCDIR) "$${testcases_srcs[@]}" \
     1365          --input-builds $(NETX_DIR)/lib/classes.jar $(abs_top_builddir)/liveconnect/lib/classes.jar  $(JUNIT_RUNNER_JAR)  $(TEST_EXTENSIONS_DIR) $(TEST_EXTENSIONS_TESTS_DIR) \
     1366          --title "IcedTea-Web reproducers-tests codecoverage" ; \
     1367        echo "restoring javaws in $(DESTDIR)$(bindir)" ; \
     1368        rm -f $(DESTDIR)$(bindir)/$(javaws);  \
     1369        mv $$javaws_backup $(DESTDIR)$(bindir)/$(javaws);  \
     1370        echo "restoring  plugin in $(DESTDIR)/$(libdir)$(BUILT_PLUGIN_LIBRARY)" ; \
     1371        mv $$plugin_backup $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) ; \
     1372        for file in $(EMMA_MODIFIED_FILES) ; do \
     1373          mv $(TEST_EXTENSIONS_DIR)/$$file  $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_SUFFIX)" ; \
     1374          mv $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)"  $(TEST_EXTENSIONS_DIR)/$$file ; \
     1375        done ;
     1376else
     1377        echo "Sorry, coverage report cant be run without jacoco installed. Try installing jacoco or specify with-jacoco value" ;
     1378        exit 5
     1379endif
     1380        touch $@
     1381
     1382run-test-code-coverage-jacoco: stamps/run-unit-test-code-coverage-jacoco.stamp stamps/run-reproducers-test-code-coverage-jacoco.stamp
     1383if WITH_JACOCO
     1384        cd $(TESTS_DIR) ; \
     1385        k=0 ; \
     1386        types=($(ALL_REPRODUCERS)); \
     1387        for which in "$${types[@]}" ; do \
     1388          . $(abs_top_srcdir)/NEW_LINE_IFS ; \
     1389          simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
     1390          IFS="$$IFS_BACKUP" ; \
     1391          for dir in "$${simpleReproducers[@]}" ; do \
     1392            testcases_srcs[k]="$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
     1393            k=$$((k+1)) ; \
     1394            done ; \
     1395          done ; \
     1396        class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \
     1397        $(JACOCO_OPERATOR_EXEC) \
     1398          merge --die-soon --input-files $(TEST_EXTENSIONS_DIR)/jacoco-merged-reproducers.exec $(NETX_UNIT_TEST_DIR)/jacoco.exec  --output-file  jacoco-merged.exec; \
     1399        $(JACOCO_OPERATOR_EXEC) \
     1400          report --html-output coverage --xml-output coverage.xml --input-file jacoco-merged.exec \
     1401          --input-srcs  $(NETX_SRCDIR) $(PLUGIN_SRCDIR)/java  $(JUNIT_RUNNER_SRCDIR) $(TEST_EXTENSIONS_SRCDIR) $(TEST_EXTENSIONS_TESTS_SRCDIR) "$${testcases_srcs[@]}" \
     1402          --input-builds $(NETX_DIR)/lib/classes.jar $(abs_top_builddir)/liveconnect/lib/classes.jar  $(JUNIT_RUNNER_JAR)  $(TEST_EXTENSIONS_DIR) $(TEST_EXTENSIONS_TESTS_DIR) \
     1403          --input-srcs  $(NETX_UNIT_TEST_SRCDIR)  \
     1404          --input-builds $(NETX_UNIT_TEST_DIR)  \
     1405          --title "IcedTea-Web complete codecoverage" ;
     1406else
     1407        echo "Sorry, coverage report cant be run without jacoco installed. Try installing jacoco or specify with-jacoco value" ;
     1408        exit 5
     1409endif
     1410
     1411run-test-code-coverage: stamps/run-unit-test-code-coverage.stamps stamps/run-reproducers-test-code-coverage.stamps
    10481412if WITH_EMMA
    10491413        cd $(TESTS_DIR) ; \
     
    10571421            testcases_srcs[k]="-sp" ; \
    10581422            k=$$((k+1)) ; \
    1059             testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
     1423            testcases_srcs[k]="$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
    10601424            k=$$((k+1)) ; \
    10611425          done ; \
     
    10631427        $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \
    10641428         -in $(NETX_UNIT_TEST_DIR)/coverage.es \
    1065          -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \
     1429         -in $(TEST_EXTENSIONS_DIR)/coverage.es ; \
    10661430        $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR)  -Demma.report.html.out.encoding=UTF-8 emma report \
    10671431         -Dreport.html.out.encoding=UTF-8 \
     
    10711435         -sp $(NETX_UNIT_TEST_SRCDIR) \
    10721436         -sp $(JUNIT_RUNNER_SRCDIR) \
    1073          -sp $(JNLP_TESTS_ENGINE_SRCDIR) \
    1074          -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \
     1437         -sp $(TEST_EXTENSIONS_SRCDIR) \
     1438         -sp $(TEST_EXTENSIONS_TESTS_SRCDIR) \
    10751439         "$${testcases_srcs[@]}" \
    10761440         -r html \
     
    10811445endif
    10821446
    1083 clean-netx-tests: clean-netx-unit-tests clean-junit-runner clean-netx-dist-tests clean-test-code-coverage
     1447run-test-server-on-44321: stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \
     1448 stamps/test-extensions-compile.stamp stamps/compile-reproducers-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/copy-reproducers-resources.stamp
     1449        cd $(TEST_EXTENSIONS_DIR) ; \
     1450        CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(TEST_EXTENSIONS_TESTS_DIR) ; \
     1451          $(BOOT_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \
     1452         -Xbootclasspath/a:$(RUNTIME):$$CLASSPATH net.sourceforge.jnlp.ServerAccess
     1453
     1454run-test-server-on-random-port: stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \
     1455 stamps/test-extensions-compile.stamp stamps/compile-reproducers-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/copy-reproducers-resources.stamp
     1456        cd $(TEST_EXTENSIONS_DIR) ; \
     1457        CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(TEST_EXTENSIONS_TESTS_DIR) ; \
     1458          $(BOOT_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \
     1459         -Xbootclasspath/a:$(RUNTIME):$$CLASSPATH net.sourceforge.jnlp.ServerAccess randomport
     1460
     1461clean-netx-tests: clean-netx-unit-tests clean-junit-runner clean-netx-dist-tests clean-test-code-coverage-jacoco clean-test-code-coverage
    10841462        if [ -e $(TESTS_DIR)/netx ]; then \
    10851463          rmdir $(TESTS_DIR)/netx ; \
     
    11021480        rm -rf  $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/
    11031481        rm -f  $(TESTS_DIR)/*.html
    1104 
    1105 clean-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)
     1482        rm -f $(TESTS_DIR)/summary_unit.txt
     1483        rm -f $(TESTS_DIR)/summary_reproducers.txt
     1484
     1485clean-$(SOFTKILLER):
     1486        rm -f $(TESTS_DIR)/softkiller
     1487 
     1488clean-netx-dist-tests: clean_tests_reports netx-dist-tests-remove-cert-from-public clean-custom-reproducers clean-$(SOFTKILLER)
     1489        rm -f test-extensions-source-files.txt
     1490        rm -f test-extensions-tests-source-files.txt
     1491        rm -f $(TEST_EXTENSIONS_COMPATIBILITY_SYMLINK)
     1492        rm -rf $(TEST_EXTENSIONS_TESTS_DIR)
     1493        rm -rf $(REPRODUCERS_BUILD_DIR)
     1494        rm -rf $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)
     1495        rm -rf $(TEST_EXTENSIONS_DIR)
    11111496        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
     1497        rm -f stamps/test-extensions-compile.stamp
     1498        rm -f stamps/test-extensions-tests-compile.stamp
    11141499        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
     1500        rm -f stamps/compile-reproducers-testcases.stamp
     1501        rm -f stamps/copy-reproducers-resources.stamp
    11171502        rm -f stamps/netx-dist-tests-sign-some-reproducers.stamp
    11181503        rm -f stamps/change-dots-to-paths.stamp
     
    11441529clean-reproducers-test-code-coverage:
    11451530        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 ; \
     1531         rm -rf $(TEST_EXTENSIONS_DIR)/coverage ; \
     1532         rm -f $(TEST_EXTENSIONS_DIR)/coverage.xml ; \
     1533         rm -f $(TEST_EXTENSIONS_DIR)/coverage.es ; \
     1534         rm -f $(TEST_EXTENSIONS_DIR)/tests-output_withEmma.xml ; \
    11501535         rm -f stamps/run-reproducers-test-code-coverage.stamp ; \
    11511536        fi
     
    11581543          rm -f $(TESTS_DIR)/coverage.em ; \
    11591544        fi
     1545
     1546clean-unit-test-code-coverage-jacoco:
     1547        if [ -e stamps/run-unit-test-code-coverage-jacoco.stamp ]; then \
     1548          rm -rf $(NETX_UNIT_TEST_DIR)/coverage ; \
     1549          rm -f $(NETX_UNIT_TEST_DIR)/coverage.xml ; \
     1550          rm -f $(NETX_UNIT_TEST_DIR)/jacoco.exec ; \
     1551          rm -f $(NETX_UNIT_TEST_DIR)/tests-output_withEmma.xml ; \
     1552          rm -f stamps/run-unit-test-code-coverage-jacoco.stamp ; \
     1553        fi     
     1554
     1555clean-reproducers-test-code-coverage-jacoco:
     1556        if [ -e stamps/run-reproducers-test-code-coverage-jacoco.stamp ]; then \
     1557         rm -rf $(TEST_EXTENSIONS_DIR)/coverage-javaws ; \
     1558         rm -f $(TEST_EXTENSIONS_DIR)/coverage-javaws.xml ; \
     1559         rm -f $(TEST_EXTENSIONS_DIR)/jacoco_javaws.exec ; \
     1560         rm -rf $(TEST_EXTENSIONS_DIR)/coverage-plugin ; \
     1561         rm -f $(TEST_EXTENSIONS_DIR)/coverage-plugin.xml ; \
     1562         rm -f $(TEST_EXTENSIONS_DIR)/jacoco_plugin.exec ; \
     1563         rm -rf $(TEST_EXTENSIONS_DIR)/coverage ; \
     1564         rm -f $(TEST_EXTENSIONS_DIR)/coverage.xml ; \
     1565         rm -f $(TEST_EXTENSIONS_DIR)/jacoco-merged-reproducers.exec ; \
     1566         rm -f $(TEST_EXTENSIONS_DIR)/tests-output_withEmma.xml ; \
     1567         rm -f stamps/run-reproducers-test-code-coverage-jacoco.stamp ; \
     1568        fi
     1569
     1570clean-test-code-coverage-jacoco: clean-unit-test-code-coverage-jacoco clean-reproducers-test-code-coverage-jacoco clean-test-code-coverage-tools-jacoco
     1571        if [ -e $(TESTS_DIR)/coverage.xml ]; then \
     1572          rm -rf $(TESTS_DIR)/coverage  ; \
     1573          rm -f $(TESTS_DIR)/jacoco-merged.exec; \
     1574        fi
     1575
     1576clean-test-code-coverage-tools-jacoco:
     1577        rm -rf  $(JACOCO_OPERATOR_DIR)
     1578        rm -rf  $(COVERABLE_PLUGIN_DIR)
     1579        rm -f stamps/compile-jacoco-operator.stamp;
     1580        rm -f jacoco-operator-source-files.txt
     1581        rm -f stamps/build-fake-plugin.stamp
    11601582
    11611583
     
    12781700
    12791701run-reproducers-test-code-coverage: stamps/run-reproducers-test-code-coverage.stamp
     1702
     1703run-unit-test-code-coverage-jacoco: stamps/run-unit-test-code-coverage-jacoco.stamp
     1704
     1705run-reproducers-test-code-coverage-jacoco: stamps/run-reproducers-test-code-coverage-jacoco.stamp
Note: See TracChangeset for help on using the changeset viewer.