changeset 2803:833edf800116

PR1816: Split download/extraction rules for OpenJDK so they can run in parallel 2015-07-06 Andrew John Hughes <gnu.andrew@member.fsf.org> PR1816: Split download/extraction rules for OpenJDK so they can run in parallel * Makefile.am: (.PHONY): Add new clean-download-* and clean-extract-* targets. (download): Depend on download-{corba,hotspot, jaxp,jaxws,jdk,langtools}. (clean-download): Depend on clean-download-{hotspot,corba,jaxp,jaxws,jdk,langtools}. (download-openjdk): Don't do Mercurial checkout here. Do it as part of extract. Split corba, jaxp, jaxws, jdk and langtools downloads into their own targets. (download-corba): Split from download-openjdk. (download-jaxp): Likewise. (download-jaxws): Likewise. (download-jdk): Likewise. (download-langtools): Likewise. (clean-download-openjdk): Don't depend on clean-download-hotspot. Split corba, jaxp, jaxws, jdk and langtools cleanup into their own targets. (clean-download-corba): Split from clean-download-openjdk. (clean-download-jaxp): Likewise. (clean-download-jaxws): Likewise. (clean-download-jdk): Likewise. (clean-download-langtools): Likewise. (download-hotspot): No need to depend on download-openjdk. (extract): Depend on extract-{corba,jaxp,jaxws,jdk,langtools}. (extract-openjdk): Add cloning of root repository here. Split extraction of corba, jaxp, jaxws, jdk and langtools into their own targets. (clean-extract-openjdk): Depend on clean-extract-{jdk,jaxp,jaxws,corba,langtools}. (extract-corba): Split from extract-openjdk. (clean-extract-corba): New target to just remove corba. (extract-jaxp): Split from extract-openjdk. (clean-extract-jaxp): New target to just remove jaxp. (extract-jaxws): Split from extract-openjdk. (clean-extract-jaxws): New target to just remove jaxws. (extract-jdk): Split from extract-openjdk. (clean-extract-jdk): New target to just remove jdk. (extract-langtools): Split from extract-openlangtools. (clean-extract-langtools): New target to just remove langtools. (extract-hotspot): Handle Mercurial checkout. (sanitise-openjdk): Depend on extract-{jdk,langtools,corba,jaxp,jaxws}. (add-nss): Depend on extract-jdk. * NEWS: Updated.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Tue, 07 Jul 2015 14:48:54 +0100
parents 4ef5eeb4a284
children de9d540d2cb8
files ChangeLog Makefile.am NEWS
diffstat 3 files changed, 246 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Jun 15 14:48:50 2015 +0100
+++ b/ChangeLog	Tue Jul 07 14:48:54 2015 +0100
@@ -1,3 +1,52 @@
+2015-07-06  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR1816: Split download/extraction rules for OpenJDK
+	so they can run in parallel
+	* Makefile.am:
+	(.PHONY): Add new clean-download-* and
+	clean-extract-* targets.
+	(download): Depend on download-{corba,hotspot,
+	jaxp,jaxws,jdk,langtools}.
+	(clean-download): Depend on
+	clean-download-{hotspot,corba,jaxp,jaxws,jdk,langtools}.
+	(download-openjdk): Don't do Mercurial checkout here.
+	Do it as part of extract. Split corba, jaxp, jaxws,
+	jdk and langtools downloads into their own targets.
+	(download-corba): Split from download-openjdk.
+	(download-jaxp): Likewise.
+	(download-jaxws): Likewise.
+	(download-jdk): Likewise.
+	(download-langtools): Likewise.
+	(clean-download-openjdk): Don't depend on
+	clean-download-hotspot. Split corba, jaxp, jaxws,
+	jdk and langtools cleanup into their own targets.
+	(clean-download-corba): Split from clean-download-openjdk.
+	(clean-download-jaxp): Likewise.
+	(clean-download-jaxws): Likewise.
+	(clean-download-jdk): Likewise.
+	(clean-download-langtools): Likewise.
+	(download-hotspot): No need to depend on download-openjdk.
+	(extract): Depend on extract-{corba,jaxp,jaxws,jdk,langtools}.
+	(extract-openjdk): Add cloning of root repository here.
+	Split extraction of corba, jaxp, jaxws, jdk and langtools
+	into their own targets.
+	(clean-extract-openjdk): Depend on
+	clean-extract-{jdk,jaxp,jaxws,corba,langtools}.
+	(extract-corba): Split from extract-openjdk.
+	(clean-extract-corba): New target to just remove corba.
+	(extract-jaxp): Split from extract-openjdk.
+	(clean-extract-jaxp): New target to just remove jaxp.
+	(extract-jaxws): Split from extract-openjdk.
+	(clean-extract-jaxws): New target to just remove jaxws.
+	(extract-jdk): Split from extract-openjdk.
+	(clean-extract-jdk): New target to just remove jdk.
+	(extract-langtools): Split from extract-openlangtools.
+	(clean-extract-langtools): New target to just remove langtools.
+	(extract-hotspot): Handle Mercurial checkout.
+	(sanitise-openjdk): Depend on extract-{jdk,langtools,corba,jaxp,jaxws}.
+	(add-nss): Depend on extract-jdk.
+	* NEWS: Updated.
+
 2015-06-15  Andrew John Hughes  <gnu.andrew@member.fsf.org>
 
 	* NEWS:
