From 782a2c8c7f52ca5895c1b8caecdf9d46ad083a5a Mon Sep 17 00:00:00 2001 From: EnumDev Date: Thu, 12 Mar 2026 15:20:20 +0200 Subject: [PATCH] Initial commit --- .gitignore | 3 +++ check-version.sh | 8 ++++++++ pkg.info | 31 +++++++++++++++++++++++++++++++ source.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+) create mode 100644 .gitignore create mode 100644 check-version.sh create mode 100644 pkg.info create mode 100644 source.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9d96df7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Ignore BPM archives and signatures +*.bpm +*.bpm.sig diff --git a/check-version.sh b/check-version.sh new file mode 100644 index 0000000..6497167 --- /dev/null +++ b/check-version.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +URL="ftp://ftp.gnu.org/gnu/gcc/" + +# Get version number from FTP server +VERSION=$(curl -s --list-only "$URL" | grep -E '^gcc-[0-9]{1,}\.[0-9]{1,}(\.[0-9]{1,})?$' | cut -d '-' -f2 | sort -V | tail -n1) + +echo "$VERSION" diff --git a/pkg.info b/pkg.info new file mode 100644 index 0000000..66e1f08 --- /dev/null +++ b/pkg.info @@ -0,0 +1,31 @@ +name: mingw-w64-gcc +description: Cross GCC for the MinGW-w64 cross-compiler +version: 15.2.0 +revision: 1 +url: http://www.gnu.org/software/gcc +license: GPL3-or-later,LGPL3-or-later,GPL3 with GCC-exception +maintainers: + - enumdev@enumerated.dev +architecture: any +type: source +depends: + - gcc-libs + - glibc + - gmp + - libisl + - mpc + - mingw-w64-binutils + - mingw-w64-crt + - mingw-w64-headers + - mingw-w64-winpthreads + - mpfr + - python3 + - zlib + - zstd +options: + - nostrip +downloads: + - url: https://ftpmirror.gnu.org/gcc/gcc-${BPM_PKG_VERSION}/gcc-${BPM_PKG_VERSION}.tar.xz + extract_to: ${BPM_SOURCE} + extract_strip_components: 1 + checksum: 438fd996826b0c82485a29da03a72d71d6e3541a83ec702df4271f6fe025d24e diff --git a/source.sh b/source.sh new file mode 100644 index 0000000..7ff2fe9 --- /dev/null +++ b/source.sh @@ -0,0 +1,45 @@ +# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package +# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE +# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT + +# The prepare function is executed in the root of the temp directory +# This function is used for putting downloaded files to the correct location or applying patches +prepare() { + cd "$BPM_SOURCE" + # mmapio.c:69:14: error: implicit declaration of function ‘getpagesize’ + sed -i 's|\-Werror||g' libbacktrace/configure +} + +# The build function is executed in the source directory +# This function is used to compile the source code +build() { + for target in x86_64-w64-mingw32 i686-w64-mingw32; do + mkdir "$BPM_SOURCE"/${target} + cd "$BPM_SOURCE"/${target} + + echo "Building for target ${target}" + ../configure --prefix=/usr \ + --target=${target} \ + --disable-multilib \ + --enable-threads=posix \ + --enable-shared \ + --enable-languages=c,c++ + make + done +} + +# The package function is executed in the source directory +# This function is used to move the compiled files into the output directory +package() { + for target in x86_64-w64-mingw32 i686-w64-mingw32; do + cd "$BPM_SOURCE"/${target} + + make DESTDIR="$BPM_OUTPUT" install + + # Create 'cc' symlink which is required by some packages + ln -s ${target}-gcc "$BPM_OUTPUT"/usr/bin/${target}-cc + done + + # Install package license + install -Dm644 "$BPM_SOURCE"/COPYING{,3}{,.LIB} -t "$BPM_OUTPUT"/usr/share/licenses/mingw-w64-gcc +}