public inbox for cygwin-apps-cvs@sourceware.org
help / color / mirror / Atom feed
From: Yaakov Selkowitz <yselkowitz@sourceware.org>
To: cygwin-apps-cvs@sourceware.org
Subject: [cygport - the Cygwin packaging tool] branch topic/mingw, updated. 0.34.0-30-gc052276
Date: Mon, 11 May 2020 15:48:49 +0000 (GMT)	[thread overview]
Message-ID: <20200511154849.6412A388F057@sourceware.org> (raw)




https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/cygport.git;h=c052276338066515134d7316974ab7ddd962ad50

commit c052276338066515134d7316974ab7ddd962ad50
Author: Yaakov Selkowitz <yselkowi@redhat.com>
Date:   Mon May 11 11:48:35 2020 -0400

    mingw: split up into separate cygclasses per arch


Diff:
---
 cygclass/meson.build                     |  15 +-
 cygclass/mingw-internal.cygclass         | 126 +++++
 cygclass/mingw.cygclass                  | 771 +------------------------------
 cygclass/mingw32.cygclass                | 205 ++++++++
 cygclass/mingw64.cygclass                | 205 ++++++++
 cygclass/mingwarm32.cygclass             | 205 ++++++++
 cygclass/mingwarm64.cygclass             | 205 ++++++++
 testsuite/mingw/make/mingw-crypt.cygport |   7 +-
 8 files changed, 978 insertions(+), 761 deletions(-)

diff --git a/cygclass/meson.build b/cygclass/meson.build
index 27f57e5..b22ca30 100644
--- a/cygclass/meson.build
+++ b/cygclass/meson.build
@@ -142,7 +142,15 @@
 #  * cross.cygclass -
 #    For packaging libraries to be used with generic cross-compiler toolchains.
 #  * mingw.cygclass -
-#    For packaging libraries to be used with MinGW cross-compiler toolchains.
+#    For packaging libraries to be used with all MinGW cross-compiler toolchains.
+#  * mingw32.cygclass -
+#    For packaging libraries to be used with the i686 MinGW cross-compiler toolchain.
+#  * mingw64.cygclass -
+#    For packaging libraries to be used with the x86_64 MinGW cross-compiler toolchain.
+#  * mingwarm32.cygclass -
+#    For packaging libraries to be used with the armv7 MinGW cross-compiler toolchain.
+#  * mingwarm64.cygclass -
+#    For packaging libraries to be used with the aarch64 MinGW cross-compiler toolchain.
 #  * multilib.cygclass -
 #    For packaging libraries for cross-compiler toolchains which support
 #    multiple ABIs.
