# Maintainer: Mateusz Mikula _realname=crt _mingw_suff=mingw-w64-cross-clang pkgname=("${_mingw_suff}-${_realname}") conflicts=("${_mingw_suff%-*}-${_realname}") pkgver=13.0.0.r1.gb45abfec4 pkgrel=1 pkgdesc='MinGW-w64 CRT for cross-compiler' arch=('i686' 'x86_64') url='https://mingw-w64.sourceforge.io/' msys2_repository_url="https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/" license=('spdx:ZPL-2.1 AND LGPL-2.1-or-later') groups=("${_mingw_suff}-toolchain") depends=("${_mingw_suff}-headers") makedepends=("git" "clang" "lld" 'autotools') options=('!strip' 'staticlibs' '!emptydirs' '!buildflags') _commit='b45abfec4e116b33620de597b99b1f0af3ab6a6a' source=("mingw-w64"::"git+https://git.code.sf.net/p/mingw-w64/mingw-w64#commit=$_commit") sha256sums=('38cb5bc2209c942f76acad3c5d7083782b1cceb64878ba24a4c876ea053d40b9') msys2_references=( 'archlinux: mingw-w64-crt' 'cpe: cpe:/a:mingw-w64:mingw-w64' ) _targets="x86_64-w64-mingw32 i686-w64-mingw32 armv7-w64-mingw32 aarch64-w64-mingw32" pkgver() { cd "${srcdir}/mingw-w64" git describe --long ${_commit} | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//g' } prepare() { cd "${srcdir}/mingw-w64" } build() { for _target in ${_targets}; do msg "Building ${_target} CRT" case "${_target}" in i686*) _crt_configure_args="--disable-lib64 --enable-lib32" ;; x86_64*) _crt_configure_args="--disable-lib32 --enable-lib64" ;; armv7*) _crt_configure_args="--disable-lib32 --disable-lib64 --enable-libarm32" ;; aarch64*) _crt_configure_args="--disable-lib32 --disable-lib64 --disable-libarm32 --enable-libarm64" ;; esac mkdir -p ${srcdir}/crt-${_target} && cd ${srcdir}/crt-${_target} export CC="clang" CXX="clang++" AS="clang" AR="llvm-ar" RANLIB="llvm-ranlib" DLLTOOL="llvm-dlltool" LD="clang" CPP="clang -E -target ${_target} --sysroot=/opt/${_target}" local OLDCFLAGS OLDCPPFLAGS OLDCXXFLAGS OLDLDFLAGS OLDCFLAGS="$CFLAGS" OLDCPPFLAGS="$CPPFLAGS" OLDCXXFLAGS="$CXXFLAGS" OLDLDFLAGS="$LDFLAGS" CFLAGS+=" -target ${_target} --sysroot=/opt/${_target}" CPPFLAGS+=" -target ${_target} --sysroot=/opt/${_target}" CXXFLAGS+=" -target ${_target} --sysroot=/opt/${_target}" LDFLAGS+=" -target ${_target} --sysroot=/opt/${_target} -fuse-ld=lld" ${srcdir}/mingw-w64/mingw-w64-crt/configure \ --build=${CHOST} \ --prefix=/opt/${_target} \ --host=${_target} \ --enable-wildcard \ --with-default-msvcrt=ucrt \ --disable-dependency-tracking \ ${_crt_configure_args} make CFLAGS="$OLDCFLAGS" CPPFLAGS="$OLDCPPFLAGS" CXXFLAGS="$OLDCXXFLAGS" LDFLAGS="$OLDLDFLAGS" done } package() { for _target in ${_targets}; do msg "Installing ${_target} crt" cd ${srcdir}/crt-${_target} make DESTDIR=${pkgdir} install done }