/hg/icedtea-web: Deprecated shell launchers, added skeleton for ...

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

/hg/icedtea-web: Deprecated shell launchers, added skeleton for ...

jvanek
changeset 613ecf033e1a in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=613ecf033e1a
author: Jiri Vanek <[hidden email]>
date: Fri Nov 03 10:09:44 2017 +0100

        Deprecated shell launchers, added skeleton for future rust launcher

        * Makefile.am: launchers and desktop files gathered to variable, filled according to configure, iffed out deprecated shell launchers, added build stubs for rustc calls
        * configure.ac: added switch --enable-shell-launchers to enable build of legacy shell launchers. Note, that when installed, those launchers will have .sh suffix added check for rustc - Mandatory without shell launchers, only optional with.
        * rust-launcher/launchers.rs: new, stub for native launchers
        * shell-launcher/launchers.bat.in: renamed from launcher/launchers.bat.in
        * shell-launcher/launchers.sh.in: renamed from launcher/launchers.in


diffstat:

 ChangeLog                       |   13 ++
 Makefile.am                     |  121 +++++++++++++++++------
 configure.ac                    |   18 +++
 launcher/launchers.bat.in       |   81 ----------------
 launcher/launchers.in           |  202 ----------------------------------------
 rust-launcher/launchers.rs      |    3 +
 shell-launcher/launchers.bat.in |   81 ++++++++++++++++
 shell-launcher/launchers.sh.in  |  202 ++++++++++++++++++++++++++++++++++++++++
 8 files changed, 407 insertions(+), 314 deletions(-)

diffs (truncated from 922 to 500 lines):

diff -r 676a6ba5bc31 -r 613ecf033e1a ChangeLog
--- a/ChangeLog Mon Sep 25 18:05:33 2017 +0200
+++ b/ChangeLog Fri Nov 03 10:09:44 2017 +0100
@@ -1,3 +1,16 @@
+2017-11-02  Jiri Vanek <[hidden email]>
+
+ Deprecated shell launchers, added skeleton for future rust launcher
+ * Makefile.am: launchers and desktop files gathered to variable, filled according to configure
+ iffed out deprecated shell launchers, added build stubs for rustc calls
+ * configure.ac: added switch --enable-shell-launchers to enable build of legacy shell launchers.
+ note, that when installed, those launchers will have .sh suffix
+ added check for rustc - Mandatory without shell launchers, only optional with.
+ * rust-launcher/launchers.rs: new, stub for native launchers
+ * shell-launcher/launchers.bat.in: renamed from launcher/launchers.bat.in
+ * shell-launcher/launchers.sh.in: renamed from launcher/launchers.in
+
+
 2017-09-25  Jiri Vanek <[hidden email]>
             Tomáš Votava <[hidden email]>
 
diff -r 676a6ba5bc31 -r 613ecf033e1a Makefile.am
--- a/Makefile.am Mon Sep 25 18:05:33 2017 +0200
+++ b/Makefile.am Fri Nov 03 10:09:44 2017 +0100
@@ -29,6 +29,32 @@
  WIN_LAUNCHERS=
 endif
 
+if ENABLE_SHELL_LAUNCHERS
+ SHELL_LUNCHERS=$(WIN_LAUNCHERS) launcher.build/$(javaws).sh launcher.build/$(itweb_settings).sh launcher.build/$(policyeditor).sh
+else
+ SHELL_LUNCHERS=
+endif
+
+
+if ENABLE_NATIVE_LAUNCHERS
+ NATIVE_LUNCHERS=launcher.build/$(javaws) launcher.build/$(itweb_settings) launcher.build/$(policyeditor)
+ DESKTOP_SUFFIX=
+else
+ NATIVE_LUNCHERS=
+ DESKTOP_SUFFIX=.sh
+endif
+
+# javaws is program name, JAVAWS is used executable name. in 99.9% those are equals.
+# in unsupported case (no rust, and enforced shell lunchers), it will become javaws.sh.
+# similar case is for other two binaries.
+JAVAWS=$(javaws)$(DESKTOP_SUFFIX)
+ITWEB_SETTINGS=$(itweb_settings)$(DESKTOP_SUFFIX)
+POLICYEDITOR=$(policyeditor)$(DESKTOP_SUFFIX)
+
+LAUNCHERS=$(NATIVE_LUNCHERS) $(SHELL_LUNCHERS)
+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
@@ -253,12 +279,12 @@
 
 export PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION)
 
