[mingw-glib2] Added win64 support
epienbro
epienbro at fedoraproject.org
Sat Mar 10 20:29:25 UTC 2012
commit f669db9bcd3550816a859a9eb5ac166f02819d6d
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date: Sat Mar 10 21:29:22 2012 +0100
Added win64 support
mingw-glib2.spec | 140 +++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 108 insertions(+), 32 deletions(-)
---
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
+
+%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.
+
-%{?mingw32_debug_package}
+%?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
-
-mkdir build_shared
-pushd build_shared
- %{mingw32_configure} --disable-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
+
+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 <epienbro at fedoraproject.org> - 2.31.20-2
+- Added win64 support
+
* Thu Mar 08 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 2.31.20-1
- Update to 2.31.20
- Dropped unneeded BR: mingw32-dlfcn
More information about the scm-commits
mailing list