diff --git a/mingw-glib2.spec b/mingw-glib2.spec index 3277485..568699f 100644 --- a/mingw-glib2.spec +++ b/mingw-glib2.spec @@ -1,10 +1,11 @@ -%global __strip %{mingw32_strip} -%global __objdump %{mingw32_objdump} -%define __debug_install_post %{mingw32_debug_install_post} +%?mingw_package_header + +%global mingw_build_win32 1 +%global mingw_build_win64 1 Name: mingw-glib2 Version: 2.31.20 -Release: 1%{?dist} +Release: 2%{?dist} Summary: MinGW Windows GLib2 library License: LGPLv2+ @@ -19,7 +20,7 @@ Patch0: glib-use-correct-glib-genmarshal-when-cross-compiling.patch BuildArch: noarch -BuildRequires: mingw32-filesystem >= 68 +BuildRequires: mingw32-filesystem >= 95 BuildRequires: mingw32-gcc BuildRequires: mingw32-binutils BuildRequires: mingw32-win-iconv @@ -27,10 +28,18 @@ BuildRequires: mingw32-gettext BuildRequires: mingw32-libffi BuildRequires: mingw32-zlib +BuildRequires: mingw64-filesystem >= 95 +BuildRequires: mingw64-gcc +BuildRequires: mingw64-binutils +BuildRequires: mingw64-win-iconv +BuildRequires: mingw64-gettext +BuildRequires: mingw64-libffi +BuildRequires: mingw64-zlib + # Native version required for msgfmt use in build BuildRequires: gettext # Native version required for glib-genmarshal -BuildRequires: glib2-devel >= 2.31.14 +BuildRequires: glib2-devel >= 2.31.20 # Needed for the patch BuildRequires: autoconf automake libtool @@ -38,6 +47,7 @@ BuildRequires: autoconf automake libtool %description MinGW Windows Glib2 library. +# Win32 %package -n mingw32-glib2 Summary: MinGW Windows zlib compression library for the win32 target @@ -52,8 +62,23 @@ Group: Development/Libraries %description -n mingw32-glib2-static Static version of the MinGW Windows GLib2 library. +# Win64 +%package -n mingw64-glib2 +Summary: MinGW Windows zlib compression library for the win32 target -%{?mingw32_debug_package} +%description -n mingw64-glib2 +MinGW Windows Glib2 library. + +%package -n mingw64-glib2-static +Summary: Static version of the MinGW Windows GLib2 library +Requires: mingw64-glib2 = %{version}-%{release} +Group: Development/Libraries + +%description -n mingw64-glib2-static +Static version of the MinGW Windows GLib2 library. + + +%?mingw_debug_package %prep @@ -63,33 +88,21 @@ autoreconf -i --force %build -# GLib can't build static and shared libraries in one go, so we -# build GLib twice here -mkdir build_static -pushd build_static - %{mingw32_configure} --disable-shared --enable-static - # HACK - cp glib/glibconfig.h ../glib - make %{?_smp_mflags} -popd +#GLib can't build static and shared libraries in one go, so we build GLib twice +MINGW_BUILDDIR_SUFFIX=static %mingw_configure --disable-shared --enable-static +MINGW_BUILDDIR_SUFFIX=shared %mingw_configure --disable-static -mkdir build_shared -pushd build_shared - %{mingw32_configure} --disable-static - # HACK - cp glib/glibconfig.h ../glib - make %{?_smp_mflags} -popd +MINGW_BUILDDIR_SUFFIX=static %mingw_make %{?_smp_mflags} +MINGW_BUILDDIR_SUFFIX=shared %mingw_make %{?_smp_mflags} %install -# First install all the files belonging to the shared build -make -C build_shared DESTDIR=$RPM_BUILD_ROOT install +MINGW_BUILDDIR_SUFFIX=static %mingw_make_install DESTDIR=$RPM_BUILD_ROOT/build_static +MINGW_BUILDDIR_SUFFIX=shared %mingw_make_install DESTDIR=$RPM_BUILD_ROOT -# Install all the files from the static build in a seperate folder -# and move the static libraries to the right location -make -C build_static DESTDIR=$RPM_BUILD_ROOT/build_static install +# Move the static libraries to the right location mv $RPM_BUILD_ROOT/build_static%{mingw32_libdir}/*.a $RPM_BUILD_ROOT%{mingw32_libdir} +mv $RPM_BUILD_ROOT/build_static%{mingw64_libdir}/*.a $RPM_BUILD_ROOT%{mingw64_libdir} # There's a small difference in the file glibconfig.h between the # shared and the static build: @@ -116,31 +129,42 @@ mv $RPM_BUILD_ROOT/build_static%{mingw32_libdir}/*.a $RPM_BUILD_ROOT%{mingw32_li rm -rf $RPM_BUILD_ROOT/build_static rm -f $RPM_BUILD_ROOT/%{mingw32_libdir}/charset.alias +rm -f $RPM_BUILD_ROOT/%{mingw64_libdir}/charset.alias # Drop the GDB helper files as we can't use the native Fedora GDB to debug Win32 programs rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/gdb +rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/gdb # Remove the gtk-doc documentation and manpages which duplicate Fedora native rm -rf $RPM_BUILD_ROOT%{mingw32_mandir} rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/gtk-doc -# Bash-completion files aren't interesting for mingw32 +rm -rf $RPM_BUILD_ROOT%{mingw64_mandir} +rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/gtk-doc + +# Bash-completion files aren't interesting for mingw rm -rf $RPM_BUILD_ROOT%{mingw32_sysconfdir}/bash_completion.d +rm -rf $RPM_BUILD_ROOT%{mingw64_sysconfdir}/bash_completion.d # The .def files are also of no use to other binaries rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/*.def +rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/*.def # The gdbus-codegen pieces are already in the native glib2 package rm -f $RPM_BUILD_ROOT%{mingw32_bindir}/gdbus-codegen rm -rf $RPM_BUILD_ROOT%{mingw32_libdir}/gdbus-2.0 +rm -f $RPM_BUILD_ROOT%{mingw64_bindir}/gdbus-codegen +rm -rf $RPM_BUILD_ROOT%{mingw64_libdir}/gdbus-2.0 + # Drop all .la files find $RPM_BUILD_ROOT -name "*.la" -delete -%find_lang glib20 +%mingw_find_lang glib20 -%files -n mingw32-glib2 -f glib20.lang +# Win32 +%files -n mingw32-glib2 -f mingw32-glib20.lang %{mingw32_bindir}/gdbus.exe %{mingw32_bindir}/gio-querymodules.exe %{mingw32_bindir}/glib-compile-resources.exe @@ -188,8 +212,60 @@ find $RPM_BUILD_ROOT -name "*.la" -delete %{mingw32_libdir}/libgobject-2.0.a %{mingw32_libdir}/libgthread-2.0.a +# Win64 +%files -n mingw64-glib2 -f mingw64-glib20.lang +%{mingw64_bindir}/gdbus.exe +%{mingw64_bindir}/gio-querymodules.exe +%{mingw64_bindir}/glib-compile-resources.exe +%{mingw64_bindir}/glib-compile-schemas.exe +%{mingw64_bindir}/glib-genmarshal.exe +%{mingw64_bindir}/glib-gettextize +%{mingw64_bindir}/glib-mkenums +%{mingw64_bindir}/gobject-query.exe +%{mingw64_bindir}/gresource.exe +%{mingw64_bindir}/gsettings.exe +%{mingw64_bindir}/gspawn-win64-helper-console.exe +%{mingw64_bindir}/gspawn-win64-helper.exe +%{mingw64_bindir}/libgio-2.0-0.dll +%{mingw64_bindir}/libglib-2.0-0.dll +%{mingw64_bindir}/libgmodule-2.0-0.dll +%{mingw64_bindir}/libgobject-2.0-0.dll +%{mingw64_bindir}/libgthread-2.0-0.dll +%{mingw64_includedir}/glib-2.0/ +%{mingw64_includedir}/gio-win32-2.0/ +%{mingw64_libdir}/glib-2.0/ +%dir %{mingw64_libdir}/gio/ +%dir %{mingw64_libdir}/gio/modules/ +%{mingw64_libdir}/libgio-2.0.dll.a +%{mingw64_libdir}/libglib-2.0.dll.a +%{mingw64_libdir}/libgmodule-2.0.dll.a +%{mingw64_libdir}/libgobject-2.0.dll.a +%{mingw64_libdir}/libgthread-2.0.dll.a +%{mingw64_libdir}/pkgconfig/gio-2.0.pc +%{mingw64_libdir}/pkgconfig/gio-windows-2.0.pc +%{mingw64_libdir}/pkgconfig/glib-2.0.pc +%{mingw64_libdir}/pkgconfig/gmodule-2.0.pc +%{mingw64_libdir}/pkgconfig/gmodule-export-2.0.pc +%{mingw64_libdir}/pkgconfig/gmodule-no-export-2.0.pc +%{mingw64_libdir}/pkgconfig/gobject-2.0.pc +%{mingw64_libdir}/pkgconfig/gthread-2.0.pc +%{mingw64_datadir}/aclocal/glib-2.0.m4 +%{mingw64_datadir}/aclocal/glib-gettext.m4 +%{mingw64_datadir}/aclocal/gsettings.m4 +%{mingw64_datadir}/glib-2.0/ + +%files -n mingw64-glib2-static +%{mingw64_libdir}/libgio-2.0.a +%{mingw64_libdir}/libglib-2.0.a +%{mingw64_libdir}/libgmodule-2.0.a +%{mingw64_libdir}/libgobject-2.0.a +%{mingw64_libdir}/libgthread-2.0.a + %changelog +* Sat Mar 10 2012 Erik van Pienbroek - 2.31.20-2 +- Added win64 support + * Thu Mar 08 2012 Erik van Pienbroek - 2.31.20-1 - Update to 2.31.20 - Dropped unneeded BR: mingw32-dlfcn