| # Maintainer: Alexey Pavlov <alexpux@gmail.com> |
| # Contributor: Alexey Borzenkov <snaury@gmail.com> |
| # Contributor: Ray Donnelly <mingw.android@gmail.com> |
| # Contributor: Renato Silva <br.renatosilva@gmail.com> |
| # Contributor: wirx6 <wirx654@gmail.com> |
| # Contributor: Kirill Müller <krlmlr@mailbox.org> |
| |
| _enable_ada=yes |
| _enable_objc=yes |
| _enable_jit=yes |
| if [[ "$MSYSTEM" == "UCRT64" ]]; then |
| # FIXME: how do we bootstrap that? |
| _enable_ada=no |
| fi |
| _threads="posix" |
| _realname=gcc |
| pkgbase=mingw-w64-${_realname} |
| pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" |
| "${MINGW_PACKAGE_PREFIX}-${_realname}-libs" |
| "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran" |
| "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran" |
| $([[ "$_enable_ada" == "yes" ]] && echo "${MINGW_PACKAGE_PREFIX}-${_realname}-ada") |
| $([[ "$_enable_objc" == "yes" ]] && echo "${MINGW_PACKAGE_PREFIX}-${_realname}-objc") |
| $([[ "$_enable_jit" == "yes" ]] && echo "${MINGW_PACKAGE_PREFIX}-libgccjit") |
| ) |
| #_snapshot=20181214 |
| pkgver=10.3.0 |
| #_majorver=${pkgver:0:1} |
| #_sourcedir=${_realname}-${_majorver}-${_snapshot} |
| _sourcedir=${_realname}-${pkgver} |
| pkgrel=2 |
| pkgdesc="GCC for the MinGW-w64" |
| arch=('any') |
| mingw_arch=('mingw32' 'mingw64' 'ucrt64') |
| url="https://gcc.gnu.org" |
| license=('GPL' 'LGPL' 'FDL' 'custom') |
| groups=("${MINGW_PACKAGE_PREFIX}-toolchain") |
| makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}" |
| $([[ "$_enable_ada" == "yes" ]] && echo "${MINGW_PACKAGE_PREFIX}-${_realname}-ada") |
| "${MINGW_PACKAGE_PREFIX}-binutils" |
| "${MINGW_PACKAGE_PREFIX}-crt" |
| "${MINGW_PACKAGE_PREFIX}-headers" |
| "${MINGW_PACKAGE_PREFIX}-gmp" |
| "${MINGW_PACKAGE_PREFIX}-isl" |
| "${MINGW_PACKAGE_PREFIX}-libiconv" |
| "${MINGW_PACKAGE_PREFIX}-mpc" |
| "${MINGW_PACKAGE_PREFIX}-mpfr" |
| "${MINGW_PACKAGE_PREFIX}-windows-default-manifest" |
| "${MINGW_PACKAGE_PREFIX}-winpthreads" |
| "${MINGW_PACKAGE_PREFIX}-zlib" |
| "${MINGW_PACKAGE_PREFIX}-zstd") |
| #checkdepends=('dejagnu') |
| optdepends=() |
| options=('staticlibs' '!emptydirs') # '!strip' 'debug') |
| source=("https://ftp.gnu.org/gnu/gcc/${_realname}-${pkgver%%+*}/${_realname}-${pkgver}.tar.xz"{,.sig} |
| #https://www.mirrorservice.org/sites/sourceware.org/pub/gcc/snapshots/${_majorver}-${_snapshot}/gcc-${_majorver}-${_snapshot}.tar.xz |
| "gdbinit" |
| 0002-Relocate-libintl.patch |
| 0003-Windows-Follow-Posix-dir-exists-semantics-more-close.patch |
| 0004-Windows-Use-not-in-progpath-and-leave-case-as-is.patch |
| 0005-Windows-Don-t-ignore-native-system-header-dir.patch |
| 0006-Windows-New-feature-to-allow-overriding.patch |
| 0007-Build-EXTRA_GNATTOOLS-for-Ada.patch |
| 0008-Prettify-linking-no-undefined.patch |
| 0009-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch |
| 0010-Fix-using-large-PCH.patch |
| 0011-Enable-shared-gnat-implib.patch |
| 0012-Handle-spaces-in-path-for-default-manifest.patch |
| 0014-gcc-9-branch-clone_function_name_1-Retain-any-stdcall-suffix.patch |
| 0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch |
| 0021-gcc-config-i386-mingw32.h-Ensure-lmsvcrt-precede-lke.patch |
| 0022-jit-port-libgccjit-to-Windows.patch |
| 0023-gcc-jit-Rename-libgccjit.dll-to-libgccjit-0.dll.patch |
| 0130-libstdc++-in-out.patch |
| 0140-gcc-8.2.0-diagnostic-color.patch |
| 0150-gcc-10.2.0-libgcc-ldflags.patch |
| 0160-libbacktrace-seh.patch |
| 0200-ms_printf-improvements.patch |
| 0203-backport-longjmp-fix.patch) |
| sha256sums=('64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344' |
| 'SKIP' |
| 'bce81824fc89e5e62cca350de4c17a27e27a18a1a1ad5ca3492aec1fc5af3234' |
| '1247e81571c908548b4d9aaa3df1ad8fd73aad7b81e7eafea12d53bbada70e94' |
| '5b8ab5a54ebdd10c9802ea431b935ff4ba225eec6ca92824cfddfcf2ee8ac910' |
| '388f423a67e4be6f547ca7e340ff8ee4c78b1ed83f3fd698daa409e309911807' |
| 'bd1c201febdf292570b0da9dcc066a237916ab3166dce3610487814f131517e5' |
| '7f5fc74961ec0face6c4c56d3fc3613c38c5133bb68648191065bbf597f3e906' |
| '3629446c0039d9061cfedcb6d7a7589279588bb4601c7ce233546d357bd4be34' |
| '2e4f7d0ef739aec8986eb06a2baadee552ebc2e8be661c39a448e93515179eb5' |
| '513a824ee500d063f09ec920a9ad317a3a117e5468bf201aaf3f70dd0000e769' |
| 'ec58aafba0174313451c282339bbd67ed0b11bca034c29023e0138b61441cf71' |
| '3402f11c3edb3a2b0f27f7159c476879e1e6cddb05ac0327968d89ea245044c7' |
| '11dd5388a1e1c0a2bc8bc3824726598784b9b9e0896a3d77950ba6a4569f1128' |
| '21e31addcf13bc6fa6650b02ed0f2e195a1226260ae48c536840cc9230de2cfc' |
| '276ecc392c777d4b17d771a987e80dca50ff25d8f65671d5de139be73997064b' |
| 'c7359f4c7015bc1fb02bc13449fa9826669273bd1f0663ba898decb67e8487fc' |
| '61554e1ace26a7638a029c87ca360de9d8efbbe258f2fe84c0635a6c446d19a9' |
| '35715ec552eb262dc9d7cb8ee70215bacce47e7281ee4f45bd959fdeadac56e1' |
| '90c17d738e168a3cfd1379ea3b54ea9defd1e68aee33cd9966ee7562485f4910' |
| '5240a9e731b45c17a164066c7eb193c1fbee9fd8d9a2a5afa2edbcde9510da47' |
| '7f0b4e45d933e18c9d8bd2afcd83e4f52e97e2e25dd41bfa0cba755c70e591c7' |
| '88c1d65e763e631ad49f9a077ed631f4acac9ef4732e2818ccddaefc883b1811' |
| '146ac7aec004a949e42f7da6ff66351790e56094a85f6dbe28ea583b47c8125d' |
| 'a1ca2f5dd55823e29f6628dd5027057636cf3d5998c438f365a84f7ec4b7eaa6') |
| validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrowski@archlinux.org |
| 86CFFCA918CF3AF47147588051E8B148A9999C34 # evangelos@foutrelis.com |
| 13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guenther@gmail.com |
| 33C235A34C46AA3FFB293709A328C3A2C3C45C06) # Jakub Jelinek <jakub@redhat.com> |
| |
| # Helper macros to help make tasks easier # |
| apply_patch_with_msg() { |
| for _patch in "$@" |
| do |
| msg2 "Applying ${_patch}" |
| patch -Nbp1 -i "${srcdir}/${_patch}" |
| done |
| } |
| |
| del_file_exists() { |
| for _fname in "$@" |
| do |
| if [ -f ${_fname} ]; then |
| rm -rf ${_fname} |
| fi |
| done |
| } |
| # =========================================== # |
| |
| |
| prepare() { |
| cd ${srcdir}/${_sourcedir} |
| del_file_exists intl/canonicalize.c intl/canonicalize.h \ |
| intl/relocatex.c intl/relocatex.h |
| |
| apply_patch_with_msg \ |
| 0002-Relocate-libintl.patch \ |
| 0003-Windows-Follow-Posix-dir-exists-semantics-more-close.patch \ |
| 0004-Windows-Use-not-in-progpath-and-leave-case-as-is.patch \ |
| 0005-Windows-Don-t-ignore-native-system-header-dir.patch \ |
| 0006-Windows-New-feature-to-allow-overriding.patch \ |
| 0007-Build-EXTRA_GNATTOOLS-for-Ada.patch \ |
| 0008-Prettify-linking-no-undefined.patch \ |
| 0009-gcc-make-xmmintrin-header-cplusplus-compatible-depre.patch \ |
| 0010-Fix-using-large-PCH.patch \ |
| 0011-Enable-shared-gnat-implib.patch \ |
| 0012-Handle-spaces-in-path-for-default-manifest.patch \ |
| 0014-gcc-9-branch-clone_function_name_1-Retain-any-stdcall-suffix.patch \ |
| 0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch \ |
| 0021-gcc-config-i386-mingw32.h-Ensure-lmsvcrt-precede-lke.patch \ |
| 0022-jit-port-libgccjit-to-Windows.patch \ |
| 0023-gcc-jit-Rename-libgccjit.dll-to-libgccjit-0.dll.patch |
| |
| apply_patch_with_msg \ |
| 0130-libstdc++-in-out.patch |
| |
| # Enable diagnostic color under mintty |
| # Вячеслав Петрищев <vyachemail@gmail.com> |
| apply_patch_with_msg \ |
| 0140-gcc-8.2.0-diagnostic-color.patch |
| |
| apply_patch_with_msg \ |
| 0150-gcc-10.2.0-libgcc-ldflags.patch |
| |
| # ensure libbacktrace works with SEH |
| # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96948 |
| apply_patch_with_msg \ |
| 0160-libbacktrace-seh.patch |
| |
| # https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=c51f1e7427e6a5ae2a6d82b5a790df77a3adc99a |
| apply_patch_with_msg \ |
| 0200-ms_printf-improvements.patch |
| |
| # https://github.com/msys2/MINGW-packages/issues/8094 |
| # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100402 |
| apply_patch_with_msg \ |
| 0203-backport-longjmp-fix.patch |
| |
| # do not expect ${prefix}/mingw symlink - this should be superceded by |
| # 0005-Windows-Don-t-ignore-native-system-header-dir.patch .. but isn't! |
| sed -i 's/${prefix}\/mingw\//${prefix}\//g' configure |
| |
| # change hardcoded /mingw prefix to the real prefix .. isn't this rubbish? |
| # it might work at build time and could be important there but beyond that?! |
| local MINGW_NATIVE_PREFIX=$(cygpath -am ${MINGW_PREFIX}/${MINGW_CHOST}) |
| sed -i "s#\\/mingw\\/#${MINGW_NATIVE_PREFIX//\//\\/}\\/#g" gcc/config/i386/mingw32.h |
| } |
| |
| build() { |
| [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} |
| mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} |
| |
| declare -a extra_config |
| if check_option "debug" "n"; then |
| extra_config+=("--disable-libstdcxx-debug") |
| else |
| extra_config+=("--enable-libstdcxx-debug") |
| fi |
| |
| case "${CARCH}" in |
| i686) |
| local _conf="--disable-sjlj-exceptions --with-dwarf2" |
| LDFLAGS+=" -Wl,--large-address-aware" |
| local _arch=i686 |
| ;; |
| |
| x86_64) |
| local _arch=x86-64 |
| local _conf="" |
| ;; |
| esac |
| |
| local _languages="c,lto,c++,fortran" |
| if [ "$_enable_ada" == "yes" ]; then |
| _languages+=",ada" |
| fi |
| if [ "$_enable_objc" == "yes" ]; then |
| _languages+=",objc,obj-c++" |
| fi |
| if [ "$_enable_jit" == "yes" ]; then |
| _languages+=",jit" |
| fi |
| |
| # so libgomp DLL gets built despide static libdl |
| export lt_cv_deplibs_check_method='pass_all' |
| |
| local _LDFLAGS_FOR_TARGET="$LDFLAGS" |
| LDFLAGS+=" -Wl,--disable-dynamicbase" |
| |
| ../${_sourcedir}/configure \ |
| --prefix=${MINGW_PREFIX} \ |
| --with-local-prefix=${MINGW_PREFIX}/local \ |
| --build=${MINGW_CHOST} \ |
| --host=${MINGW_CHOST} \ |
| --target=${MINGW_CHOST} \ |
| --with-native-system-header-dir=${MINGW_PREFIX}/${MINGW_CHOST}/include \ |
| --libexecdir=${MINGW_PREFIX}/lib \ |
| --enable-bootstrap \ |
| --enable-checking=release \ |
| --with-arch=${_arch} \ |
| --with-tune=generic \ |
| --enable-languages=${_languages} \ |
| --enable-shared --enable-static \ |
| --enable-libatomic \ |
| --enable-threads=${_threads} \ |
| --enable-graphite \ |
| --enable-fully-dynamic-string \ |
| --enable-libstdcxx-filesystem-ts=yes \ |
| --enable-libstdcxx-time=yes \ |
| --disable-libstdcxx-pch \ |
| ${extra_config} \ |
| --enable-lto \ |
| --enable-libgomp \ |
| --disable-multilib \ |
| --disable-rpath \ |
| --disable-win32-registry \ |
| --disable-nls \ |
| --disable-werror \ |
| --disable-symvers \ |
| --with-libiconv \ |
| --with-system-zlib \ |
| --with-{gmp,mpfr,mpc,isl}=${MINGW_PREFIX} \ |
| --with-pkgversion="Rev${pkgrel}, Built by MSYS2 project" \ |
| --with-bugurl="https://github.com/msys2/MINGW-packages/issues" \ |
| --with-gnu-as --with-gnu-ld \ |
| --with-boot-ldflags="${LDFLAGS} -static-libstdc++ -static-libgcc" \ |
| LDFLAGS_FOR_TARGET="${_LDFLAGS_FOR_TARGET}" \ |
| --enable-linker-plugin-flags='LDFLAGS=-static-libstdc++\ -static-libgcc\ '"${_LDFLAGS_FOR_TARGET// /\\ }"'\ -Wl,--stack,12582912' \ |
| ${_conf} |
| |
| # While we're debugging -fopenmp problems at least. |
| # .. we may as well not strip anything. |
| if check_option "strip" "n"; then |
| sed -i 's,^STRIP = .*$,STRIP = true,g' Makefile |
| sed -i 's,^STRIP_FOR_TARGET=.*$,STRIP_FOR_TARGET=true,g' Makefile |
| fi |
| |
| make V=1 all |
| |
| rm -rf ${srcdir}${MINGW_PREFIX} |
| |
| make -j1 DESTDIR=${srcdir} install |
| if [ "$_enable_ada" == "yes" ]; then |
| mv ${srcdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/adalib/*.dll ${srcdir}${MINGW_PREFIX}/bin/ |
| fi |
| } |
| |
| package_gcc-libs() { |
| pkgdesc="GNU Compiler Collection (libraries) for MinGW-w64" |
| depends=("${MINGW_PACKAGE_PREFIX}-gmp" |
| "${MINGW_PACKAGE_PREFIX}-mpc" |
| "${MINGW_PACKAGE_PREFIX}-mpfr" |
| "${MINGW_PACKAGE_PREFIX}-libwinpthread") |
| provides=("${MINGW_PACKAGE_PREFIX}-libssp") |
| |
| # Licensing information |
| |
| # Part of the package is GCCRLE, part is LGPL2+, see README generation below. |
| # Since the packaged GCCRLE libraries are also GPL3+, and LGPL2+ is compatible |
| # with GPL3+, the whole package can be redistributed under GPL3+. |
| license=(GPL3+ partial:'GCCRLE' partial:'LGPL2+') |
| |
| # We explain the licensing in this generated README file |
| mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs" |
| cat << ENDFILE > "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs/README" |
| The libgcc, libssp, libstdc++, libgomp and libatomic libraries are covered by |
| GPL3+ with the GCC Runtime Library Exception. The libquadmath library is covered |
| by LGPL2+. The package as a whole can be redistributed under GPL3+. |
| ENDFILE |
| |
| # License files |
| install -Dm644 "${srcdir}/${_sourcedir}/COPYING3" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs/COPYING3" |
| install -Dm644 "${srcdir}/${_sourcedir}/COPYING.LIB" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs/COPYING.LIB" |
| install -Dm644 "${srcdir}/${_sourcedir}/COPYING.RUNTIME" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-libs/COPYING.RUNTIME" |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/bin |
| |
| cd ${srcdir}${MINGW_PREFIX} |
| # libitm* and libvtv* are disbled until fixed |
| cp bin/{libatomic*,libgcc*,libgomp*,libquadmath*,libssp*,libstdc*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ |
| if [ "$_enable_jit" == "yes" ]; then |
| rm ${pkgdir}${MINGW_PREFIX}/bin/libgccjit-0.dll |
| fi |
| } |
| |
| package_gcc() { |
| pkgdesc="GNU Compiler Collection (C,C++,OpenMP) for MinGW-w64" |
| depends=("${MINGW_PACKAGE_PREFIX}-binutils" |
| "${MINGW_PACKAGE_PREFIX}-crt" |
| "${MINGW_PACKAGE_PREFIX}-headers" |
| "${MINGW_PACKAGE_PREFIX}-isl" |
| "${MINGW_PACKAGE_PREFIX}-libiconv" |
| "${MINGW_PACKAGE_PREFIX}-mpc" |
| "${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}-${pkgrel}" |
| "${MINGW_PACKAGE_PREFIX}-windows-default-manifest" |
| "${MINGW_PACKAGE_PREFIX}-winpthreads" |
| "${MINGW_PACKAGE_PREFIX}-zlib" |
| "${MINGW_PACKAGE_PREFIX}-zstd") |
| provides=("${MINGW_PACKAGE_PREFIX}-${_realname}-base") |
| conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}-base") |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,include,lib,share} |
| |
| cd ${srcdir}${MINGW_PREFIX} |
| cp bin/cpp.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/gcc.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/gcc.exe ${pkgdir}${MINGW_PREFIX}/bin/cc.exe |
| cp bin/gcc-ar.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/gcc-nm.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/gcc-ranlib.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/gcov.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/gcov-tool.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/c++.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/g++.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/${MINGW_CHOST}-c++.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/${MINGW_CHOST}-g++.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/${MINGW_CHOST}-gcc-${pkgver%%+*}.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/${MINGW_CHOST}-gcc.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/${MINGW_CHOST}-gcc-ar.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/${MINGW_CHOST}-gcc-nm.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/${MINGW_CHOST}-gcc-ranlib.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| |
| #cp bin/{libgcc*,libgomp*,libquadmath*,libssp*,libstdc*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include/*.h ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include/ |
| cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include/ssp ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include/ |
| cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include-fixed ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/install-tools ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| #cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/plugin ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/cc1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/collect2.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/crt*.o ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/liblto* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/libgcov* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/lto*.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/cc1plus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| |
| cp lib/libatomic* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/libgcc* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/libgcc* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| |
| cp lib/libgomp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| # cp lib/libitm* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/libquadmath* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/libssp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| # cp lib/libvtv* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/libstdc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/libsupc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| |
| #mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib |
| #cp ${srcdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/libgcc_s.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| #cp lib/gcc/${MINGW_CHOST}/lib/libgcc_s.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/ |
| |
| #cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include/c++ ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include/ |
| cp -r include/c++ ${pkgdir}${MINGW_PREFIX}/include/ |
| #cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/libstdc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| #cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/libsupc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/share/{doc,info,locale,man} |
| #cp -r share/doc/gcc-${pkgver%%+*} ${pkgdir}${MINGW_PREFIX}/share/doc/ |
| cp share/info/cpp.info* ${pkgdir}${MINGW_PREFIX}/share/info/ |
| cp share/info/cppinternals.info* ${pkgdir}${MINGW_PREFIX}/share/info/ |
| cp share/info/gcc.info* ${pkgdir}${MINGW_PREFIX}/share/info/ |
| cp share/info/gccinstall.info* ${pkgdir}${MINGW_PREFIX}/share/info/ |
| cp share/info/gccint.info* ${pkgdir}${MINGW_PREFIX}/share/info/ |
| # cp share/info/libitm.info* ${pkgdir}${MINGW_PREFIX}/share/info/ |
| cp share/info/libgomp.info* ${pkgdir}${MINGW_PREFIX}/share/info/ |
| cp share/info/libquadmath.info* ${pkgdir}${MINGW_PREFIX}/share/info/ |
| |
| #cp share/locale/* ${pkgdir}${MINGW_PREFIX}/share/locale/ |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver%%+*}/python |
| cp -r share/gcc-${pkgver%%+*}/python/libstdcxx ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver%%+*}/python/ |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/share/man/man1 |
| cp share/man/man1/cpp.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ |
| cp share/man/man1/gcc.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ |
| cp share/man/man1/gcov.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ |
| cp share/man/man7/fsf-funding.7* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ |
| cp share/man/man7/gfdl.7* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ |
| cp share/man/man7/gpl.7* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ |
| cp share/man/man1/g++.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ |
| |
| # install plugins for binutils |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/bfd-plugins |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/*plugin*.dll ${pkgdir}${MINGW_PREFIX}/lib/bfd-plugins/ |
| |
| # install "custom" system gdbinit |
| install -D -m644 ${srcdir}/gdbinit ${pkgdir}${MINGW_PREFIX}/etc/gdbinit |
| sed -i 's|%GCC_NAME%|gcc-'${pkgver%%+*}'|g' ${pkgdir}${MINGW_PREFIX}/etc/gdbinit |
| } |
| |
| package_gcc-libgfortran() { |
| pkgdesc="GNU Compiler Collection (libgfortran) for MinGW-w64" |
| depends=("${MINGW_PACKAGE_PREFIX}-${_realname}-libs=${pkgver}-${pkgrel}") |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/bin |
| cd ${srcdir}${MINGW_PREFIX} |
| cp bin/libgfortran*.dll ${pkgdir}${MINGW_PREFIX}/bin/ |
| } |
| |
| package_gcc-fortran() { |
| pkgdesc="GNU Compiler Collection (Fortran) for MinGW-w64" |
| depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgrel}" |
| "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran=${pkgver}-${pkgrel}") |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share} |
| |
| cd ${srcdir}${MINGW_PREFIX} |
| cp bin/gfortran.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp bin/${MINGW_CHOST}-gfortran.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| |
| #cp bin/libgfortran*.dll ${pkgdir}${MINGW_PREFIX}/bin/ |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*} |
| cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/finclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/f951.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/libcaf_single.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/libgfortran* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/share/man/man1 |
| cp share/man/man1/gfortran.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/ |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/share/info |
| cp share/info/gfortran.info* ${pkgdir}${MINGW_PREFIX}/share/info/ |
| } |
| |
| package_gcc-ada() { |
| pkgdesc="GNU Compiler Collection (Ada) for MinGW-w64" |
| depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgrel}") |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share} |
| |
| cd ${srcdir}${MINGW_PREFIX} |
| cp bin/gnat*.exe ${pkgdir}${MINGW_PREFIX}/bin/ |
| |
| cp bin/{libgnarl*,libgnat*}.dll ${pkgdir}${MINGW_PREFIX}/bin/ |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*} |
| cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/adainclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/adalib ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/gnat1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/share/info |
| cp share/info/gnat-style.info* ${pkgdir}${MINGW_PREFIX}/share/info/ |
| cp share/info/gnat_rm.info* ${pkgdir}${MINGW_PREFIX}/share/info/ |
| cp share/info/gnat_ugn.info* ${pkgdir}${MINGW_PREFIX}/share/info/ |
| } |
| |
| package_gcc-objc() { |
| pkgdesc="GNU Compiler Collection (ObjC,Obj-C++) for MinGW-w64" |
| depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgrel}") |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib} |
| |
| cd ${srcdir}${MINGW_PREFIX} |
| cp bin/libobjc*.dll ${pkgdir}${MINGW_PREFIX}/bin/ |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include |
| cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include/objc ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/cc1obj.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/cc1objplus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| cp lib/libobjc.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ |
| } |
| |
| package_libgccjit() { |
| pkgdesc="GNU Compiler Collection (libgccjit) for MinGW-w64" |
| depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgrel}") |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,include} |
| |
| cd ${srcdir}${MINGW_PREFIX} |
| |
| cp bin/libgccjit-0.dll ${pkgdir}${MINGW_PREFIX}/bin/ |
| cp include/libgccjit.h ${pkgdir}${MINGW_PREFIX}/include/ |
| cp include/libgccjit++.h ${pkgdir}${MINGW_PREFIX}/include/ |
| cp lib/libgccjit.dll.a ${pkgdir}${MINGW_PREFIX}/lib/ |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/share/info |
| cp share/info/libgccjit.info ${pkgdir}${MINGW_PREFIX}/share/info/ |
| } |
| |
| # template start; name=mingw-w64-splitpkg-wrappers; version=1.0; |
| # vim: set ft=bash : |
| |
| # generate wrappers |
| for _name in "${pkgname[@]}"; do |
| _short="package_${_name#${MINGW_PACKAGE_PREFIX}-}" |
| _func="$(declare -f "${_short}")" |
| eval "${_func/#${_short}/package_${_name}}" |
| done |
| # template end; |