diff Makefile.in @ 4793:202fa20cf559

add msys2 environment/tools option, use seprate post-install script to finalize install * src/msys2-bash.mk: new file * src/msys2-coreutils.mk: new file * src/msys2-diffutils.mk: new file * src/msys2-dos2unix.mk: new file * src/msys2-filesystem.mk: new file * src/msys2-findutils.mk: new file * src/msys2-gawk.mk: new file * src/msys2-gcc-libs.mk: new file * src/msys2-gmp.mk: new file * src/msys2-gnupg.mk: new file * src/msys2-grep.mk: new file * src/msys2-gzip.mk: new file * src/msys2-icu.mk: new file * src/msys2-info.mk: new file * src/msys2-less.mk: new file * src/msys2-libassuan.mk: new file * src/msys2-libbz2.mk: new file * src/msys2-libexpat.mk: new file * src/msys2-libgpg-error.mk: new file * src/msys2-libgpgme.mk: new file * src/msys2-libiconv.mk: new file * src/msys2-libidn2.mk: new file * src/msys2-libintl.mk: new file * src/msys2-liblzma.mk: new file * src/msys2-libmetalink.mk: new file * src/msys2-libopenssl.mk: new file * src/msys2-libpcre.mk: new file * src/msys2-libpsl.mk: new file * src/msys2-libreadline.mk: new file * src/msys2-libunistring.mk: new file * src/msys2-libutil-linux.mk: new file * src/msys2-libxml2.mk: new file * src/msys2-make.mk: new file * src/msys2-mintty.mk: new file * src/msys2-ncurses.mk: new file * src/msys2-pacman-mirrors.mk: new file * src/msys2-pacman.mk: new file * src/msys2-patch.mk: new file * src/msys2-runtime.mk: new file * src/msys2-sed.mk: new file * src/msys2-tar.mk: new file * src/msys2-unzip.mk: new file * src/msys2-wget.mk: new file * src/msys2-zip.mk: new file * src/msys2-zlib.mk: new file * src/msys2-mpfr.mk: new file * src/msys2-libsqlite.mk: new file * src/msys2-keyring.mk: new file * src/msys2-libffi.mk: new file * src/msys2-libgnutls.mk: new file * src/msys2-libhogweed.mk: new file * src/msys2-libksba.mk: new file * src/msys2-libnettle.mk: new file * src/msys2-libnpth.mk: new file * src/msys2-libp11-kit.mk: new file * src/msys2-libtasn1.mk: new file * src/src-msys2-bash.mk: new file * src/src-msys2-coreutils.mk: new file * src/src-msys2-diffutils.mk: new file * src/src-msys2-dos2unix.mk: new file * src/src-msys2-filesystem.mk: new file * src/src-msys2-findutils.mk: new file * src/src-msys2-gawk.mk: new file * src/src-msys2-gcc-libs.mk: new file * src/src-msys2-gmp.mk: new file * src/src-msys2-gnupg.mk: new file * src/src-msys2-grep.mk: new file * src/src-msys2-gzip.mk: new file * src/src-msys2-icu.mk: new file * src/src-msys2-info.mk: new file * src/src-msys2-keyring.mk: new file * src/src-msys2-less.mk: new file * src/src-msys2-libassuan.mk: new file * src/src-msys2-libbz2.mk: new file * src/src-msys2-libexpat.mk: new file * src/src-msys2-libffi.mk: new file * src/src-msys2-libgcrypt.mk: new file * src/src-msys2-libgnutls.mk: new file * src/src-msys2-libgpg-error.mk: new file * src/src-msys2-libgpgme.mk: new file * src/src-msys2-libhogweed.mk: new file * src/src-msys2-libiconv.mk: new file * src/src-msys2-libidn2.mk: new file * src/src-msys2-libintl.mk: new file * src/src-msys2-libksba.mk: new file * src/src-msys2-liblzma.mk: new file * src/src-msys2-libmetalink.mk: new file * src/src-msys2-libnettle.mk: new file * src/src-msys2-libnpth.mk: new file * src/src-msys2-libopenssl.mk: new file * src/src-msys2-libp11-kit.mk: new file * src/src-msys2-libpcre.mk: new file * src/src-msys2-libpsl.mk: new file * src/src-msys2-libreadline.mk: new file * src/src-msys2-libsqlite.mk: new file * src/src-msys2-libtasn1.mk: new file * src/src-msys2-libunistring.mk: new file * src/src-msys2-libutil-linux.mk: new file * src/src-msys2-libxml2.mk: new file * src/src-msys2-make.mk: new file * src/src-msys2-mintty.mk: new file * src/src-msys2-mpfr.mk: new file * src/src-msys2-ncurses.mk: new file * src/src-msys2-pacman-mirrors.mk: new file * src/src-msys2-pacman.mk: new file * src/src-msys2-patch.mk: new file * src/src-msys2-runtime.mk: new file * src/src-msys2-sed.mk: new file * src/src-msys2-tar.mk: new file * src/src-msys2-unzip.mk: new file * src/src-msys2-wget.mk: new file * src/src-msys2-zip.mk: new file * src/src-msys2-zlib.mk: new file * Makefile.in: add msys2 vars and base rules * index.html: ref new msys2 targets * dist-files.mk: added refs to new msys2 mk files * binary-dist-rules.mk: added conditional msys/msys2 dist files, post-install.bat * configure.ac: added --with-msys2 option * installer-files/post-install.bat: new file * tools/makeinst-script.sh.in: call post-install.bat instead of fc_update and octave, and use nsExec to hide comd windows while executing it * tools/msys2-install.py; new file * installer-files/cmdshell.bat, installer-files/fc_update.bat, installer-files/octave-firsttime.vbs, installer-files/octave.vbs: update paths when running msys2
author John Donoghue
date Wed, 15 Aug 2018 08:05:01 -0400
parents 0aaa238c8820
children f39017b331bf
line wrap: on
line diff
--- a/Makefile.in	Mon Aug 13 14:27:16 2018 -0400
+++ b/Makefile.in	Wed Aug 15 08:05:01 2018 -0400
@@ -70,6 +70,9 @@
 # use qt5 instead of qt4
 ENABLE_QT5 := @ENABLE_QT5@
 