@@ -200,6 +208,11 @@ cygclasses = files(
     'mate.cygclass',
     'meson.cygclass',
     'mingw.cygclass',
+    'mingw-internal.cygclass',
+    'mingw32.cygclass',
+    'mingw64.cygclass',
+    'mingwarm32.cygclass',
+    'mingwarm64.cygclass',
     'mtn.cygclass',
     'multilib.cygclass',
     'ninja.cygclass',
diff --git a/cygclass/mingw-internal.cygclass b/cygclass/mingw-internal.cygclass
new file mode 100644
index 0000000..3ccd5c7
--- /dev/null
+++ b/cygclass/mingw-internal.cygclass
@@ -0,0 +1,126 @@
+################################################################################
+#
+# mingw-internal.cygclass - internal functions for mingw*.cygclass
+#
+# Part of cygport - Cygwin packaging application
+# Copyright (C) 2006-2020 Cygport authors
+# Provided by the Cygwin project <https://cygwin.com/>
+#
+# cygport is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cygport is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cygport.  If not, see <http://www.gnu.org/licenses/>.
+#
+################################################################################
+
+__mingw_init() {
+	local a=${1} t=${2}
+	local c h n p r s v
+
+	declare -g MINGW${t}_HOST="${a}-w64-mingw32"
+	declare -g MINGW${t}_TARGET="${a}-w64-mingw32"
+
+	h=MINGW${t}_HOST
+	for c in CC=gcc CXX=g++ F77=gfortran FC=gfortran OBJC=gcc OBJCXX=g++ \
+		AR=ar DLLTOOL=dlltool NM=nm OBJDUMP=objdump RANLIB=ranlib \
+		RC=windres STRIP=strip PKG_CONFIG=pkg-config QT5_QMAKE=qmake-qt5
+	do
+		declare -g MINGW${t}_${c%=*}="${!h}-${c#*=}"
+	done
+	if inherited clang
+	then
+		declare -g MINGW${t}_CC="${!h}-clang"
+		declare -g MINGW${t}_CXX="${!h}-clang++"
+	fi
+
+	declare -g MINGW${t}_SYSROOT="/usr/${!h}/sys-root"
+	r=MINGW${t}_SYSROOT
+	declare -g MINGW${t}_PREFIX="${!r}/mingw"
+	p=MINGW${t}_PREFIX
+	declare -g MINGW${t}_BINDIR="${!p}/bin"
+	declare -g MINGW${t}_INCLUDEDIR="${!p}/include"
+	declare -g MINGW${t}_LIBDIR="${!p}/lib"
+	declare -g MINGW${t}_DATADIR="${!p}/share"
+
+	if inherited mingw && [[ ${MINGW_ARCHS} =~ "${a}" ]] && [[ "${NAME}" =~ "mingw-" ]]
+	then
+		_CYGPORT_INTERNAL_multi_doc_=1
+		n=${NAME#mingw-}
+		PKG_NAMES+=" mingw64-${a}-${n}"
+		declare -g mingw64_${a}_${n//[-\.]/_}_CONTENTS="${!p#/} usr/share/doc/mingw64-${a}-${n}/"
+	fi
+}
+
+__mingw_wrapper() {
+	local ovar var
+	local toolvars=(CC=gcc CXX=g++ F77=gfortran FC=gfortran OBJC=gcc OBJCXX=g++ \
+			AR=ar DLLTOOL=dlltool NM=nm OBJDUMP=objdump RANLIB=ranlib \
+			RC=windres STRIP=strip PKG_CONFIG=pkg-config QT5_QMAKE=qmake-qt5)
+	local miscvars=(CHOST CTARGET CC_SYSROOT)
+	local expvars=(CFLAGS CXXFLAGS)
+
+	__check_triplet ${1}
+
+	for var in ${miscvars[*]} ${toolvars[*]%=*} ${expvars[*]}
+	do
+		ovar="orig_${var}"
+		local ${ovar}="${!var}"
+	done
+	declare -g CHOST=${1}
+	shift
+	declare -g CTARGET=${CHOST}
+	declare -g CC_SYSROOT=/usr/${CHOST}/sys-root
+	# mingw-w64 actually supports these now, but with libssp it is fragile
+	declare -gx CFLAGS="${CFLAGS/-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong}"
+	declare -gx CXXFLAGS="${CXXFLAGS/-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong}"
+
+	for var in ${toolvars[*]}
+	do
+		declare -g ${var%=*}=${CHOST}-${var#*=}
+	done
+	if inherited clang
+	then
+		declare -g CC="${CHOST}-clang"
+		declare -g CXX="${CHOST}-clang++"
+	fi
+
+	if ! check_prog ${CC} || ! check_prog ${STRIP}
+	then
+		error "This package requires ${CHOST} binutils and gcc"
+	fi
+
+	if ! defined __MINGW_WRAPPER_NO_CWD
+	then
+		mkdir -p ${CHOST}/${MINGW_BUILDDIR_SUFFIX}
+		pushd ${CHOST}/${MINGW_BUILDDIR_SUFFIX}
+	fi
+
+	inform "cross-compiling for ${CHOST}"
+	"${@}" || error "${1} for ${CHOST} failed"
+
+	if ! defined __MINGW_WRAPPER_NO_CWD
+	then
+		popd
+	fi
+
+	for var in ${miscvars[*]} ${toolvars[*]%=*}
+	do
+		ovar="orig_${var}"
+		declare -g ${var}="${!ovar}"
+	done
+	for var in ${expvars[*]}
+	do
+		ovar="orig_${var}"
+		declare -gx ${var}="${!ovar}"
+	done
+}
+
+readonly -f __mingw_init __mingw_wrapper
diff --git a/cygclass/mingw.cygclass b/cygclass/mingw.cygclass
index 0ebf344..272c168 100644
--- a/cygclass/mingw.cygclass
+++ b/cygclass/mingw.cygclass
@@ -1,6 +1,6 @@
 ################################################################################
 #
-# mingw.cygclass - for building cross-compiled packages
+# mingw.cygclass - for building cross-compiled MinGW packages
 #
 # Part of cygport - Cygwin packaging application
 # Copyright (C) 2006-2020 Cygport authors
@@ -40,8 +40,16 @@
 #  Supported build systems for cross-compiling are autotools, cmake, meson,
 #  Qt5 qmake, and custom Makefiles.  The respective cygclasses still need
 #  to be inherit()ed, with mingw.cygclass being inherit()ed last.
+#  INHERITS
+#  mingw32.cygclass, mingw64.cygclass, mingwarm32.cygclass, mingwarm64.cygclass
 #****
 
+case ${MINGW_ARCHS:=i686;x86_64} in
+all) MINGW_ARCHS="i686;x86_64;armv7;aarch64" ;;
+esac
+
+inherit mingw32 mingw64 mingwarm32 mingwarm64
+
 ARCH=noarch
 unset ARCH_i686 ARCH_x86_64
 
@@ -55,387 +63,6 @@ unset ARCH_i686 ARCH_x86_64
 #  This variable must be defined before inherit()ing mingw.cygclass.
 #  If undefined, defaults to "i686;x86_64".
 #****
-case ${MINGW_ARCHS:=i686;x86_64} in
-all) MINGW_ARCHS="i686;x86_64;armv7;aarch64" ;;
-esac
-
-#****d* mingw.cygclass/MINGW32_HOST
-#  DESCRIPTION
-#  The host triplet for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_TARGET
-#  DESCRIPTION
-#  The target triplet for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_CC
-#  DESCRIPTION
-#  The C compiler for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_CXX
-#  DESCRIPTION
-#  The C++ compiler for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_F77
-#  DESCRIPTION
-#  The Fortran 77 compiler for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_FC
-#  DESCRIPTION
-#  The Fortran 95 compiler for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_AR
-#  DESCRIPTION
-#  The static library archiver for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_DLLTOOL
-#  DESCRIPTION
-#  The DLL import creation tool for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_NM
-#  DESCRIPTION
-#  The symbol listing tool for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_RANLIB
-#  DESCRIPTION
-#  The static library indexer for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_RC
-#  DESCRIPTION
-#  The Windows resource compiler for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_STRIP
-#  DESCRIPTION
-#  The symbol remover tool for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_PKG_CONFIG
-#  DESCRIPTION
-#  The pkg-config tool for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_QT5_QMAKE
-#  DESCRIPTION
-#  The Qt5 qmake tool for the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_SYSROOT
-#  DESCRIPTION
-#  The virtual root for files used by the i686 toolchain.
-#****
-#****d* mingw.cygclass/MINGW32_PREFIX
-#  DESCRIPTION
-#  The prefix directory under the i686 sysroot.
-#****
-#****d* mingw.cygclass/MINGW32_BINDIR
-#  DESCRIPTION
-#  The bin directory under the i686 sysroot
-#****
-#****d* mingw.cygclass/MINGW32_INCLUDEDIR
-#  DESCRIPTION
-#  The include directory under the i686 sysroot.
-#****
-#****d* mingw.cygclass/MINGW32_LIBDIR
-#  DESCRIPTION
-#  The lib directory under the i686 sysroot.
-#****
-#****d* mingw.cygclass/MINGW32_DATADIR
-#  DESCRIPTION
-#  The data directory under the i686 sysroot.
-#****
-
-#****d* mingw.cygclass/MINGW64_HOST
-#  DESCRIPTION
-#  The host triplet for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_TARGET
-#  DESCRIPTION
-#  The target triplet for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_CC
-#  DESCRIPTION
-#  The C compiler for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_CXX
-#  DESCRIPTION
-#  The C++ compiler for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_F77
-#  DESCRIPTION
-#  The Fortran 77 compiler for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_FC
-#  DESCRIPTION
-#  The Fortran 95 compiler for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_AR
-#  DESCRIPTION
-#  The static library archiver for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_DLLTOOL
-#  DESCRIPTION
-#  The DLL import creation tool for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_NM
-#  DESCRIPTION
-#  The symbol listing tool for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_RANLIB
-#  DESCRIPTION
-#  The static library indexer for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_RC
-#  DESCRIPTION
-#  The Windows resource compiler for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_STRIP
-#  DESCRIPTION
-#  The symbol remover tool for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_PKG_CONFIG
-#  DESCRIPTION
-#  The pkg-config tool for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_QT5_QMAKE
-#  DESCRIPTION
-#  The Qt5 qmake tool for the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_SYSROOT
-#  DESCRIPTION
-#  The virtual root for files used by the x86_64 toolchain.
-#****
-#****d* mingw.cygclass/MINGW64_PREFIX
-#  DESCRIPTION
-#  The prefix directory under the x86_64 sysroot.
-#****
-#****d* mingw.cygclass/MINGW64_BINDIR
-#  DESCRIPTION
-#  The bin directory under the x86_64 sysroot
-#****
-#****d* mingw.cygclass/MINGW64_INCLUDEDIR
-#  DESCRIPTION
-#  The include directory under the x86_64 sysroot.
-#****
-#****d* mingw.cygclass/MINGW64_LIBDIR
-#  DESCRIPTION
-#  The lib directory under the x86_64 sysroot.
-#****
-#****d* mingw.cygclass/MINGW64_DATADIR
-#  DESCRIPTION
-#  The data directory under the x86_64 sysroot.
-#****
-
-#****d* mingw.cygclass/MINGWARM32_HOST
-#  DESCRIPTION
-#  The host triplet for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_TARGET
-#  DESCRIPTION
-#  The target triplet for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_CC
-#  DESCRIPTION
-#  The C compiler for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_CXX
-#  DESCRIPTION
-#  The C++ compiler for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_F77
-#  DESCRIPTION
-#  The Fortran 77 compiler for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_FC
-#  DESCRIPTION
-#  The Fortran 95 compiler for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_AR
-#  DESCRIPTION
-#  The static library archiver for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_DLLTOOL
-#  DESCRIPTION
-#  The DLL import creation tool for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_NM
-#  DESCRIPTION
-#  The symbol listing tool for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_RANLIB
-#  DESCRIPTION
-#  The static library indexer for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_RC
-#  DESCRIPTION
-#  The Windows resource compiler for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_STRIP
-#  DESCRIPTION
-#  The symbol remover tool for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_PKG_CONFIG
-#  DESCRIPTION
-#  The pkg-config tool for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_QT5_QMAKE
-#  DESCRIPTION
-#  The Qt5 qmake tool for the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_SYSROOT
-#  DESCRIPTION
-#  The virtual root for files used by the armv7 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM32_PREFIX
-#  DESCRIPTION
-#  The prefix directory under the armv7 sysroot.
-#****
-#****d* mingw.cygclass/MINGWARM32_BINDIR
-#  DESCRIPTION
-#  The bin directory under the armv7 sysroot
-#****
-#****d* mingw.cygclass/MINGWARM32_INCLUDEDIR
-#  DESCRIPTION
-#  The include directory under the armv7 sysroot.
-#****
-#****d* mingw.cygclass/MINGWARM32_LIBDIR
-#  DESCRIPTION
-#  The lib directory under the armv7 sysroot.
-#****
-#****d* mingw.cygclass/MINGWARM32_DATADIR
-#  DESCRIPTION
-#  The data directory under the armv7 sysroot.
-#****
-
-#****d* mingw.cygclass/MINGWARM64_HOST
-#  DESCRIPTION
-#  The host triplet for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_TARGET
-#  DESCRIPTION
-#  The target triplet for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_CC
-#  DESCRIPTION
-#  The C compiler for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_CXX
-#  DESCRIPTION
-#  The C++ compiler for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_F77
-#  DESCRIPTION
-#  The Fortran 77 compiler for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_FC
-#  DESCRIPTION
-#  The Fortran 95 compiler for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_AR
-#  DESCRIPTION
-#  The static library archiver for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_DLLTOOL
-#  DESCRIPTION
-#  The DLL import creation tool for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_NM
-#  DESCRIPTION
-#  The symbol listing tool for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_RANLIB
-#  DESCRIPTION
-#  The static library indexer for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_RC
-#  DESCRIPTION
-#  The Windows resource compiler for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_STRIP
-#  DESCRIPTION
-#  The symbol remover tool for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_PKG_CONFIG
-#  DESCRIPTION
-#  The pkg-config tool for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_QT5_QMAKE
-#  DESCRIPTION
-#  The Qt5 qmake tool for the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_SYSROOT
-#  DESCRIPTION
-#  The virtual root for files used by the aarch64 toolchain.
-#****
-#****d* mingw.cygclass/MINGWARM64_PREFIX
-#  DESCRIPTION
-#  The prefix directory under the aarch64 sysroot.
-#****
-#****d* mingw.cygclass/MINGWARM64_BINDIR
-#  DESCRIPTION
-#  The bin directory under the aarch64 sysroot
-#****
-#****d* mingw.cygclass/MINGWARM64_INCLUDEDIR
-#  DESCRIPTION
-#  The include directory under the aarch64 sysroot.
-#****
-#****d* mingw.cygclass/MINGWARM64_LIBDIR
-#  DESCRIPTION
-#  The lib directory under the aarch64 sysroot.
-#****
-#****d* mingw.cygclass/MINGWARM64_DATADIR
-#  DESCRIPTION
-#  The data directory under the aarch64 sysroot.
-#****
-
-__mingw_init() {
-	local c h n p r s t v
-
-	for t in 32:i686 64:x86_64 ARM32:armv7 ARM64:aarch64
-	do
-		declare -g MINGW${t%:*}_HOST="${t#*:}-w64-mingw32"
-		declare -g MINGW${t%:*}_TARGET="${t#*:}-w64-mingw32"
-
-		h=MINGW${t%:*}_HOST
-		for c in CC=gcc CXX=g++ F77=gfortran FC=gfortran OBJC=gcc OBJCXX=g++ \
-			AR=ar DLLTOOL=dlltool NM=nm OBJDUMP=objdump RANLIB=ranlib \
-			RC=windres STRIP=strip PKG_CONFIG=pkg-config QT5_QMAKE=qmake-qt5
-		do
-			declare -g MINGW${t%:*}_${c%=*}="${!h}-${c#*=}"
-		done
-		if inherited clang
-		then
-			declare -g MINGW${t%:*}_CC="${!h}-clang"
-			declare -g MINGW${t%:*}_CXX="${!h}-clang++"
-		fi
-
-		declare -g MINGW${t%:*}_SYSROOT="/usr/${!h}/sys-root"
-		r=MINGW${t%:*}_SYSROOT
-		declare -g MINGW${t%:*}_PREFIX="${!r}/mingw"
-		p=MINGW${t%:*}_PREFIX
-		declare -g MINGW${t%:*}_BINDIR="${!p}/bin"
-		declare -g MINGW${t%:*}_INCLUDEDIR="${!p}/include"
-		declare -g MINGW${t%:*}_LIBDIR="${!p}/lib"
-		declare -g MINGW${t%:*}_DATADIR="${!p}/share"
-
-		if ! [[ ${MINGW_ARCHS} =~ "${t#*:}" ]]
-		then
-			continue
-		fi
-
-		v=MINGW${t%:*}_CC
-		s=MINGW${t%:*}_STRIP
-		if ! (check_prog ${!v} && check_prog ${!s})
-		then
-			error "This package requires ${t#*:}-w64-mingw32 binutils and gcc"
-		fi
-
-		if [[ "${NAME}" =~ "mingw-" ]]
-		then
-			_CYGPORT_INTERNAL_multi_doc_=1
-			n=${NAME#mingw-}
-			PKG_NAMES+=" mingw64-${t#*:}-${n}"
-			declare -g mingw64_${t#*:}_${n//[-\.]/_}_CONTENTS="${!p#/} usr/share/doc/mingw64-${t#*:}-${n}/"
-		fi
-	done
-}
-
-__mingw_init
 
 #****v* mingw.cygclass/MINGW_BUILDDIR_SUFFIX
 #  DESCRIPTION
@@ -448,108 +75,21 @@ __mingw_init
 #  avoids having to manage separate build directories manually.
 #****
 
-__mingw_wrapper() {
-	local ovar var
-	local toolvars=(CC=gcc CXX=g++ F77=gfortran FC=gfortran OBJC=gcc OBJCXX=g++ \
-			AR=ar DLLTOOL=dlltool NM=nm OBJDUMP=objdump RANLIB=ranlib \
-			RC=windres STRIP=strip PKG_CONFIG=pkg-config QT5_QMAKE=qmake-qt5)
-	local miscvars=(CHOST CTARGET CC_SYSROOT)
-	local expvars=(CFLAGS CXXFLAGS)
-
-	__check_triplet ${1}
-
-	for var in ${miscvars[*]} ${toolvars[*]%=*} ${expvars[*]}
-	do
-		ovar="orig_${var}"
-		local ${ovar}="${!var}"
-	done
-	declare -g CHOST=${1}
-	shift
-	declare -g CTARGET=${CHOST}
-	declare -g CC_SYSROOT=/usr/${CHOST}/sys-root
-	# mingw-w64 actually supports these now, but with libssp it is fragile
-	declare -gx CFLAGS="${CFLAGS/-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong}"
-	declare -gx CXXFLAGS="${CXXFLAGS/-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong}"
-
-	for var in ${toolvars[*]}
-	do
-		declare -g ${var%=*}=${CHOST}-${var#*=}
-	done
-	if inherited clang
-	then
-		declare -g CC="${CHOST}-clang"
-		declare -g CXX="${CHOST}-clang++"
-	fi
-
-	if ! defined __MINGW_WRAPPER_NO_CWD
-	then
-		mkdir -p ${CHOST}/${MINGW_BUILDDIR_SUFFIX}
-		pushd ${CHOST}/${MINGW_BUILDDIR_SUFFIX}
-	fi
-
-	inform "cross-compiling for ${CHOST}"
-	"${@}" || error "${1} for ${CHOST} failed"
-
-	if ! defined __MINGW_WRAPPER_NO_CWD
-	then
-		popd
-	fi
-
-	for var in ${miscvars[*]} ${toolvars[*]%=*}
-	do
-		ovar="orig_${var}"
-		declare -g ${var}="${!ovar}"
-	done
-	for var in ${expvars[*]}
-	do
-		ovar="orig_${var}"
-		declare -gx ${var}="${!ovar}"
-	done
-}
-
+#****C* mingw.cygclass/mingw_lndirs
+#  DESCRIPTION
+#  Runs lndirs separately for each enabled architecture's build directory.
+#****
 mingw_lndirs() {
 	local t
 	for t in 32:i686 64:x86_64 arm32:armv7 arm64:aarch64
 	do
 		if [[ ${MINGW_ARCHS} =~ "${t#*:}" ]]
 		then
-			__mingw_wrapper ${t#*:}-w64-mingw32 lndirs ${S}
+			mingw${t%:*}_lndirs "${@}"
 		fi
 	done
 }
 
-#****C* mingw.cygclass/mingw32_configure
-#  DESCRIPTION
-#  Runs cygconf using the i686 toolchain.  Any arguments are passed along.
-#****
-mingw32_configure() {
-	__mingw_wrapper ${MINGW32_HOST} cygconf ${MINGW32_CONFIGURE_ARGS} "${@}"
-}
-
-#****C* mingw.cygclass/mingw64_configure
-#  DESCRIPTION
-#  Runs cygconf using the x86_64 toolchain.  Any arguments are passed along.
-#****
-mingw64_configure() {
-	__mingw_wrapper ${MINGW64_HOST} cygconf ${MINGW64_CONFIGURE_ARGS} "${@}"
-}
-
-#****C* mingw.cygclass/mingwarm32_configure
-#  DESCRIPTION
-#  Runs cygconf using the armv7 toolchain.  Any arguments are passed along.
-#****
-mingwarm32_configure() {
-	__mingw_wrapper ${MINGWARM32_HOST} cygconf ${MINGWARM32_CONFIGURE_ARGS} "${@}"
-}
-
-#****C* mingw.cygclass/mingwarm64_configure
-#  DESCRIPTION
-#  Runs cygconf using the aarch64 toolchain.  Any arguments are passed along.
-#****
-mingwarm64_configure() {
-	__mingw_wrapper ${MINGWARM64_HOST} cygconf ${MINGWARM64_CONFIGURE_ARGS} "${@}"
-}
-
 #****C* mingw.cygclass/mingw_configure
 #  DESCRIPTION
 #  Runs cygconf separately for each enabled architecture.  Any arguments are passed along.
@@ -581,38 +121,6 @@ mingw_configure() {
 	done
 }
 
-#****C* mingw.cygclass/mingw32_make
-#  DESCRIPTION
-#  Runs cygmake using the i686 toolchain.  Any arguments are passed along.
-#****
-mingw32_make() {
-	__mingw_wrapper ${MINGW32_HOST} cygmake "${@}"
-}
-
-#****C* mingw.cygclass/mingw64_make
-#  DESCRIPTION
-#  Runs cygmake using the x86_64 toolchain.  Any arguments are passed along.
-#****
-mingw64_make() {
-	__mingw_wrapper ${MINGW64_HOST} cygmake "${@}"
-}
-
-#****C* mingw.cygclass/mingwarm32_make
-#  DESCRIPTION
-#  Runs cygmake using the armv7 toolchain.  Any arguments are passed along.
-#****
-mingwarm32_make() {
-	__mingw_wrapper ${MINGWARM32_HOST} cygmake "${@}"
-}
-
-#****C* mingw.cygclass/mingwarm64_make
-#  DESCRIPTION
-#  Runs cygmake using the aarch64 toolchain.  Any arguments are passed along.
-#****
-mingwarm64_make() {
-	__mingw_wrapper ${MINGWARM64_HOST} cygmake "${@}"
-}
-
 #****C* mingw.cygclass/mingw_make
 #  DESCRIPTION
 #  Runs cygmake separately for each enabled architecture.  Any arguments are passed along.
@@ -628,39 +136,6 @@ mingw_make() {
 	done
 }
 
-
-#****C* mingw.cygclass/mingw32_cmake
-#  DESCRIPTION
-#  Runs cygcmake using the i686 toolchain.  Any arguments are passed along.
-#****
-mingw32_cmake() {
-	__mingw_wrapper ${MINGW32_HOST} cygcmake ${MINGW32_CMAKE_ARGS} "${@}"
-}
-
-#****C* mingw.cygclass/mingw64_cmake
-#  DESCRIPTION
-#  Runs cygcmake using the i686 toolchain.  Any arguments are passed along.
-#****
-mingw64_cmake() {
-	__mingw_wrapper ${MINGW64_HOST} cygcmake ${MINGW64_CMAKE_ARGS} "${@}"
-}
-
-#****C* mingw.cygclass/mingwarn32_cmake
-#  DESCRIPTION
-#  Runs cygcmake using the i686 toolchain.  Any arguments are passed along.
-#****
-mingwarm32_cmake() {
-	__mingw_wrapper ${MINGWARM32_HOST} cygcmake ${MINGWARM32_CMAKE_ARGS} "${@}"
-}
-
-#****C* mingw.cygclass/mingwarm64_cmake
-#  DESCRIPTION
-#  Runs cygcmake using the i686 toolchain.  Any arguments are passed along.
-#****
-mingwarm64_cmake() {
-	__mingw_wrapper ${MINGWARM64_HOST} cygcmake ${MINGWARM64_CMAKE_ARGS} "${@}"
-}
-
 #****C* mingw.cygclass/mingw_cmake
 #  DESCRIPTION
 #  Runs cygcmake separately for each enabled architecture.  Any arguments are passed along.
@@ -692,43 +167,6 @@ mingw_cmake() {
 	done
 }
 
-
-#****C* mingw.cygclass/mingw32_meson
-#  DESCRIPTION
-#  Runs cygmeson using the i686 toolchain.  Any arguments are passed along.
-#****
-mingw32_meson() {
-	__MINGW_WRAPPER_NO_CWD=1 \
-	__mingw_wrapper ${MINGW32_HOST} cygmeson ${MINGW32_MESON_ARGS} "${@}"
-}
-
-#****C* mingw.cygclass/mingw64_meson
-#  DESCRIPTION
-#  Runs cygmeson using the x86_64 toolchain.  Any arguments are passed along.
-#****
-mingw64_meson() {
-	__MINGW_WRAPPER_NO_CWD=1 \
-	__mingw_wrapper ${MINGW64_HOST} cygmeson ${MINGW64_MESON_ARGS}"${@}"
-}
-
-#****C* mingw.cygclass/mingwarm32_meson
-#  DESCRIPTION
-#  Runs cygmeson using the armv7 toolchain.  Any arguments are passed along.
-#****
-mingwarm32_meson() {
-	__MINGW_WRAPPER_NO_CWD=1 \
-	__mingw_wrapper ${MINGWARM32_HOST} cygmeson ${MINGWARM32_MESON_ARGS} "${@}"
-}
-
-#****C* mingw.cygclass/mingwarm64_meson
-#  DESCRIPTION
-#  Runs cygmeson using the aarch64 toolchain.  Any arguments are passed along.
-#****
-mingwarm64_meson() {
-	__MINGW_WRAPPER_NO_CWD=1 \
-	__mingw_wrapper ${MINGWARM64_HOST} cygmeson ${MINGWARM64_MESON_ARGS} "${@}"
-}
-
 #****C* mingw.cygclass/mingw_meson
 #  DESCRIPTION
 #  Runs cygmeson separately for each enabled architecture.  Any arguments are passed along.
@@ -760,38 +198,6 @@ mingw_meson() {
 	done
 }
 
-#****C* mingw.cygclass/mingw32_ninja
-#  DESCRIPTION
-#  Runs cygninja using the i686 toolchain.  Any arguments are passed along.
-#****
-mingw32_ninja() {
-	__mingw_wrapper ${MINGW32_HOST} cygninja "${@}"
-}
-
-#****C* mingw.cygclass/mingw64_ninja
-#  DESCRIPTION
-#  Runs cygninja using the x86_64 toolchain.  Any arguments are passed along.
-#****
-mingw64_ninja() {
-	__mingw_wrapper ${MINGW64_HOST} cygninja "${@}"
-}
-
-#****C* mingw.cygclass/mingwarm32_ninja
-#  DESCRIPTION
-#  Runs cygninja using the armv7 toolchain.  Any arguments are passed along.
-#****
-mingwarm32_ninja() {
-	__mingw_wrapper ${MINGWARM32_HOST} cygninja "${@}"
-}
-
-#****C* mingw.cygclass/mingwarm64_ninja
-#  DESCRIPTION
-#  Runs cygninja using the aarch64 toolchain.  Any arguments are passed along.
-#****
-mingwarm64_ninja() {
-	__mingw_wrapper ${MINGWARM64_HOST} cygninja "${@}"
-}
-
 #****C* mingw.cygclass/mingw_ninja
 #  DESCRIPTION
 #  Runs cygninja separately for each enabled architecture.  Any arguments are passed along.
@@ -807,38 +213,6 @@ mingw_ninja() {
 	done
 }
 
-#****C* mingw.cygclass/mingw32_qt5_qmake
-#  DESCRIPTION
-#  Runs cygqmake5 using the i686 toolchain.  Any arguments are passed along.
-#****
-mingw32_qt5_qmake() {
-	__mingw_wrapper ${MINGW32_HOST} cygqmake5 "${@}"
-}
-
-#****C* mingw.cygclass/mingw64_qt5_qmake
-#  DESCRIPTION
-#  Runs cygqmake5 using the x86_64 toolchain.  Any arguments are passed along.
-#****
-mingw64_qt5_qmake() {
-	__mingw_wrapper ${MINGW64_HOST} cygqmake5 "${@}"
-}
-
-#****C* mingw.cygclass/mingwarm32_qt5_qmake
-#  DESCRIPTION
-#  Runs cygqmake5 using the armv7 toolchain.  Any arguments are passed along.
-#****
-mingwarm32_qt5_qmake() {
-	__mingw_wrapper ${MINGWARM32_HOST} cygqmake5 "${@}"
-}
-
-#****C* mingw.cygclass/mingwarm64_qt5_qmake
-#  DESCRIPTION
-#  Runs cygqmake5 using the aarch64 toolchain.  Any arguments are passed along.
-#****
-mingwarm64_qt5_qmake() {
-	__mingw_wrapper ${MINGWARM64_HOST} cygqmake5 "${@}"
-}
-
 #****C* mingw.cygclass/mingw_qt5_qmake
 #  DESCRIPTION
 #  Runs cygqmake5 separately for each enabled architecture.  Any arguments are passed along.
@@ -854,38 +228,6 @@ mingw_qt5_qmake() {
 	done
 }
 
-#****I* mingw.cygclass/mingw32_make_install
-#  DESCRIPTION
-#  Runs cyginstall using the i686 toolchain.  Any arguments are passed along.
-#****
-mingw32_make_install() {
-	__mingw_wrapper ${MINGW32_HOST} cyginstall "${@}"
-}
-
-#****I* mingw.cygclass/mingw64_make_install
-#  DESCRIPTION
-#  Runs cyginstall using the x86_64 toolchain.  Any arguments are passed along.
-#****
-mingw64_make_install() {
-	__mingw_wrapper ${MINGW64_HOST} cyginstall "${@}"
-}
-
-#****I* mingw.cygclass/mingwarm32_make_install
-#  DESCRIPTION
-#  Runs cyginstall using the armv7 toolchain.  Any arguments are passed along.
-#****
-mingwarm32_make_install() {
-	__mingw_wrapper ${MINGWARM32_HOST} cyginstall "${@}"
-}
-
-#****I* mingw.cygclass/mingwarm64_make_install
-#  DESCRIPTION
-#  Runs cyginstall using the aarch64 toolchain.  Any arguments are passed along.
-#****
-mingwarm64_make_install() {
-	__mingw_wrapper ${MINGWARM64_HOST} cyginstall "${@}"
-}
-
 #****I* mingw.cygclass/mingw_make_install
 #  DESCRIPTION
 #  Runs cyginstall separately for each enabled architecture.  Any arguments are passed along.
@@ -901,42 +243,6 @@ mingw_make_install() {
 	done
 }
 
-#****I* mingw.cygclass/mingw32_ninja_install
-#  DESCRIPTION
-#  Runs ninja_install using the i686 toolchain.  Any arguments are passed along.
-#****
-mingw32_ninja_install() {
-	DESTDIR=${D} \
-	__mingw_wrapper ${MINGW32_HOST} cygninja install "${@}"
-}
-
-#****I* mingw.cygclass/mingw64_ninja_install
-#  DESCRIPTION
-#  Runs ninja_install using the x86_64 toolchain.  Any arguments are passed along.
-#****
-mingw64_ninja_install() {
-	DESTDIR=${D} \
-	__mingw_wrapper ${MINGW64_HOST} cygninja install "${@}"
-}
-
-#****I* mingw.cygclass/mingwarm32_ninja_install
-#  DESCRIPTION
-#  Runs ninja_install using the armv7 toolchain.  Any arguments are passed along.
-#****
-mingwarm32_ninja_install() {
-	DESTDIR=${D} \
-	__mingw_wrapper ${MINGWARM32_HOST} cygninja install "${@}"
-}
-
-#****I* mingw.cygclass/mingwarm64_ninja_install
-#  DESCRIPTION
-#  Runs ninja_install using the aarch64 toolchain.  Any arguments are passed along.
-#****
-mingwarm64_ninja_install() {
-	DESTDIR=${D} \
-	__mingw_wrapper ${MINGWARM64_HOST} cygninja install "${@}"
-}
-
 #****I* mingw.cygclass/mingw_ninja_install
 #  DESCRIPTION
 #  Runs ninja_install separately for each enabled architecture.  Any arguments are passed along.
@@ -952,42 +258,6 @@ mingw_ninja_install() {
 	done
 }
 
-#****I* mingw.cygclass/mingw32_qt5_qmake_install
-#  DESCRIPTION
-#  Runs qt5_qmake_install using the i686 toolchain.  Any arguments are passed along.
-#****
-mingw32_qt5_qmake_install() {
-	DESTDIR=${D} \
-	__mingw_wrapper ${MINGW32_HOST} qt5_qmake_install "${@}"
-}
-
-#****I* mingw.cygclass/mingw64_qt5_qmake_install
-#  DESCRIPTION
-#  Runs qt5_qmake_install using the x86_64 toolchain.  Any arguments are passed along.
-#****
-mingw64_qt5_qmake_install() {
-	DESTDIR=${D} \
-	__mingw_wrapper ${MINGW64_HOST} qt5_qmake_install "${@}"
-}
-
-#****I* mingw.cygclass/mingwarm32_qt5_qmake_install
-#  DESCRIPTION
-#  Runs qt5_qmake_install using the armv7 toolchain.  Any arguments are passed along.
-#****
-mingwarm32_qt5_qmake_install() {
-	DESTDIR=${D} \
-	__mingw_wrapper ${MINGWARM32_HOST} qt5_qmake_install "${@}"
-}
-
-#****I* mingw.cygclass/mingwarm64_qt5_qmake_install
-#  DESCRIPTION
-#  Runs qt5_qmake_install using the aarch64 toolchain.  Any arguments are passed along.
-#****
-mingwarm64_qt5_qmake_install() {
-	DESTDIR=${D} \
-	__mingw_wrapper ${MINGWARM64_HOST} qt5_qmake_install "${@}"
-}
-
 #****I* mingw.cygclass/mingw_qt5_qmake_install
 #  DESCRIPTION
 #  Runs qt5_qmake_install separately for each enabled architecture.  Any arguments are passed along.
@@ -1053,14 +323,7 @@ src_install() {
 	fi
 }
 
-readonly -f __mingw_init __mingw_wrapper mingw_lndirs \
-	mingw32_configure mingw64_configure mingwarm32_configure mingwarm64_configure mingw_configure \
-	mingw32_make mingw64_make mingwarm32_make mingwarm64_make mingw_make \
-	mingw32_cmake mingw64_cmake mingwarm32_cmake mingwarm64_cmake mingw_cmake \
-	mingw32_meson mingw64_meson mingwarm32_meson mingwarm64_meson mingw_meson \
-	mingw32_ninja mingw64_ninja mingwarm32_ninja mingwarm64_ninja mingw_ninja \
-	mingw32_qt5_qmake mingw64_qt5_qmake mingwarm32_qt5_qmake mingwarm64_qt5_qmake mingw_qt5_qmake \
-	mingw32_make_install mingw64_make_install mingwarm32_make_install mingwarm64_make_install mingw_make_install \
-	mingw32_ninja_install mingw64_ninja_install mingwarm32_ninja_install mingwarm64_ninja_install mingw_ninja_install \
-	mingw32_qt5_qmake_install mingw64_qt5_qmake_install mingwarm32_qt5_qmake_install mingwarm64_qt5_qmake_install mingw_qt5_qmake_install
+readonly -f mingw_lndirs mingw_configure mingw_make mingw_cmake \
+	mingw_meson mingw_ninja mingw_qt5_qmake mingw_make_install \
+	mingw_ninja_install mingw_qt5_qmake_install
 	
\ No newline at end of file
diff --git a/cygclass/mingw32.cygclass b/cygclass/mingw32.cygclass
new file mode 100644
index 0000000..7af2183
--- /dev/null
+++ b/cygclass/mingw32.cygclass
@@ -0,0 +1,205 @@
+################################################################################
+#
+# mingw32.cygclass - for building cross-compiled MinGW i686 packages
+#
+# Part of cygport - Cygwin packaging application
+# Copyright (C) 2006-2020 Cygport authors
+# Provided by the Cygwin project <https://cygwin.com/>
+#
+# cygport is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cygport is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cygport.  If not, see <http://www.gnu.org/licenses/>.
+#
+################################################################################
+
+#****h* Cygclasses/mingw32.cygclass
+#  DESCRIPTION
+#  This cygclass provides the mingw32_* functions and MINGW32_ definitions
+#  for cross-compiling packages for Windows/x86 using the MinGW-w64 toolchain.
+#  Generally, this cygclass is not inherit'ed directly, but its functions
+#  and definitions are used by inherit'ing mingw.cygclass.
+#  INHERITED BY
+#  mingw.cygclass
+#  REQUIRES
+#  mingw64-i686-gcc-core
+#****
+inherit mingw-internal
+
+#****d* mingw32.cygclass/MINGW32_HOST
+#  DESCRIPTION
+#  The host triplet for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_TARGET
+#  DESCRIPTION
+#  The target triplet for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_CC
+#  DESCRIPTION
+#  The C compiler for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_CXX
+#  DESCRIPTION
+#  The C++ compiler for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_F77
+#  DESCRIPTION
+#  The Fortran 77 compiler for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_FC
+#  DESCRIPTION
+#  The Fortran 95 compiler for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_AR
+#  DESCRIPTION
+#  The static library archiver for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_DLLTOOL
+#  DESCRIPTION
+#  The DLL import creation tool for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_NM
+#  DESCRIPTION
+#  The symbol listing tool for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_RANLIB
+#  DESCRIPTION
+#  The static library indexer for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_RC
+#  DESCRIPTION
+#  The Windows resource compiler for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_STRIP
+#  DESCRIPTION
+#  The symbol remover tool for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_PKG_CONFIG
+#  DESCRIPTION
+#  The pkg-config tool for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_QT5_QMAKE
+#  DESCRIPTION
+#  The Qt5 qmake tool for the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_SYSROOT
+#  DESCRIPTION
+#  The virtual root for files used by the i686 toolchain.
+#****
+#****d* mingw32.cygclass/MINGW32_PREFIX
+#  DESCRIPTION
+#  The prefix directory under the i686 sysroot.
+#****
+#****d* mingw32.cygclass/MINGW32_BINDIR
+#  DESCRIPTION
+#  The bin directory under the i686 sysroot
+#****
+#****d* mingw32.cygclass/MINGW32_INCLUDEDIR
+#  DESCRIPTION
+#  The include directory under the i686 sysroot.
+#****
+#****d* mingw32.cygclass/MINGW32_LIBDIR
+#  DESCRIPTION
+#  The lib directory under the i686 sysroot.
+#****
+#****d* mingw32.cygclass/MINGW32_DATADIR
+#  DESCRIPTION
+#  The data directory under the i686 sysroot.
+#****
+
+__mingw_init i686 32
+
+#****C* mingw32.cygclass/mingw32_lndirs
+#  DESCRIPTION
+#  Runs lndirs into the build directory used by other mingw32_* functions.
+#****
+mingw32_lndirs() {
+	__mingw_wrapper ${MINGW32_HOST} lndirs ${S}
+}
+
+#****C* mingw32.cygclass/mingw32_configure
+#  DESCRIPTION
+#  Runs cygconf using the i686 toolchain.  Any arguments are passed along.
+#****
+mingw32_configure() {
+	__mingw_wrapper ${MINGW32_HOST} cygconf ${MINGW32_CONFIGURE_ARGS} "${@}"
+}
+
+#****C* mingw32.cygclass/mingw32_make
+#  DESCRIPTION
+#  Runs cygmake using the i686 toolchain.  Any arguments are passed along.
+#****
+mingw32_make() {
+	__mingw_wrapper ${MINGW32_HOST} cygmake "${@}"
+}
+
+#****C* mingw32.cygclass/mingw32_cmake
+#  DESCRIPTION
+#  Runs cygcmake using the i686 toolchain.  Any arguments are passed along.
+#****
+mingw32_cmake() {
+	__mingw_wrapper ${MINGW32_HOST} cygcmake ${MINGW32_CMAKE_ARGS} "${@}"
+}
+
+#****C* mingw32.cygclass/mingw32_meson
+#  DESCRIPTION
+#  Runs cygmeson using the i686 toolchain.  Any arguments are passed along.
+#****
+mingw32_meson() {
+	__MINGW_WRAPPER_NO_CWD=1 \
+	__mingw_wrapper ${MINGW32_HOST} cygmeson ${MINGW32_MESON_ARGS} "${@}"
+}
+
+#****C* mingw32.cygclass/mingw32_ninja
+#  DESCRIPTION
+#  Runs cygninja using the i686 toolchain.  Any arguments are passed along.
+#****
+mingw32_ninja() {
+	__mingw_wrapper ${MINGW32_HOST} cygninja "${@}"
+}
+
+#****C* mingw32.cygclass/mingw32_qt5_qmake
+#  DESCRIPTION
+#  Runs cygqmake5 using the i686 toolchain.  Any arguments are passed along.
+#****
+mingw32_qt5_qmake() {
+	__mingw_wrapper ${MINGW32_HOST} cygqmake5 "${@}"
+}
+
+#****I* mingw32.cygclass/mingw32_make_install
+#  DESCRIPTION
+#  Runs cyginstall using the i686 toolchain.  Any arguments are passed along.
+#****
+mingw32_make_install() {
+	__mingw_wrapper ${MINGW32_HOST} cyginstall "${@}"
+}
+
+#****I* mingw32.cygclass/mingw32_ninja_install
+#  DESCRIPTION
+#  Runs ninja_install using the i686 toolchain.  Any arguments are passed along.
+#****
+mingw32_ninja_install() {
+	DESTDIR=${D} \
+	__mingw_wrapper ${MINGW32_HOST} cygninja install "${@}"
+}
+
+#****I* mingw32.cygclass/mingw32_qt5_qmake_install
+#  DESCRIPTION
+#  Runs qt5_qmake_install using the i686 toolchain.  Any arguments are passed along.
+#****
+mingw32_qt5_qmake_install() {
+	DESTDIR=${D} \
+	__mingw_wrapper ${MINGW32_HOST} qt5_qmake_install "${@}"
+}
+
+readonly -f mingw32_lndirs mingw32_configure mingw32_make mingw32_cmake \
+	mingw32_meson mingw32_ninja mingw32_qt5_qmake mingw32_make_install \
+	mingw32_ninja_install mingw32_qt5_qmake_install
diff --git a/cygclass/mingw64.cygclass b/cygclass/mingw64.cygclass
new file mode 100644
index 0000000..9f08af1
--- /dev/null
+++ b/cygclass/mingw64.cygclass
@@ -0,0 +1,205 @@
+################################################################################
+#
+# mingw64.cygclass - for building cross-compiled MinGW x86_64 packages
+#
+# Part of cygport - Cygwin packaging application
+# Copyright (C) 2006-2020 Cygport authors
+# Provided by the Cygwin project <https://cygwin.com/>
+#
+# cygport is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cygport is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cygport.  If not, see <http://www.gnu.org/licenses/>.
+#
+################################################################################
+
+#****h* Cygclasses/mingw64.cygclass
+#  DESCRIPTION
+#  This cygclass provides the mingw64_* functions and MINGW64_ definitions
+#  for cross-compiling packages for Windows/x86 using the MinGW-w64 toolchain.
+#  Generally, this cygclass is not inherit'ed directly, but its functions
+#  and definitions are used by inherit'ing mingw.cygclass.
+#  INHERITED BY
+#  mingw.cygclass
+#  REQUIRES
+#  mingw64-x86_64-gcc-core
+#****
+inherit mingw-internal
+
+#****d* mingw64.cygclass/MINGW64_HOST
+#  DESCRIPTION
+#  The host triplet for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_TARGET
+#  DESCRIPTION
+#  The target triplet for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_CC
+#  DESCRIPTION
+#  The C compiler for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_CXX
+#  DESCRIPTION
+#  The C++ compiler for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_F77
+#  DESCRIPTION
+#  The Fortran 77 compiler for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_FC
+#  DESCRIPTION
+#  The Fortran 95 compiler for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_AR
+#  DESCRIPTION
+#  The static library archiver for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_DLLTOOL
+#  DESCRIPTION
+#  The DLL import creation tool for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_NM
+#  DESCRIPTION
+#  The symbol listing tool for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_RANLIB
+#  DESCRIPTION
+#  The static library indexer for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_RC
+#  DESCRIPTION
+#  The Windows resource compiler for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_STRIP
+#  DESCRIPTION
+#  The symbol remover tool for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_PKG_CONFIG
+#  DESCRIPTION
+#  The pkg-config tool for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_QT5_QMAKE
+#  DESCRIPTION
+#  The Qt5 qmake tool for the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_SYSROOT
+#  DESCRIPTION
+#  The virtual root for files used by the x86_64 toolchain.
+#****
+#****d* mingw64.cygclass/MINGW64_PREFIX
+#  DESCRIPTION
+#  The prefix directory under the x86_64 sysroot.
+#****
+#****d* mingw64.cygclass/MINGW64_BINDIR
+#  DESCRIPTION
+#  The bin directory under the x86_64 sysroot
+#****
+#****d* mingw64.cygclass/MINGW64_INCLUDEDIR
+#  DESCRIPTION
+#  The include directory under the x86_64 sysroot.
+#****
+#****d* mingw64.cygclass/MINGW64_LIBDIR
+#  DESCRIPTION
+#  The lib directory under the x86_64 sysroot.
+#****
+#****d* mingw64.cygclass/MINGW64_DATADIR
+#  DESCRIPTION
+#  The data directory under the x86_64 sysroot.
+#****
+
+__mingw_init x86_64 64
+
+#****C* mingw64.cygclass/mingw64_lndirs
+#  DESCRIPTION
+#  Runs lndirs into the build directory used by other mingw64_* functions.
+#****
+mingw64_lndirs() {
+	__mingw_wrapper ${MINGW64_HOST} lndirs ${S}
+}
+
+#****C* mingw64.cygclass/mingw64_configure
+#  DESCRIPTION
+#  Runs cygconf using the x86_64 toolchain.  Any arguments are passed along.
+#****
+mingw64_configure() {
+	__mingw_wrapper ${MINGW64_HOST} cygconf ${MINGW64_CONFIGURE_ARGS} "${@}"
+}
+
+#****C* mingw64.cygclass/mingw64_make
+#  DESCRIPTION
+#  Runs cygmake using the x86_64 toolchain.  Any arguments are passed along.
+#****
+mingw64_make() {
+	__mingw_wrapper ${MINGW64_HOST} cygmake "${@}"
+}
+
+#****C* mingw64.cygclass/mingw64_cmake
+#  DESCRIPTION
+#  Runs cygcmake using the x86_64 toolchain.  Any arguments are passed along.
+#****
+mingw64_cmake() {
+	__mingw_wrapper ${MINGW64_HOST} cygcmake ${MINGW64_CMAKE_ARGS} "${@}"
+}
+
+#****C* mingw64.cygclass/mingw64_meson
+#  DESCRIPTION
+#  Runs cygmeson using the x86_64 toolchain.  Any arguments are passed along.
+#****
+mingw64_meson() {
+	__MINGW_WRAPPER_NO_CWD=1 \
+	__mingw_wrapper ${MINGW64_HOST} cygmeson ${MINGW64_MESON_ARGS} "${@}"
+}
+
+#****C* mingw64.cygclass/mingw64_ninja
+#  DESCRIPTION
+#  Runs cygninja using the x86_64 toolchain.  Any arguments are passed along.
+#****
+mingw64_ninja() {
+	__mingw_wrapper ${MINGW64_HOST} cygninja "${@}"
+}
+
+#****C* mingw64.cygclass/mingw64_qt5_qmake
+#  DESCRIPTION
+#  Runs cygqmake5 using the x86_64 toolchain.  Any arguments are passed along.
+#****
+mingw64_qt5_qmake() {
+	__mingw_wrapper ${MINGW64_HOST} cygqmake5 "${@}"
+}
+
+#****I* mingw64.cygclass/mingw64_make_install
+#  DESCRIPTION
+#  Runs cyginstall using the x86_64 toolchain.  Any arguments are passed along.
+#****
+mingw64_make_install() {
+	__mingw_wrapper ${MINGW64_HOST} cyginstall "${@}"
+}
+
+#****I* mingw64.cygclass/mingw64_ninja_install
+#  DESCRIPTION
+#  Runs ninja_install using the x86_64 toolchain.  Any arguments are passed along.
+#****
+mingw64_ninja_install() {
+	DESTDIR=${D} \
+	__mingw_wrapper ${MINGW64_HOST} cygninja install "${@}"
+}
+
+#****I* mingw64.cygclass/mingw64_qt5_qmake_install
+#  DESCRIPTION
+#  Runs qt5_qmake_install using the x86_64 toolchain.  Any arguments are passed along.
+#****
+mingw64_qt5_qmake_install() {
+	DESTDIR=${D} \
+	__mingw_wrapper ${MINGW64_HOST} qt5_qmake_install "${@}"
+}
+
+readonly -f mingw64_lndirs mingw64_configure mingw64_make mingw64_cmake \
+	mingw64_meson mingw64_ninja mingw64_qt5_qmake mingw64_make_install \
+	mingw64_ninja_install mingw64_qt5_qmake_install
diff --git a/cygclass/mingwarm32.cygclass b/cygclass/mingwarm32.cygclass
new file mode 100644
index 0000000..5cc9877
--- /dev/null
+++ b/cygclass/mingwarm32.cygclass
@@ -0,0 +1,205 @@
+################################################################################
+#
+# mingwarm32.cygclass - for building cross-compiled MinGW armv7 packages
+#
+# Part of cygport - Cygwin packaging application
+# Copyright (C) 2006-2020 Cygport authors
+# Provided by the Cygwin project <https://cygwin.com/>
+#
+# cygport is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cygport is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cygport.  If not, see <http://www.gnu.org/licenses/>.
+#
+################################################################################
+
+#****h* Cygclasses/mingwarm32.cygclass
+#  DESCRIPTION
+#  This cygclass provides the mingwarm32_* functions and MINGWARM32_ definitions
+#  for cross-compiling packages for Windows/x86 using the MinGW-w64 toolchain.
+#  Generally, this cygclass is not inherit'ed directly, but its functions
+#  and definitions are used by inherit'ing mingw.cygclass.
+#  INHERITED BY
+#  mingw.cygclass
+#  REQUIRES
+#  mingw64-armv7-gcc-core
+#****
+inherit mingw-internal
+
+#****d* mingwarm32.cygclass/MINGWARM32_HOST
+#  DESCRIPTION
+#  The host triplet for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_TARGET
+#  DESCRIPTION
+#  The target triplet for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_CC
+#  DESCRIPTION
+#  The C compiler for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_CXX
+#  DESCRIPTION
+#  The C++ compiler for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_F77
+#  DESCRIPTION
+#  The Fortran 77 compiler for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_FC
+#  DESCRIPTION
+#  The Fortran 95 compiler for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_AR
+#  DESCRIPTION
+#  The static library archiver for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_DLLTOOL
+#  DESCRIPTION
+#  The DLL import creation tool for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_NM
+#  DESCRIPTION
+#  The symbol listing tool for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_RANLIB
+#  DESCRIPTION
+#  The static library indexer for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_RC
+#  DESCRIPTION
+#  The Windows resource compiler for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_STRIP
+#  DESCRIPTION
+#  The symbol remover tool for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_PKG_CONFIG
+#  DESCRIPTION
+#  The pkg-config tool for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_QT5_QMAKE
+#  DESCRIPTION
+#  The Qt5 qmake tool for the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_SYSROOT
+#  DESCRIPTION
+#  The virtual root for files used by the armv7 toolchain.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_PREFIX
+#  DESCRIPTION
+#  The prefix directory under the armv7 sysroot.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_BINDIR
+#  DESCRIPTION
+#  The bin directory under the armv7 sysroot
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_INCLUDEDIR
+#  DESCRIPTION
+#  The include directory under the armv7 sysroot.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_LIBDIR
+#  DESCRIPTION
+#  The lib directory under the armv7 sysroot.
+#****
+#****d* mingwarm32.cygclass/MINGWARM32_DATADIR
+#  DESCRIPTION
+#  The data directory under the armv7 sysroot.
+#****
+
+__mingw_init armv7 ARM32
+
+#****C* mingwarm32.cygclass/mingwarm32_lndirs
+#  DESCRIPTION
+#  Runs lndirs into the build directory used by other mingwarm32_* functions.
+#****
+mingwarm32_lndirs() {
+	__mingw_wrapper ${MINGWARM32_HOST} lndirs ${S}
+}
+
+#****C* mingwarm32.cygclass/mingwarm32_configure
+#  DESCRIPTION
+#  Runs cygconf using the armv7 toolchain.  Any arguments are passed along.
+#****
+mingwarm32_configure() {
+	__mingw_wrapper ${MINGWARM32_HOST} cygconf ${MINGWARM32_CONFIGURE_ARGS} "${@}"
+}
+
+#****C* mingwarm32.cygclass/mingwarm32_make
+#  DESCRIPTION
+#  Runs cygmake using the armv7 toolchain.  Any arguments are passed along.
+#****
+mingwarm32_make() {
+	__mingw_wrapper ${MINGWARM32_HOST} cygmake "${@}"
+}
+
+#****C* mingwarm32.cygclass/mingwarm32_cmake
+#  DESCRIPTION
+#  Runs cygcmake using the armv7 toolchain.  Any arguments are passed along.
+#****
+mingwarm32_cmake() {
+	__mingw_wrapper ${MINGWARM32_HOST} cygcmake ${MINGWARM32_CMAKE_ARGS} "${@}"
+}
+
+#****C* mingwarm32.cygclass/mingwarm32_meson
+#  DESCRIPTION
+#  Runs cygmeson using the armv7 toolchain.  Any arguments are passed along.
+#****
+mingwarm32_meson() {
+	__MINGW_WRAPPER_NO_CWD=1 \
+	__mingw_wrapper ${MINGWARM32_HOST} cygmeson ${MINGWARM32_MESON_ARGS} "${@}"
+}
+
+#****C* mingwarm32.cygclass/mingwarm32_ninja
+#  DESCRIPTION
+#  Runs cygninja using the armv7 toolchain.  Any arguments are passed along.
+#****
+mingwarm32_ninja() {
+	__mingw_wrapper ${MINGWARM32_HOST} cygninja "${@}"
+}
+
+#****C* mingwarm32.cygclass/mingwarm32_qt5_qmake
+#  DESCRIPTION
+#  Runs cygqmake5 using the armv7 toolchain.  Any arguments are passed along.
+#****
+mingwarm32_qt5_qmake() {
+	__mingw_wrapper ${MINGWARM32_HOST} cygqmake5 "${@}"
+}
+
+#****I* mingwarm32.cygclass/mingwarm32_make_install
+#  DESCRIPTION
+#  Runs cyginstall using the armv7 toolchain.  Any arguments are passed along.
+#****
+mingwarm32_make_install() {
+	__mingw_wrapper ${MINGWARM32_HOST} cyginstall "${@}"
+}
+
+#****I* mingwarm32.cygclass/mingwarm32_ninja_install
+#  DESCRIPTION
+#  Runs ninja_install using the armv7 toolchain.  Any arguments are passed along.
+#****
+mingwarm32_ninja_install() {
+	DESTDIR=${D} \
+	__mingw_wrapper ${MINGWARM32_HOST} cygninja install "${@}"
+}
+
+#****I* mingwarm32.cygclass/mingwarm32_qt5_qmake_install
+#  DESCRIPTION
+#  Runs qt5_qmake_install using the armv7 toolchain.  Any arguments are passed along.
+#****
+mingwarm32_qt5_qmake_install() {
+	DESTDIR=${D} \
+	__mingw_wrapper ${MINGWARM32_HOST} qt5_qmake_install "${@}"
+}
+
+readonly -f mingwarm32_lndirs mingwarm32_configure mingwarm32_make mingwarm32_cmake \
+	mingwarm32_meson mingwarm32_ninja mingwarm32_qt5_qmake mingwarm32_make_install \
+	mingwarm32_ninja_install mingwarm32_qt5_qmake_install
diff --git a/cygclass/mingwarm64.cygclass b/cygclass/mingwarm64.cygclass
new file mode 100644
index 0000000..5e980d3
--- /dev/null
+++ b/cygclass/mingwarm64.cygclass
@@ -0,0 +1,205 @@
+################################################################################
+#
+# mingwarm64.cygclass - for building cross-compiled MinGW aarch64 packages
+#
+# Part of cygport - Cygwin packaging application
+# Copyright (C) 2006-2020 Cygport authors
+# Provided by the Cygwin project <https://cygwin.com/>
+#
+# cygport is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cygport is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cygport.  If not, see <http://www.gnu.org/licenses/>.
+#
+################################################################################
+
+#****h* Cygclasses/mingwarm64.cygclass
+#  DESCRIPTION
+#  This cygclass provides the mingwarm64_* functions and MINGWARM64_ definitions
+#  for cross-compiling packages for Windows/x86 using the MinGW-w64 toolchain.
+#  Generally, this cygclass is not inherit'ed directly, but its functions
+#  and definitions are used by inherit'ing mingw.cygclass.
+#  INHERITED BY
+#  mingw.cygclass
+#  REQUIRES
+#  mingw64-aarch64-gcc-core
+#****
+inherit mingw-internal
+
+#****d* mingwarm64.cygclass/MINGWARM64_HOST
+#  DESCRIPTION
+#  The host triplet for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_TARGET
+#  DESCRIPTION
+#  The target triplet for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_CC
+#  DESCRIPTION
+#  The C compiler for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_CXX
+#  DESCRIPTION
+#  The C++ compiler for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_F77
+#  DESCRIPTION
+#  The Fortran 77 compiler for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_FC
+#  DESCRIPTION
+#  The Fortran 95 compiler for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_AR
+#  DESCRIPTION
+#  The static library archiver for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_DLLTOOL
+#  DESCRIPTION
+#  The DLL import creation tool for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_NM
+#  DESCRIPTION
+#  The symbol listing tool for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_RANLIB
+#  DESCRIPTION
+#  The static library indexer for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_RC
+#  DESCRIPTION
+#  The Windows resource compiler for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_STRIP
+#  DESCRIPTION
+#  The symbol remover tool for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_PKG_CONFIG
+#  DESCRIPTION
+#  The pkg-config tool for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_QT5_QMAKE
+#  DESCRIPTION
+#  The Qt5 qmake tool for the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_SYSROOT
+#  DESCRIPTION
+#  The virtual root for files used by the aarch64 toolchain.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_PREFIX
+#  DESCRIPTION
+#  The prefix directory under the aarch64 sysroot.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_BINDIR
+#  DESCRIPTION
+#  The bin directory under the aarch64 sysroot
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_INCLUDEDIR
+#  DESCRIPTION
+#  The include directory under the aarch64 sysroot.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_LIBDIR
+#  DESCRIPTION
+#  The lib directory under the aarch64 sysroot.
+#****
+#****d* mingwarm64.cygclass/MINGWARM64_DATADIR
+#  DESCRIPTION
+#  The data directory under the aarch64 sysroot.
+#****
+
+__mingw_init aarch64 ARM64
+
+#****C* mingwarm64.cygclass/mingwarm64_lndirs
+#  DESCRIPTION
+#  Runs lndirs into the build directory used by other mingwarm64_* functions.
+#****
+mingwarm64_lndirs() {
+	__mingw_wrapper ${MINGWARM64_HOST} lndirs ${S}
+}
+
+#****C* mingwarm64.cygclass/mingwarm64_configure
+#  DESCRIPTION
+#  Runs cygconf using the aarch64 toolchain.  Any arguments are passed along.
+#****
+mingwarm64_configure() {
+	__mingw_wrapper ${MINGWARM64_HOST} cygconf ${MINGWARM64_CONFIGURE_ARGS} "${@}"
+}
+
+#****C* mingwarm64.cygclass/mingwarm64_make
+#  DESCRIPTION
+#  Runs cygmake using the aarch64 toolchain.  Any arguments are passed along.
+#****
+mingwarm64_make() {
+	__mingw_wrapper ${MINGWARM64_HOST} cygmake "${@}"
+}
+
+#****C* mingwarm64.cygclass/mingwarm64_cmake
+#  DESCRIPTION
+#  Runs cygcmake using the aarch64 toolchain.  Any arguments are passed along.
+#****
+mingwarm64_cmake() {
+	__mingw_wrapper ${MINGWARM64_HOST} cygcmake ${MINGWARM64_CMAKE_ARGS} "${@}"
+}
+
+#****C* mingwarm64.cygclass/mingwarm64_meson
+#  DESCRIPTION
+#  Runs cygmeson using the aarch64 toolchain.  Any arguments are passed along.
+#****
+mingwarm64_meson() {
+	__MINGW_WRAPPER_NO_CWD=1 \
+	__mingw_wrapper ${MINGWARM64_HOST} cygmeson ${MINGWARM64_MESON_ARGS} "${@}"
+}
+
+#****C* mingwarm64.cygclass/mingwarm64_ninja
+#  DESCRIPTION
+#  Runs cygninja using the aarch64 toolchain.  Any arguments are passed along.
+#****
+mingwarm64_ninja() {
+	__mingw_wrapper ${MINGWARM64_HOST} cygninja "${@}"
+}
+
+#****C* mingwarm64.cygclass/mingwarm64_qt5_qmake
+#  DESCRIPTION
+#  Runs cygqmake5 using the aarch64 toolchain.  Any arguments are passed along.
+#****
+mingwarm64_qt5_qmake() {
+	__mingw_wrapper ${MINGWARM64_HOST} cygqmake5 "${@}"
+}
+
+#****I* mingwarm64.cygclass/mingwarm64_make_install
+#  DESCRIPTION
+#  Runs cyginstall using the aarch64 toolchain.  Any arguments are passed along.
+#****
+mingwarm64_make_install() {
+	__mingw_wrapper ${MINGWARM64_HOST} cyginstall "${@}"
+}
+
+#****I* mingwarm64.cygclass/mingwarm64_ninja_install
+#  DESCRIPTION
+#  Runs ninja_install using the aarch64 toolchain.  Any arguments are passed along.
+#****
+mingwarm64_ninja_install() {
+	DESTDIR=${D} \
+	__mingw_wrapper ${MINGWARM64_HOST} cygninja install "${@}"
+}
+
+#****I* mingwarm64.cygclass/mingwarm64_qt5_qmake_install
+#  DESCRIPTION
+#  Runs qt5_qmake_install using the aarch64 toolchain.  Any arguments are passed along.
+#****
+mingwarm64_qt5_qmake_install() {
+	DESTDIR=${D} \
+	__mingw_wrapper ${MINGWARM64_HOST} qt5_qmake_install "${@}"
+}
+
+readonly -f mingwarm64_lndirs mingwarm64_configure mingwarm64_make mingwarm64_cmake \
+	mingwarm64_meson mingwarm64_ninja mingwarm64_qt5_qmake mingwarm64_make_install \
+	mingwarm64_ninja_install mingwarm64_qt5_qmake_install
diff --git a/testsuite/mingw/make/mingw-crypt.cygport b/testsuite/mingw/make/mingw-crypt.cygport
index fb694bb..e0c6621 100644
--- a/testsuite/mingw/make/mingw-crypt.cygport
+++ b/testsuite/mingw/make/mingw-crypt.cygport
@@ -16,13 +16,8 @@ PATCH_URI="1.1-mingw.patch"
 
 src_compile() {
 	cd ${B}
-
-	mkdir -p ${B}/${MINGW32_TARGET}
-	lndirs ${S} ${B}/${MINGW32_TARGET}
+	mingw_lndirs
 	mingw32_make CC=${MINGW32_CC} AR=${MINGW32_AR}
-
-	mkdir -p ${B}/${MINGW64_TARGET}
-	lndirs ${S} ${B}/${MINGW64_TARGET}
 	mingw64_make CC=${MINGW64_CC} AR=${MINGW64_AR}
 }
 



                 reply	other threads:[~2020-05-11 15:48 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200511154849.6412A388F057@sourceware.org \
    --to=yselkowitz@sourceware.org \
    --cc=cygwin-apps-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).