-export EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in policyeditor.desktop.in $(top_srcdir)/completion \
- itweb-settings.desktop.in launcher $(top_srcdir)/tests html-gen.sh NEW_LINE_IFS $(top_srcdir)/metadata.in
+export EXTRA_DIST = $(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
 
 # reproducers `D`shortcuts
 export DTEST_SERVER=-Dtest.server.dir=$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)
-export DJAVAWS_BUILD=-Djavaws.build.bin=$(DESTDIR)$(bindir)/$(javaws)
+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
@@ -294,8 +320,7 @@
 # =================
 
 all-local: stamps/netx-dist.stamp stamps/plugin.stamp stamps/docs.stamp \
- $(WIN_LAUNCHERS) \
- launcher.build/$(javaws) javaws.desktop launcher.build/$(itweb_settings) itweb-settings.desktop launcher.build/$(policyeditor) policyeditor.desktop
+ $(LAUNCHERS) $(DESKTOP_FILES)
 
 
 check-local: $(RHINO_TESTS) $(JUNIT_TESTS)
@@ -323,14 +348,21 @@
  ${INSTALL_DATA} $(NETX_DIR)/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
  ${INSTALL_DATA} $(NETX_SRCDIR)/javaws_splash.png $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/javaws_splash.png
  ${INSTALL_DATA} $(TOP_SRC_DIR)/javaws.png $(ICONS_DEST_DIR)/
+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
  ${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)/
@@ -486,7 +518,7 @@
    $(DEFS) $(VERSION_DEFS) \
   -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
   -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \
-  -DJAVAWS_BIN="\"$(bindir)/$(javaws)\"" \
+  -DJAVAWS_BIN="\"$(bindir)/$(JAVAWS)\"" \
   -DJAVAWS_NAME="\"$(javaws)\"" \
   -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \
   -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \
@@ -541,7 +573,7 @@
    $(DEFS) $(VERSION_DEFS) \
   -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
   -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \
-  -DJAVAWS_BIN="\"$(bindir)/$(javaws)\"" \
+  -DJAVAWS_BIN="\"$(bindir)/$(JAVAWS)\"" \
   -DJAVAWS_NAME="\"$(javaws)\"" \
   -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \
   -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \
@@ -816,30 +848,48 @@
 clean-desktop-files:
  rm -f javaws.desktop
  rm -f itweb-settings.desktop
+ rm -f policyeditor.desktop
 
-launcher.build/$(javaws): launcher/launchers.in
+
+if ENABLE_NATIVE_LAUNCHERS
+launcher.build/$(javaws): rust-launcher/launchers.rs
+ mkdir -p launcher.build
+ $(RUSTC) -o $@ $<
+
+launcher.build/$(itweb_settings): rust-launcher/launchers.rs
+ mkdir -p launcher.build
+ $(RUSTC) -o $@ $<
+
+launcher.build/$(policyeditor): rust-launcher/launchers.rs
+ mkdir -p launcher.build
+ $(RUSTC) -o $@ $<
+endif
+
+if ENABLE_SHELL_LAUNCHERS
+launcher.build/$(javaws).sh: shell-launcher/launchers.sh.in
  mkdir -p launcher.build
  MAIN_CLASS=net.sourceforge.jnlp.runtime.Boot ;\
- BIN_LOCATION=$(bindir)/$(javaws) ;\
+ BIN_LOCATION=$(bindir)/$(javaws).sh ;\
  PROGRAM_NAME=$(javaws) ;\
  $(edit_launcher_script) < $< > $@
 
-launcher.build/$(itweb_settings): launcher/launchers.in
+launcher.build/$(itweb_settings).sh: shell-launcher/launchers.sh.in
  mkdir -p launcher.build
  MAIN_CLASS=net.sourceforge.jnlp.controlpanel.CommandLine ;\
