changeset 2631:6c9c43c172bb

PR2865: Handle uninstallation. 2016-03-04 Andrew John Hughes <gnu.andrew@member.fsf.org> PR2865: Handle uninstallation. * Makefile.am: (uninstall-local): Implemented. Deletes files installed by install-exec-local and install-data-local, then removes directories created by those targets. * NEWS: Updated. * acinclude.m4: (IT_CHECK_FOR_RMDIR): Check that rmdir is installed and see if it supports the --ignore-fail-on-empty option. * configure.ac: Invoke IT_CHECK_FOR_RMDIR.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Fri, 04 Mar 2016 20:38:10 +0000
parents e5d122ba61c0
children db6287c26b47
files ChangeLog Makefile.am NEWS acinclude.m4 configure.ac
diffstat 5 files changed, 177 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Mar 02 17:03:51 2016 +0000
+++ b/ChangeLog	Fri Mar 04 20:38:10 2016 +0000
@@ -1,3 +1,17 @@
+2016-03-04  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR2865: Handle uninstallation.
+	* Makefile.am:
+	(uninstall-local): Implemented. Deletes files
+	installed by install-exec-local and install-data-local,
+	then removes directories created by those targets.
+	* NEWS: Updated.
+	* acinclude.m4:
+	(IT_CHECK_FOR_RMDIR): Check that rmdir is installed
+	and see if it supports the --ignore-fail-on-empty option.
+	* configure.ac:
+	Invoke IT_CHECK_FOR_RMDIR.
+
 2014-06-11  Andrew John Hughes  <gnu.andrew@member.fsf.org>
 
 	PR1741: Break PulseAudio provider out into IcedTea-Sound
--- a/Makefile.am	Wed Mar 02 17:03:51 2016 +0000
+++ b/Makefile.am	Fri Mar 04 20:38:10 2016 +0000
@@ -2434,6 +2434,150 @@
 	      $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/$${vms} ; \
 	  fi ; \
 	done
