[mingw-icu] Added win64 support

epienbro epienbro at fedoraproject.org
Sun Mar 18 19:06:41 UTC 2012


commit b1a2a80728ea4b63523d1ccdc7d2e7a934dc9f32
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date:   Sun Mar 18 20:06:23 2012 +0100

    Added win64 support
    
    - Added win64 support
    - Use mingw macros without leading underscore
    - Use %global instead of %define

 mingw-icu.spec |  220 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 147 insertions(+), 73 deletions(-)
---
diff --git a/mingw-icu.spec b/mingw-icu.spec
index 5dd6a95..c40b47c 100644
--- a/mingw-icu.spec
+++ b/mingw-icu.spec
@@ -1,11 +1,10 @@
-%global __strip %{_mingw32_strip}
-%global __objdump %{_mingw32_objdump}
-%define __debug_install_post %{_mingw32_debug_install_post}
-%define underscore_version %(echo %{version} | sed 's/\\./_/g')
+%?mingw_package_header
+
+%global underscore_version %(echo %{version} | sed 's/\\./_/g')
 
 Name:           mingw-icu
 Version:        4.8.1.1
-Release:        4%{?dist}
+Release:        5%{?dist}
 Summary:        MinGW compilation of International Components for Unicode Tools
 
 License:        MIT and UCD and Public Domain
@@ -19,14 +18,19 @@ Patch0:         icu4c-4_6_1-crossbuild.patch
 Patch1:         icu4c-4_6_1-use-correct-genccode-assembly-on-win32-and-win64.patch
 Patch2:         icu4c-4_6_1-mingw-w64-mkdir-compatibility.patch
 
-BuildRequires:  mingw32-filesystem >= 68
+BuildRequires:  mingw32-filesystem >= 95
 BuildRequires:  mingw32-gcc
 BuildRequires:  mingw32-gcc-c++
 BuildRequires:  mingw32-binutils
-#BuildRequires:  mingw32-pkg-config
+
+BuildRequires:  mingw64-filesystem >= 95
+BuildRequires:  mingw64-gcc
+BuildRequires:  mingw64-gcc-c++
+BuildRequires:  mingw64-binutils
 
 BuildRequires:  autoconf
 
+
 %description
 ICU is a set of C and C++ libraries that provides robust and
 full-featured Unicode and locale support. The library provides calendar
@@ -37,11 +41,9 @@ currency formatting, time zone support, transliteration, and word,
 line, and sentence breaking, etc.
 
 
-
+# Win32
 %package -n mingw32-icu
 Summary:        MinGW compilation of International Components for Unicode Tools
-Group:          Development/Libraries
-
 
 %description -n mingw32-icu
 ICU is a set of C and C++ libraries that provides robust and
@@ -52,9 +54,22 @@ catalogs and resources, message formatting, normalization, number and
 currency formatting, time zone support, transliteration, and word,
 line, and sentence breaking, etc.
 
+# Win64
+%package -n mingw64-icu
+Summary:        MinGW compilation of International Components for Unicode Tools
 
+%description -n mingw64-icu
+ICU is a set of C and C++ libraries that provides robust and
+full-featured Unicode and locale support. The library provides calendar
+support, conversions for many character sets, language sensitive
+collation, date and time formatting, support for many locales, message
+catalogs and resources, message formatting, normalization, number and
+currency formatting, time zone support, transliteration, and word,
+line, and sentence breaking, etc.
+
+
+%?mingw_debug_package
 
-%{_mingw32_debug_package}
 
 %prep
 %setup -q -n icu
@@ -73,101 +88,160 @@ popd
 pushd source
 
 mkdir -p nativebuild
-
 pushd nativebuild
-
 ../configure --enable-static --disable-shared
-
 make %{?_smp_mflags} || make
-
 popd
 
-%{_mingw32_configure} \
+%mingw_configure \
         --enable-shared --disable-static \
         --with-cross-build=$(pwd)/nativebuild \
         --with-data-packaging=library
 
-make %{?_smp_mflags}
+%mingw_make %{?_smp_mflags}
 
 popd
 
 %install
 pushd source
-
-make DESTDIR=$RPM_BUILD_ROOT install
-
+%mingw_make DESTDIR=$RPM_BUILD_ROOT install
 popd
 
 # UGLY HACKS RESTARTING
 
-find $RPM_BUILD_ROOT%{_mingw32_libdir} -name "*.dll" -type l -delete
+find $RPM_BUILD_ROOT -name "*.dll" -type l -delete
 
-rm -f $RPM_BUILD_ROOT%{_mingw32_libdir}/icudata48.dll
+rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/icudata48.dll
+rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/icudata48.dll
 
-mv $RPM_BUILD_ROOT%{_mingw32_libdir}/libicudata48.1.1.dll \
-        $RPM_BUILD_ROOT%{_mingw32_libdir}/icudata48.dll
+mv $RPM_BUILD_ROOT%{mingw32_libdir}/libicudata48.1.1.dll \
+        $RPM_BUILD_ROOT%{mingw32_libdir}/icudata48.dll
+mv $RPM_BUILD_ROOT%{mingw64_libdir}/libicudata48.1.1.dll \
+        $RPM_BUILD_ROOT%{mingw64_libdir}/icudata48.dll
 