- BIN_LOCATION=$(bindir)/$(itweb_settings) ;\
+ BIN_LOCATION=$(bindir)/$(itweb_settings).sh ;\
  PROGRAM_NAME=$(itweb_settings) ;\
  $(edit_launcher_script) < $< > $@
 
-launcher.build/$(policyeditor): launcher/launchers.in
+launcher.build/$(policyeditor).sh: shell-launcher/launchers.sh.in
  mkdir -p launcher.build
  MAIN_CLASS=net.sourceforge.jnlp.security.policyeditor.PolicyEditor ;\
- BIN_LOCATION=$(bindir)/$(policyeditor) ;\
+ BIN_LOCATION=$(bindir)/$(policyeditor).sh ;\
  PROGRAM_NAME=$(policyeditor) ;\
  $(edit_launcher_script) < $< > $@
 
+if WINDOWS
 # TODO get rid of this copypaste
-launcher.build/$(javaws).bat: launcher/launchers.bat.in
+launcher.build/$(javaws).bat: shell-launcher/launchers.bat.in
  mkdir -p launcher.build
  MAIN_CLASS=net.sourceforge.jnlp.runtime.Boot ;\
  BIN_LOCATION=$(bindir)/$(javaws) ;\
@@ -848,7 +898,7 @@
 
 
 # TODO get rid of this copypaste
-launcher.build/$(itweb_settings).bat: launcher/launchers.bat.in
+launcher.build/$(itweb_settings).bat: shell-launcher/launchers.bat.in
  mkdir -p launcher.build
  MAIN_CLASS=net.sourceforge.jnlp.controlpanel.CommandLine ;\
  BIN_LOCATION=$(bindir)/$(itweb_settings) ;\
@@ -856,35 +906,44 @@
  $(edit_launcher_script) < $< > $@
 
 # TODO get rid of this copypaste
-launcher.build/$(policyeditor).bat: launcher/launchers.bat.in
+launcher.build/$(policyeditor).bat: shell-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) < $< > $@
+endif
+endif
 
 clean-launchers:
+if ENABLE_NATIVE_LAUNCHERS
  rm -f launcher.build/$(javaws)
  rm -f launcher.build/$(itweb_settings)
  rm -f launcher.build/$(policyeditor)
+endif
+if ENABLE_SHELL_LAUNCHERS
+ rm -f launcher.build/$(javaws).sh
+ rm -f launcher.build/$(itweb_settings).sh
+ rm -f launcher.build/$(policyeditor).sh
 if WINDOWS
  rm -f launcher.build/$(javaws).bat
  rm -f launcher.build/$(itweb_settings).bat
  rm -f launcher.build/$(policyeditor).bat
 endif
+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
+ 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)#" \
+ 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)#' \
+ sed "s#PATH_TO_POLICYEDITOR#$(bindir)/$(POLICYEDITOR)#" \
  < $(srcdir)/policyeditor.desktop.in > policyeditor.desktop
 
 # documentation
@@ -1247,8 +1306,8 @@
  done ; \
  echo $$class_names > $(REPRODUCERS_CLASS_NAMES)
 
-stamps/run-netx-dist-tests.stamp: stamps/netx-dist.stamp stamps/plugin.stamp launcher.build/$(javaws) \
- javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop launcher.build/$(policyeditor) policyeditor.desktop \
+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
@@ -1294,7 +1353,7 @@
 #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 \
- launcher.build/$(javaws) stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)
+ $(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) ; \
@@ -1323,7 +1382,7 @@
   rm -f stamps/user-links.stamp ; \
  fi
 
-stamps/global-links.stamp: stamps/netx-dist.stamp stamps/plugin.stamp launcher.build/$(javaws) \
+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)"  ; \
@@ -1499,7 +1558,7 @@
    $(DEFS) $(VERSION_DEFS) \
   -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
   -DPLUGIN_NAME="\"IcedTea-Web Plugin with jacoco coverage agent\"" \
