rpms/mingw32-glib2/devel mingw32-glib2.spec,1.2,1.3

Richard W.M. Jones rjones at fedoraproject.org
Fri Feb 20 22:23:04 UTC 2009


Author: rjones

Update of /cvs/pkgs/rpms/mingw32-glib2/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv8874

Modified Files:
	mingw32-glib2.spec 
Log Message:
* Fri Feb 20 2009 Erik van Pienbroek <info at nntpgrab.nl> - 2.19.5-4
- Added -static subpackage
- Developers using the static build of GLib need to add
  -DGLIB_STATIC_COMPILATION and -DGOBJECT_STATIC_COMPILATION to
  their CFLAGS to avoid compile failures
- Fixed the %%defattr line
- Rebuild for mingw32-gcc 4.4 (RWMJ)



Index: mingw32-glib2.spec
===================================================================
RCS file: /cvs/pkgs/rpms/mingw32-glib2/devel/mingw32-glib2.spec,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mingw32-glib2.spec	30 Jan 2009 11:16:49 -0000	1.2
+++ mingw32-glib2.spec	20 Feb 2009 22:22:33 -0000	1.3
@@ -6,7 +6,7 @@
 
 Name:           mingw32-glib2
 Version:        2.19.5
-Release:        3%{?dist}
+Release:        4%{?dist}
 Summary:        MinGW Windows GLib2 library
 
 License:        LGPLv2+
@@ -19,7 +19,7 @@
 
 Patch0:         glib-i386-atomic.patch
 
-BuildRequires:  mingw32-filesystem >= 43-6
+BuildRequires:  mingw32-filesystem >= 49
 BuildRequires:  mingw32-gcc
 BuildRequires:  mingw32-binutils
 BuildRequires:  mingw32-dlfcn
@@ -41,6 +41,13 @@
 %description
 MinGW Windows Glib2 library.
 
+%package static
+Summary:        Static version of the MinGW Windows GLib2 library
+Requires:       %{name} = %{version}-%{release}
+Group:          Development/Libraries
+
+%description static
+Static version of the MinGW Windows GLib2 library.
 
 %prep
 %setup -q -n glib-%{version}
@@ -52,14 +59,61 @@
 
 
 %build
-%{_mingw32_configure} --disable-static
-make %{?_smp_mflags}
-
+# 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
+        make %{?_smp_mflags}
+popd
+
+mkdir build_shared
+pushd build_shared
+        %{_mingw32_configure} --disable-static
+        make %{?_smp_mflags}
+popd
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
-make DESTDIR=$RPM_BUILD_ROOT install
+# First install all the files belonging to the shared build
+make -C build_shared DESTDIR=$RPM_BUILD_ROOT install
+
+# 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
+mv $RPM_BUILD_ROOT/build_static%{_mingw32_libdir}/*.a $RPM_BUILD_ROOT%{_mingw32_libdir}
+
+# Manually merge the libtool files
+sed -i s/"old_library=''"/"old_library='libgio-2.0.a'"/ $RPM_BUILD_ROOT%{_mingw32_libdir}/libgio-2.0.la
+sed -i s/"old_library=''"/"old_library='libglib-2.0.a'"/ $RPM_BUILD_ROOT%{_mingw32_libdir}/libglib-2.0.la
+sed -i s/"old_library=''"/"old_library='libgobject-2.0.a'"/ $RPM_BUILD_ROOT%{_mingw32_libdir}/libgobject-2.0.la
+sed -i s/"old_library=''"/"old_library='libgmodule-2.0.a'"/ $RPM_BUILD_ROOT%{_mingw32_libdir}/libgmodule-2.0.la
+sed -i s/"old_library=''"/"old_library='libgthread-2.0.a'"/ $RPM_BUILD_ROOT%{_mingw32_libdir}/libgthread-2.0.la
+
+# There's also a small difference in the file glibconfig.h between the
+# shared and the static build:
+#
+#diff -ur shared/usr/i686-pc-mingw32/sys-root/mingw/lib/glib-2.0/include/glibconfig.h static/usr/i686-pc-mingw32/sys-root/mingw/lib/glib-2.0/include/glibconfig.h
+#--- shared/usr/i686-pc-mingw32/sys-root/mingw/lib/glib-2.0/include/glibconfig.h	2009-02-20 17:34:35.735677022 +0100
+#+++ static/usr/i686-pc-mingw32/sys-root/mingw/lib/glib-2.0/include/glibconfig.h	2009-02-20 17:33:35.498932269 +0100
+#@@ -92,7 +92,8 @@
+# 
+# #define G_OS_WIN32
+# #define G_PLATFORM_WIN32
+#-
+#+#define GLIB_STATIC_COMPILATION 1
+#+#define GOBJECT_STATIC_COMPILATION 1
+# 
+# #define G_VA_COPY	va_copy
+#
+# However, we can't merge this change as it is situation-dependent...
+#
+# Developers using the static build of GLib need to add -DGLIB_STATIC_COMPILATION
+# and -DGOBJECT_STATIC_COMPILATION to their CFLAGS to avoid compile failures
+
+# Drop the folder which was temporary used for installing the static bits
+rm -rf $RPM_BUILD_ROOT/build_static
 
 rm -f $RPM_BUILD_ROOT/%{_mingw32_libdir}/charset.alias
 
@@ -74,7 +128,7 @@
 
 
 %files -f glib20.lang
-%defattr(-,root,root)
+%defattr(-,root,root,-)
 %{_mingw32_bindir}/glib-genmarshal.exe
 %{_mingw32_bindir}/glib-gettextize
 %{_mingw32_bindir}/glib-mkenums
@@ -118,8 +172,23 @@
 %{_mingw32_datadir}/gtk-doc/html/glib/
 %{_mingw32_datadir}/gtk-doc/html/gobject/
 
+%files static
+%defattr(-,root,root,-)
+%{_mingw32_libdir}/libgio-2.0.a
+%{_mingw32_libdir}/libglib-2.0.a
+%{_mingw32_libdir}/libgmodule-2.0.a
+%{_mingw32_libdir}/libgobject-2.0.a
+%{_mingw32_libdir}/libgthread-2.0.a
 
 %changelog
+* Fri Feb 20 2009 Erik van Pienbroek <info at nntpgrab.nl> - 2.19.5-4
+- Added -static subpackage
+- Developers using the static build of GLib need to add
+  -DGLIB_STATIC_COMPILATION and -DGOBJECT_STATIC_COMPILATION to
+  their CFLAGS to avoid compile failures
+- Fixed the %%defattr line
+- Rebuild for mingw32-gcc 4.4 (RWMJ)
+
 * Fri Jan 30 2009 Richard W.M. Jones <rjones at redhat.com> - 2.19.5-3
 - Requires pkgconfig.
 




More information about the mingw mailing list