--- a/Makefile.am	Mon Jun 15 14:48:50 2015 +0100
+++ b/Makefile.am	Tue Jul 07 14:48:54 2015 +0100
@@ -838,7 +838,10 @@
 	clean-add-tzdata-support-boot \
 	clean-check-crypto clean-check-crypto-debug clean-check-crypto-boot \
 	clean-add-archive clean-add-archive-debug clean-add-archive-boot clean-cryptocheck \
-	clean-download-hotspot
+	clean-download-hotspot clean-download-corba clean-download-jaxp \
+	clean-download-jaxws clean-download-langtools clean-download-jdk clean-download-openjdk \
+	clean-extract-corba clean-extract-jaxp clean-extract-jaxws clean-extract-jdk \
+	clean-extract-langtools
 
 env:
 	@echo 'unset JAVA_HOME'
@@ -870,22 +873,22 @@
 
 # Download OpenJDK sources.
 
-stamps/download.stamp: stamps/download-openjdk.stamp \
- stamps/download-cacao.stamp stamps/download-jamvm.stamp stamps/download-hotspot.stamp
+stamps/download.stamp: stamps/download-openjdk.stamp stamps/download-corba.stamp \
+ stamps/download-jaxp.stamp stamps/download-jaxws.stamp stamps/download-jdk.stamp \
+ stamps/download-cacao.stamp stamps/download-jamvm.stamp stamps/download-hotspot.stamp \
+ stamps/download-langtools.stamp
 	mkdir -p stamps
 	touch $@
 
-clean-download: clean-download-openjdk clean-download-cacao clean-download-jamvm
+clean-download: clean-download-openjdk clean-download-cacao clean-download-jamvm \
+ clean-download-hotspot clean-download-corba clean-download-jaxp clean-download-jaxws \
+ clean-download-jdk clean-download-langtools
 	rm -f stamps/download.stamp
 
 stamps/download-openjdk.stamp:
 if OPENJDK_SRC_DIR_FOUND
 else
 if USE_HG
-	$(HG) clone $(REV_ARG) $(ICEDTEA_HG_URL) openjdk;
-	for repos in corba jaxp jaxws langtools jdk ; do \
-	  $(HG) clone $(REV_ARG) $(ICEDTEA_HG_URL)/$${repos} openjdk/$${repos}; \
-	done
 else
 if USE_ALT_OPENJDK_SRC_ZIP
 	ln -sf $(ALT_OPENJDK_SRC_ZIP) $(OPENJDK_SRC_ZIP)
@@ -906,6 +909,16 @@
 	    echo "ERROR: No up-to-date OpenJDK root zip available"; exit -1; \
 	  fi ; \
 	fi ;
+endif
+endif
+	mkdir -p stamps
+	touch $@
+
+stamps/download-corba.stamp:
+if OPENJDK_SRC_DIR_FOUND
+else
+if USE_HG
+else
 if USE_ALT_CORBA_SRC_ZIP
 	ln -sf $(ALT_CORBA_SRC_ZIP) $(CORBA_SRC_ZIP)
 endif
@@ -925,6 +938,16 @@
 	    echo "ERROR: No up-to-date OpenJDK CORBA zip available"; exit -1; \
 	  fi ; \
 	fi ;
+endif
+endif
+	mkdir -p stamps
+	touch $@
+
+stamps/download-jaxp.stamp:
+if OPENJDK_SRC_DIR_FOUND
+else
+if USE_HG
+else
 if USE_ALT_JAXP_SRC_ZIP
 	ln -sf $(ALT_JAXP_SRC_ZIP) $(JAXP_SRC_ZIP)
 endif
@@ -944,6 +967,16 @@
 	    echo "ERROR: No up-to-date JAXP root zip available"; exit -1; \
 	  fi ; \
 	fi ;
