[packages/crossmingw64-gcc] - build more languages (d, fortran, objc, obj-c++)
qboosh
qboosh at pld-linux.org
Sun Apr 27 12:57:04 CEST 2025
commit 2a544f747516dd2c3587e54c6e525e72aaddcced
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Sun Apr 27 12:02:53 2025 +0200
- build more languages (d, fortran, objc, obj-c++)
crossmingw64-gcc.spec | 275 ++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 268 insertions(+), 7 deletions(-)
---
diff --git a/crossmingw64-gcc.spec b/crossmingw64-gcc.spec
index ee9ef1e..357fc1b 100644
--- a/crossmingw64-gcc.spec
+++ b/crossmingw64-gcc.spec
@@ -1,7 +1,13 @@
#
# Conditional build:
%bcond_with bootstrap # bootstrap build (only C compiler with static runtime)
+%bcond_with ada # Ada language support (doesn't build for w64-mingw32)
+%bcond_without d # D language support
#
+%if %{with bootstrap}
+%undefine with_ada
+%undefine with_d
+%endif
Summary: Cross MinGW-W64 GNU binary utility development utilities - gcc
Summary(es.UTF-8): Utilitarios para desarrollo de binarios de la GNU - MinGW-W64 gcc
Summary(fr.UTF-8): Utilitaires de développement binaire de GNU - MinGW-W64 gcc
@@ -165,16 +171,16 @@ generujące kod dla platformy x86_64-w64-mingw32.
Ten pakiet zawiera skrośny kompilator g++ oraz libstdc++.
%package -n crossmingw64-libstdc++-static
-Summary: Static standard C++ library - cross MinGW32 version
-Summary(pl.UTF-8): Statyczna biblioteka standardowa C++ - wersja skrośna MinGW32
+Summary: Static standard C++ library - cross MinGW-W64 version
+Summary(pl.UTF-8): Statyczna biblioteka standardowa C++ - wersja skrośna MinGW-W64
Group: Development/Libraries
Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
%description -n crossmingw64-libstdc++-static
-Static standard C++ library - cross MinGW32 version.
+Static standard C++ library - cross MinGW-W64 version.
%description -n crossmingw64-libstdc++-static -l pl.UTF-8
-Statyczna biblioteka standardowa C++ - wersja skrośna MinGW32.
+Statyczna biblioteka standardowa C++ - wersja skrośna MinGW-W64.
%package -n crossmingw64-libstdc++-dll
Summary: libstdc++ 64-bit DLL library for Windows
@@ -189,6 +195,188 @@ libstdc++ 64-bit DLL library for Windows.
%description -n crossmingw64-libstdc++-dll -l pl.UTF-8
64-bitowa biblioteka DLL libstdc++ dla Windows.
+%package objc
+Summary: MinGW-W64 binary utility development utilities - objc
+Summary(pl.UTF-8): Zestaw narzędzi MinGW-W64 - objc
+Group: Development/Languages
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description objc
+crossmingw64 is a complete cross-compiling development system for
+building stand-alone Microsoft Windows applications under Linux using
+the MinGW-W64 build libraries. This includes a binutils, gcc with g++
+and libstdc++, all cross targeted to x86_64-pc-mingw32.
+
+This package contains cross targeted objc compiler.
+
+%description objc -l pl.UTF-8
+crossmingw64 jest kompletnym systemem do kroskompilacji, pozwalającym
+budować aplikacje MS Windows pod Linuksem używając bibliotek mingw64.
+System składa się z binutils, gcc z g++ i libstdc++ - wszystkie
+generujące kod dla platformy x86_64-w64-mingw32.
+
+Ten pakiet zawiera kompilator objc generujący kod pod Win32.
+
+%package objc++
+Summary: MinGW-W64 binary utility development utilities - objc++
+Summary(pl.UTF-8): Zestaw narzędzi MinGW-W64 - objc++
+Group: Development/Languages
+Requires: %{name}-objc = %{epoch}:%{version}-%{release}
+
+%description objc++
+crossmingw64 is a complete cross-compiling development system for
+building stand-alone Microsoft Windows applications under Linux using
+the MinGW-W64 build libraries. This includes a binutils, gcc with g++
+and libstdc++, all cross targeted to x86_64-pc-mingw32.
+
+This package contains Objective C++ support.
+
+%description objc++ -l pl.UTF-8
+crossmingw64 jest kompletnym systemem do kroskompilacji, pozwalającym
+budować aplikacje MS Windows pod Linuksem używając bibliotek mingw64.
+System składa się z binutils, gcc z g++ i libstdc++ - wszystkie
+generujące kod dla platformy x86_64-w64-mingw32.
+
+Ten pakiet zawiera obsługę języka Objective C++.
+
+%package -n crossmingw64-libobjc-static
+Summary: Static Objective C library - cross MinGW-W64 version
+Summary(pl.UTF-8): Statyczna biblioteka Objective C - wersja skrośna MinGW-W64
+Group: Development/Libraries
+Requires: %{name}-objc = %{epoch}:%{version}-%{release}
+
+%description -n crossmingw64-libobjc-static
+Static Objective C library - cross MinGW-W64 version.
+
+%description -n crossmingw64-libobjc-static -l pl.UTF-8
+Statyczna biblioteka Objective C - wersja skrośna MinGW-W64.
+
+%package -n crossmingw64-libobjc-dll
+Summary: libobjc 64-bit DLL library for Windows
+Summary(pl.UTF-8): Biblioteka 64-bitowa DLL libobjc dla Windows
+Group: Applications/Emulators
+Requires: crossmingw64-libgcc-dll = %{epoch}:%{version}-%{release}
+#Requires: wine64 ?
+
+%description -n crossmingw64-libobjc-dll
+libobjc 64-bit DLL library for Windows.
+
+%description -n crossmingw64-libobjc-dll -l pl.UTF-8
+Biblioteka 64-bitowa DLL libobjc dla Windows.
+
+%package d
+Summary: MinGW-W64 binary utility development utilities - D
+Summary(pl.UTF-8): Zestaw narzędzi MinGW-W64 - D
+Group: Development/Languages
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description d
+crossmingw64 is a complete cross-compiling development system for
+building stand-alone Microsoft Windows applications under Linux using
+the MinGW-W64 build libraries. This includes a binutils, gcc with g++
+and libstdc++, all cross targeted to x86_64-pc-mingw32.
+
+This package contains cross targeted D compiler.
+
+%description d -l pl.UTF-8
+crossmingw64 jest kompletnym systemem do kroskompilacji, pozwalającym
+budować aplikacje MS Windows pod Linuksem używając bibliotek mingw64.
+System składa się z binutils, gcc z g++ i libstdc++ - wszystkie
+generujące kod dla platformy x86_64-w64-mingw32.
+
+Ten pakiet zawiera kompilator języka D generujący kod pod Win32.
+
+%package fortran
+Summary: MinGW-W64 binary utility development utilities - Fortran
+Summary(pl.UTF-8): Zestaw narzędzi MinGW-W64 - Fortran
+Group: Development/Languages
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: crossmingw64-libquadmath = %{epoch}:%{version}-%{release}
+
+%description fortran
+crossmingw64 is a complete cross-compiling development system for
+building stand-alone Microsoft Windows applications under Linux using
+the MinGW-W64 build libraries. This includes a binutils, gcc with g++
+and libstdc++, all cross targeted to x86_64-pc-mingw32.
+
+This package contains cross targeted Fortran compiler.
+
+%description fortran -l pl.UTF-8
+crossmingw64 jest kompletnym systemem do kroskompilacji, pozwalającym
+budować aplikacje MS Windows pod Linuksem używając bibliotek mingw64.
+System składa się z binutils, gcc z g++ i libstdc++ - wszystkie
+generujące kod dla platformy x86_64-w64-mingw32.
+
+Ten pakiet zawiera kompilator Fortranu generujący kod pod Win32.
+
+%package -n crossmingw64-libgfortran-static
+Summary: Static Fortran library - cross MinGW-W64 version
+Summary(pl.UTF-8): Statyczna biblioteka Fortranu - wersja skrośna MinGW-W64
+Group: Development/Libraries
+Requires: %{name}-fortran = %{epoch}:%{version}-%{release}
+
+%description -n crossmingw64-libgfortran-static
+Static Fortran library - cross MinGW-W64 version.
+
+%description -n crossmingw64-libgfortran-static -l pl.UTF-8
+Statyczna biblioteka Fortranu - wersja skrośna MinGW-W64.
+
+%package -n crossmingw64-libgfortran-dll
+Summary: libgfortran 64-bit DLL library for Windows
+Summary(pl.UTF-8): Biblioteka 64-bitowa DLL libgfortran dla Windows
+Group: Applications/Emulators
+Requires: crossmingw64-libquadmath-dll
+
+%description -n crossmingw64-libgfortran-dll
+libgfortran 64-bit DLL library for Windows.
+
+%description -n crossmingw64-libgfortran-dll -l pl.UTF-8
+Biblioteka 64-bitowa DLL libgfortran dla Windows.
+
+%package -n crossmingw64-libquadmath
+Summary: GCC __float128 support library - cross MinGW-W64 version
+Summary(pl.UTF-8): Biblioteka do obsługi typu __float128 - wersja skrośna MinGW-W64
+License: GPL v2+ with linking exception
+Group: Development/Libraries
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description -n crossmingw64-libquadmath
+This package contains cross MinGW-W64 version of GCC support library
+which is needed for __float128 math support and for Fortran REAL*16
+support.
+
+%description -n crossmingw64-libquadmath -l pl.UTF-8
+Ten pakiet zawiera wersję skrośną MinGW-W64 biblioteki GCC do obsługi
+operacji matematycznych na zmiennych typu __float128 oraz typu REAL*16
+w Fortranie.
+
+%package -n crossmingw64-libquadmath-static
+Summary: Static GCC __float128 support library - cross MinGW-W64 version
+Summary(pl.UTF-8): Biblioteka statyczna GCC do obsługi typu __float128 - wersja skrośna MinGW-W64
+License: GPL v2+ with linking exception
+Group: Development/Libraries
+Requires: crossmingw64-libquadmath = %{epoch}:%{version}-%{release}
+
+%description -n crossmingw64-libquadmath-static
+Static GCC __float128 support library - cross MinGW-W64 version.
+
+%description -n crossmingw64-libquadmath-static -l pl.UTF-8
+Biblioteka statyczna GCC do obsługi typu __float128 - wersja skrośna
+MinGW-W64.
+
+%package -n crossmingw64-libquadmath-dll
+Summary: 64-bit DLL GCC __float128 support library for Windows
+Summary(pl.UTF-8): Biblioteka 64-bitowa DLL GCC do obsługi typu __float128 dla Windows
+License: GPL v2+ with linking exception
+Group: Applications/Emulators
+Requires: wine
+
+%description -n crossmingw64-libquadmath-dll
+64-bit DLL GCC __float128 support library for Windows.
+
+%description -n crossmingw64-libquadmath-dll -l pl.UTF-8
+Biblioteka 64-bitowa DLL GCC do obsługi typu __float128 dla Windows.
+
%prep
%setup -q -n gcc-%{version} -a 1
#patch -P0 -p0
@@ -238,11 +426,11 @@ TEXCONFIG=false \
--enable-decimal-float=yes \
--enable-fully-dynamic-string \
--disable-isl-version-check \
- --enable-languages="c%{!?with_bootstrap:,c++}" \
+ --enable-languages="c%{!?with_bootstrap:,c++,fortran,objc,obj-c++}%{?with_ada:,ada}%{?with_d:,d}" \
%{?with_bootstrap:--disable-libatomic} \
--disable-libcc1 \
--disable-libitm \
- --disable-libquadmath \
+ --enable-libquadmath%{?with_bootstrap:=no} \
--disable-libssp \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
@@ -297,11 +485,17 @@ gccdir=$RPM_BUILD_ROOT%{gcclibdir}
# these must be symlinks: gcclibdir is calculated relatively to real binary path
ln -sf %{archbindir}/%{target}-gcc $RPM_BUILD_ROOT%{_bindir}/%{target}-gcc
-ln -sf %{archbindir}/%{target}-g++ $RPM_BUILD_ROOT%{_bindir}/%{target}-g++
ln -sf %{archbindir}/%{target}-cpp $RPM_BUILD_ROOT%{_bindir}/%{target}-cpp
ln -sf %{archbindir}/%{target}-gcov $RPM_BUILD_ROOT%{_bindir}/%{target}-gcov
ln -sf %{archbindir}/%{target}-gcov-dump $RPM_BUILD_ROOT%{_bindir}/%{target}-gcov-dump
ln -sf %{archbindir}/%{target}-gcov-tool $RPM_BUILD_ROOT%{_bindir}/%{target}-gcov-tool
+%if %{without bootstrap}
+ln -sf %{archbindir}/%{target}-g++ $RPM_BUILD_ROOT%{_bindir}/%{target}-g++
+ln -sf %{archbindir}/%{target}-gfortran $RPM_BUILD_ROOT%{_bindir}/%{target}-gfortran
+%endif
+%if %{with d}
+ln -sf %{archbindir}/%{target}-gdc $RPM_BUILD_ROOT%{_bindir}/%{target}-gdc
+%endif
%{__make} -C mingw64-crt -j1 install \
DESTDIR=$RPM_BUILD_ROOT
@@ -1627,4 +1821,71 @@ rm -rf $RPM_BUILD_ROOT
%files -n crossmingw64-libstdc++-dll
%defattr(644,root,root,755)
%{_dll64dir}/libstdc++-8.dll
+
+%files objc
+%defattr(644,root,root,755)
+%doc libobjc/README
+%attr(755,root,root) %{gcclibdir}/cc1obj
+%{archlibdir}/libobjc.dll.a
+%{archlibdir}/libobjc.la
+%{gcclibdir}/include/objc
+
+%files objc++
+%defattr(644,root,root,755)
+%doc gcc/objcp/ChangeLog
+%attr(755,root,root) %{gcclibdir}/cc1objplus
+
+%files -n crossmingw64-libobjc-static
+%defattr(644,root,root,755)
+%{archlibdir}/libobjc.a
+
+%files -n crossmingw64-libobjc-dll
+%defattr(644,root,root,755)
+%{_dll64dir}/libobjc-4.dll
+
+%if %{with d}
+%files d
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/%{target}-gdc
+%attr(755,root,root) %{archbindir}/%{target}-gdc
+%attr(755,root,root) %{gcclibdir}/d21
+%{_mandir}/man1/%{target}-gdc.1*
+%endif
+
+%files fortran
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/%{target}-gfortran
+%attr(755,root,root) %{archbindir}/%{target}-gfortran
+%attr(755,root,root) %{gcclibdir}/f951
+%{archlibdir}/libgfortran.dll.a
+%{archlibdir}/libgfortran.la
+%{archlibdir}/libgfortran.spec
+%{gcclibdir}/finclude
+%{gcclibdir}/include/ISO_Fortran_binding.h
+%{gcclibdir}/libcaf_single.a
+%{gcclibdir}/libcaf_single.la
+%{_mandir}/man1/%{target}-gfortran.1*
+
+%files -n crossmingw64-libgfortran-static
+%defattr(644,root,root,755)
+%{archlibdir}/libgfortran.a
+
+%files -n crossmingw64-libgfortran-dll
+%defattr(644,root,root,755)
+%{_dll64dir}/libgfortran-5.dll
+
+%files -n crossmingw64-libquadmath
+%defattr(644,root,root,755)
+%{archlibdir}/libquadmath.dll.a
+%{archlibdir}/libquadmath.la
+%{gcclibdir}/include/quadmath.h
+%{gcclibdir}/include/quadmath_weak.h
+
+%files -n crossmingw64-libquadmath-static
+%defattr(644,root,root,755)
+%{archlibdir}/libquadmath.a
+
+%files -n crossmingw64-libquadmath-dll
+%defattr(644,root,root,755)
+%{_dll64dir}/libquadmath-0.dll
%endif
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/crossmingw64-gcc.git/commitdiff/2a544f747516dd2c3587e54c6e525e72aaddcced
More information about the pld-cvs-commit
mailing list