+# Set to "yes" to use msys2
+USE_MSYS2 := @USE_MSYS2@
+
 # Should match what config.guess prints for your system.
 # If cross compiling, you must set it manually (defaults are set by configure).
 ifeq ($(MXE_NATIVE_BUILD),yes)
@@ -446,7 +449,17 @@
     MSYS_BASE_SOURCES := $(addprefix src-,$(MSYS_BASE_PACKAGES))
     PKGS += $(MSYS_BASE_SOURCES)
 
-     NOTEPAD_BASE_DIR := $(TOP_BUILD_DIR)/notepad++
+    NOTEPAD_BASE_DIR := $(TOP_BUILD_DIR)/notepad++
+
+    MSYS2_ARCH = $(shell echo $(TARGET) | $(SED) -n 's|\([^-]*\).*|\1|p')
+    MSYS2_PACKAGES := $(shell $(SED) -n 's/^.* class="package">\([^<]*\)<.*$$/\1/p' '$(TOP_DIR)/index.html' | $(GREP) msys2-)
+    MSYS2_SOURCES := $(addprefix src-,$(MSYS2_PACKAGES))
+    PKGS += $(MSYS2_SOURCES)
+    MSYS2_BASE_URL := https://sourceforge.net/projects/msys2/files/REPOS/MSYS2
+    MSYS2_URL := $(MSYS2_BASE_URL)/$(MSYS2_ARCH)
+    MSYS2_SRC_URL := $(MSYS2_BASE_URL)/Sources
+    MSYS2_DIR := $(TOP_BUILD_DIR)/msys2
+
   endif
 else ifeq ($(MXE_SYSTEM),msvc)
   MXE_WINDOWS_BUILD := yes
@@ -632,6 +645,20 @@
 .PHONY: msys-base-sources
 msys-base-sources:  $(MSYS_BASE_SOURCES)
 
+define MSYS2_PKG_BUILD
+  cd '$(1)/' && \
+  mkdir -p '$(3)' && \
+  (tar cf $(3)/$($(PKG)_FILE) '.') && \
+  (TMP="$(3)" \
+  $(TOP_DIR)/tools/msys2-install.py --verbose --msys-dir="$(MSYS2_DIR)" "$(3)/$($(PKG)_FILE)")
+endef
+
+.PHONY: msys2
+msys2:  $(MSYS2_PACKAGES)
+
+.PHONY: msys2-sources
+msys2-sources:  $(MSYS2_SOURCES)
+
 .PHONY: octave-forge-packages
 octave-forge-packages: $(OCTAVE_FORGE_DEPS) $(OCTAVE_FORGE_PACKAGES)
 
@@ -899,6 +926,7 @@
 	rm -rf $(call TMP_DIR,*) $(BUILD_TOOLS_PREFIX)
 	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 -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