Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1- Build mingw-w64-gcc with this package.yml
- name : mingw-w64-gcc
- version : 9.2.0
- release : 1
- source :
- - ftp://gcc.gnu.org/pub/gcc/releases/gcc-9.2.0/gcc-9.2.0.tar.xz : ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206
- - https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/mingw-w64-v6.0.0.tar.bz2 : 805e11101e26d7897fce7d49cbb140d7bac15f3e085a91e0001e80b2adaf48f0
- license : GPL-3.0-or-later
- component : programming
- summary :
- - GCC for MinGW-w64 targeting 64 bits
- - 32bit: GCC for MinGW-w64 targeting 32 bits
- description: |
- The GNU Compiler Collection includes front ends for C and C++, as well as libraries for these languages (libstdc++, libgcc,...). GCC was originally written as the compiler for the GNU operating system. The GNU system was developed to be 100% free software, free in the sense that it respects the user's freedom.
- strip : no
- patterns :
- - 32bit:
- - /usr/share/mingw-w64/bin/i686-w64-mingw32-*
- - /usr/share/mingw-w64/i686-w64-mingw32/*
- - /usr/share/mingw-w64/lib/gcc/i686-w64-mingw32/*
- - /usr/share/mingw-w64/libexec/gcc/i686-w64-mingw32/*
- builddeps :
- - mingw-w64-binutils
- - mingw-w64-binutils-32bit
- rundeps :
- - mingw-w64-binutils
- - 32bit:
- - mingw-w64-binutils-32bit
- environment: |
- export TARGET32=i686-w64-mingw32
- export TARGET64=x86_64-w64-mingw32
- export PREFIX=/usr/share/mingw-w64
- setup : |
- # Build steps: binutils -> gcc core -> mingw-w64 -> mingw-w64 with headers and winpthreads -> gcc
- tar xjf $sources/mingw-w64-v6.0.0.tar.bz2
- # Install the MinGW-w64 headers only
- _headers_conf() {
- ../mingw-w64-v6.0.0/mingw-w64-headers/configure \
- --host=$1 \
- --prefix=$PREFIX/$1 \
- --disable-werror \
- --enable-secure-api \
- --enable-sdk=all
- }
- mkdir headdir32 && pushd headdir32
- _headers_conf $TARGET32
- popd
- mkdir headdir64 && pushd headdir64
- _headers_conf $TARGET64
- popd
- %make_install -C headdir32
- %make_install -C headdir64
- _bootstrap_cfg() {
- ../configure \
- --target=$1 \
- --prefix=$installdir$PREFIX \
- --enable-lto \
- --enable-static \
- --with-system-zlib \
- --disable-nls \
- --disable-dw2-exceptions \
- --disable-multilib \
- --enable-version-specific-runtime-libs \
- --enable-languages=c,lto \
- --enable-checking=release
- }
- mkdir gccdir32 && pushd gccdir32
- _bootstrap_cfg $TARGET32
- popd
- mkdir gccdir64 && pushd gccdir64
- _bootstrap_cfg $TARGET64
- popd
- build : |
- %make all-gcc -C gccdir32
- %make all-gcc -C gccdir64
- install : |
- %make install-strip-gcc -C gccdir32
- %make install-strip-gcc -C gccdir64
- rm -r $installdir$PREFIX/include
- rm -r $installdir$PREFIX/share
- 2- Build mingw-w64 with this package.yml
- name : mingw-w64
- version : 6.0.0
- release : 1
- source :
- - https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/mingw-w64-v6.0.0.tar.bz2 : 805e11101e26d7897fce7d49cbb140d7bac15f3e085a91e0001e80b2adaf48f0
- license : GPL-3.0-or-later
- component : programming.devel
- summary :
- - The MinGW-w64 project binaries, runtimes and libraries for 64 bits
- - 32bit: The MinGW-w64 project binaries, runtimes and libraries for 32 bits
- description: |
- The mingw-w64 project is a complete runtime environment for gcc to support binaries native to Windows 64-bit and 32-bit operating systems.
- strip : no
- patterns :
- - 32bit:
- - /usr/share/mingw-w64/i686-w64-mingw32/*
- builddeps :
- - mingw-w64-binutils
- - mingw-w64-gcc
- - mingw-w64-binutils-32bit
- - mingw-w64-gcc-32bit
- rundeps :
- - mingw-w64-binutils
- - mingw-w64-gcc
- - 32bit:
- - mingw-w64-binutils-32bit
- - mingw-w64-gcc-32bit
- environment: |
- export TARGET32=i686-w64-mingw32
- export TARGET64=x86_64-w64-mingw32
- export PREFIX=/usr/share/mingw-w64
- export PATH=$PATH:$PREFIX/bin
- unset CC CXX CFLAGS CXXFLAGS LDFLAGS
- setup : |
- # Some empty headers are required for the building process
- export CPPFLAGS=-I$pkgfiles/include
- _crt_conf() {
- if [ $1 == $TARGET32 ]; then
- export _crt_cfg_args="--disable-lib64 --enable-lib32"
- elif [ $1 == $TARGET64 ]; then
- export _crt_cfg_args="--disable-lib32 --enable-lib64"
- fi
- ../mingw-w64-crt/configure \
- --host=$1 \
- --enable-experimental \
- --enable-wildcard \
- --prefix=$PREFIX/$1 \
- $_crt_cfg_args
- }
- mkdir crtdir32 && pushd crtdir32
- _crt_conf $TARGET32
- popd
- mkdir crtdir64 && pushd crtdir64
- _crt_conf $TARGET64
- build : |
- %make -C crtdir32
- %make -C crtdir64
- install : |
- %make install-strip -C crtdir32 DESTDIR=$installdir
- %make install-strip -C crtdir64 DESTDIR=$installdir
- 3- Rebuild mingw-w64 with this package.yml that includes the headers and winpthreads
- name : mingw-w64
- version : 6.0.0
- release : 2
- source :
- - https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/mingw-w64-v6.0.0.tar.bz2 : 805e11101e26d7897fce7d49cbb140d7bac15f3e085a91e0001e80b2adaf48f0
- license :
- - Public-Domain
- - GPL-3.0-or-later
- - ZPL-2.1
- component : programming.devel
- summary :
- - The MinGW-w64 project binaries, runtimes and libraries for 64 bits
- - 32bit: The MinGW-w64 project binaries, runtimes and libraries for 32 bits
- description: |
- The mingw-w64 project is a complete runtime environment for gcc to support binaries native to Windows 64-bit and 32-bit operating systems.
- strip : no
- autodep : no
- patterns :
- - 32bit:
- - /usr/share/mingw-w64/i686-w64-mingw32/*
- builddeps :
- - mingw-w64
- - mingw-w64-binutils
- - mingw-w64-gcc
- - mingw-w64-32bit
- - mingw-w64-binutils-32bit
- - mingw-w64-gcc-32bit
- environment: |
- export PREFIX=/usr/share/mingw-w64
- export PATH=$PATH:$PREFIX/bin
- export TARGET32=i686-w64-mingw32
- export TARGET64=x86_64-w64-mingw32
- unset CC CXX CFLAGS CXXFLAGS LDFLAGS
- setup : |
- _headers_conf() {
- ../mingw-w64-headers/configure \
- --host=$1 \
- --prefix=$PREFIX/$1 \
- --enable-secure-api \
- --enable-sdk=all
- }
- _crt_conf() {
- if [ $1 == $TARGET32 ]; then
- export _crt_cfg_args="--disable-lib64 --enable-lib32"
- elif [ $1 == $TARGET64 ]; then
- export _crt_cfg_args="--disable-lib32 --enable-lib64"
- fi
- # Some empty headers are required for the building process
- export CPPFLAGS=-I$pkgfiles/include
- ../mingw-w64-crt/configure \
- --host=$1 \
- --enable-experimental \
- --enable-wildcard \
- --prefix=$PREFIX/$1 \
- --includedir=$PREFIX/$1/include \
- $_crt_cfg_args
- unset CPPFLAGS
- }
- _winpthreads_conf() {
- ../mingw-w64-libraries/winpthreads/configure \
- --host=$1 \
- --prefix=$PREFIX/$1 \
- --enable-shared \
- --enable-static
- }
- mkdir headdir32 && pushd headdir32
- _headers_conf $TARGET32
- popd
- mkdir headdir64 && pushd headdir64
- _headers_conf $TARGET64
- popd
- mkdir crtdir32 && pushd crtdir32
- _crt_conf $TARGET32
- popd
- mkdir crtdir64 && pushd crtdir64
- _crt_conf $TARGET64
- popd
- mkdir pthrdir32 && pushd pthrdir32
- _winpthreads_conf $TARGET32
- popd
- mkdir pthrdir64 && pushd pthrdir64
- _winpthreads_conf $TARGET64
- popd
- build : |
- %make -C crtdir32
- %make -C crtdir64
- %make -C pthrdir32
- %make -C pthrdir64
- install : |
- %make_install -C headdir32
- %make_install -C headdir64
- %make install-strip -C crtdir32 DESTDIR=$installdir
- %make install-strip -C crtdir64 DESTDIR=$installdir
- %make install-strip -C pthrdir32 DESTDIR=$installdir
- %make install-strip -C pthrdir64 DESTDIR=$installdir
- 4- Rebuild mingw-w64-gcc with winpthreads and C++ support
- name : mingw-w64-gcc
- version : 9.2.0
- release : 2
- source :
- - ftp://gcc.gnu.org/pub/gcc/releases/gcc-9.2.0/gcc-9.2.0.tar.xz : ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206
- - http://isl.gforge.inria.fr/isl-0.21.tar.bz2 : d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859
- license : GPL-3.0-or-later
- component : programming
- summary :
- - GCC for MinGW-w64 targeting 64 bits
- - 32bit: GCC for MinGW-w64 targeting 32 bits
- description: |
- The GNU Compiler Collection includes front ends for C and C++, as well as libraries for these languages (libstdc++, libgcc,...). GCC was originally written as the compiler for the GNU operating system. The GNU system was developed to be 100% free software, free in the sense that it respects the user's freedom.
- strip : no
- autodep : no
- patterns :
- - 32bit:
- - /usr/share/mingw-w64/bin/i686-w64-mingw32-*
- - /usr/share/mingw-w64/i686-w64-mingw32/*
- - /usr/share/mingw-w64/lib/gcc/i686-w64-mingw32/*
- - /usr/share/info/i686-w64-mingw32-*
- - /usr/share/man/man1/i686-w64-mingw32-*
- builddeps :
- - mingw-w64
- - mingw-w64-binutils
- - mingw-w64-gcc
- - mingw-w64-32bit
- - mingw-w64-binutils-32bit
- - mingw-w64-gcc-32bit
- environment: |
- export TARGET32=i686-w64-mingw32
- export TARGET64=x86_64-w64-mingw32
- export PREFIX=/usr/share/mingw-w64
- export PATH=$PATH:$PREFIX/bin
- setup : |
- tar xf $sources/isl-0.21.tar.bz2
- mv isl-0.21 isl
- _gcc_cfg() {
- ../configure \
- --target=$1 \
- --prefix=$PREFIX \
- --enable-lto \
- --enable-shared \
- --enable-static \
- --disable-multilib \
- --enable-threads=posix \
- --enable-fully-dynamic-string \
- --enable-libstdcxx-time=yes \
- --enable-libstdcxx-filesystem-ts=yes \
- --with-system-zlib \
- --disable-nls \
- --enable-cloog-backend=isl \
- --disable-dw2-exceptions \
- --enable-libgomp \
- --enable-languages=c,c++,lto \
- --enable-checking=release
- }
- mkdir gccdir32 && pushd gccdir32
- _gcc_cfg $TARGET32
- popd
- mkdir gccdir64 && pushd gccdir64
- _gcc_cfg $TARGET64
- popd
- build : |
- %make -C gccdir32
- %make -C gccdir64
- install : |
- mkdir -p $installdir/usr/share/info $installdir/usr/share/man
- # Post installation strips and modifications, or the package bloats to 1.5GB
- _post_install() {
- pushd $installdir$PREFIX/bin
- strip $1-*
- ln -s $1-gcc $1-cc
- popd
- mkdir -p $installdir$PREFIX/$1/bin
- pushd $installdir$PREFIX/$1/bin
- mv $installdir$PREFIX/$1/lib/*.dll .
- $1-strip --strip-unneeded *.dll
- popd
- pushd $installdir$PREFIX/$1/lib
- $1-strip -g *.a
- popd
- pushd $installdir$PREFIX/libexec/gcc/$1/9.2.0
- strip -g {cc1,cc1plus,collect2,lto1,lto-wrapper}
- popd
- pushd $installdir$PREFIX/share/info
- for info in cpp cppinternals gcc gccinstall gccint libgomp libquadmath; do
- mv $info.info $installdir/usr/share/info/$1-$info.info
- done
- popd
- }
- %make_install -C gccdir32
- _post_install $TARGET32
- %make_install -C gccdir64
- _post_install $TARGET64
- mv $installdir$PREFIX/share/man/man1 $installdir/usr/share/man
- rm -rf $installdir$PREFIX/lib64 $installdir$PREFIX/share $installdir$PREFIX/include
Add Comment
Please, Sign In to add comment