+
+uninstall-local:
+	for files in $(BUILD_SDK_DIR)/bin/*; do \
+	  rm -vf $(DESTDIR)$(bindir)/$$(basename $${files}); \
+	done
+	for files in $(BUILD_SDK_DIR)/include/*.h; do \
+	  rm -vf $(DESTDIR)$(includedir)/$$(basename $${files}); \
+	done
+	for files in $(BUILD_SDK_DIR)/include/$(BUILD_OS_DIR)/*.h; do \
+	  rm -vf $(DESTDIR)$(includedir)/$(BUILD_OS_DIR)/$$(basename $${files}); \
+	done
+	for files in $(BUILD_SDK_DIR)/lib/*.jar; do \
+	  rm -vf $(DESTDIR)${exec_prefix}/lib/$$(basename $${files}); \
+	done
+	for files in $(BUILD_SDK_DIR)/lib/*.idl; do \
+	  rm -vf $(DESTDIR)${exec_prefix}/lib/$$(basename $${files}); \
+	done
+	rm -vf $(DESTDIR)${exec_prefix}/lib/jexec
+	for files in $(BUILD_SDK_DIR)/lib/$(INSTALL_ARCH_DIR)/*.so; do \
+	  rm -vf $(DESTDIR)${exec_prefix}/lib/$(INSTALL_ARCH_DIR)/$$(basename $${files}); \
+	done
+	for files in $(BUILD_SDK_DIR)/lib/$(INSTALL_ARCH_DIR)/jli/*.so; do \
+	  rm -vf $(DESTDIR)${exec_prefix}/lib/$(INSTALL_ARCH_DIR)/jli/$$(basename $${files}); \
+	done
+	for files in $(BUILD_SDK_DIR)/jre/bin/*; do \
+	  rm -vf $(DESTDIR)${prefix}/jre/bin/$$(basename $${files}); \
+	done
+	for files in $(BUILD_SDK_DIR)/jre/lib/*.jar; do \
+	  rm -vf $(DESTDIR)${prefix}/jre/lib/$$(basename $${files}); \
+	done
+	rm -vf $(DESTDIR)${prefix}/jre/lib/jexec
+	for files in $(BUILD_SDK_DIR)/jre/lib/$(INSTALL_ARCH_DIR)/*.so; do \
+	  rm -vf $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/$$(basename $${files}); \
+	done
+	for files in $(BUILD_SDK_DIR)/jre/lib/$(INSTALL_ARCH_DIR)/jli/*.so; do \
+	  rm -vf $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/jli/$$(basename $${files}); \
+	done
+	for vms in client server ; do \
+	  for files in $(BUILD_SDK_DIR)/jre/lib/$(INSTALL_ARCH_DIR)/$${vms}/*.so; do \
+	    rm -vf $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/$${vms}/$$(basename $${files}); \
+	  done ; \
+	done
+	for files in $(BUILD_SDK_DIR)/jre/lib/ext/*.jar; do \
+	  rm -vf $(DESTDIR)${prefix}/jre/lib/ext/$$(basename $${files}); \
+	done
+	for files in $(BUILD_SDK_DIR)/tapset/*.stp; do \
+	  rm -vf $(DESTDIR)${prefix}/tapset/$$(basename $${files}); \
+	done
+	for files in $(BUILD_SDK_DIR)/jre/lib/*.properties; do \
+	  rm -vf $(DESTDIR)${prefix}/jre/lib/$$(basename $${files}); \
+	done
+	rm -vf $(DESTDIR)${prefix}/release
+	rm -vf $(DESTDIR)${prefix}/src.zip
+	rm -vf $(DESTDIR)${prefix}/jre/lib/classlist
+	rm -vf $(DESTDIR)${prefix}/jre/lib/currency.data
+	rm -vf $(DESTDIR)${prefix}/jre/lib/jvm.hprof.txt
+	rm -vf $(DESTDIR)${prefix}/jre/lib/meta-index
+	rm -vf $(DESTDIR)${prefix}/jre/lib/psfont.properties.ja
+	rm -vf $(DESTDIR)${prefix}/jre/lib/tzdb.dat
+	rm -vf $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/jvm.cfg
+	for vms in client server ; do \
+	  rm -vf $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/$${vms}/Xusage.txt; \
+	done
+	for files in $(BUILD_SDK_DIR)/jre/lib/cmm/*.pf; do \
+	  rm -vf $(DESTDIR)/${prefix}/jre/lib/cmm/$$(basename $${files}); \
+	done
+	rm -vf $(DESTDIR)${prefix}/jre/lib/ext/meta-index
+	for files in $(BUILD_SDK_DIR)/jre/lib/images/cursors/*.gif; do \
+	  rm -vf $(DESTDIR)${prefix}/jre/lib/images/cursors/$$(basename $${files}); \
+	done
+	rm -vf $(DESTDIR)${prefix}/jre/lib/images/cursors/cursors.properties
+	rm -vf $(DESTDIR)${prefix}/jre/lib/management/jmxremote.access
+	rm -vf $(DESTDIR)${prefix}/jre/lib/management/management.properties
+	for files in $(BUILD_SDK_DIR)/jre/lib/management/*.template; do \
+	  rm -vf $(DESTDIR)${prefix}/jre/lib/management/$$(basename $${files}); \
+	done
+	rm -vf $(DESTDIR)${prefix}/jre/lib/security/java.policy
+	rm -vf $(DESTDIR)${prefix}/jre/lib/security/java.security
+	rm -vf $(DESTDIR)${prefix}/jre/lib/security/nss.cfg
+	rm -vf $(DESTDIR)${prefix}/jre/lib/security/blacklisted.certs
+	for files in $(BUILD_SDK_DIR)/jre/lib/security/*.jar; do \
+	  rm -vf $(DESTDIR)${prefix}/jre/lib/security/$$(basename $${files}); \
+	done
+	for files in $(BUILD_SDK_DIR)/man/man1/*.1; do \
+	  rm -vf $(DESTDIR)$(mandir)/man1/$$(basename $${files}); \
+	done
+	for files in $(BUILD_SDK_DIR)/man/ja_JP.UTF-8/man1/*.1; do \
+	  rm -vf $(DESTDIR)$(mandir)/ja_JP.UTF-8/man1/$$(basename $${files}); \
+	done
+	for items in $(BUILD_SDK_DIR)/demo/*; do \
+	  rm -rvf $(DESTDIR)${prefix}/demo/$$(basename $${items}); \
+	done
+	for items in $(BUILD_SDK_DIR)/sample/*; do \
+	  rm -rvf $(DESTDIR)${prefix}/sample/$$(basename $${items}); \
+	done
+	rm -rf $(DESTDIR)$(docdir)/README
+	rm -rf $(DESTDIR)$(docdir)/NEWS
+	rm -rf $(DESTDIR)$(docdir)/AUTHORS
+	rm -rf $(DESTDIR)$(docdir)/HACKING
+	rm -rf $(DESTDIR)$(docdir)/COPYING
+	rm -rf $(DESTDIR)$(docdir)/ChangeLog
+	rm -rf $(DESTDIR)$(docdir)/ASSEMBLY_EXCEPTION
+	rm -rf $(DESTDIR)$(docdir)/LICENSE
+	rm -rf $(DESTDIR)$(docdir)/THIRD_PARTY_README
+	rm -rf $(DESTDIR)$(docdir)/TRADEMARK
+	for sizes in 16 24 32 48 ; do \
+	  rm -vf $(DESTDIR)$(datadir)/icons/hicolor/$${sizes}x$${sizes}/apps/java-1.8.0.png; \
+	done
+	for files in $(DESKTOP_FILES) ; do \
+	  rm -vf $(DESTDIR)$(datadir)/applications/$$(basename $${files}); \
+	done
+	rm -vf $(DESTDIR)${prefix}/jre/.systemPrefs/.system.lock
+	rm -vf $(DESTDIR)${prefix}/jre/.systemPrefs/.systemRootModFile
+if ENABLE_DOCS
+	rm -rvf $(BUILD_OUTPUT_DIR)/docs/* $(DESTDIR)$(htmldir)
+	$(RMDIR) $(DESTDIR)$(htmldir)
+endif
+	for vms in client server ; do \
+	  rm -vf $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/$${vms}/classes.jsa; \
+	  if [ -e $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/$${vms} ] ; then \
+	    $(RMDIR) $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/$${vms} ; \
+	  fi ; \
+	done
+	$(RMDIR) $(DESTDIR)${exec_prefix}/lib/$(INSTALL_ARCH_DIR)/jli
+	$(RMDIR) $(DESTDIR)$(includedir)/$(BUILD_OS_DIR) $(DESTDIR)${exec_prefix}/lib/$(INSTALL_ARCH_DIR)
+	$(RMDIR) $(DESTDIR)$(bindir) $(DESTDIR)$(includedir) $(DESTDIR)${exec_prefix}/lib
+	$(RMDIR) $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)/jli
+	$(RMDIR) $(DESTDIR)${prefix}/jre/lib/$(INSTALL_ARCH_DIR)
+	$(RMDIR) $(DESTDIR)${prefix}/jre/lib/{cmm,ext,images/cursors,management,security}
+	$(RMDIR) $(DESTDIR)${prefix}/jre/lib/images
+	$(RMDIR) $(DESTDIR)${prefix}/jre/bin $(DESTDIR)${prefix}/jre/lib
+	$(RMDIR) $(DESTDIR)${prefix}/jre/.systemPrefs
+	$(RMDIR) $(DESTDIR)${prefix}/jre
+	$(RMDIR) $(DESTDIR)${prefix}/tapset
+	$(RMDIR) $(DESTDIR)${prefix}/demo
+	$(RMDIR) $(DESTDIR)${prefix}/sample
+	$(RMDIR) $(DESTDIR)$(docdir)
+	$(RMDIR) $(DESTDIR)$(datadir)/applications
+	$(RMDIR) $(DESTDIR)$(sysconfdir)/.java/.systemPrefs
+	$(RMDIR) $(DESTDIR)$(mandir)/{man1,ja_JP.UTF-8/man1}
+	for sizes in 16 24 32 48 ; do \
+	  $(RMDIR) $(DESTDIR)$(datadir)/icons/hicolor/$${sizes}x$${sizes}/apps ; \
+	done
+
 # Target Aliases
 # ===============
 
--- a/NEWS	Wed Mar 02 17:03:51 2016 +0000
+++ b/NEWS	Fri Mar 04 20:38:10 2016 +0000
@@ -144,6 +144,7 @@
   - PR2853: Remove some unnecessary divergences from jdk8u.
   - PR2853: Revert AArch64 jvm.cfg divergence
   - PR2853: Revert changes to libpng source code now 8078245 is in place.
+  - PR2865: Handle uninstallation.
   - Don't substitute 'j' for '-j' inside -I directives
   - Extend 8041658 to all files in the HotSpot build.
   - Remove jcheck
--- a/acinclude.m4	Wed Mar 02 17:03:51 2016 +0000
+++ b/acinclude.m4	Fri Mar 04 20:38:10 2016 +0000
@@ -1980,3 +1980,20 @@
     AC_SUBST(SUNEC_LIBS)
   fi
 ])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_RMDIR],
+[
+  IT_FIND_TOOL([RMDIR],[rmdir])
+  AC_CACHE_CHECK([if ${RMDIR} supports --ignore-fail-on-non-empty], it_cv_RMDIR, [
+    mkdir tmp.$$
+    touch tmp.$$/t
+    if ${RMDIR} --ignore-fail-on-non-empty tmp.$$ >&AS_MESSAGE_LOG_FD 2>&1; then
+       it_cv_RMDIR=yes;
+       RMDIR="${RMDIR} --ignore-fail-on-non-empty"
+    else
+       it_cv_RMDIR=no;
+    fi
+  ])
+  rm -f tmp.$$/t
+  ${RMDIR} tmp.$$
+])
--- a/configure.ac	Wed Mar 02 17:03:51 2016 +0000
+++ b/configure.ac	Fri Mar 04 20:38:10 2016 +0000
@@ -47,6 +47,7 @@
 IT_CHECK_FOR_MERCURIAL
 IT_OBTAIN_HG_REVISIONS
 AC_PATH_TOOL([LSB_RELEASE],[lsb_release])
+IT_CHECK_FOR_RMDIR
 IT_WITH_GCJ
 IT_WITH_HOTSPOT_BUILD
 AC_PATH_TOOL([LINUX32],[linux32])