+endif
+endif
+	mkdir -p stamps
+	touch $@
+
+stamps/download-jaxws.stamp:
+if OPENJDK_SRC_DIR_FOUND
+else
+if USE_HG
+else
 if USE_ALT_JAXWS_SRC_ZIP
 	ln -sf $(ALT_JAXWS_SRC_ZIP) $(JAXWS_SRC_ZIP)
 endif
@@ -963,6 +996,16 @@
 	    echo "ERROR: No up-to-date OpenJDK JAXWS zip available"; exit -1; \
 	  fi ; \
 	fi ;
+endif
+endif
+	mkdir -p stamps
+	touch $@
+
+stamps/download-jdk.stamp:
+if OPENJDK_SRC_DIR_FOUND
+else
+if USE_HG
+else
 if USE_ALT_JDK_SRC_ZIP
 	ln -sf $(ALT_JDK_SRC_ZIP) $(JDK_SRC_ZIP)
 endif
@@ -982,6 +1025,16 @@
 	    echo "ERROR: No up-to-date OpenJDK JDK zip available"; exit -1; \
 	  fi ; \
 	fi ;
+endif
+endif
+	mkdir -p stamps
+	touch $@
+
+stamps/download-langtools.stamp:
+if OPENJDK_SRC_DIR_FOUND
+else
+if USE_HG
+else
 if USE_ALT_LANGTOOLS_SRC_ZIP
 	ln -sf $(ALT_LANGTOOLS_SRC_ZIP) $(LANGTOOLS_SRC_ZIP)
 endif
@@ -1006,26 +1059,41 @@
 	mkdir -p stamps
 	touch $@
 
-clean-download-openjdk: clean-download-hotspot
+clean-download-openjdk:
 	if [ ! -z $(OPENJDK_SRC_ZIP) ] ; then \
 	  rm -f $(OPENJDK_SRC_ZIP) ; \
 	fi
+	rm -f stamps/download-openjdk.stamp
+
+clean-download-corba:
 	if [ ! -z $(CORBA_SRC_ZIP) ] ; then \
 	  rm -f $(CORBA_SRC_ZIP) ; \
 	fi
+	rm -f stamps/download-corba.stamp
+
+clean-download-jaxp:
 	if [ ! -z $(JAXP_SRC_ZIP) ] ; then \
 	  rm -f $(JAXP_SRC_ZIP) ; \
 	fi
+	rm -f stamps/download-jaxp.stamp
+
+clean-download-jaxws:
 	if [ ! -z $(JAXWS_SRC_ZIP) ] ; then \
 	  rm -f $(JAXWS_SRC_ZIP) ; \
 	fi
+	rm -f stamps/download-jaxws.stamp
+
+clean-download-jdk:
 	if [ ! -z $(JDK_SRC_ZIP) ] ; then \
 	  rm -f $(JDK_SRC_ZIP) ; \
 	fi
+	rm -f stamps/download-jdk.stamp
+
+clean-download-langtools:
 	if [ ! -z $(LANGTOOLS_SRC_ZIP) ] ; then \
 	  rm -f $(LANGTOOLS_SRC_ZIP) ; \
 	fi
-	rm -f stamps/download-openjdk.stamp
+	rm -f stamps/download-langtools.stamp
 
 stamps/download-cacao.stamp:
 if BUILD_CACAO
@@ -1090,11 +1158,10 @@
 	rm -f $(JAMVM_SRC_ZIP)
 	rm -f stamps/download-jamvm.stamp
 
-stamps/download-hotspot.stamp: stamps/download-openjdk.stamp
+stamps/download-hotspot.stamp:
 if OPENJDK_SRC_DIR_FOUND
 else
 if USE_HG
-	$(HG) clone $(REV_ARG) $(HS_URL) openjdk/hotspot
 else
 if USE_ALT_HOTSPOT_SRC_ZIP
 	ln -sf $(ALT_HOTSPOT_SRC_ZIP) $(HOTSPOT_SRC_ZIP)
@@ -1135,8 +1202,9 @@
 	fi
 	rm -f stamps/download-hotspot.stamp
 
-stamps/extract.stamp: stamps/extract-openjdk.stamp \
- stamps/extract-cacao.stamp stamps/remove-intree-libraries.stamp \
+stamps/extract.stamp: stamps/extract-openjdk.stamp stamps/extract-corba.stamp \
+ stamps/extract-jaxp.stamp stamps/extract-jaxws.stamp stamps/extract-jdk.stamp \
+ stamps/extract-cacao.stamp stamps/remove-intree-libraries.stamp stamps/extract-langtools.stamp \
  stamps/extract-jamvm.stamp stamps/extract-hotspot.stamp stamps/sanitise-openjdk.stamp
 	mkdir -p stamps
 	touch $@