-for i in $RPM_BUILD_ROOT%{_mingw32_libdir}/*.dll; \
-        do mv $i $RPM_BUILD_ROOT%{_mingw32_bindir}/; done
+for i in $RPM_BUILD_ROOT%{mingw32_libdir}/*.dll ; \
+        do mv $i $RPM_BUILD_ROOT%{mingw32_bindir}/; done
+for i in $RPM_BUILD_ROOT%{mingw64_libdir}/*.dll ; \
+        do mv $i $RPM_BUILD_ROOT%{mingw64_bindir}/; done
 
-sed -i -e 's,default_ENABLE_RPATH=.*,default_ENABLE_RPATH="N",' -e 's,^SO=.*$,SO="dll",' $RPM_BUILD_ROOT%{_mingw32_bindir}/icu-config
+sed -i -e 's,default_ENABLE_RPATH=.*,default_ENABLE_RPATH="N",' -e 's,^SO=.*$,SO="dll",' $RPM_BUILD_ROOT%{mingw32_bindir}/icu-config
+sed -i -e 's,default_ENABLE_RPATH=.*,default_ENABLE_RPATH="N",' -e 's,^SO=.*$,SO="dll",' $RPM_BUILD_ROOT%{mingw64_bindir}/icu-config
 
 # UGLY HACKS ENDING AGAIN
 
-rm -fr $RPM_BUILD_ROOT%{_mingw32_mandir}
+rm -fr $RPM_BUILD_ROOT%{mingw32_mandir}
+rm -fr $RPM_BUILD_ROOT%{mingw64_mandir}
+
 # remove dangling pointers
-rm -fr $RPM_BUILD_ROOT%{_mingw32_libdir}/icu/Makefile.inc
-rm -fr $RPM_BUILD_ROOT%{_mingw32_libdir}/icu/pkgdata.inc
+rm -fr $RPM_BUILD_ROOT%{mingw32_libdir}/icu/Makefile.inc
+rm -fr $RPM_BUILD_ROOT%{mingw64_libdir}/icu/Makefile.inc
+rm -fr $RPM_BUILD_ROOT%{mingw32_libdir}/icu/pkgdata.inc
+rm -fr $RPM_BUILD_ROOT%{mingw64_libdir}/icu/pkgdata.inc
+
 
+# Win32
 %files -n mingw32-icu
 %doc license.html unicode-license.txt
 
-%{_mingw32_bindir}/genrb.exe
-%{_mingw32_bindir}/gencnval.exe
-%{_mingw32_bindir}/uconv.exe
-%{_mingw32_bindir}/gencmn.exe
-%{_mingw32_bindir}/makeconv.exe
-%{_mingw32_bindir}/genbrk.exe
-%{_mingw32_bindir}/gensprep.exe
-%{_mingw32_bindir}/pkgdata.exe
-%{_mingw32_bindir}/icupkg.exe
-%{_mingw32_bindir}/derb.exe
-%{_mingw32_bindir}/genccode.exe
-%{_mingw32_bindir}/genctd.exe
-%{_mingw32_bindir}/gencfu.exe
-%{_mingw32_bindir}/gennorm2.exe
-%{_mingw32_bindir}/icuinfo.exe
-
-%{_mingw32_bindir}/icuio48.dll
-%{_mingw32_bindir}/icuuc48.dll
-%{_mingw32_bindir}/icule48.dll
-%{_mingw32_bindir}/icui18n48.dll
-%{_mingw32_bindir}/icutu48.dll
-%{_mingw32_bindir}/icudata48.dll
-%{_mingw32_bindir}/iculx48.dll
-%{_mingw32_bindir}/icutest48.dll
-
-%{_mingw32_bindir}/icu-config
-%{_mingw32_libdir}/libicule.dll.a
-%{_mingw32_libdir}/libicudata.dll.a
-%{_mingw32_libdir}/libicui18n.dll.a
-%{_mingw32_libdir}/libicuuc.dll.a
-%{_mingw32_libdir}/libiculx.dll.a
-%{_mingw32_libdir}/libicuio.dll.a
-%{_mingw32_libdir}/libicutest.dll.a
-%{_mingw32_libdir}/libicutu.dll.a
-%{_mingw32_libdir}/pkgconfig/icu-i18n.pc
-%{_mingw32_libdir}/pkgconfig/icu-io.pc
-%{_mingw32_libdir}/pkgconfig/icu-le.pc
-%{_mingw32_libdir}/pkgconfig/icu-lx.pc
-%{_mingw32_libdir}/pkgconfig/icu-uc.pc
-%{_mingw32_includedir}/layout
-%{_mingw32_includedir}/unicode
-%{_mingw32_libdir}/icu
-%{_mingw32_datadir}/icu
+%{mingw32_bindir}/genrb.exe
+%{mingw32_bindir}/gencnval.exe
+%{mingw32_bindir}/uconv.exe
+%{mingw32_bindir}/gencmn.exe
+%{mingw32_bindir}/makeconv.exe
+%{mingw32_bindir}/genbrk.exe
+%{mingw32_bindir}/gensprep.exe
+%{mingw32_bindir}/pkgdata.exe
+%{mingw32_bindir}/icupkg.exe
+%{mingw32_bindir}/derb.exe
+%{mingw32_bindir}/genccode.exe
+%{mingw32_bindir}/genctd.exe
+%{mingw32_bindir}/gencfu.exe
+%{mingw32_bindir}/gennorm2.exe
+%{mingw32_bindir}/icuinfo.exe
+
+%{mingw32_bindir}/icuio48.dll
+%{mingw32_bindir}/icuuc48.dll
+%{mingw32_bindir}/icule48.dll
+%{mingw32_bindir}/icui18n48.dll
+%{mingw32_bindir}/icutu48.dll
+%{mingw32_bindir}/icudata48.dll
+%{mingw32_bindir}/iculx48.dll
+%{mingw32_bindir}/icutest48.dll
+
+%{mingw32_bindir}/icu-config
+%{mingw32_libdir}/libicule.dll.a
+%{mingw32_libdir}/libicudata.dll.a
+%{mingw32_libdir}/libicui18n.dll.a
+%{mingw32_libdir}/libicuuc.dll.a
+%{mingw32_libdir}/libiculx.dll.a
+%{mingw32_libdir}/libicuio.dll.a
+%{mingw32_libdir}/libicutest.dll.a
+%{mingw32_libdir}/libicutu.dll.a
+%{mingw32_libdir}/pkgconfig/icu-i18n.pc
+%{mingw32_libdir}/pkgconfig/icu-io.pc
+%{mingw32_libdir}/pkgconfig/icu-le.pc
+%{mingw32_libdir}/pkgconfig/icu-lx.pc
+%{mingw32_libdir}/pkgconfig/icu-uc.pc
+%{mingw32_includedir}/layout
+%{mingw32_includedir}/unicode
+%{mingw32_libdir}/icu
+%{mingw32_datadir}/icu
+
+# Win64
+%files -n mingw64-icu
+%doc license.html unicode-license.txt
+
+%{mingw64_bindir}/genrb.exe
+%{mingw64_bindir}/gencnval.exe
+%{mingw64_bindir}/uconv.exe
+%{mingw64_bindir}/gencmn.exe
+%{mingw64_bindir}/makeconv.exe
+%{mingw64_bindir}/genbrk.exe
+%{mingw64_bindir}/gensprep.exe
+%{mingw64_bindir}/pkgdata.exe
+%{mingw64_bindir}/icupkg.exe
+%{mingw64_bindir}/derb.exe
+%{mingw64_bindir}/genccode.exe
+%{mingw64_bindir}/genctd.exe
+%{mingw64_bindir}/gencfu.exe
+%{mingw64_bindir}/gennorm2.exe
+%{mingw64_bindir}/icuinfo.exe
+
+%{mingw64_bindir}/icuio48.dll
+%{mingw64_bindir}/icuuc48.dll
+%{mingw64_bindir}/icule48.dll
+%{mingw64_bindir}/icui18n48.dll
+%{mingw64_bindir}/icutu48.dll
+%{mingw64_bindir}/icudata48.dll
+%{mingw64_bindir}/iculx48.dll
+%{mingw64_bindir}/icutest48.dll
+
+%{mingw64_bindir}/icu-config
+%{mingw64_libdir}/libicule.dll.a
+%{mingw64_libdir}/libicudata.dll.a
+%{mingw64_libdir}/libicui18n.dll.a
+%{mingw64_libdir}/libicuuc.dll.a
+%{mingw64_libdir}/libiculx.dll.a
+%{mingw64_libdir}/libicuio.dll.a
+%{mingw64_libdir}/libicutest.dll.a
+%{mingw64_libdir}/libicutu.dll.a
+%{mingw64_libdir}/pkgconfig/icu-i18n.pc
+%{mingw64_libdir}/pkgconfig/icu-io.pc
+%{mingw64_libdir}/pkgconfig/icu-le.pc
+%{mingw64_libdir}/pkgconfig/icu-lx.pc
+%{mingw64_libdir}/pkgconfig/icu-uc.pc
+%{mingw64_includedir}/layout
+%{mingw64_includedir}/unicode
+%{mingw64_libdir}/icu
+%{mingw64_datadir}/icu
 
 
 %changelog
+* Sun Mar 18 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 4.8.1.1-5
+- Added win64 support
+- Use mingw macros without leading underscore
+- Use %%global instead of %%define
+
 * Mon Feb 27 2012 Kalev Lember <kalevlember at gmail.com> - 4.8.1.1-4
 - Added Erik van Pienbroek's patches to fix build with the mingw-w64 toolchain
 


More information about the scm-commits mailing list