pkg-mingw-w64-gcc/PKGBUILD
2024-09-20 23:06:31 +08:00

77 lines
2.4 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Maintainer: BigfootACA <bigfoot@classfun.cn>
# Maintainer: Felix Yan <felixonmars@archlinux.org>
pkgname=mingw-w64-gcc
pkgver=14.2.0
pkgrel=1
pkgdesc="Cross GCC for the MinGW-w64 cross-compiler"
arch=('x86_64' 'aarch64')
url="https://gcc.gnu.org"
license=('GPL' 'LGPL' 'FDL' 'custom')
groups=('mingw-w64-toolchain' 'mingw-w64')
depends=('zlib' 'libisl' 'libmpc' 'mingw-w64-crt' 'mingw-w64-binutils' 'mingw-w64-winpthreads' 'mingw-w64-headers')
options=('!strip' 'staticlibs' '!emptydirs' '!buildflags')
source=(git+https://gitea.classfun.cn:4443/mirrors/gcc.git)
sha512sums=('SKIP')
_architectures="i686-w64-mingw32 x86_64-w64-mingw32 aarch64-w64-mingw32"
get_latest() {
cd "$srcdir/gcc"
git tag | grep -E '^releases/gcc-[0-9]+\.[0-9]+\.[0-9]+$' | sort --version-sort | tail -n1
}
pkgver() {
get_latest | sed 's,^releases/gcc-,,'
}
prepare() {
cd "$srcdir/gcc"
git checkout "$(get_latest)"
# mmapio.c:69:14: error: implicit declaration of function getpagesize
sed -i 's|\-Werror||g' libbacktrace/configure
}
build() {
for _arch in ${_architectures}; do
mkdir -p "$srcdir"/build-${_arch} && cd "$srcdir"/build-${_arch}
"$srcdir"/gcc/configure --prefix=/usr --libexecdir=/usr/lib \
--target=${_arch} \
--with-bugurl=https://gitea.classfun.cn:4443/ \
--enable-languages=c,c++,fortran,lto,objc,obj-c++ \
--enable-shared \
--enable-static \
--enable-threads=posix \
--enable-fully-dynamic-string \
--enable-libstdcxx-time=yes \
--enable-libstdcxx-filesystem-ts=yes \
--with-system-zlib \
--enable-cloog-backend=isl \
--enable-lto \
--enable-libgomp \
--disable-multilib \
--enable-checking=release \
--disable-sjlj-exceptions \
--with-dwarf2
make
done
}
package() {
for _arch in ${_architectures}; do
cd "$srcdir"/build-${_arch}
make DESTDIR="$pkgdir" install
${_arch}-strip "$pkgdir"/usr/${_arch}/lib/*.dll
strip "$pkgdir"/usr/bin/${_arch}-*
strip "$pkgdir"/usr/lib/gcc/${_arch}/${pkgver}/{cc1*,collect2,gnat1,f951,lto*}
ln -s ${_arch}-gcc "$pkgdir"/usr/bin/${_arch}-cc
# mv dlls
mkdir -p "$pkgdir"/usr/${_arch}/bin/
mv "$pkgdir"/usr/${_arch}/lib/*.dll "$pkgdir"/usr/${_arch}/bin/
done
strip "$pkgdir"/usr/bin/*
# remove unnecessary files
rm -r "$pkgdir"/usr/share
rm "$pkgdir"/usr/lib/libcc1.*
}