@@ -1148,6 +1216,9 @@
 if OPENJDK_SRC_DIR_FOUND
 	cp -pPR $(OPENJDK_SRC_DIR_LINK) $(OPENJDK_SRC_DIR) openjdk
 else
+if USE_HG
+	$(HG) clone $(REV_ARG) $(ICEDTEA_HG_URL) openjdk;
+else
 	set -e ; \
 	if ! test -d openjdk ; then \
 	  if [ ! -z $(OPENJDK_SRC_ZIP) ] ; then \
@@ -1161,6 +1232,24 @@
 	    false; \
 	  fi; \
 	fi; 
+endif
+endif
+	touch $@
+
+clean-extract-openjdk: clean-overlay clean-versioning \
+ clean-patch-fsg clean-remove-intree-libraries \
+ clean-sanitise-openjdk clean-extract-hotspot \
+ clean-extract-jdk clean-extract-jaxp clean-extract-jaxws \
+ clean-extract-corba clean-extract-langtools
+	rm -rf openjdk
+	rm -f stamps/extract-openjdk.stamp
+
+stamps/extract-corba.stamp: stamps/extract-openjdk.stamp stamps/download-corba.stamp
+if OPENJDK_SRC_DIR_FOUND
+else
+if USE_HG
+	$(HG) clone $(REV_ARG) $(ICEDTEA_HG_URL)/corba openjdk/corba
+else
 	set -e ; \
 	if [ ! -z $(CORBA_SRC_ZIP) ] ; then \
 	  if test -e ${CORBA_SRC_ZIP} ; \
@@ -1175,6 +1264,20 @@
 	    fi ; \
 	  fi ; \
 	fi
+endif
+endif
+	touch $@
+
+clean-extract-corba:
+	rm -rf openjdk/corba
+	rm -f stamps/extract-corba.stamp
+
+stamps/extract-jaxp.stamp: stamps/extract-openjdk.stamp stamps/download-jaxp.stamp
+if OPENJDK_SRC_DIR_FOUND
+else
+if USE_HG
+	$(HG) clone $(REV_ARG) $(ICEDTEA_HG_URL)/jaxp openjdk/jaxp
+else
 	set -e ; \
 	if [ ! -z $(JAXP_SRC_ZIP) ] ; then \
 	  if test -e ${JAXP_SRC_ZIP} ; \
@@ -1189,6 +1292,20 @@
 	    fi ; \
 	  fi ; \
 	fi
+endif
+endif
+	touch $@
+
+clean-extract-jaxp:
+	rm -rf openjdk/jaxp
+	rm -f stamps/extract-jaxp.stamp
+
+stamps/extract-jaxws.stamp: stamps/extract-openjdk.stamp stamps/download-jaxws.stamp
+if OPENJDK_SRC_DIR_FOUND
+else
+if USE_HG
+	$(HG) clone $(REV_ARG) $(ICEDTEA_HG_URL)/jaxws openjdk/jaxws
+else
 	set -e ; \
 	if [ ! -z $(JAXWS_SRC_ZIP) ] ; then \
 	  if test -e ${JAXWS_SRC_ZIP} ; \
@@ -1203,6 +1320,20 @@
 	    fi ; \
 	  fi ; \
 	fi
+endif
+endif
+	touch $@
+
+clean-extract-jaxws:
+	rm -rf openjdk/jaxws
+	rm -f stamps/extract-jaxws.stamp
+
+stamps/extract-jdk.stamp: stamps/extract-openjdk.stamp stamps/download-jdk.stamp
+if OPENJDK_SRC_DIR_FOUND
+else
+if USE_HG
+	$(HG) clone $(REV_ARG) $(ICEDTEA_HG_URL)/jdk openjdk/jdk
+else
 	set -e ; \
 	if [ ! -z $(JDK_SRC_ZIP) ] ; then \
 	  if test -e ${JDK_SRC_ZIP} ; \
@@ -1217,6 +1348,20 @@
 	    fi ; \
 	  fi ; \
 	fi
+endif
+endif
+	touch $@
+
+clean-extract-jdk:
+	rm -rf openjdk/jdk
+	rm -f stamps/extract-jdk.stamp
+
+stamps/extract-langtools.stamp: stamps/extract-openjdk.stamp stamps/download-langtools.stamp
+if OPENJDK_SRC_DIR_FOUND
+else
+if USE_HG
+	$(HG) clone $(REV_ARG) $(ICEDTEA_HG_URL)/langtools openjdk/langtools
+else
 	set -e ; \
 	if [ ! -z $(LANGTOOLS_SRC_ZIP) ] ; then \
 	  if test -e ${LANGTOOLS_SRC_ZIP} ; \