-  -DJAVAWS_BIN="\"$(bindir)/$(javaws)\"" \
+  -DJAVAWS_BIN="\"$(bindir)/$(JAVAWS)\"" \
   -DJAVAWS_NAME="\"$(javaws)\"" \
   -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \
   -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \
@@ -1535,13 +1594,13 @@
  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)" ; \
+ echo "backuping $(JAVAWS) in $(DESTDIR)$(bindir)" ; \
  javaws_backup=$(DESTDIR)$(bindir)/javaws_backup ; \
- mv $(DESTDIR)$(bindir)/javaws $$javaws_backup ;  \
- echo "patching $(javaws)" ; \
+ 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) ; \
+ 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 ;  \
@@ -1587,9 +1646,9 @@
   --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)" ; \
+ echo "restoring $(JAVAWS) in $(DESTDIR)$(bindir)" ; \
  rm -f $(DESTDIR)$(bindir)/$(javaws);  \
- mv $$javaws_backup $(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 \
diff -r 676a6ba5bc31 -r 613ecf033e1a configure.ac
--- a/configure.ac Mon Sep 25 18:05:33 2017 +0200
+++ b/configure.ac Fri Nov 03 10:09:44 2017 +0100
@@ -41,6 +41,24 @@
     AC_MSG_ERROR([/bin/bash is used in runtime and for about generation. Dying sooner rather then later])
 fi
 
+AC_MSG_CHECKING([whether build legacy shell launchers])
+AC_ARG_ENABLE([shell-launchers],
+      [AS_HELP_STRING([--enable-shell-launchers],
+            [Enable build of legacy shell launchers])],
+      [ENABLE_SHELL_LAUNCHERS="${enableval}"], [ENABLE_SHELL_LAUNCHERS='no'])
+AM_CONDITIONAL([ENABLE_SHELL_LAUNCHERS], [test x$ENABLE_SHELL_LAUNCHERS = xyes])
+AC_MSG_RESULT(${ENABLE_SHELL_LAUNCHERS})
+
+AC_PATH_PROG([RUSTC], [rustc],,)
+if test x"$RUSTC" = x ; then
+  if test x${ENABLE_SHELL_LAUNCHERS} = xno ; then
+    AC_MSG_ERROR([rust is used to compile lunchers. No go])
+  else
+    echo "rust is used to compile lunchers, is missing but you have enable-shell-launchers as yes, continuing with UNAMAINTAINED shell launchers only"
+  fi
+fi
+AM_CONDITIONAL([ENABLE_NATIVE_LAUNCHERS], [test ! x"$RUSTC" = x])
+
 build_linux=no
 build_windows=no
 case "${host_os}" in
