92 lines
2.8 KiB
Bash
92 lines
2.8 KiB
Bash
# Maintainer: Mateusz Mikula <mati865@gmail.com>
|
|
|
|
_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
|
|
}
|