changeset 5206:ac4cae18895f

Allow update of msys2 files from single download of packages file * Makefile.in: download and use sys2 packages filr when running update-msys2
author John Donoghue
date Thu, 14 Nov 2019 08:06:45 -0500
parents 733967b322af
children 5ecb037169fc
files Makefile.in
diffstat 1 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.in	Tue Jul 16 09:59:59 2019 -0400
+++ b/Makefile.in	Thu Nov 14 08:06:45 2019 -0500
@@ -464,6 +464,7 @@
     MSYS2_SRC_URL := $(MSYS2_BASE_URL)/Sources
     MSYS2_DIR := $(TOP_BUILD_DIR)/msys2
 
+    MSYS2_UPDATE_TMP_FILE := $(TOP_BUILD_DIR)/msys_updates.html
   endif
 else ifeq ($(MXE_SYSTEM),msvc)
   MXE_WINDOWS_BUILD := yes
@@ -940,6 +941,7 @@
 	rm -rf $(STAMP_DIR) $(MSYS_INFO_DIR) $(LOG_DIR)
 	rm -rf $(MSYS_BASE_DIR) $(MSYS_EXTENSION_DIR) $(NOTEPAD_BASE_DIR)
 	rm -rf $(MSYS2_DIR)
+	rm -f $(MSYS2_UPDATE_TMP_FILE)
 	rm -rf native-tools cross-tools octave gnuplot
 	rm -f Makefile cmake-toolchain-file.stamp cmake-native-toolchain-file.stamp
 	rm -f tools/set-mxe-env.sh
@@ -986,7 +988,7 @@
 	$(call DOWNLOAD_PKG_ARCHIVE,$*)
 	$(SED) -i 's/^\([^ ]*_CHECKSUM *:=\).*/\1 '"`$(call PKG_CHECKSUM,$*)`"'/' '$(TOP_DIR)/src/$*.mk'
 
-.PHONY: update-msys2
+.PHONY: update-msys2 update-msys2-filelist
 PKG_MK_CHECKSUM = \
     $(GREP) _CHECKSUM '$(TOP_DIR)/src/$(1).mk' 2>/dev/null | $(SED) -n 's,^.*\([0-9a-f]\{40\}\)$$,\1,p'
 define MSYS2_UPDATE
@@ -1023,10 +1025,19 @@
 		)),
         $(error Unable to update version number of package $(1)))
 endef
-update-msys2:
-	#$(MSYS2_PACKAGES)
-	$(foreach PKG,$(MSYS2_PACKAGES),$(call MSYS2_UPDATE,$(PKG),$(shell $($(PKG)_UPDATE))))
 
+define MSYS2_PKG_UPDATE_FILE
+  cat $(MSYS2_UPDATE_TMP_FILE) | \
+  $(GREP) $($(PKG)_NAME) |
+  $(SED) -n 's,.*title="$($(PKG)_NAME)-\(r\?[0-9][^-]*-[0-9]*\)-[^\.]*\.pkg\.tar\.xz".*,\1,p' | \
+  head -1
+endef
+
+update-msys2-filelist:
+	$(shell $(WGET) -q -O$(MSYS2_UPDATE_TMP_FILE) '$(MSYS2_URL)/')
+
+update-msys2: update-msys2-filelist
+	$(foreach PKG,$(MSYS2_PACKAGES),$(call MSYS2_UPDATE,$(PKG),$(shell $(MSYS2_PKG_UPDATE_FILE))))
 
 cleanup-style:
 	@$(foreach FILE,$(wildcard $(addprefix $(TOP_DIR)/,Makefile index.html CNAME src/*.mk src/*test.* tools/*)),\