diff -r 676a6ba5bc31 -r 613ecf033e1a launcher/launchers.bat.in
--- a/launcher/launchers.bat.in Mon Sep 25 18:05:33 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-rem use JAVAWS_J_OPTIONS to pass java arguments, instead of -J opts for this script. This will be fixed in next releases
-rem use ITW_HOME to set location where ITW can be found. Form there all binaries and jars and other resources are found
-rem use JAVA_HOME to set path to JRE
-rem any redistribution/installer can replace INST_ITW_HOME and INST_JAVA_HOME to create better defaults
-rem if not set, following defaults are used
-set CLASSNAME=@MAIN_CLASS@
-set PROGRAM_NAME=@PROGRAM_NAME@
-
-set NASHORN=lib/ext/nashorn.jar
-set LAUNCHER_FLAGS=-Xms8m
-if "%PROGRAM_NAME%" == "javaws"  (
-  set ITW_WIN_SPECIALS=-Xnofork
-) else (
- set ITW_WIN_SPECIALS=
-)
-
-
-rem warning for linux users: when you put VAR="value" also quotes are stored in VAR!
-rem maybe set "VAR=value" is working better?
-
-set INST_JAVA_HOME=
-set BAD_SLASH_SCRIPT_DIR=%~dp0
-set SCRIPT_DIR=%BAD_SLASH_SCRIPT_DIR:\=/%
-set ITW_HOME=%SCRIPT_DIR%../
-
-rem the following is for testing-only and not intended to be robust
-rem will not work from 32-bit firefox
-for /f "tokens=*" %%a in ('%windir%\System32\reg query "HKLM\SOFTWARE\JavaSoft\Java Development Kit"') do set "version_key=%%a"
-set "version=%version_key:~58%"
-for /f "tokens=*" %%a in ('%windir%\System32\reg query "HKLM\SOFTWARE\JavaSoft\Java Development Kit\%version%" /v JavaHome') do set "jh_key=%%a"
-set BAD_SLASH_JAVA_HOME=%jh_key:~22%
-set REG_JAVA_HOME=%BAD_SLASH_JAVA_HOME:\=/%
-"%REG_JAVA_HOME%/bin/java.exe" -version
-if errorlevel 0 if not errorlevel 1 (
-    set JAVA_HOME=%REG_JAVA_HOME%
-)
-
-
-if "%INST_JAVA_HOME%" == ""  (
-  if not "%JAVA_HOME%" == ""  (
-  set CP=%JAVA_HOME%/lib/rt.jar;%JAVA_HOME%/lib/jfxrt.jar
-  set NASHORN=%JAVA_HOME%/%NASHORN%
-  set JAVA=%JAVA_HOME%/bin/java
-  ) else (
-    set CP=@JRE@/lib/rt.jar;@JRE@/lib/jfxrt.jar
-    set NASHORN=@JRE@/%NASHORN%
-    set JAVA=@JAVA@
-  )
-) else (
-  set CP=%INST_JAVA_HOME%/lib/rt.jar;%INST_JAVA_HOME%/lib/jfxrt.jar
-  set NASHORN=%INST_JAVA_HOME%/%NASHORN%
-  set JAVA=%INST_JAVA_HOME%/bin/java
-)
-
-if "%ITW_HOME%" == ""  (
-  if not "%INST_ITW_HOME%" == ""  (
-  set SPLASH_LOCATION=%INST_ITW_HOME%/share/icedtea-web/javaws_splash.png
-  set BINARY_LOCATION=%INST_ITW_HOME%/bin/@PROGRAM_NAME@.bat
-  set LAUNCHER_BOOTCLASSPATH=-Xbootclasspath/a:%INST_ITW_HOME%/share/icedtea-web/netx.jar;%INST_ITW_HOME%/share/icedtea-web/plugin.jar;%INST_ITW_HOME%/share/icedtea-web/jsobject.jar;%INST_ITW_HOME%/win-deps-runtime/js.jar;%INST_ITW_HOME%/win-deps-runtime/tagsoup.jar;%NASHORN%
-  ) else (
-    set SPLASH_LOCATION=@JAVAWS_SPLASH_LOCATION@
-    set BINARY_LOCATION=@BIN_LOCATION@.bat
-    set LAUNCHER_BOOTCLASSPATH=@LAUNCHER_BOOTCLASSPATH@;%NASHORN%
-  )
-) else (
-  set SPLASH_LOCATION=%ITW_HOME%/share/icedtea-web/javaws_splash.png
-  set BINARY_LOCATION=%ITW_HOME%/bin/@PROGRAM_NAME@.bat
-  set LAUNCHER_BOOTCLASSPATH=-Xbootclasspath/a:%ITW_HOME%/share/icedtea-web/netx.jar;%ITW_HOME%/share/icedtea-web/plugin.jar;%ITW_HOME%/share/icedtea-web/jsobject.jar;%ITW_HOME%/win-deps-runtime/js.jar;%ITW_HOME%/win-deps-runtime/tagsoup.jar;%NASHORN%
-)
-
-
-
-rem TODO use "exec -a %PROGRAM_NAME% ..." idiom
-"%JAVA%" "-splash:%SPLASH_LOCATION%" "%LAUNCHER_BOOTCLASSPATH%" %LAUNCHER_FLAGS% %JAVAWS_J_OPTIONS% "-classpath" "%CP%" "-Dicedtea-web.bin.name=%PROGRAM_NAME%" "-Dicedtea-web.bin.location=%BINARY_LOCATION%" "%CLASSNAME%" %ITW_WIN_SPECIALS% %*
-
-SET errno=%ERRORLEVEL%
-
-
-echo Please press any key to close this window/get back prompt
-pause > nul
-EXIT /B %errno%
diff -r 676a6ba5bc31 -r 613ecf033e1a launcher/launchers.in
--- a/launcher/launchers.in Mon Sep 25 18:05:33 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-#!/bin/bash
-
-NASHORN=lib/ext/nashorn.jar
-JAVA=@JAVA@
-LAUNCHER_BOOTCLASSPATH='@LAUNCHER_BOOTCLASSPATH@'
-LAUNCHER_FLAGS=-Xms8m
-CLASSNAME=@MAIN_CLASS@
-BINARY_LOCATION=@BIN_LOCATION@
-SPLASH_LOCATION=@JAVAWS_SPLASH_LOCATION@
-PROGRAM_NAME=@PROGRAM_NAME@
-CP=@JRE@/lib/rt.jar:@JRE@/lib/jfxrt.jar
-
-CONFIG_HOME=$XDG_CONFIG_HOME
-if [ "x$CONFIG_HOME" = "x" ] ; then
-  CONFIG_HOME=~/.config
-fi;
-PROPERTY_NAME=deployment.jre.dir
-CUSTOM_JRE_REGEX="^$PROPERTY_NAME *= *"
-CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" $CONFIG_HOME/icedtea-web/deployment.properties 2>/dev/null |  sed "s/$CUSTOM_JRE_REGEX//g"`
-#now check in legacy one
-if [ "x$CUSTOM_JRE" = "x" ] ; then
-  CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" ~/.icedtea/deployment.properties 2>/dev/null |  sed "s/$CUSTOM_JRE_REGEX//g"`
-fi;
-#now check in global one
-if [ "x$CUSTOM_JRE" = "x" ] ; then
-  CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" /etc/.java/.deploy/deployment.properties 2>/dev/null |  sed "s/$CUSTOM_JRE_REGEX//g"`
-fi;
-if [ "x$CUSTOM_JRE" != "x" ] ; then
-  if [ -e  "$CUSTOM_JRE" -a -e "$CUSTOM_JRE/bin/java" ] ; then
-    JAVA=$CUSTOM_JRE/bin/java
-    CP=$CUSTOM_JRE/lib/rt.jar:$CUSTOM_JRE/lib/jfxrt.jar
-    LAUNCHER_BOOTCLASSPATH=$LAUNCHER_BOOTCLASSPATH:$CUSTOM_JRE/$NASHORN
-  else
-    echo "Your custom JRE $CUSTOM_JRE read from deployment.properties under key $PROPERTY_NAME as $CUSTOM_JRE is not valid. Using default ($JAVA, $CP) in attempt to start. Please fix this."
-  fi
-else
-  LAUNCHER_BOOTCLASSPATH="$LAUNCHER_BOOTCLASSPATH:@JRE@/$NASHORN"
-fi;
-
-JDK9="NO"
-if ${JAVA} -version 2>&1 | grep -q "version \"9-" ; then
-  JDK9="YES"
-fi
-
-JAVA_ARGS=( )
-ARGS=( )
-COMMAND=()
-
-i=0
-j=0
-
-SPLASH="false"
-if [ "x$ICEDTEA_WEB_SPLASH" = "x" ] ; then
-SPLASH="true"
-fi;
-while [ "$#" -gt "0" ]; do
-  case "$1" in
-    -J*)
-      JAVA_ARGS[$i]="${1##-J}"
-      i=$((i+1))
-      ;;
-    *)
-      ARGS[$j]="$1"
-      j=$((j+1))
-      if [[ "$1" =~ ^[-]*headless ]] ; then  
-        SPLASH="false"
-      fi
-      ;;
-  esac
-  shift
-done
-
-k=0
-COMMAND[k]="${JAVA}"
-k=$((k+1))
-if [ "$SPLASH" = "true" ] ; then
-COMMAND[k]="-splash:${SPLASH_LOCATION}"
-k=$((k+1))