@@ -1232,15 +1377,19 @@
 	  fi ; \
 	fi
 endif
-	touch stamps/extract-openjdk.stamp
+endif
+	touch $@
 
-clean-extract-openjdk: clean-overlay clean-versioning \
- clean-patch-fsg clean-remove-intree-libraries \
- clean-sanitise-openjdk clean-extract-hotspot
-	rm -rf openjdk
-	rm -f stamps/extract-openjdk.stamp
+clean-extract-langtools:
+	rm -rf openjdk/langtools
+	rm -f stamps/extract-langtools.stamp
 
 stamps/extract-hotspot.stamp: stamps/extract-openjdk.stamp stamps/download-hotspot.stamp
+if OPENJDK_SRC_DIR_FOUND
+else
+if USE_HG
+	$(HG) clone $(REV_ARG) $(HS_URL) openjdk/hotspot
+else
 	set -e ; \
 	if [ ! -z $(HOTSPOT_SRC_ZIP) ] ; then \
 	  if test -e ${HOTSPOT_SRC_ZIP} ; \
@@ -1260,14 +1409,18 @@
 	    fi ; \
 	  fi ; \
 	fi
-	touch stamps/extract-hotspot.stamp
+endif
+endif
+	touch $@
 
 clean-extract-hotspot:
 	rm -rf openjdk/hotspot
 	rm -f stamps/extract-hotspot.stamp
 
 stamps/sanitise-openjdk.stamp: stamps/extract-openjdk.stamp \
- stamps/extract-hotspot.stamp
+ stamps/extract-hotspot.stamp stamps/extract-jdk.stamp \
+ stamps/extract-langtools.stamp stamps/extract-corba.stamp \
+ stamps/extract-jaxp.stamp stamps/extract-jaxws.stamp
 	chmod -R ug+w openjdk
 	chmod +x $(builddir)/fsg.sh
 	sh $(builddir)/fsg.sh
@@ -1765,7 +1918,7 @@
 	rm -rf $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset
 	rm -f stamps/add-systemtap.stamp
 
-stamps/add-nss.stamp: stamps/extract-openjdk.stamp
+stamps/add-nss.stamp: stamps/extract-jdk.stamp
 	cp -v $(abs_top_builddir)/nss.cfg openjdk/jdk/src/share/lib/security;
 	touch stamps/add-nss.stamp
 
@@ -2610,20 +2763,40 @@
 
 download-cacao: stamps/download-cacao.stamp
 
+download-corba: stamps/download-corba.stamp
+
 download-hotspot: stamps/download-hotspot.stamp
 
 download-jamvm: stamps/download-jamvm.stamp
 
+download-jaxp: stamps/download-jaxp.stamp
+
+download-jaxws: stamps/download-jaxws.stamp
+
+download-jdk: stamps/download-jdk.stamp
+
+download-langtools: stamps/download-langtools.stamp
+
 download-openjdk: stamps/download-openjdk.stamp
 
 extract: stamps/extract.stamp
 
 extract-cacao: stamps/extract-cacao.stamp
 
+extract-corba: stamps/extract-corba.stamp
+
 extract-openjdk: stamps/extract-openjdk.stamp
 
 extract-hotspot: stamps/extract-hotspot.stamp
 
+extract-jaxp: stamps/extract-jaxp.stamp
+
+extract-jaxws: stamps/extract-jaxws.stamp
+
+extract-jdk: stamps/extract-jdk.stamp
+
+extract-langtools: stamps/extract-langtools.stamp
+
 generated: stamps/generated.stamp
 
 icedtea: stamps/icedtea.stamp
--- a/NEWS	Mon Jun 15 14:48:50 2015 +0100
+++ b/NEWS	Tue Jul 07 14:48:54 2015 +0100
@@ -297,6 +297,7 @@
 * Bug fixes
   - PR1661: Cleanup SYSTEM_GCONF option and allow it to be set false
   - PR1786: Allow x86 build to occur on x86_64 using a previously built x86_64 build
+  - PR1816: Split download/extraction rules for OpenJDK so they can run in parallel
   - PR1846: Build fails when using IcedTea7 as bootstrap JDK with native ecj
   - PR1847: Synchronise javac.in with IcedTea6
   - PR2060: Fix warnings found by Gentoo ebuild QA with gcc 4.9.1