Mercurial > hg > release > icedtea-web-1.7
view Makefile.am @ 1537:5de5c1d74ffb
* Makefile.am: removed dual slash between destdir and modularjdk, included CPPUNIT_FRAMEWORK_CLEAN_IMPL with, clean-unittest++-impl/plaeholder to avoid fail of unknown target when native plugin is gone.
author | Jiri Vanek <jvanek@redhat.com> |
---|---|
date | Tue, 05 Mar 2019 14:17:26 +0100 |
parents | 53e1b75c0e25 |
children | 67673780b97b |
line wrap: on
line source
if WINDOWS export CLASSPATH_SEPARATOR = ; else export CLASSPATH_SEPARATOR = : endif # Functions to compose path/classpath EMPTY := SPACE := $(EMPTY) $(EMPTY) define joinsegments $(subst $(SPACE),$(CLASSPATH_SEPARATOR),$(strip $1)) endef define composeclasspath $(if $(call joinsegments,$1),-classpath "$(call joinsegments,$1)",) endef # Source directories if WINDOWS export TOP_BUILD_DIR := $(shell cygpath -p -m "$(abs_top_builddir)") export TOP_SRC_DIR := $(shell cygpath -p -m "$(abs_top_srcdir)") export prefix := $(shell cygpath -p -m "$(prefix)") export CPA="-v" else export TOP_BUILD_DIR = $(abs_top_builddir) export TOP_SRC_DIR = $(abs_top_srcdir) export CPA="-av" WIN_LAUNCHERS= endif MODULARJDK_ARGS_FILE=itw-modularjdk.args if WINDOWS_OR_INCLUDE_BATS WIN_LAUNCHERS=launcher.build/$(javaws).bat launcher.build/$(itweb_settings).bat launcher.build/$(policyeditor).bat else WIN_LAUNCHERS= endif if ENABLE_SHELL_LAUNCHERS SHELL_LAUNCHERS=$(WIN_LAUNCHERS) launcher.build/$(MODULARJDK_ARGS_FILE) launcher.build/$(javaws).sh launcher.build/$(itweb_settings).sh launcher.build/$(policyeditor).sh else SHELL_LAUNCHERS= endif if ENABLE_NATIVE_LAUNCHERS NATIVE_LAUNCHERS=launcher.build/$(MODULARJDK_ARGS_FILE) launcher.build/$(javaws) launcher.build/$(itweb_settings) launcher.build/$(policyeditor) DESKTOP_SUFFIX= else NATIVE_LAUNCHERS= DESKTOP_SUFFIX=.sh endif # javaws is program name, JAVAWS is used executable name. # ITW 1.7 always do javaws and javaws.sh JAVAWS=$(javaws)$(DESKTOP_SUFFIX) ITWEB_SETTINGS=$(itweb_settings)$(DESKTOP_SUFFIX) POLICYEDITOR=$(policyeditor)$(DESKTOP_SUFFIX) LAUNCHERS=$(NATIVE_LAUNCHERS) $(SHELL_LAUNCHERS) DESKTOP_FILES=javaws.desktop itweb-settings.desktop policyeditor.desktop DESKTOP_IN_FILES=javaws.desktop.in itweb-settings.desktop.in policyeditor.desktop.in export WIN_INSTALLER_DIR = $(TOP_BUILD_DIR)/win-installer.build export WIN_INSTALLER_SRC_DIR = $(TOP_SRC_DIR)/win-installer export NETX_DIR = $(TOP_BUILD_DIR)/netx.build export DOCS_DIR=$(TOP_BUILD_DIR)/icedtea-web-docs/$(FULL_VERSION) export NETX_SRCDIR = $(TOP_SRC_DIR)/netx export NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources export ICONS_DEST_DIR=$(DESTDIR)$(datadir)/pixmaps export BASH_CMPL_DEST_DIR=$(DESTDIR)@bashcompdir@ export WIN_ALL_DEPS=$(DESTDIR)$(prefix)/win-deps-all export WIN_RUN_DEPS=$(DESTDIR)$(prefix)/win-deps-runtime export LINUX_BIN_DIST_DEPS=$(DESTDIR)$(prefix)/linux-deps-runtime export REPORT_STYLES_DIRNAME=report-styles export TESTS_SRCDIR=$(TOP_SRC_DIR)/tests export TESTS_DIR=$(TOP_BUILD_DIR)/tests.build export NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit export NETX_TEST_DIR=$(TESTS_DIR)/netx export NETX_UNIT_TEST_DIR=$(NETX_TEST_DIR)/unit export JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner export JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner export JACOCO_OPERATOR_DIR=$(TESTS_DIR)/jacoco-operator export JACOCO_OPERATOR_SRCDIR=$(TESTS_SRCDIR)/jacoco-operator export TEST_EXTENSIONS_SRCDIR=$(TESTS_SRCDIR)/test-extensions export TEST_EXTENSIONS_TESTS_SRCDIR=$(TESTS_SRCDIR)/test-extensions-tests export REPRODUCERS_TESTS_SRCDIR=$(TESTS_SRCDIR)/reproducers export TEST_EXTENSIONS_DIR=$(TESTS_DIR)/test-extensions export CPP_UNITTEST_FRAMEWORK_SRCDIR=$(TESTS_SRCDIR)/UnitTest++ export CPP_UNITTEST_SRCDIR=$(TESTS_SRCDIR)/cpp-unit-tests export CPP_UNITTEST_DIR=$(TESTS_DIR)/cpp-unit-tests export TEST_EXTENSIONS_COMPATIBILITY_SYMLINK=$(TESTS_DIR)/netx/jnlp_testsengine export TEST_EXTENSIONS_TESTS_DIR=$(TESTS_DIR)/test-extensions-tests export REPRODUCERS_TESTS_SERVER_DEPLOYDIR=$(TESTS_DIR)/reproducers_test_server_deploydir export REPRODUCERS_BUILD_DIR=$(TESTS_DIR)/reproducers.classes export PRIVATE_KEYSTORE_NAME=teststore.ks export PRIVATE_KEYSTORE_PASS=123456789 export EXPORTED_TEST_CERT_PREFIX=icedteatests export EXPORTED_TEST_CERT_SUFFIX=crt export TEST_CERT_ALIAS=icedteaweb export PUBLIC_KEYSTORE_STUB=icedtea-web/security/trusted.certs export PUBLIC_KEYSTORE_PASS=changeit export JUNIT_RUNNER_JAR=$(TOP_BUILD_DIR)/junit-runner.jar export UNIT_CLASS_NAMES = $(TOP_BUILD_DIR)/unit_class_names export REPRODUCERS_CLASS_NAMES = $(TOP_BUILD_DIR)/reproducers_class_names export REPRODUCERS_CLASS_WHITELIST = $(TOP_SRC_DIR)/netx-dist-tests-whitelist export COVERAGE_JAVA_ARGS=-Xmx2G export COVERAGE_MODIFIED_FILES=tests-output.xml ServerAccess-logs.xml stdout.log stderr.log all.log export EMMA_BACKUP_SUFFIX=_noEmma export EMMA_SUFFIX=_withEmma export META_MANIFEST = META-INF/MANIFEST.MF export SIGNED_REPRODUCERS=signed signed2 export SIMPLE_REPRODUCERS=simple export CUSTOM_REPRODUCERS=custom export ALL_NONCUSTOM_REPRODUCERS=$(SIMPLE_REPRODUCERS) $(SIGNED_REPRODUCERS) export ALL_REPRODUCERS=$(ALL_NONCUSTOM_REPRODUCERS) $(CUSTOM_REPRODUCERS) export JACOCO_PATH:=$(shell dirname "$(JACOCO_JAR)") export JACOCO_AGENT=org.jacoco.agent.jar export JACOCO_ANT=org.jacoco.ant.jar export JACOCO_REPORT=org.jacoco.report.jar export JACOCO_AGENTRT=org.jacoco.agent.rt.jar export JACOCO_CORE=org.jacoco.core.jar export JACOCO_JAVAWS_RESULTS=$(TEST_EXTENSIONS_DIR)/jacoco_javaws.exec export JACOCO_PLUGIN_RESULTS=$(TEST_EXTENSIONS_DIR)/jacoco_plugin.exec # space separated fragments for composeclasspath export JACOCO_CLASSPATH=$(JACOCO_PATH)/$(JACOCO_CORE) $(JACOCO_PATH)/$(JACOCO_AGENT) $(JACOCO_PATH)/$(JACOCO_REPORT) $(JACOCO_PATH)/$(JACOCO_AGENTRT) $(JACOCO_PATH)/$(JACOCO_ANT) $(ASM_JAR) export JACOCO_AGENT_SWITCH_BODY=-javaagent:$(JACOCO_PATH)/$(JACOCO_AGENTRT) export JACOCO_BASE_EXCLUDE=org.junit.*:junit.* export JACOCO_ADVANCED_EXCLUDE=:*jacoco*:java.lang.*:java.reflect.*:java.util.*:sun.reflect.*:javax.swing.* export JACOCO_AGENT_SWITCH="$(JACOCO_AGENT_SWITCH_BODY)=excludes=$(JACOCO_BASE_EXCLUDE)$(JACOCO_ADVANCED_EXCLUDE),inclbootstrapclasses=true" export JACOCO_AGENT_JAVAWS_SWITCH=\"$(JACOCO_AGENT_SWITCH),destfile=$(JACOCO_JAVAWS_RESULTS)\" export JACOCO_AGENT_PLUGIN_SWITCH=\"$(JACOCO_AGENT_SWITCH),destfile=$(JACOCO_PLUGIN_RESULTS)\" export JACOCO_OPERATOR_EXEC=$(SYSTEM_JRE_DIR)/bin/java $(COVERAGE_JAVA_ARGS) -cp $(call joinsegments, $(JACOCO_OPERATOR_DIR) $(JACOCO_CLASSPATH) .) org.jacoco.operator.Main # linking variables export PLUGIN_LINK_NAME=libjavaplugin.so export MOZILLA_LOCAL_PLUGINDIR=${HOME}/.mozilla/plugins export MOZILLA_GLOBAL64_PLUGINDIR=/usr/lib64/mozilla/plugins export MOZILLA_GLOBAL32_PLUGINDIR=/usr/lib/mozilla/plugins export OPERA_GLOBAL64_PLUGINDIR=/usr/lib64/opera/plugins export OPERA_GLOBAL32_PLUGINDIR=/usr/lib/opera/plugins export BUILT_PLUGIN_LIBRARY=IcedTeaPlugin.so export CPP_UNITTEST_FRAMEWORK_BUILDDIR=$(CPP_UNITTEST_DIR)/UnitTest++ export CPP_UNITTEST_FRAMEWORK_LIB_NAME=libUnitTest++.a export CPP_UNITTEST_FRAMEWORK_LIB=$(CPP_UNITTEST_FRAMEWORK_BUILDDIR)/$(CPP_UNITTEST_FRAMEWORK_LIB_NAME) export CPP_UNITTEST_EXECUTABLE=$(CPP_UNITTEST_DIR)/IcedTeaPluginUnitTests export MOZILLA_LOCAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origU export MOZILLA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origMG export OPERA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origOG export MOZILLA_FAMILY_TEST= "$(FIREFOX)" != "" -o "$(CHROMIUM)" != "" -o "$(CHROME)" != "" -o "$(MIDORI)" != "" -o "$(EPIPHANY)" != "" # end of linking variables # Build directories # note this is *space* separated list, as composeclasspath is called on them in classpath usage JUNIT_RUNTIME:=$(JUNIT_JAR) $(HAMCREST_JAR) # support for javaws -html needs plugin.jar on classpath. rest of javaws works of course without it. # plugin jar is split into plugin.jar and jsobject.jar so it can run with modular (9+) jdk if ENABLE_PLUGINJAR PLUGIN_JAR=$(datadir)/$(PACKAGE_NAME)/plugin.jar JSOBJECT_JAR=$(datadir)/$(PACKAGE_NAME)/jsobject.jar endif NETX_JAR=$(datadir)/$(PACKAGE_NAME)/netx.jar SPLASH_PNG=$(datadir)/$(PACKAGE_NAME)/javaws_splash.png MODULARJDK_ARGS_LOCATION=$(DESTDIR)$(MODULARJDK_ARGS_DIR)/$(MODULARJDK_ARGS_FILE) # Conditional defintions if HAVE_TAGSOUP if HAVE_MSLINKS NETX_EXCLUDE_SRCS= else NETX_EXCLUDE_SRCS=net.sourceforge.jnlp.util.WindowsDesktopEntry.java endif else if HAVE_MSLINKS NETX_EXCLUDE_SRCS=net.sourceforge.jnlp.MalformedXMLParser.java else NETX_EXCLUDE_SRCS=net.sourceforge.jnlp.MalformedXMLParser.java net.sourceforge.jnlp.util.WindowsDesktopEntry.java endif endif # Flags export IT_CFLAGS=$(CFLAGS) $(ARCHFLAG) export IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE) export IT_LANGUAGE_SOURCE_VERSION=8 export IT_CLASS_TARGET_VERSION=8 export IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION) # # We need the jars in bootclasspath for a couple of reasons # - we use classes (in the sun.applet package) loaded by the bootclassloader # using another classloader to load classes from the same package causes an # IllegalAccessException # - we want full privileges # export UNIFIED_CLASSPATH_SEGMENTS=$(NETX_JAR) $(PLUGIN_JAR) $(JSOBJECT_JAR) $(RHINO_JAR) $(TAGSOUP_JAR) $(MSLINKS_JAR) export UNIFIED_JACOCO_CLASSPATH_SEGMENTS=$(UNIFIED_CLASSPATH_SEGMENTS) $(JACOCO_CLASSPATH) export UNIFIED_CLASSPATH=$(call joinsegments, $(UNIFIED_CLASSPATH_SEGMENTS)) export UNIFIED_JACOCO_CLASSPATH=$(call joinsegments, $(UNIFIED_JACOCO_CLASSPATH_SEGMENTS)) export UNIFIED_BOOTCLASSPATH=-Xbootclasspath/a:$(UNIFIED_CLASSPATH) # note javaws, itwebsettings and policyeditor (== LAUNCHER_BOOTCLASSPATH) must be always able to compile and run *without* plugin export LAUNCHER_BOOTCLASSPATH=$(UNIFIED_BOOTCLASSPATH) export PLUGIN_BOOTCLASSPATH='"$(UNIFIED_BOOTCLASSPATH)"' export PLUGIN_COVERAGE_BOOTCLASSPATH='"-Xbootclasspath/a:$(UNIFIED_JACOCO_CLASSPATH)"' # Fake update version to work with the Deployment Toolkit script used by Oracle # http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html export JDK_UPDATE_VERSION=50 # Sources list export PLUGIN_TEST_SRCS = $(TOP_SRC_DIR)/plugin/tests/LiveConnect/*.java export NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \ net.sourceforge.jnlp.about \ net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \ net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \ net.sourceforge.jnlp.runtime net.sourceforge.jnlp.security \ net.sourceforge.jnlp.security.viewer net.sourceforge.jnlp.services \ net.sourceforge.jnlp.tools net.sourceforge.jnlp.util \ sun.applet if ENABLE_PLUGINJAR export ICEDTEAPLUGIN_TARGET = stamps/liveconnect-dist.stamp export PLUGIN_DIR=$(TOP_BUILD_DIR)/plugin/icedteanp export PLUGIN_SRCDIR=$(TOP_SRC_DIR)/plugin/icedteanp export JSOBJECT_DIRS = netscape export SUN_APPLET_DIRS = sun/applet export PLUGIN_PKGS = sun.applet netscape.security netscape.javascript export LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java export LIVECONNECT_DIR = $(JSOBJECT_DIRS) $(SUN_APPLET_DIRS) endif #overriding ICEDTEAPLUGIN_TARGET if ENABLE_NATIVE_PLUGIN export ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) stamps/liveconnect-dist.stamp export ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin #this is for plugin testcoverage export COVERABLE_PLUGIN_DIR=$(TESTS_DIR)/icedteanp-build-with-jacoco endif if ENABLE_NATIVE_PLUGIN CPPUNIT_IMPL = run-cpp-unit-tests-impl CPPUNIT_CLEAN_IMPL = clean-cpp-unit-tests-impl CPPUNIT_FRAMEWORK_CLEAN_IMPL = clean-unittest++-impl else CPPUNIT_IMPL = run-cpp-unit-tests-impl-placeholder CPPUNIT_CLEAN_IMPL = clean-cpp-unit-tests-placeholder CPPUNIT_FRAMEWORK_CLEAN_IMPL = clean-unittest++-placeholder endif if CP_SUPPORTS_REFLINK REFLINK = --reflink=auto endif if SRC_DIR_HARDLINKABLE SRC_DIR_LINK = -l else SRC_DIR_LINK = $(REFLINK) endif if ENABLE_DOCS JAVADOC_OPTS=-use -keywords -encoding UTF-8 -splitIndex \ -bottom '<font size="-1"> <a href="http://icedtea.classpath.org/bugzilla">Submit a bug or feature</a></font>' if HAVE_JAVA9 JAVADOC_OPTS+=-source $(IT_LANGUAGE_SOURCE_VERSION) endif if JAVADOC_SUPPORTS_J_OPTIONS JAVADOC_MEM_OPTS=-J-Xmx1024m -J-Xms128m endif endif # if you create netx-dist-tests-whitelist in top directory, and place "expr match" regexes # (separate by one of IFS's values (most commonly space)) into it, you can control reproducers which compile or/xor run. # if you need declare space in your regex, use \s as described in "expr match" documentation ECHO_WHITELIST=if [ -f $(REPRODUCERS_CLASS_WHITELIST) ] ; then cat $(REPRODUCERS_CLASS_WHITELIST) ; else echo ".*" ; fi if ENABLE_WHITELIST COMPILE_WHITELIST_FILTER=`$(ECHO_WHITELIST)` RUN_WHITELIST_FILTER=.* else COMPILE_WHITELIST_FILTER=.* RUN_WHITELIST_FILTER=`$(ECHO_WHITELIST)` endif if WITH_RHINO RHINO_TESTS=stamps/check-pac-functions.stamp else RHINO_TESTS= endif if WITH_JUNIT JUNIT_TESTS=stamps/run-netx-unit-tests.stamp else JUNIT_TESTS= endif export PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION) export EXTRA_DIST = $(MODULARJDK_ARGS_FILE) $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png $(DESKTOP_IN_FILES) $(top_srcdir)/completion \ launcher $(top_srcdir)/tests html-gen.sh NEW_LINE_IFS $(top_srcdir)/metadata.in $(top_srcdir)/win-installer # reproducers `D`shortcuts export DTEST_SERVER=-Dtest.server.dir=$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR) export DJAVAWS_BUILD=-Djavaws.build.bin=$(DESTDIR)$(bindir)/$(JAVAWS) export DBROWSERS=-Dused.browsers=$(FIREFOX):$(CHROMIUM):$(CHROME):$(OPERA):$(MIDORI):$(EPIPHANY) export REPRODUCERS_DPARAMETERS= $(DTEST_SERVER) $(DJAVAWS_BUILD) $(DBROWSERS) $(BROWSER_TESTS_MODIFICATION) # end of `D`shortcuts #exported autoconf copies export EXPORTED_JAVAC=$(SYSTEM_JDK_DIR)/bin/javac export EXPORTED_JAR=$(SYSTEM_JDK_DIR)/bin/jar export EXPORTED_KEYTOOL=$(SYSTEM_JDK_DIR)/bin/keytool export EXPORTED_JARSIGNER=$(SYSTEM_JDK_DIR)/bin/jarsigner export EXPORTED_PACK200=$(SYSTEM_JDK_DIR)/bin/pack200 #end of exported autoconf copies # binary names javaws:= $(shell echo javaws | sed '@program_transform_name@') itweb_settings:= $(shell echo itweb-settings | sed '@program_transform_name@') policyeditor:= $(shell echo policyeditor | sed '@program_transform_name@') if WINDOWS_OR_INCLUDE_BATS # convert Unix newlines (LF) to DOS format: fix_CRLF=-e "s/\$$/\r/" else fix_CRLF= endif # the launcher needs to know $(bindir) and $(datadir) which can be different at # make-time from configure-time edit_launcher_script = sed \ -e "s|[@]LAUNCHER_BOOTCLASSPATH[@]|$(LAUNCHER_BOOTCLASSPATH)|g" \ -e "s|[@]JAVAWS_SPLASH_LOCATION[@]|$(SPLASH_PNG)|g" \ -e "s|[@]JAVA[@]|$(JAVA)|g" \ -e "s|[@]JRE[@]|$(SYSTEM_JRE_DIR)|g" \ -e "s|[@]MAIN_CLASS[@]|$${MAIN_CLASS}|g" \ -e "s|[@]BIN_LOCATION[@]|$${BIN_LOCATION}|g" \ -e "s|[@]NETX_JAR[@]|$(NETX_JAR)|g" \ -e "s|[@]PLUGIN_JAR[@]|$(PLUGIN_JAR)|g" \ -e "s|[@]JSOBJECT_JAR[@]|$(JSOBJECT_JAR)|g" \ -e "s|[@]MSLINKS_JAR[@]|$(MSLINKS_JAR)|g" \ -e "s|[@]TAGSOUP_JAR[@]|$(TAGSOUP_JAR)|g" \ -e "s|[@]RHINO_JAR[@]|$(RHINO_JAR)|g" \ -e "s|[@]PROGRAM_NAME[@]|$${PROGRAM_NAME}|g" \ -e "s|[@]MODULARJDK_ARGS_LOCATION[@]|$(MODULARJDK_ARGS_LOCATION)|g" # Top-Level Targets # ================= all-local: stamps/netx-dist.stamp stamps/plugin.stamp stamps/docs.stamp \ $(LAUNCHERS) $(DESKTOP_FILES) check-local: $(RHINO_TESTS) $(JUNIT_TESTS) clean-local: clean-netx clean-plugin clean-liveconnect \ clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-generated-docs clean-metadata clean-icedteaweb-completion clean-tests clean-bootstrap-directory clean-win-installer if [ -e stamps ] ; then \ rmdir stamps ; \ fi .PHONY: clean-IcedTeaPlugin clean-add-netx clean-add-netx-debug clean-add-plugin clean-add-plugin-debug \ clean-bootstrap-directory clean-native-ecj clean-desktop-files clean-netx-docs clean-docs clean-plugin-docs clean-generated-docs clean-icedteaweb-completion\ clean-tests check-local clean-launchers stamps/check-pac-functions.stamp stamps/run-netx-unit-tests.stamp clean-netx-tests \ clean-junit-runner clean-netx-unit-tests clean-metadata win-installer clean-win-installer install-exec-local: ${mkinstalldirs} $(DESTDIR)$(bindir) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/ $(DESTDIR)$(libdir) $(ICONS_DEST_DIR) $(BASH_CMPL_DEST_DIR) if ENABLE_NATIVE_PLUGIN ${INSTALL_PROGRAM} $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) $(DESTDIR)$(libdir) endif if ENABLE_PLUGINJAR ${INSTALL_DATA} $(TOP_BUILD_DIR)/liveconnect/lib/classes-applet.jar $(DESTDIR)$(PLUGIN_JAR) ${INSTALL_DATA} $(TOP_BUILD_DIR)/liveconnect/lib/classes-jsobject.jar $(DESTDIR)$(JSOBJECT_JAR) endif ${INSTALL_DATA} $(NETX_DIR)/lib/classes.jar $(DESTDIR)$(NETX_JAR) ${INSTALL_DATA} $(NETX_SRCDIR)/javaws_splash.png $(DESTDIR)$(SPLASH_PNG) ${INSTALL_DATA} $(TOP_SRC_DIR)/javaws.png $(ICONS_DEST_DIR)/ mkdir -p $(DESTDIR)$(MODULARJDK_ARGS_DIR) cp launcher.build/$(MODULARJDK_ARGS_FILE) $(MODULARJDK_ARGS_LOCATION) if ENABLE_NATIVE_LAUNCHERS ${INSTALL_PROGRAM} launcher.build/$(javaws) $(DESTDIR)$(bindir) ${INSTALL_PROGRAM} launcher.build/$(itweb_settings) $(DESTDIR)$(bindir) ${INSTALL_PROGRAM} launcher.build/$(policyeditor) $(DESTDIR)$(bindir) endif if ENABLE_SHELL_LAUNCHERS ${INSTALL_PROGRAM} launcher.build/$(javaws).sh $(DESTDIR)$(bindir) ${INSTALL_PROGRAM} launcher.build/$(itweb_settings).sh $(DESTDIR)$(bindir) ${INSTALL_PROGRAM} launcher.build/$(policyeditor).sh $(DESTDIR)$(bindir) if WINDOWS_OR_INCLUDE_BATS ${INSTALL_PROGRAM} launcher.build/$(javaws).bat $(DESTDIR)$(bindir) ${INSTALL_PROGRAM} launcher.build/$(itweb_settings).bat $(DESTDIR)$(bindir) ${INSTALL_PROGRAM} launcher.build/$(policyeditor).bat $(DESTDIR)$(bindir) endif endif ${INSTALL_DATA} $(TOP_BUILD_DIR)/completion/itweb-settings.bash $(BASH_CMPL_DEST_DIR)/ ${INSTALL_DATA} $(TOP_BUILD_DIR)/completion/javaws.bash $(BASH_CMPL_DEST_DIR)/ ${INSTALL_DATA} $(TOP_BUILD_DIR)/completion/policyeditor.bash $(BASH_CMPL_DEST_DIR)/ # all generated manpages are installed in swarm # all windows depndences are copied for windows build, and known one are copied/removed as necessary # the makefile variables are used in favor of global variables, but maybe they will need to get mixed together install-data-local: printvarsfile ${mkinstalldirs} -d $(DESTDIR)$(mandir) cp -r "$(DOCS_DIR)/man/"* $(DESTDIR)$(mandir)/ if ENABLE_DOCS ${mkinstalldirs} $(DESTDIR)$(htmldir) (cd ${TOP_BUILD_DIR}/docs/netx; \ for files in $$(find . -type f); \ do \ ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \ done) if ENABLE_PLUGINJAR (cd ${TOP_BUILD_DIR}/docs/plugin; \ for files in $$(find . -type f); \ do \ ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \ done) endif endif if WINDOWS_OR_INCLUDE_BATS mkdir -p $(WIN_ALL_DEPS) mkdir -p $(WIN_RUN_DEPS) JARSVARS=` ( set -o posix ; set ) | sed "s/.*=//" | grep \\.jar$$ | grep \\.jar.exe$$ ` ; \ JARSMAKE=` cat $(TOP_BUILD_DIR)/printvarsfile | sed "s/.*=//" | grep \\.jar$$ ` ; \ for JAR in $$JARSMAKE ; do \ if [ -f $ $$JAR ] ; then \ cp -v $$JAR $(WIN_ALL_DEPS)/ ; \ fi ; \ done ; rm -f $(WIN_ALL_DEPS)/jar ; for JAR in `ls $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/*.jar` ; do \ rm -fv $(WIN_ALL_DEPS)/`basename $$JAR` ; \ done; if WITH_RHINO filteredName=`basename $(RHINO_JAR) | sed "s/[^a-zA-Z]//g" | sed "s/jar$$/.jar/"` ; \ cp -v $(RHINO_JAR) $(WIN_RUN_DEPS)/$$filteredName endif if HAVE_TAGSOUP filteredName=`basename $(TAGSOUP_JAR) | sed "s/[^a-zA-Z]//g" | sed "s/jar$$/.jar/"` ; \ cp -v $(TAGSOUP_JAR) $(WIN_RUN_DEPS)/$$filteredName endif if HAVE_MSLINKS filteredName=`basename $(MSLINKS_JAR) | sed "s/[^a-zA-Z]//g" | sed "s/jar$$/.jar/"` ; \ cp -v $(MSLINKS_JAR) $(WIN_RUN_DEPS)/$$filteredName endif endif #no npapi plugin at all! linux-bin-dist: install rm -f $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) mkdir -p $(LINUX_BIN_DIST_DEPS) if WITH_RHINO filteredName=`basename $(RHINO_JAR) | sed "s/[^a-zA-Z]//g" | sed "s/jar$$/.jar/"` ; \ cp -v $(RHINO_JAR) $(LINUX_BIN_DIST_DEPS)/$$filteredName endif if HAVE_TAGSOUP filteredName=`basename $(TAGSOUP_JAR) | sed "s/[^a-zA-Z]//g" | sed "s/jar$$/.jar/"` ; \ cp -v $(TAGSOUP_JAR) $(LINUX_BIN_DIST_DEPS)/$$filteredName endif cp $(NETX_DIR)/lib/src.zip $(DESTDIR)$(prefix)/netx.src.zip if ENABLE_PLUGINJAR cp $(TOP_BUILD_DIR)/liveconnect/lib/src.zip $(DESTDIR)$(prefix)/plugin.src.zip endif if ENABLE_DOCS cp -r $(DOCS_DIR)/html $(DESTDIR)$(prefix)/icedtea-web-docs endif if [ ! -e $(DESTDIR)$(bindir)/$(MODULARJDK_ARGS_FILE) ] ; then cp $(MODULARJDK_ARGS_LOCATION) $(DESTDIR)$(bindir)/$(MODULARJDK_ARGS_FILE) ; fi (cd $(DESTDIR)$(prefix)/.. && $(ZIP) -qr $(TOP_BUILD_DIR)/$(distdir).linux.bin.zip `basename $(DESTDIR)$(prefix)` ); win-bin-dist: win-only-image (cd $(DESTDIR)$(prefix)/.. && $(ZIP) -qr $(TOP_BUILD_DIR)/$(distdir).win.bin.zip `basename $(DESTDIR)$(prefix)` ); if WINDOWS # strips cygwin and other linux-like blobs. keeping only windows-usefull stuff win-only-image: install uninstall-linux-only remove-empty-linux-only-dirs rm -rf $(WIN_ALL_DEPS) if [ ! -e $(DESTDIR)$(bindir)/$(MODULARJDK_ARGS_FILE) ] ; then cp $(MODULARJDK_ARGS_LOCATION) $(DESTDIR)$(bindir)/$(MODULARJDK_ARGS_FILE) ; fi if ENABLE_DOCS cp -r $(DOCS_DIR)/html $(DESTDIR)$(prefix)/icedtea-web-docs endif cp $(NETX_DIR)/lib/src.zip $(DESTDIR)$(prefix)/netx.src.zip if ENABLE_PLUGINJAR cp $(TOP_BUILD_DIR)/liveconnect/lib/src.zip $(DESTDIR)$(prefix)/plugin.src.zip endif clean-win-installer: rm -rf $(WIN_INSTALLER_DIR) $(WIN_INSTALLER_DIR)/itw-installer.json: clean-win-installer mkdir $(WIN_INSTALLER_DIR) sed \ -e "s|../win-installer|$(WIN_INSTALLER_SRC_DIR)|g" \ -e s/[@]PACKAGE_VERSION[@]/$(PACKAGE_VERSION)/g $(WIN_INSTALLER_SRC_DIR)/installer.json.in > $@ win-installer: win-only-image $(WIN_INSTALLER_DIR)/itw-installer.json "$(JAVA)" -jar "$(WIXGEN_JAR)" "$(DESTDIR)$(prefix)" -c $(WIN_INSTALLER_DIR)/itw-installer.json -o $(WIN_INSTALLER_DIR)/itw-installer.wxs cd $(WIN_INSTALLER_DIR) && "$(WIX_TOOLSET_DIR)"/candle.exe /nologo itw-installer.wxs cd $(WIN_INSTALLER_DIR) && "$(WIX_TOOLSET_DIR)"/light.exe /nologo -ext WixUIExtension itw-installer.wixobj endif # note that this is called only from windows specific target (hidden otherwise) remove-empty-linux-only-dirs: echo "*************************************************************************" ; \ echo "* If run without prefix or on non-windows machine, may harm your system *" ; \ echo "*************************************************************************" ; \ MAN_DIRS_TO_CHECK_AND_CLEAN="de/man1 pl/man1 cs/man1 de pl cs man1 " ; \ for manDirName in $$MAN_DIRS_TO_CHECK_AND_CLEAN ; do \ dirCandidate=$(DESTDIR)$(mandir)/$$manDirName ; \ if ls -1qA $$dirCandidate | grep -q . ; then echo "$$dirCandidate not empty"; else rmdir -v $$dirCandidate ; fi ; \ done dirCandidate=$(DESTDIR)$(mandir)/$$manDirName ; \ if ls -1qA $$dirCandidate | grep -q . ; then echo "$$dirCandidate not empty"; else rmdir -v $$dirCandidate ; fi ; DEFAULT_CMPL_DIRS_TO_CHECK_AND_CLEAN="$(BASH_CMPL_DEST_DIR) `dirname $(BASH_CMPL_DEST_DIR)` $$(dirname $$(dirname $(BASH_CMPL_DEST_DIR)))" ; \ for cmplDirName in $$DEFAULT_CMPL_DIRS_TO_CHECK_AND_CLEAN ; do \ dirCandidate=$$cmplDirName ; \ if ls -1qA $$dirCandidate | grep -q . ; then echo "$$dirCandidate not empty"; else rmdir -v $$dirCandidate ; fi ; \ done dirCandidate=$(DESTDIR)$(libdir)/ ; \ if ls -1qA $$dirCandidate | grep -q . ; then echo "$$dirCandidate not empty"; else rmdir -v $$dirCandidate ; fi ; # all generated manpages must be removed one by one # shell (only shell!) launchers must go away uninstall-linux-only: KNOWN_MANS="icedtea-web.1 icedtea-web-plugin.1 itweb-settings.1 javaws.1 policyeditor.1" ; \ KNOWN_DIRS="man1 de/man1 pl/man1 cs/man1" ; \ for file in $$KNOWN_MANS ; do \ for dir in $$KNOWN_DIRS ; do \ rm -f $(DESTDIR)$(mandir)/$$dir/$$file ; \ done ; \ done rm -f $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) rm -f $(DESTDIR)$(bindir)/$(javaws).sh rm -f $(DESTDIR)$(bindir)/$(itweb_settings).sh rm -f $(DESTDIR)$(bindir)/$(policyeditor).sh rm -f $(BASH_CMPL_DEST_DIR)/itweb-settings.bash rm -f $(BASH_CMPL_DEST_DIR)/javaws.bash rm -f $(BASH_CMPL_DEST_DIR)/policyeditor.bash uninstall-local: uninstall-linux-only rm -f $(DESTDIR)$(PLUGIN_JAR) rm -f $(DESTDIR)$(JSOBJECT_JAR) rm -f $(DESTDIR)$(NETX_JAR) rm -r $(DESTDIR)$(SPLASH_PNG) rm -r $(ICONS_DEST_DIR)/javaws.png rm -rf $(DESTDIR)$(htmldir) if WINDOWS_OR_INCLUDE_BATS rm -rf $(WIN_ALL_DEPS) rm -rf $(WIN_RUN_DEPS) rm -f $(DESTDIR)$(bindir)/$(javaws).bat rm -f $(DESTDIR)$(bindir)/$(itweb_settings).bat rm -f $(DESTDIR)$(bindir)/$(policyeditor).bat endif # Plugin if ENABLE_NATIVE_PLUGIN # IcedTeaPlugin.so. # Separate compile and link invocations to ensure intermediate object # is listed before -l options. See: # http://developer.mozilla.org/en/docs/XPCOM_Glue PLUGIN_SRC=IcedTeaNPPlugin.cc IcedTeaScriptablePluginObject.cc \ IcedTeaJavaRequestProcessor.cc IcedTeaPluginRequestProcessor.cc \ IcedTeaPluginUtils.cc IcedTeaParseProperties.cc PLUGIN_OBJECTS=IcedTeaNPPlugin.o IcedTeaScriptablePluginObject.o \ IcedTeaJavaRequestProcessor.o IcedTeaPluginRequestProcessor.o \ IcedTeaPluginUtils.o IcedTeaParseProperties.o $(PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc mkdir -p $(PLUGIN_DIR) && \ cd $(PLUGIN_DIR) && \ $(CXX) $(CXXFLAGS) \ $(DEFS) $(VERSION_DEFS) \ -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ -DJAVAWS_BIN="\"$(bindir)/$(JAVAWS)\"" \ -DJAVAWS_NAME="\"$(javaws)\"" \ -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \ -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \ -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \ -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \ -DNETX_JAR="\"$(NETX_JAR)\"" \ -DPLUGIN_JAR="\"$(PLUGIN_JAR)\"" \ -DJSOBJECT_JAR="\"$(JSOBJECT_JAR)\""\ $(GLIB_CFLAGS) \ $(MOZILLA_CFLAGS) \ -fvisibility=hidden \ -fPIC -o $@ -c $< $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY): $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) cd $(PLUGIN_DIR) && \ $(CXX) $(CXXFLAGS) \ $(PLUGIN_OBJECTS) \ $(GLIB_LIBS) \ $(MOZILLA_LIBS) \ -shared -o $@ # Start of CPP Unit test targets # Note that UnitTest++ has its own makefile, however this is avoided because it creates an in-source build. $(CPP_UNITTEST_FRAMEWORK_LIB): $(CPP_UNITTEST_FRAMEWORK_SRCDIR) mkdir -p $(CPP_UNITTEST_FRAMEWORK_BUILDDIR) && \ pushd $(CPP_UNITTEST_FRAMEWORK_SRCDIR) && \ for cppfile in $$(find $(CPP_UNITTEST_FRAMEWORK_SRCDIR) -name '*.cpp') ; \ do \ objfile="$(CPP_UNITTEST_FRAMEWORK_BUILDDIR)/$$(basename $${cppfile%.cpp}).o" ; \ $(CXX) $(CXXFLAGS) -c $$cppfile -o $$objfile || exit 1 ; \ done ; \ ar cr $(CPP_UNITTEST_FRAMEWORK_LIB) $(CPP_UNITTEST_FRAMEWORK_BUILDDIR)/*.o ; \ popd clean-unittest++-impl: rm -f $(CPP_UNITTEST_FRAMEWORK_BUILDDIR)/*.o rm -f $(CPP_UNITTEST_FRAMEWORK_LIB) if [ -e $(CPP_UNITTEST_FRAMEWORK_BUILDDIR) ] ; then \ rmdir $(CPP_UNITTEST_FRAMEWORK_BUILDDIR) ; \ fi stamps/cpp-unit-tests-compile.stamp: $(CPP_UNITTEST_FRAMEWORK_LIB) $(CPP_UNITTEST_SRCDIR) $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) mkdir -p $(CPP_UNITTEST_DIR) && \ pushd $(CPP_UNITTEST_SRCDIR) && \ for cppfile in $$(find $(CPP_UNITTEST_SRCDIR) -name '*.cc') ; \ do \ objfile="$(CPP_UNITTEST_DIR)/$$(basename $${cppfile%.cc}).o" ; \ echo "Compiling $$cppfile to $$objfile"; \ $(CXX) $(CXXFLAGS) \ $(DEFS) $(VERSION_DEFS) \ -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ -DJAVAWS_BIN="\"$(bindir)/$(JAVAWS)\"" \ -DJAVAWS_NAME="\"$(javaws)\"" \ -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \ -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \ -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \ -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \ -DNETX_JAR="\"$(NETX_JAR)\"" \ -DPLUGIN_JAR="\"$(PLUGIN_JAR)\"" \ -DJSOBJECT_JAR="\"$(JSOBJECT_JAR)\""\ $(GLIB_CFLAGS) \ $(MOZILLA_CFLAGS) \ "-I$(CPP_UNITTEST_FRAMEWORK_SRCDIR)/src" \ "-I$(PLUGIN_SRCDIR)" \ -o $$objfile -c $$cppfile || exit 1 ; \ done ; \ popd ; \ mkdir -p stamps ; \ touch $@ $(CPP_UNITTEST_EXECUTABLE): $(CPP_UNITTEST_FRAMEWORK_LIB) stamps/cpp-unit-tests-compile.stamp cd $(CPP_UNITTEST_DIR) && \ $(CXX) $(CXXFLAGS) \ $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) \ $(CPP_UNITTEST_DIR)/*.o \ -lrt \ -lpthread \ $(GLIB_LIBS) \ $(MOZILLA_LIBS) \ $(CPP_UNITTEST_FRAMEWORK_LIB)\ $(BUILT_CPP_UNIT_TEST_FRAMEWORK) -o $@ clean-cpp-unit-tests-impl: rm -f stamps/cpp-unit-tests-compile.stamp rm -f $(CPP_UNITTEST_EXECUTABLE) rm -f $(CPP_UNITTEST_DIR)/*.o run-cpp-unit-tests-impl: $(CPP_UNITTEST_EXECUTABLE) $(CPP_UNITTEST_EXECUTABLE) # End of CPP Unit test targets clean-IcedTeaPlugin: rm -f $(PLUGIN_DIR)/*.o rm -f $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) if [ $(TOP_SRC_DIR) != $(TOP_BUILD_DIR) ]; then \ if [ -e $(TOP_BUILD_DIR)/plugin/icedteanp ] ; then \ rmdir $(TOP_BUILD_DIR)/plugin/icedteanp ; \ rmdir $(TOP_BUILD_DIR)/plugin ; \ fi ; \ fi endif clean-unittest++-placeholder: clean-cpp-unit-tests-placeholder: echo "plugin disabled" run-cpp-unit-tests-impl-placeholder: echo "plugin disabled" clean-unittest++: $(CPPUNIT_FRAMEWORK_CLEAN_IMPL) clean-cpp-unit-tests: $(CPPUNIT_CLEAN_IMPL) run-cpp-unit-tests: $(CPPUNIT_IMPL) stamps/plugin.stamp: $(ICEDTEAPLUGIN_TARGET) mkdir -p stamps touch stamps/plugin.stamp clean-plugin: $(ICEDTEAPLUGIN_CLEAN) rm -f stamps/plugin.stamp liveconnect-source-files.txt: if WINDOWS echo "Using WEmbeddedFrame" ; \ sed "s;sun.awt.X11.XEmbeddedFrame;sun.awt.windows.WEmbeddedFrame;" -i $(LIVECONNECT_SRCS)/$(SUN_APPLET_DIRS)/PluginAppletViewer.java ; \ sed "s;XEmbeddedFrame;WEmbeddedFrame;" -i $(LIVECONNECT_SRCS)/$(SUN_APPLET_DIRS)/PluginAppletViewer.java ; \ sed "s;super(handle, true);super(handle);" -i $(LIVECONNECT_SRCS)/$(SUN_APPLET_DIRS)/PluginAppletViewer.java ; else echo "Using XEmbeddedFrame" ; endif if test "x${LIVECONNECT_DIR}" != x; then \ find $(LIVECONNECT_SRCS) -name '*.java' | sort > $@ ; \ fi ; \ touch $@ stamps/liveconnect.stamp: liveconnect-source-files.txt stamps/netx.stamp if test "x${LIVECONNECT_DIR}" != x; then \ mkdir -p $(TOP_BUILD_DIR)/liveconnect && \ $(SYSTEM_JDK_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(TOP_BUILD_DIR)/liveconnect \ $(call composeclasspath,$(NETX_DIR) $(MSLINKS_JAR) $(TAGSOUP_JAR) $(RHINO_JAR)) \ -sourcepath $(LIVECONNECT_SRCS) \ @liveconnect-source-files.txt ; \ fi mkdir -p stamps touch $@ # although sun and netscape packages were compiled together, we pack and install them as two jars, to follow java.desktop and jdk.jsobject jdk9 modules # the all together jar is kept for usage in tests. Feel free to remove and refactor stamps/liveconnect-dist.stamp: stamps/liveconnect.stamp if test "x${LIVECONNECT_DIR}" != x; then \ (cd $(TOP_BUILD_DIR)/liveconnect ; \ mkdir -p lib ; \ $(SYSTEM_JDK_DIR)/bin/jar cf lib/classes.jar $(LIVECONNECT_DIR) ; \ $(SYSTEM_JDK_DIR)/bin/jar cf lib/classes-applet.jar $(SUN_APPLET_DIRS) ; \ $(SYSTEM_JDK_DIR)/bin/jar cf lib/classes-jsobject.jar $(JSOBJECT_DIRS) ; \ cp -pPR $(SRC_DIR_LINK) $(LIVECONNECT_SRCS) src; \ find src -type f -exec chmod 640 '{}' ';' -o -type d -exec chmod 750 '{}' ';'; \ cd src ; \ $(ZIP) -qr $(TOP_BUILD_DIR)/liveconnect/lib/src.zip $(LIVECONNECT_DIR) ) ; \ fi mkdir -p stamps touch $@ clean-liveconnect: rm -rf $(TOP_BUILD_DIR)/liveconnect rm -f stamps/liveconnect-dist.stamp rm -f liveconnect-source-files.txt rm -f stamps/liveconnect.stamp # NetX netx-source-files.txt: find $(NETX_SRCDIR) -name '*.java' | sort > $@ ; \ for src in $(NETX_EXCLUDE_SRCS) ; \ do \ sed -i "/$${src}/ d" $@ ; \ done if !WITH_RHINO sed -i '/RhinoBasedPacEvaluator/ d' $@ endif # if 'sed' will be missing on machine, use old IFS hack as on other places # the 'sed' cycles is changing some custom version like 1.6.2 fedora23.4 to simple 1.6 # if changed, keep in mind that also 1.7 should bubble to 1.7 # also 1.7pre or 1.7preHASH should end up like 1.7 $(TOP_BUILD_DIR)/metadata: $(top_srcdir)/metadata.in mkdir -p $(TOP_BUILD_DIR)/metadata-work ; \ METAFILES=`ls $(top_srcdir)/metadata.in` ; \ SEDDED_VERSION=`echo "$(FULL_VERSION)" | sed 's/[^0-9]\+/ /g'` ; \ x=0; for i in $$SEDDED_VERSION ; do \ let x++; \ if [ $$x -eq 1 ] ; then V1=$$i; fi; \ if [ $$x -eq 2 ] ; then V2=$$i; fi; \ done; \ XVERSION=$$V1.$$V2; \ for F in $$METAFILES ; do \ cat $(top_srcdir)/metadata.in/$$F | sed "s;%{name};$(PACKAGE_NAME);g" | sed "s;%{version};$$XVERSION;g" > $(TOP_BUILD_DIR)/metadata-work/$$F ; \ done ; \ mv $(TOP_BUILD_DIR)/metadata-work $(TOP_BUILD_DIR)/metadata ; check-metadata: $(TOP_BUILD_DIR)/metadata xmllint --noout $(TOP_BUILD_DIR)/metadata/* ; \ if [ $$? -eq 0 ] ; then \ echo "Passed: well formed" ; \ else \ echo "FAILED: well formed" ; \ fi ; \ xmllint --noout --schema http://maven.apache.org/xsd/maven-4.0.0.xsd $(TOP_BUILD_DIR)/metadata/*.pom ; \ if [ $$? -eq 0 ] ; then \ echo "Passed: valid poms" ; \ else \ echo "FAILED: valid poms" ; \ fi ; \ appstream-util validate $(TOP_BUILD_DIR)/metadata/*.appdata.xml $(TOP_BUILD_DIR)/metadata/*.metainfo.xml ; \ if [ $$? -eq 0 ] ; then \ echo "Passed: valid software descriptors" ; \ else \ echo "FAILED: valid software descriptors" ; \ fi ; # very strange results: # appstreamcli validate $(TOP_BUILD_DIR)/metadata/*.appdata.xml $(TOP_BUILD_DIR)/metadata/*.metainfo.xml $(TOP_BUILD_DIR)/completion/itweb-settings.bash: $(TOP_SRC_DIR)/completion/itweb-settings.bash.in stamps/netx.stamp OPTIONS_COMMAND="$(SYSTEM_JRE_DIR)/bin/java -cp $(NETX_DIR) net.sourceforge.jnlp.OptionsDefinitions" ; \ OPTIONS=`$$OPTIONS_COMMAND itweb-settings`; \ echo $$OPTIONS ; \ cat $(TOP_SRC_DIR)/completion/itweb-settings.bash.in | \ sed "s/@OPTIONS@/$${OPTIONS}/" > $@ ; $(TOP_BUILD_DIR)/completion/javaws.bash: $(TOP_SRC_DIR)/completion/javaws.bash.in stamps/netx.stamp OPTIONS_COMMAND="$(SYSTEM_JRE_DIR)/bin/java -cp $(NETX_DIR) net.sourceforge.jnlp.OptionsDefinitions" ; \ OPTIONS=`$$OPTIONS_COMMAND javaws` ; \ echo $$OPTIONS ; \ cat $(TOP_SRC_DIR)/completion/javaws.bash.in | \ sed "s/@OPTIONS@/$${OPTIONS}/" > $@ ; $(TOP_BUILD_DIR)/completion/policyeditor.bash: $(TOP_SRC_DIR)/completion/policyeditor.bash.in stamps/netx.stamp OPTIONS_COMMAND="$(SYSTEM_JRE_DIR)/bin/java -cp $(NETX_DIR) net.sourceforge.jnlp.OptionsDefinitions" ; \ OPTIONS=`$$OPTIONS_COMMAND policyeditor` ; \ echo $$OPTIONS ; \ cat $(TOP_SRC_DIR)/completion/policyeditor.bash.in | \ sed "s/@OPTIONS@/$${OPTIONS}/" > $@ ; stamps/generate-docs.stamp: stamps/netx.stamp mkdir -p "$(DOCS_DIR)" ; \ HTML_DOCS_TARGET_DIR="$(DOCS_DIR)/html" ; \ PLAIN_DOCS_TARGET_DIR="$(DOCS_DIR)/plain" ; \ MAN_DOCS_TARGET_DIR="$(DOCS_DIR)/man" ; \ AUTHORS_FILE_TARGET="$(TOP_SRC_DIR)/AUTHORS" ; \ mkdir "$$HTML_DOCS_TARGET_DIR" ; \ mkdir "$$PLAIN_DOCS_TARGET_DIR" ; \ mkdir "$$MAN_DOCS_TARGET_DIR" ; \ HTML_DOCS_INDEX="$$HTML_DOCS_TARGET_DIR/index.html" ; \ TP_COMMAND="$(SYSTEM_JRE_DIR)/bin/java -cp $(NETX_DIR) net.sourceforge.jnlp.util.docprovider.TextsProvider" ; \ TP_TAIL="false $(FULL_VERSION)" ; \ LANG_BACKUP=$$LANG ; \ echo "<html><head><title>$(PLUGIN_VERSION)</title></head>" > "$$HTML_DOCS_INDEX" ; \ echo "<body><h3>$(PLUGIN_VERSION) docs:</h3>" >> "$$HTML_DOCS_INDEX" ; \ for LANG_ID in en_US.UTF-8 cs_CZ.UTF-8 pl_PL.UTF-8 de_DE.UTF-8 ; do \ ID=`echo "$$LANG_ID" | head -c 2` ; \ ENCOD=`echo "$$LANG_ID" | tail -c 6 -` ; \ export LANG=$$LANG_ID; \ mkdir "$$HTML_DOCS_TARGET_DIR/$$ID" ; \ echo "<li><a href='$$ID/icedtea-web.html'>$$LANG_ID</a></li>" >> "$$HTML_DOCS_INDEX" ; \ $$TP_COMMAND html "$$HTML_DOCS_TARGET_DIR/$$ID" $$TP_TAIL "-authorFile=$$AUTHORS_FILE_TARGET" ; \ mkdir "$$PLAIN_DOCS_TARGET_DIR/$$ID" ; \ $$TP_COMMAND plain "$$PLAIN_DOCS_TARGET_DIR/$$ID" 160 $$TP_TAIL "-authorFile=$$AUTHORS_FILE_TARGET" ; \ if [ $$ID = "en" ] ; then \ MAN_DESC="$$MAN_DOCS_TARGET_DIR/man1" ; \ else \ MAN_DESC="$$MAN_DOCS_TARGET_DIR/$$ID/man1" ; \ fi ; \ mkdir -p "$$MAN_DESC" ; \ $$TP_COMMAND man $$ENCOD "$$MAN_DESC" $$TP_TAIL "-authorFile=$$AUTHORS_FILE_TARGET" ; \ $$TP_COMMAND htmlIntro "$(NETX_DIR)/net/sourceforge/jnlp/resources/about_$$ID.html" $$TP_TAIL; \ done ; \ export LANG=$$LANG_BACKUP ; \ echo "</body></html>" >> $$HTML_DOCS_INDEX ; \ touch $@ stamps/netx-html-gen.stamp: (cd $$NETX_SRCDIR/..; \ mkdir -p html-gen; \ cp AUTHORS NEWS COPYING ChangeLog html-gen/; \ export HTML_GEN_DEBUG=true; \ ${SHELL} html-gen.sh 236; \ unset HTML_GEN_DEBUG) ${INSTALL_DATA} $(NETX_SRCDIR)/../html-gen/*.html $(NETX_RESOURCE_DIR) rm -r $(NETX_SRCDIR)/../html-gen/ mkdir -p stamps touch $@ stamps/netx.stamp: netx-source-files.txt stamps/netx-html-gen.stamp mkdir -p $(NETX_DIR) $(SYSTEM_JDK_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(NETX_DIR) \ -sourcepath $(NETX_SRCDIR) \ $(call composeclasspath, $(MSLINKS_JAR) $(TAGSOUP_JAR) $(RHINO_JAR)) \ @netx-source-files.txt (cd $(NETX_RESOURCE_DIR); \ for files in $$(find . -type f); \ do \ ${INSTALL_DATA} -D $${files} \ $(NETX_DIR)/net/sourceforge/jnlp/resources/$${files}; \ done) cp $(CPA) $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \ $(NETX_DIR)/net/sourceforge/jnlp/runtime cp $(CPA) build.properties $(NETX_DIR)/net/sourceforge/jnlp/ mkdir -p stamps touch $@ stamps/netx-dist.stamp: stamps/netx.stamp $(TOP_BUILD_DIR)/netx.manifest stamps/generate-docs.stamp $(TOP_BUILD_DIR)/completion/itweb-settings.bash $(TOP_BUILD_DIR)/completion/javaws.bash $(TOP_BUILD_DIR)/completion/policyeditor.bash $(TOP_BUILD_DIR)/metadata (cd $(NETX_DIR) ; \ mkdir -p lib ; \ $(SYSTEM_JDK_DIR)/bin/jar cfm lib/classes.jar \ $(TOP_BUILD_DIR)/netx.manifest javax/jnlp net sun; \ cp -pPR $(SRC_DIR_LINK) $(NETX_SRCDIR) src; \ find src -type f -exec chmod 640 '{}' ';' -o -type d -exec chmod 750 '{}' ';'; \ cd src ; \ $(ZIP) -qr $(NETX_DIR)/lib/src.zip javax net sun) mkdir -p stamps touch $@ clean-netx: rm -rf $(NETX_DIR) rm -f stamps/netx-dist.stamp rm -f netx-source-files.txt rm -f stamps/netx.stamp rm -f stamps/netx-html-gen.stamp rm -f $(NETX_RESOURCE_DIR)/{NEWS,AUTHORS,COPYING,ChangeLog}.html clean-desktop-files: rm -f javaws.desktop rm -f itweb-settings.desktop rm -f policyeditor.desktop # launcher run args: launcher.build/$(MODULARJDK_ARGS_FILE): $(srcdir)/$(MODULARJDK_ARGS_FILE) mkdir -p launcher.build cp $(srcdir)/$(MODULARJDK_ARGS_FILE) launcher.build/$(MODULARJDK_ARGS_FILE) if ENABLE_SHELL_LAUNCHERS launcher.build/$(javaws).sh: launcher/launchers.sh.in mkdir -p launcher.build MAIN_CLASS=net.sourceforge.jnlp.runtime.Boot ;\ BIN_LOCATION=$(bindir)/$(javaws).sh ;\ PROGRAM_NAME=$(javaws) ;\ $(edit_launcher_script) < $< > $@ launcher.build/$(itweb_settings).sh: launcher/launchers.sh.in mkdir -p launcher.build MAIN_CLASS=net.sourceforge.jnlp.controlpanel.CommandLine ;\ BIN_LOCATION=$(bindir)/$(itweb_settings).sh ;\ PROGRAM_NAME=$(itweb_settings) ;\ $(edit_launcher_script) < $< > $@ launcher.build/$(policyeditor).sh: launcher/launchers.sh.in mkdir -p launcher.build MAIN_CLASS=net.sourceforge.jnlp.security.policyeditor.PolicyEditor ;\ BIN_LOCATION=$(bindir)/$(policyeditor).sh ;\ PROGRAM_NAME=$(policyeditor) ;\ $(edit_launcher_script) < $< > $@ if WINDOWS_OR_INCLUDE_BATS # TODO get rid of this copypaste launcher.build/$(javaws).bat: launcher/launchers.bat.in mkdir -p launcher.build MAIN_CLASS=net.sourceforge.jnlp.runtime.Boot ;\ BIN_LOCATION=$(bindir)/$(javaws) ;\ PROGRAM_NAME=$(javaws) ;\ $(edit_launcher_script) $(fix_CRLF) < $< > $@ # TODO get rid of this copypaste launcher.build/$(itweb_settings).bat: launcher/launchers.bat.in mkdir -p launcher.build MAIN_CLASS=net.sourceforge.jnlp.controlpanel.CommandLine ;\ BIN_LOCATION=$(bindir)/$(itweb_settings) ;\ PROGRAM_NAME=$(itweb_settings) ;\ $(edit_launcher_script) $(fix_CRLF) < $< > $@ # TODO get rid of this copypaste launcher.build/$(policyeditor).bat: launcher/launchers.bat.in mkdir -p launcher.build MAIN_CLASS=net.sourceforge.jnlp.security.policyeditor.PolicyEditor ;\ BIN_LOCATION=$(bindir)/$(policyeditor) ;\ PROGRAM_NAME=$(policyeditor) ;\ $(edit_launcher_script) $(fix_CRLF) < $< > $@ endif endif clean-launchers: rm -f launcher.build/$(MODULARJDK_ARGS_FILE) if ENABLE_NATIVE_LAUNCHERS rm -f launcher.build/$(javaws) rm -f launcher.build/$(itweb_settings) rm -f launcher.build/$(policyeditor) rm -rf launcher.in* endif if ENABLE_SHELL_LAUNCHERS rm -f launcher.build/$(javaws).sh rm -f launcher.build/$(itweb_settings).sh rm -f launcher.build/$(policyeditor).sh endif if WINDOWS_OR_INCLUDE_BATS rm -f launcher.build/$(javaws).bat rm -f launcher.build/$(itweb_settings).bat rm -f launcher.build/$(policyeditor).bat endif if [ -e launcher.build ] ; then \ rmdir launcher.build ; \ fi javaws.desktop: javaws.desktop.in sed "s#PATH_TO_JAVAWS#$(bindir)/$(JAVAWS)#" < $(srcdir)/javaws.desktop.in > javaws.desktop itweb-settings.desktop: $(srcdir)/itweb-settings.desktop.in sed "s#PATH_TO_ITWEB_SETTINGS#$(bindir)/$(ITWEB_SETTINGS)#" \ < $(srcdir)/itweb-settings.desktop.in > itweb-settings.desktop policyeditor.desktop: $(srcdir)/policyeditor.desktop.in sed "s#PATH_TO_POLICYEDITOR#$(bindir)/$(POLICYEDITOR)#" \ < $(srcdir)/policyeditor.desktop.in > policyeditor.desktop # documentation stamps/docs.stamp: stamps/netx-docs.stamp stamps/plugin-docs.stamp touch stamps/docs.stamp clean-docs: clean-netx-docs clean-plugin-docs if [ -e ${TOP_BUILD_DIR}/docs ] ; then \ rmdir ${TOP_BUILD_DIR}/docs ; \ fi rm -f stamps/docs.stamp stamps/netx-docs.stamp: if ENABLE_DOCS $(SYSTEM_JDK_DIR)/bin/javadoc $(JAVADOC_MEM_OPTS) $(JAVADOC_OPTS) \ -d ${TOP_BUILD_DIR}/docs/netx -sourcepath $(NETX_SRCDIR) \ -doctitle 'IcedTea-Web: NetX API Specification' \ -windowtitle 'IcedTea-Web: NetX ' \ -header '<strong>IcedTea-Web<br/>NetX</strong>' \ $(call composeclasspath, $(MSLINKS_JAR) $(TAGSOUP_JAR) $(RHINO_JAR)) \ $(NETX_PKGS) endif mkdir -p stamps touch stamps/netx-docs.stamp clean-netx-docs: rm -rf ${TOP_BUILD_DIR}/docs/netx rm -f stamps/netx-docs.stamp stamps/plugin-docs.stamp: if ENABLE_DOCS if ENABLE_PLUGINJAR $(SYSTEM_JDK_DIR)/bin/javadoc $(JAVADOC_MEM_OPTS) $(JAVADOC_OPTS) \ -d ${TOP_BUILD_DIR}/docs/plugin -sourcepath "$(NETX_SRCDIR)$(CLASSPATH_SEPARATOR)$(LIVECONNECT_SRCS)" \ -doctitle 'IcedTea-Web: Plugin API Specification' \ -windowtitle 'IcedTea-Web: Plugin ' \ -header '<strong>IcedTea-Web<br/>Plugin</strong>' \ $(call composeclasspath, $(MSLINKS_JAR) $(TAGSOUP_JAR) $(RHINO_JAR)) \ $(PLUGIN_PKGS) endif endif mkdir -p stamps touch stamps/plugin-docs.stamp clean-plugin-docs: rm -rf ${TOP_BUILD_DIR}/docs/plugin rm -f stamps/plugin-docs.stamp clean-generated-docs: rm -rf "$(DOCS_DIR)" rm -f stamps/generate-docs.stamp clean-icedteaweb-completion: rm -f $(TOP_BUILD_DIR)/completion/itweb-settings.bash rm -f $(TOP_BUILD_DIR)/completion/javaws.bash rm -f $(TOP_BUILD_DIR)/completion/policyeditor.bash clean-metadata: rm -rf $(TOP_BUILD_DIR)/metadata # check # ========================== clean-tests: clean-netx-tests clean-cpp-unit-tests clean-unittest++ if [ -e $(CPP_UNITTEST_DIR) ] ; then \ rmdir $(CPP_UNITTEST_DIR) ; \ fi if [ -e $(TESTS_DIR) ]; then \ rmdir $(TESTS_DIR) ; \ fi stamps/check-pac-functions.stamp: ./jrunscript $(TOP_SRC_DIR)/tests/netx/pac/pac-funcs-test.js \ $$(readlink -f $(TOP_SRC_DIR)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js) ; \ mkdir -p stamps && \ touch $@ junit-runner-source-files.txt: find $(JUNIT_RUNNER_SRCDIR) -name '*.java' | sort > $@ jacoco-operator-source-files.txt: find $(JACOCO_OPERATOR_SRCDIR) -name '*.java' | sort > $@ $(JUNIT_RUNNER_JAR): junit-runner-source-files.txt stamps/test-extensions-compile.stamp mkdir -p $(JUNIT_RUNNER_DIR) && \ $(SYSTEM_JDK_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(JUNIT_RUNNER_DIR) \ $(call composeclasspath, $(JUNIT_RUNTIME) $(TEST_EXTENSIONS_DIR)) \ @junit-runner-source-files.txt && \ $(SYSTEM_JDK_DIR)/bin/jar cf $@ -C $(JUNIT_RUNNER_DIR) . stamps/junit-jnlp-dist-dirs: junit-jnlp-dist-simple.txt stamps/junit-jnlp-dist-signed.stamp junit-jnlp-dist-custom.txt mkdir -p $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR) mkdir -p $(REPRODUCERS_BUILD_DIR) touch $@ junit-jnlp-dist-custom.txt: rm -f $(abs_top_builddir)/$@ ; \ cd $(REPRODUCERS_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \ for x in $(COMPILE_WHITELIST_FILTER) ; do \ find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" | grep $$x >> $(abs_top_builddir)/$@ || true ; \ done junit-jnlp-dist-simple.txt: rm -f $(abs_top_builddir)/$@ ; \ cd $(REPRODUCERS_TESTS_SRCDIR)/simple/ ; \ for x in $(COMPILE_WHITELIST_FILTER) ; do \ find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" | grep $$x >> $(abs_top_builddir)/$@ || true ; \ done stamps/junit-jnlp-dist-signed.stamp: types=($(SIGNED_REPRODUCERS)) ; \ for which in "$${types[@]}" ; do \ rm -f $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \ pushd $(REPRODUCERS_TESTS_SRCDIR)/$$which/ ; \ for x in $(COMPILE_WHITELIST_FILTER) ; do \ find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" | grep $$x >> $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \ done ; \ popd ; \ done ; \ mkdir -p stamps && \ touch $@ stamps/netx-dist-tests-prepare-reproducers.stamp: stamps/junit-jnlp-dist-dirs stamps/liveconnect-dist.stamp stamps/netx-dist.stamp stamps/plugin.stamp types=($(ALL_NONCUSTOM_REPRODUCERS)); \ for which in "$${types[@]}" ; do \ . $(TOP_SRC_DIR)/NEW_LINE_IFS ; \ simpleReproducers=(`cat $(TOP_BUILD_DIR)/junit-jnlp-dist-$$which.txt `); \ IFS="$$IFS_BACKUP" ; \ for dir in "$${simpleReproducers[@]}" ; do \ echo "processing: $$dir" ; \ mkdir -p "$(REPRODUCERS_BUILD_DIR)/$$dir" ; \ if [ -e "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/srcs/" ]; then \ d=`pwd` ; \ cd "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/srcs/" ; \ srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \ notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \ $(SYSTEM_JDK_DIR)/bin/javac -cp $(NETX_DIR)/lib/classes.jar\$(CLASSPATH_SEPARATOR)$(TOP_BUILD_DIR)/liveconnect -d "$(REPRODUCERS_BUILD_DIR)/$$dir/" $$srcFiles ; \ if [ -n "$$notSrcFiles" ] ; then \ cp -R --parents $$notSrcFiles "$(REPRODUCERS_BUILD_DIR)/$$dir/" ; \ fi ; \ cd "$(REPRODUCERS_BUILD_DIR)/$$dir/" ; \ if [ -f $(META_MANIFEST) ]; \ then \ $(SYSTEM_JDK_DIR)/bin/jar cfm "$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $(META_MANIFEST) * ; \ else \ $(SYSTEM_JDK_DIR)/bin/jar cf "$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \ fi; \ AN="Application-Name:" ; \ grep $$AN $(META_MANIFEST) 2>/dev/null >/dev/null ; \ GREP_R=$$?; \ if [ ! -f $(META_MANIFEST) -o $$GREP_R -ne 0 ]; \ then \ export TMP_MANIFEST=`mktemp` ; \ echo "$$AN $$dir" > $$TMP_MANIFEST ; \ if which cygpath &> /dev/null ; then \ export TMP_MANIFEST=$$(cygpath -p -m "$$TMP_MANIFEST") ; \ fi ; \ $(SYSTEM_JDK_DIR)/bin/jar ufm "$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $$TMP_MANIFEST ; \ rm -f $$TMP_MANIFEST ; \ fi ; \ cd "$$d" ; \ fi; \ done ; \ done ; \ mkdir -p stamps && \ touch $@ stamps/netx-dist-tests-sign-some-reproducers.stamp: stamps/netx-dist-tests-prepare-reproducers.stamp export keystore=$(TOP_BUILD_DIR)/$(PRIVATE_KEYSTORE_NAME); \ types=($(SIGNED_REPRODUCERS)) ; \ for which in "$${types[@]}" ; do \ tcaw=$(TEST_CERT_ALIAS)_$$which ; \ $(SYSTEM_JRE_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" ; \ . $(TOP_SRC_DIR)/NEW_LINE_IFS ; \ signedReproducers=(`cat $(TOP_BUILD_DIR)/junit-jnlp-dist-$$which.txt `); \ IFS="$$IFS_BACKUP" ; \ for dir in "$${signedReproducers[@]}" ; do \ $(SYSTEM_JDK_DIR)/bin/jarsigner -keystore $$keystore -storepass $(PRIVATE_KEYSTORE_PASS) -keypass $(PRIVATE_KEYSTORE_PASS) "$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $$tcaw ; \ done ; \ done ; \ mkdir -p stamps && \ touch $@ stamps/change-dots-to-paths.stamp: stamps/netx-dist-tests-sign-some-reproducers.stamp pushd $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); \ types=($(ALL_NONCUSTOM_REPRODUCERS)); \ for which in "$${types[@]}" ; do \ . $(TOP_SRC_DIR)/NEW_LINE_IFS ; \ simpleReproducers=(`cat $(TOP_BUILD_DIR)/junit-jnlp-dist-$$which.txt `); \ IFS="$$IFS_BACKUP" ; \ for dir in "$${simpleReproducers[@]}" ; do \ if test "$${dir:0:1}" = "." ; then \ echo "reproducer $$dir starts with dot. It is forbidden" ; \ exit 5; \ fi; \ if test "$${dir:(-1)}" = "." ; then \ echo "reproducer $$dir ends with dot. It is forbidden" ; \ exit 5; \ fi; \ q=`expr index "$$dir" .`; \ r=$$? ; \ if [ $$r = 0 ]; then \ slashed_dir="./$${dir//.//}" ; \ path="`dirname $$slashed_dir`" ; \ file="`basename $$slashed_dir`.jar" ; \ echo "copying $$dir.jar to $$path as $$file" ; \ mkdir --parents $$path ; \ cp $$dir".jar" "$$path"/"$$file" ; \ fi ; \ done ; \ done ; \ popd ; \ mkdir -p stamps && \ touch $@ #this always tries to remove previous testcert #the code is copypasted from netx-dist-tests-remove-cert-from-public, because #with depending to not stamped target we always have to rerun reproducers targets stamps/exported-test-certs.stamp: stamps/change-dots-to-paths.stamp types=($(SIGNED_REPRODUCERS)) ; \ PUBLIC_KEYSTORE=$$XDG_CONFIG_HOME ; \ if test "x$$PUBLIC_KEYSTORE" = x; then \ PUBLIC_KEYSTORE=${HOME}/.config ; \ fi ;\ export PUBLIC_KEYSTORE=$$PUBLIC_KEYSTORE/$(PUBLIC_KEYSTORE_STUB); \ if which cygpath &> /dev/null ; then \ export PUBLIC_KEYSTORE=$$(cygpath -p -m "$$PUBLIC_KEYSTORE") ; \ fi ; \ keystoredir=`dirname $$PUBLIC_KEYSTORE`; \ [ ! -d $$keystoredir ] && mkdir -p $$keystoredir; \ for which in "$${types[@]}" ; do \ $(SYSTEM_JDK_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $$PUBLIC_KEYSTORE -storepass $(PUBLIC_KEYSTORE_PASS) ; \ done ; types=($(SIGNED_REPRODUCERS)) ; \ for which in "$${types[@]}" ; do \ $(SYSTEM_JDK_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) ; \ done ; mkdir -p stamps && \ touch $@ stamps/netx-dist-tests-import-cert-to-public: stamps/exported-test-certs.stamp types=($(SIGNED_REPRODUCERS)) ; \ PUBLIC_KEYSTORE=$$XDG_CONFIG_HOME ; \ if test "x$$PUBLIC_KEYSTORE" = x; then \ PUBLIC_KEYSTORE=${HOME}/.config ; \ fi ;\ export PUBLIC_KEYSTORE=$$PUBLIC_KEYSTORE/$(PUBLIC_KEYSTORE_STUB); \ if which cygpath &> /dev/null ; then \ export PUBLIC_KEYSTORE=$$(cygpath -p -m "$$PUBLIC_KEYSTORE") ; \ fi ; \ keystoredir=`dirname $$PUBLIC_KEYSTORE`; \ [ ! -d $$keystoredir ] && mkdir -p $$keystoredir; \ for which in "$${types[@]}" ; do \ yes | $(SYSTEM_JDK_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) ;\ done ; mkdir -p stamps && \ touch $@ netx-dist-tests-remove-cert-from-public: types=($(SIGNED_REPRODUCERS)) ; \ PUBLIC_KEYSTORE=$$XDG_CONFIG_HOME ; \ if test "x$$PUBLIC_KEYSTORE" = x; then \ PUBLIC_KEYSTORE=${HOME}/.config ; \ fi ;\ export PUBLIC_KEYSTORE=$$PUBLIC_KEYSTORE/$(PUBLIC_KEYSTORE_STUB); \ if which cygpath &> /dev/null ; then \ export PUBLIC_KEYSTORE=$$(cygpath -p -m "$$PUBLIC_KEYSTORE") ; \ fi ; \ keystoredir=`dirname $$PUBLIC_KEYSTORE`; \ [ ! -d $$keystoredir ] && mkdir -p $$keystoredir; \ for which in "$${types[@]}" ; do \ $(SYSTEM_JDK_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $$PUBLIC_KEYSTORE -storepass $(PUBLIC_KEYSTORE_PASS) ; \ done ; -rm -rf stamps/netx-dist-tests-import-cert-to-public test-extensions-source-files.txt: find $(TEST_EXTENSIONS_SRCDIR) -name '*.java' | sort > $@ stamps/test-extensions-compile.stamp: stamps/netx-dist.stamp stamps/plugin.stamp stamps/junit-jnlp-dist-dirs test-extensions-source-files.txt mkdir -p $(TEST_EXTENSIONS_DIR); mkdir -p $(NETX_TEST_DIR); ln -s $(TEST_EXTENSIONS_DIR) $(TEST_EXTENSIONS_COMPATIBILITY_SYMLINK); $(SYSTEM_JDK_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(TEST_EXTENSIONS_DIR) \ $(call composeclasspath, $(JUNIT_RUNTIME) $(NETX_DIR)/lib/classes.jar $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar) \ @test-extensions-source-files.txt && \ mkdir -p stamps && \ touch $@ test-extensions-tests-source-files.txt: for x in $(COMPILE_WHITELIST_FILTER) ; do \ find $(TEST_EXTENSIONS_TESTS_SRCDIR) -name '*.java' | grep $$x | sort > $@ ; \ done stamps/test-extensions-tests-compile.stamp: stamps/junit-jnlp-dist-dirs test-extensions-tests-source-files.txt stamps/test-extensions-compile.stamp mkdir -p $(TEST_EXTENSIONS_TESTS_DIR); for x in `cat $(TOP_BUILD_DIR)/test-extensions-tests-source-files.txt` ; do \ $(SYSTEM_JDK_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(TEST_EXTENSIONS_TESTS_DIR) \ $(call composeclasspath, $(JUNIT_RUNTIME) $(NETX_DIR)/lib/classes.jar $(TEST_EXTENSIONS_DIR)) \ $$x ; \ done ; \ mkdir -p stamps && \ touch $@ stamps/compile-reproducers-testcases.stamp: stamps/netx-dist.stamp stamps/plugin.stamp stamps/junit-jnlp-dist-dirs \ test-extensions-source-files.txt stamps/test-extensions-compile.stamp stamps/test-extensions-tests-compile.stamp types=($(ALL_REPRODUCERS)); \ for which in "$${types[@]}" ; do \ . $(TOP_SRC_DIR)/NEW_LINE_IFS ; \ simpleReproducers=(`cat $(TOP_BUILD_DIR)/junit-jnlp-dist-$$which.txt `); \ IFS="$$IFS_BACKUP" ; \ for dir in "$${simpleReproducers[@]}" ; do \ TESTCASEPATH="$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases" ; \ if [ -d "$$TESTCASEPATH" ]; then \ echo "compiling" $$dir ; \ pushd "$$TESTCASEPATH" ; \ REGEX=".*\\.java$$" ; \ JAVAFILES=`find . | grep "$$REGEX"` ; \ NONJAVA_RESOURCES=`find . | grep -v "$$REGEX"` ; \ echo $$JAVAFILES ; \ echo $$NONJAVA_RESOURCES ; \ $(SYSTEM_JDK_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(TEST_EXTENSIONS_TESTS_DIR) \ $(call composeclasspath, $(JUNIT_RUNTIME) $(NETX_DIR)/lib/classes.jar $(TEST_EXTENSIONS_DIR)) $$JAVAFILES ; \ if [ -n "$$NONJAVA_RESOURCES" ]; then \ cp --parents $$NONJAVA_RESOURCES $(TEST_EXTENSIONS_TESTS_DIR)/ ; \ fi ; \ popd ; \ fi ; \ done ; \ done ; \ mkdir -p stamps && \ touch $@ stamps/copy-reproducers-resources.stamp: stamps/junit-jnlp-dist-dirs types=($(ALL_REPRODUCERS)); \ for which in "$${types[@]}" ; do \ . $(TOP_SRC_DIR)/NEW_LINE_IFS ; \ simpleReproducers=(`cat $(TOP_BUILD_DIR)/junit-jnlp-dist-$$which.txt `); \ IFS="$$IFS_BACKUP" ; \ for dir in "$${simpleReproducers[@]}" ; do \ cp -R "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/resources/"* $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/ ; \ done ; \ done ; \ mkdir -p stamps && \ touch $@ $(REPRODUCERS_CLASS_NAMES): whiteListed=$(RUN_WHITELIST_FILTER); \ cd $(TEST_EXTENSIONS_TESTS_DIR) ; \ class_names= ; \ for test in `find -type f` ; do \ class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \ class_name=`echo $$class_name | sed -e 's|/|.|g' ` ; \ INCLUDE="NO" ; \ for x in $$whiteListed ; do \ q=`expr match "$$class_name" "$$x"`; \ r=$$? ; \ if [ $$r = 0 ]; then \ echo "$$class_name will be included in reproducers testcases because of $$x pattern in $(REPRODUCERS_CLASS_WHITELIST). Matching was $$q"; \ INCLUDE="YES" ; \ fi; \ done; \ if [ "$$INCLUDE" = "YES" ]; then \ class_names="$$class_names $$class_name" ; \ else \ echo "$$class_name had no match in $(REPRODUCERS_CLASS_WHITELIST). Excluding"; \ fi; \ done ; \ echo $$class_names > $(REPRODUCERS_CLASS_NAMES) stamps/run-netx-dist-tests.stamp: stamps/netx-dist.stamp stamps/plugin.stamp stamps/docs.stamp \ $(LAUNCHERS) $(DESKTOP_FILES) \ stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ stamps/test-extensions-compile.stamp stamps/compile-reproducers-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/copy-reproducers-resources.stamp\ $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) stamps/process-custom-reproducers.stamp cd $(TEST_EXTENSIONS_DIR) ; \ class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \ CLASSPATH=$(call joinsegments, $(NETX_DIR)/lib/classes.jar $(JUNIT_RUNTIME) $(JUNIT_RUNNER_JAR) . $(TEST_EXTENSIONS_TESTS_DIR) $(TEST_EXTENSIONS_SRCDIR)) ; \ $(SYSTEM_JRE_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \ -Xbootclasspath/a:$$CLASSPATH CommandLine $$class_names if WITH_XSLTPROC -$(XSLTPROC) --stringparam logs logs_reproducers.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(TEST_EXTENSIONS_DIR)/tests-output.xml > $(TESTS_DIR)/index_reproducers.html -$(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(TEST_EXTENSIONS_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_reproducers.html -$(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/textreport.xsl $(TEST_EXTENSIONS_DIR)/tests-output.xml > $(TESTS_DIR)/summary_reproducers.txt endif touch $@ stamps/process-custom-reproducers.stamp: stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ stamps/test-extensions-compile.stamp stamps/compile-reproducers-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/copy-reproducers-resources.stamp\ $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) . $(TOP_SRC_DIR)/NEW_LINE_IFS ; \ customReproducers=(`cat $(TOP_BUILD_DIR)/junit-jnlp-dist-custom.txt `); \ IFS="$$IFS_BACKUP" ; \ for dir in "$${customReproducers[@]}" ; do \ pushd $(REPRODUCERS_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/$$dir/srcs; \ $(MAKE) prepare-reproducer ; \ popd ; \ done ; \ mkdir -p stamps && \ touch $@ clean-custom-reproducers: junit-jnlp-dist-custom.txt . $(TOP_SRC_DIR)/NEW_LINE_IFS ; \ customReproducers=(`cat $(TOP_BUILD_DIR)/junit-jnlp-dist-custom.txt `); \ IFS="$$IFS_BACKUP" ; \ for dir in "$${customReproducers[@]}" ; do \ pushd $(REPRODUCERS_TESTS_SRCDIR)/custom/$$dir/srcs; \ $(MAKE) clean-reproducer ; \ popd ; \ done ; \ rm -f stamps/process-custom-reproducers.stamp #for global-links you must be root, for opera there do not exists user-links #although this targets will indeed create symbolic links to enable #icedtea-web plugin inside browser it is intended for testing purposes if ENABLE_NATIVE_PLUGIN stamps/user-links.stamp: stamps/netx-dist.stamp stamps/plugin.stamp \ $(LAUNCHERS) stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) if [ $(MOZILLA_FAMILY_TEST) ] ; then \ if [ -e $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ] ; then \ mv -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) $(MOZILLA_LOCAL_BACKUP_FILE) ; \ echo "$(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) backed up as $(MOZILLA_LOCAL_BACKUP_FILE)" ; \ else \ echo "$(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) doesn't exists, nothing to be backed up to $(MOZILLA_LOCAL_BACKUP_FILE)" ; \ fi ; \ pushd $(MOZILLA_LOCAL_PLUGINDIR) ; \ ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ popd ; \ fi ; \ touch $@ restore-user-links: if [ $(MOZILLA_FAMILY_TEST) ] ; then \ if [ -e $(MOZILLA_LOCAL_BACKUP_FILE) ] ; then \ mv -f $(MOZILLA_LOCAL_BACKUP_FILE) $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ; \ echo "$(MOZILLA_LOCAL_BACKUP_FILE) restored as $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME)" ; \ else \ rm -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ; \ echo "$(MOZILLA_LOCAL_BACKUP_FILE) do not exists, nothing to be restored. $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) removed" ; \ fi ; \ fi ; if [ -e stamps/user-links.stamp ] ; then \ rm -f stamps/user-links.stamp ; \ fi stamps/global-links.stamp: stamps/netx-dist.stamp stamps/plugin.stamp $(LAUNCHERS) \ stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) if [ $(MOZILLA_FAMILY_TEST) ] ; then \ dir="$(MOZILLA_GLOBAL32_PLUGINDIR)" ; \ arch=`arch` ; \ if [ "$$arch" = "x86_64" ] ; then \ dir="$(MOZILLA_GLOBAL64_PLUGINDIR)" ; \ fi ; \ if [ -e "$$dir"/$(PLUGIN_LINK_NAME) ] ; then \ mv -f "$$dir"/$(PLUGIN_LINK_NAME) $(MOZILLA_GLOBAL_BACKUP_FILE) ; \ echo "$$dir/$(PLUGIN_LINK_NAME) backed up as $(MOZILLA_GLOBAL_BACKUP_FILE)" ; \ else \ echo "$$dir/$(PLUGIN_LINK_NAME) do not exists, nothing to be backed up to $(MOZILLA_GLOBAL_BACKUP_FILE)" ; \ fi ; \ pushd "$$dir" ; \ ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ popd ; \ fi ; if [ "$(OPERA)" != "" ] ; then \ dir="$(OPERA_GLOBAL32_PLUGINDIR)" ; \ arch=`arch` ; \ if [ "$$arch" = "x86_64" ] ; then \ dir="$(OPERA_GLOBAL64_PLUGINDIR)" ; \ fi ; \ if [ -e "$$dir"/$(PLUGIN_LINK_NAME) ] ; then \ mv -f "$$dir"/$(PLUGIN_LINK_NAME) $(OPERA_GLOBAL_BACKUP_FILE) ; \ echo "$$dir/$(PLUGIN_LINK_NAME) backed up as $(OPERA_GLOBAL_BACKUP_FILE) "; \ else \ echo "$$dir/$(PLUGIN_LINK_NAME) do not exists, nothing to be backed up to $(OPERA_GLOBAL_BACKUP_FILE) "; \ fi ; \ pushd "$$dir" ; \ ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ popd ; \ fi ; \ touch $@ restore-global-links: if [ $(MOZILLA_FAMILY_TEST) ] ; then \ dir="$(MOZILLA_GLOBAL32_PLUGINDIR)" ; \ arch=`arch` ; \ if [ "$$arch" = "x86_64" ] ; then \ dir="$(MOZILLA_GLOBAL64_PLUGINDIR)" ; \ fi ; \ if [ -e $(MOZILLA_GLOBAL_BACKUP_FILE) ] ; then \ mv -f $(MOZILLA_GLOBAL_BACKUP_FILE) "$$dir"/$(PLUGIN_LINK_NAME) ; \ echo "$(MOZILLA_GLOBAL_BACKUP_FILE) restored as $$dir/$(PLUGIN_LINK_NAME)" ; \ else \ rm -f "$$dir"/$(PLUGIN_LINK_NAME) ; \ echo "$(MOZILLA_GLOBAL_BACKUP_FILE) do not exists, nothing to be restored. $$dir/$(PLUGIN_LINK_NAME) removed" ; \ fi ; \ fi ; if [ "$(OPERA)" != "" ] ; then \ dir="$(OPERA_GLOBAL32_PLUGINDIR)" ; \ arch=`arch` ; \ if [ "$$arch" = "x86_64" ] ; then \ dir="$(OPERA_GLOBAL64_PLUGINDIR)" ; \ fi ; \ if [ -e $(OPERA_GLOBAL_BACKUP_FILE) ] ; then \ mv -f $(OPERA_GLOBAL_BACKUP_FILE) "$$dir"/$(PLUGIN_LINK_NAME) ; \ echo "$(OPERA_GLOBAL_BACKUP_FILE) restored as $$dir/$(PLUGIN_LINK_NAME)" ; \ else \ rm -f "$$dir"/$(PLUGIN_LINK_NAME) ; \ echo "$(OPERA_GLOBAL_BACKUP_FILE) do not exist, nothing to be restored. $$dir/$(PLUGIN_LINK_NAME) removed" ; \ fi ; \ fi ; if [ -e stamps/global-links.stamp ] ; then \ rm -f stamps/global-links.stamp ; \ fi endif netx-unit-tests-source-files.txt: find $(NETX_UNIT_TEST_SRCDIR) -name '*.java' | sort > $@ stamps/netx-unit-tests-compile.stamp: stamps/netx.stamp \ netx-unit-tests-source-files.txt stamps/test-extensions-compile.stamp mkdir -p $(NETX_UNIT_TEST_DIR) && \ $(SYSTEM_JDK_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(NETX_UNIT_TEST_DIR) \ $(call composeclasspath, $(JUNIT_RUNTIME) $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar $(NETX_DIR)/lib/classes.jar $(MSLINKS_JAR) $(TEST_EXTENSIONS_DIR) $(TAGSOUP_JAR)) \ @netx-unit-tests-source-files.txt && \ mkdir -p stamps && \ touch $@ $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME): mkdir $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.css $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.js $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ $(UNIT_CLASS_NAMES): cd $(NETX_UNIT_TEST_DIR) ; \ class_names= ; \ for test in `find -type f` ; do \ class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \ class_name=`echo $$class_name | sed -e 's|/|.|g' ` ; \ class_names="$$class_names $$class_name" ; \ done ; \ echo $$class_names > $(UNIT_CLASS_NAMES); stamps/run-netx-unit-tests.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR) \ $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(UNIT_CLASS_NAMES) filename=" " ; \ cd $(NETX_UNIT_TEST_SRCDIR) ; \ for file in `find . -type f \! -iname "*.java"`; do\ filename=`echo $$file `; \ cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \ done ; \ cd $(NETX_UNIT_TEST_DIR) ; \ class_names=`cat $(UNIT_CLASS_NAMES)` ; \ CLASSPATH="$(call joinsegments, $(NETX_DIR)/lib/classes.jar $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar $(JUNIT_RUNTIME) $(MSLINKS_JAR) $(JUNIT_RUNNER_JAR) $(TEST_EXTENSIONS_DIR) . $(TEST_EXTENSIONS_SRCDIR) $(TAGSOUP_JAR))" ; \ $(SYSTEM_JRE_DIR)/bin/java "-Xbootclasspath/a:$$CLASSPATH" CommandLine $$class_names if WITH_XSLTPROC -$(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 -$(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(NETX_UNIT_TEST_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_unit.html -$(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/textreport.xsl $(NETX_UNIT_TEST_DIR)/tests-output.xml > $(TESTS_DIR)/summary_unit.txt endif mkdir -p stamps && \ touch $@ stamps/compile-jacoco-operator.stamp: jacoco-operator-source-files.txt if WITH_JACOCO mkdir -p $(JACOCO_OPERATOR_DIR) && \ $(SYSTEM_JDK_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(JACOCO_OPERATOR_DIR) \ $(call composeclasspath, $(JACOCO_CLASSPATH)) \ @jacoco-operator-source-files.txt ; else echo "Sorry, jacoco coverage report generator cant be compiled without jacoco installed. Try installing jacoco or specify with-jacoco value" ; exit 5 endif touch $@ #warning, during this target tests.build/netx/unit/tests-output.xml is backup and rewriten (but not coresponding html file) #xml results run with jacoco agent however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored stamps/run-unit-test-code-coverage-jacoco.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR) \ $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(UNIT_CLASS_NAMES) stamps/compile-jacoco-operator.stamp if WITH_JACOCO filename=" " ; \ cd $(NETX_UNIT_TEST_SRCDIR) ; \ for file in `find . -type f \! -iname "*.java"`; do\ filename=`echo $$file `; \ cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \ done ; \ cd $(NETX_UNIT_TEST_DIR) ; \ for file in $(COVERAGE_MODIFIED_FILES) ; do \ mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \ done ;\ class_names=`cat $(UNIT_CLASS_NAMES)` ; \ CLASSPATH=$(call joinsegments, $(NETX_DIR)/lib/classes.jar $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar $(JUNIT_RUNTIME) $(JUNIT_RUNNER_JAR) $(TEST_EXTENSIONS_DIR) $(JACOCO_CLASSPATH) . $(TEST_EXTENSIONS_SRCDIR) $(MSLINKS_JAR) $(TAGSOUP_JAR)) ; \ $(SYSTEM_JRE_DIR)/bin/java $(JACOCO_AGENT_SWITCH) -Xbootclasspath/a:$$CLASSPATH CommandLine $$class_names ; \ for file in $(COVERAGE_MODIFIED_FILES) ; do \ mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_SUFFIX)" ; \ mv $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" $(NETX_UNIT_TEST_DIR)/$$file ; \ done ; \ $(JACOCO_OPERATOR_EXEC) \ report --die-soon --html-output coverage --xml-output coverage.xml --input-file jacoco.exec \ --input-srcs $(NETX_SRCDIR) $(PLUGIN_SRCDIR)/java $(NETX_UNIT_TEST_SRCDIR) $(JUNIT_RUNNER_SRCDIR) $(TEST_EXTENSIONS_SRCDIR) \ --input-builds $(NETX_DIR)/lib/classes.jar $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar $(NETX_UNIT_TEST_DIR) $(JUNIT_RUNNER_JAR) $(TEST_EXTENSIONS_DIR) \ --title "IcedTea-Web unit-tests codecoverage" ; else echo "Sorry, coverage report cant be run without jacoco installed. Try installing jacoco or specify with-jacoco value" ; exit 5 endif touch $@ $(COVERABLE_PLUGIN_DIR): mkdir -p $(COVERABLE_PLUGIN_DIR); $(COVERABLE_PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc cd $(COVERABLE_PLUGIN_DIR) && \ $(CXX) $(CXXFLAGS) \ $(DEFS) $(VERSION_DEFS) \ -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ -DPLUGIN_NAME="\"IcedTea-Web Plugin with jacoco coverage agent\"" \ -DJAVAWS_BIN="\"$(bindir)/$(JAVAWS)\"" \ -DJAVAWS_NAME="\"$(javaws)\"" \ -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \ -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \ -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \ -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_COVERAGE_BOOTCLASSPATH) \ -DCOVERAGE_AGENT=$(JACOCO_AGENT_PLUGIN_SWITCH) \ -DNETX_JAR="\"$(NETX_JAR)\"" \ -DPLUGIN_JAR="\"$(PLUGIN_JAR)\"" \ -DJSOBJECT_JAR="\"$(JSOBJECT_JAR)\""\ $(GLIB_CFLAGS) \ $(MOZILLA_CFLAGS) \ -fvisibility=hidden \ -fPIC -o $@ -c $< $(COVERABLE_PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY): $(addprefix $(COVERABLE_PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) cd $(COVERABLE_PLUGIN_DIR) && \ $(CXX) $(CXXFLAGS) \ $(PLUGIN_OBJECTS) \ $(GLIB_LIBS) \ $(MOZILLA_LIBS) \ -shared -o $@ stamps/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) touch $@ #warning, during this target tests.build/netx/jnlp_testsengine/tests-output.xml is backup and rewriten (but not coresponding html file) #xml results run with jacoco agent, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored stamps/run-reproducers-test-code-coverage-jacoco.stamp: stamps/run-netx-dist-tests.stamp $(REPRODUCERS_CLASS_NAMES) \ stamps/compile-jacoco-operator.stamp stamps/build-fake-plugin.stamp if WITH_JACOCO cd $(TESTS_DIR) ; \ for file in $(COVERAGE_MODIFIED_FILES) ; do \ mv $(TEST_EXTENSIONS_DIR)/$$file $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \ done ;\ echo "backuping $(JAVAWS) in $(DESTDIR)$(bindir)" ; \ javaws_backup=$(DESTDIR)$(bindir)/javaws_backup ; \ mv $(DESTDIR)$(bindir)/$(JAVAWS) $$javaws_backup ; \ echo "patching $(JAVAWS)" ; \ nw_bootclasspath="-Xbootclasspath/a:$(UNIFIED_JACOCO_CLASSPATH)" ; \ 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) ; \ chmod 777 $(DESTDIR)$(bindir)/$(JAVAWS) ; \ echo "backuping plugin in $(DESTDIR)/$(libdir)$(BUILT_PLUGIN_LIBRARY)" ; \ plugin_backup=$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)_backup ; \ mv $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $$plugin_backup ; \ echo "fakeing plugin" ; \ cp $(COVERABLE_PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) ; \ testcases_srcs=( ) ; \ k=0 ; \ types=($(ALL_REPRODUCERS)); \ for which in "$${types[@]}" ; do \ . $(TOP_SRC_DIR)/NEW_LINE_IFS ; \ simpleReproducers=(`cat $(TOP_BUILD_DIR)/junit-jnlp-dist-$$which.txt `); \ IFS="$$IFS_BACKUP" ; \ for dir in "$${simpleReproducers[@]}" ; do \ testcases_srcs[k]="$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \ k=$$((k+1)) ; \ done ; \ done ; \ cd $(TEST_EXTENSIONS_DIR) ; \ class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \ CLASSPATH=$(call joinsegments, $(NETX_DIR)/lib/classes.jar $(JUNIT_RUNTIME) $(JUNIT_RUNNER_JAR) . $(TEST_EXTENSIONS_DIR) $(JACOCO_CLASSPATH) $(TEST_EXTENSIONS_TESTS_DIR) $(TEST_EXTENSIONS_SRCDIR)) ; \ $(SYSTEM_JRE_DIR)/bin/java $(JACOCO_AGENT_SWITCH) $(REPRODUCERS_DPARAMETERS) \ -Xbootclasspath/a:$$CLASSPATH CommandLine $$class_names ; \ if [ -f $(JACOCO_JAVAWS_RESULTS) ] ; then \ jacoco_javaws_results=$(JACOCO_JAVAWS_RESULTS) ; \ $(JACOCO_OPERATOR_EXEC) \ report --die-soon --html-output coverage-javaws --xml-output coverage-javaws.xml --input-file $(JACOCO_JAVAWS_RESULTS) \ --input-srcs $(NETX_SRCDIR) \ --input-builds $(NETX_DIR)/lib/classes.jar \ --title "IcedTea-Web javaws reproducers codecoverage" ; \ fi; \ if [ -f $(JACOCO_PLUGIN_RESULTS) ] ; then \ jacoco_plugin_results=$(JACOCO_PLUGIN_RESULTS) ; \ $(JACOCO_OPERATOR_EXEC) \ report --die-soon --html-output coverage-plugin --xml-output coverage-plugin.xml --input-file $(JACOCO_PLUGIN_RESULTS) \ --input-srcs $(NETX_SRCDIR) $(PLUGIN_SRCDIR)/java \ --input-builds $(NETX_DIR)/lib/classes.jar $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar \ --title "IcedTea-Web plugin reproducers codecoverage" ; \ fi; \ $(JACOCO_OPERATOR_EXEC) \ merge --die-soon --input-files jacoco.exec $$jacoco_javaws_results $$jacoco_plugin_results --output-file jacoco-merged-reproducers.exec ; \ $(JACOCO_OPERATOR_EXEC) \ report --html-output coverage --xml-output coverage.xml --input-file jacoco-merged-reproducers.exec \ --input-srcs $(NETX_SRCDIR) $(PLUGIN_SRCDIR)/java $(JUNIT_RUNNER_SRCDIR) $(TEST_EXTENSIONS_SRCDIR) $(TEST_EXTENSIONS_TESTS_SRCDIR) "$${testcases_srcs[@]}" \ --input-builds $(NETX_DIR)/lib/classes.jar $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar $(JUNIT_RUNNER_JAR) $(TEST_EXTENSIONS_DIR) $(TEST_EXTENSIONS_TESTS_DIR) \ --title "IcedTea-Web reproducers-tests codecoverage" ; \ echo "restoring $(JAVAWS) in $(DESTDIR)$(bindir)" ; \ rm -f $(DESTDIR)$(bindir)/$(javaws); \ mv $$javaws_backup $(DESTDIR)$(bindir)/$(JAVAWS); \ echo "restoring plugin in $(DESTDIR)/$(libdir)$(BUILT_PLUGIN_LIBRARY)" ; \ mv $$plugin_backup $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) ; \ for file in $(COVERAGE_MODIFIED_FILES) ; do \ mv $(TEST_EXTENSIONS_DIR)/$$file $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_SUFFIX)" ; \ mv $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" $(TEST_EXTENSIONS_DIR)/$$file ; \ done ; else echo "Sorry, coverage report cant be run without jacoco installed. Try installing jacoco or specify with-jacoco value" ; exit 5 endif touch $@ run-test-code-coverage-jacoco: stamps/run-unit-test-code-coverage-jacoco.stamp stamps/run-reproducers-test-code-coverage-jacoco.stamp if WITH_JACOCO cd $(TESTS_DIR) ; \ k=0 ; \ types=($(ALL_REPRODUCERS)); \ for which in "$${types[@]}" ; do \ . $(TOP_SRC_DIR)/NEW_LINE_IFS ; \ simpleReproducers=(`cat $(TOP_BUILD_DIR)/junit-jnlp-dist-$$which.txt `); \ IFS="$$IFS_BACKUP" ; \ for dir in "$${simpleReproducers[@]}" ; do \ testcases_srcs[k]="$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \ k=$$((k+1)) ; \ done ; \ done ; \ class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \ $(JACOCO_OPERATOR_EXEC) \ merge --die-soon --input-files $(TEST_EXTENSIONS_DIR)/jacoco-merged-reproducers.exec $(NETX_UNIT_TEST_DIR)/jacoco.exec --output-file jacoco-merged.exec; \ $(JACOCO_OPERATOR_EXEC) \ report --html-output coverage --xml-output coverage.xml --input-file jacoco-merged.exec \ --input-srcs $(NETX_SRCDIR) $(PLUGIN_SRCDIR)/java $(JUNIT_RUNNER_SRCDIR) $(TEST_EXTENSIONS_SRCDIR) $(TEST_EXTENSIONS_TESTS_SRCDIR) "$${testcases_srcs[@]}" \ --input-builds $(NETX_DIR)/lib/classes.jar $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar $(JUNIT_RUNNER_JAR) $(TEST_EXTENSIONS_DIR) $(TEST_EXTENSIONS_TESTS_DIR) \ --input-srcs $(NETX_UNIT_TEST_SRCDIR) \ --input-builds $(NETX_UNIT_TEST_DIR) \ --title "IcedTea-Web complete codecoverage" ; else echo "Sorry, coverage report cant be run without jacoco installed. Try installing jacoco or specify with-jacoco value" ; exit 5 endif run-test-server-on-44321: stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ stamps/test-extensions-compile.stamp stamps/compile-reproducers-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/copy-reproducers-resources.stamp cd $(TEST_EXTENSIONS_DIR) ; \ CLASSPATH=$(call joinsegments, $(NETX_DIR)/lib/classes.jar $(JUNIT_RUNTIME) $(JUNIT_RUNNER_JAR) . $(TEST_EXTENSIONS_TESTS_DIR)) ; \ $(SYSTEM_JRE_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \ -Xbootclasspath/a:$$CLASSPATH net.sourceforge.jnlp.ServerAccess run-test-server-on-random-port: stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ stamps/test-extensions-compile.stamp stamps/compile-reproducers-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/copy-reproducers-resources.stamp cd $(TEST_EXTENSIONS_DIR) ; \ CLASSPATH=$(call joinsegments, $(NETX_DIR)/lib/classes.jar $(JUNIT_RUNTIME) $(JUNIT_RUNNER_JAR) . $(TEST_EXTENSIONS_TESTS_DIR)) ; \ $(SYSTEM_JRE_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \ -Xbootclasspath/a:$$CLASSPATH net.sourceforge.jnlp.ServerAccess randomport run-test-server-on-itwtestsport: stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ stamps/test-extensions-compile.stamp stamps/compile-reproducers-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/copy-reproducers-resources.stamp cd $(TEST_EXTENSIONS_DIR) ; \ CLASSPATH=$(call joinsegments, $(NETX_DIR)/lib/classes.jar $(JUNIT_RUNTIME) $(JUNIT_RUNNER_JAR) . $(TEST_EXTENSIONS_TESTS_DIR)) ; \ $(SYSTEM_JRE_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \ -Xbootclasspath/a:$$CLASSPATH net.sourceforge.jnlp.ServerAccess $$ITWTESTSPORT clean-netx-tests: clean-netx-unit-tests clean-junit-runner clean-netx-dist-tests clean-test-code-coverage-jacoco if [ -e $(TESTS_DIR)/netx ]; then \ rmdir $(TESTS_DIR)/netx ; \ fi clean-junit-runner: rm -f junit-runner-source-files.txt rm -rf $(JUNIT_RUNNER_DIR) rm -f $(JUNIT_RUNNER_JAR) clean-netx-unit-tests: clean_tests_reports rm -f netx-unit-tests-source-files.txt rm -rf $(NETX_UNIT_TEST_DIR) rm -f $(UNIT_CLASS_NAMES) rm -f stamps/check-pac-functions.stamp rm -f stamps/run-netx-unit-tests.stamp rm -f stamps/netx-unit-tests-compile.stamp clean_tests_reports: rm -rf $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ rm -f $(TESTS_DIR)/*.html rm -f $(TESTS_DIR)/summary_unit.txt rm -f $(TESTS_DIR)/summary_reproducers.txt clean-netx-dist-tests: clean_tests_reports netx-dist-tests-remove-cert-from-public clean-custom-reproducers rm -f test-extensions-source-files.txt rm -f test-extensions-tests-source-files.txt rm -f $(TEST_EXTENSIONS_COMPATIBILITY_SYMLINK) rm -rf $(TEST_EXTENSIONS_TESTS_DIR) rm -rf $(REPRODUCERS_BUILD_DIR) rm -rf $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR) rm -rf $(TEST_EXTENSIONS_DIR) rm -f stamps/junit-jnlp-dist-dirs rm -f stamps/test-extensions-compile.stamp rm -f stamps/test-extensions-tests-compile.stamp rm -f stamps/netx-dist-tests-prepare-reproducers.stamp rm -f stamps/compile-reproducers-testcases.stamp rm -f stamps/copy-reproducers-resources.stamp rm -f stamps/netx-dist-tests-sign-some-reproducers.stamp rm -f stamps/change-dots-to-paths.stamp rm -f junit-jnlp-dist-simple.txt rm -f junit-jnlp-dist-custom.txt rm -f netx-dist-tests-tests-source-files.txt types=($(SIGNED_REPRODUCERS)) ; \ for which in "$${types[@]}" ; do \ rm -f junit-jnlp-dist-$$which.txt ; \ rm -f $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) ; \ done ; rm -f stamps/exported-test-certs.stamp rm -f stamps/junit-jnlp-dist-signed.stamp rm -f $(REPRODUCERS_CLASS_NAMES) rm -f $(TOP_BUILD_DIR)/$(PRIVATE_KEYSTORE_NAME) rm -f stamps/run-netx-dist-tests.stamp clean-unit-test-code-coverage-jacoco: if [ -e stamps/run-unit-test-code-coverage-jacoco.stamp ]; then \ rm -rf $(NETX_UNIT_TEST_DIR)/coverage ; \ rm -f $(NETX_UNIT_TEST_DIR)/coverage.xml ; \ rm -f $(NETX_UNIT_TEST_DIR)/jacoco.exec ; \ rm -f $(NETX_UNIT_TEST_DIR)/tests-output_withEmma.xml ; \ rm -f stamps/run-unit-test-code-coverage-jacoco.stamp ; \ fi clean-reproducers-test-code-coverage-jacoco: if [ -e stamps/run-reproducers-test-code-coverage-jacoco.stamp ]; then \ rm -rf $(TEST_EXTENSIONS_DIR)/coverage-javaws ; \ rm -f $(TEST_EXTENSIONS_DIR)/coverage-javaws.xml ; \ rm -f $(TEST_EXTENSIONS_DIR)/jacoco_javaws.exec ; \ rm -rf $(TEST_EXTENSIONS_DIR)/coverage-plugin ; \ rm -f $(TEST_EXTENSIONS_DIR)/coverage-plugin.xml ; \ rm -f $(TEST_EXTENSIONS_DIR)/jacoco_plugin.exec ; \ rm -rf $(TEST_EXTENSIONS_DIR)/coverage ; \ rm -f $(TEST_EXTENSIONS_DIR)/coverage.xml ; \ rm -f $(TEST_EXTENSIONS_DIR)/jacoco-merged-reproducers.exec ; \ rm -f $(TEST_EXTENSIONS_DIR)/tests-output_withEmma.xml ; \ rm -f stamps/run-reproducers-test-code-coverage-jacoco.stamp ; \ fi clean-test-code-coverage-jacoco: clean-unit-test-code-coverage-jacoco clean-reproducers-test-code-coverage-jacoco clean-test-code-coverage-tools-jacoco if [ -e $(TESTS_DIR)/coverage.xml ]; then \ rm -rf $(TESTS_DIR)/coverage ; \ rm -f $(TESTS_DIR)/jacoco-merged.exec; \ fi clean-test-code-coverage-tools-jacoco: rm -rf $(JACOCO_OPERATOR_DIR) rm -rf $(COVERABLE_PLUGIN_DIR) rm -f stamps/compile-jacoco-operator.stamp; rm -f jacoco-operator-source-files.txt rm -f stamps/build-fake-plugin.stamp # plugin tests if ENABLE_NATIVE_PLUGIN stamps/plugin-tests.stamp: $(PLUGIN_TEST_SRCS) stamps/plugin.stamp mkdir -p plugin/tests/LiveConnect $(SYSTEM_JDK_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d plugin/tests/LiveConnect \ -classpath liveconnect/lib/classes.jar \ $(PLUGIN_TEST_SRCS) ; $(SYSTEM_JDK_DIR)/bin/jar cf plugin/tests/LiveConnect/PluginTest.jar \ plugin/tests/LiveConnect/*.class ; cp -pPR $(SRC_DIR_LINK) $(TOP_SRC_DIR)/plugin/tests/LiveConnect/*.{js,html} \ plugin/tests/LiveConnect ; echo "Done. Now launch \"firefox file://`pwd`/index.html\"" ; mkdir -p stamps touch stamps/plugin-tests.stamp endif printvarsfile: $(MAKE) printvars > $@ printvars: $(foreach v, $(.VARIABLES), $(info $(v)=$($(v)))) # Target Aliases # =============== add-netx: stamps/add-netx.stamp add-netx-debug: stamps/add-netx-debug.stamp netx: stamps/netx.stamp netx-dist: stamps/netx-dist.stamp plugin: stamps/plugin.stamp plugin-tests: stamps/plugin-tests.stamp check-pac-functions: stamps/check-pac-functions.stamp run-netx-unit-tests: stamps/run-netx-unit-tests.stamp links: stamps/global-links.stamp user-links: stamps/user-links.stamp run-netx-dist-tests: stamps/run-netx-dist-tests.stamp run-unit-test-code-coverage-jacoco: stamps/run-unit-test-code-coverage-jacoco.stamp run-reproducers-test-code-coverage-jacoco: stamps/run-reproducers-test-code-coverage-jacoco.stamp