%define real_name icu Name: icu-gcc Version: 4.4 Release: 2 Summary: International Components for Unicode Group: Development/Tools License: MIT URL: http://www.icu-project.org/ Source0: http://download.icu-project.org/files/icu4c/%{version}/icu4c-4_4-src.tgz Source1: http://download.icu-project.org/files/icu4c/%{version}/icu4c-src-4_4.md5 Source2: http://download.icu-project.org/files/icu4c/%{version}/icu4c-4_4-docs.zip Patch1: icu-3.4-multiarchdevel.patch Patch2: icu.icu6284.strictalias.patch Patch3: icu.6995.kannada.patch Patch4: icu.XXXX.buildfix.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: autoconf, make, patch, doxygen BuildRequires: gcc >= 4.2.3-2, gcc-c++ >= 4.2.3-2 Provides: lib%{real_name} = %{version} Requires: lib%{name} = %{version}-%{release} %define _libdir64 %{_prefix}/lib64 %description Tools and utilities for developing with %{name}. %package -n lib%{name} Summary: International Components for Unicode - libraries Group: System Environment/Libraries Provides: lib%{real_name} = %{version} Requires: libgcc >= 4.2.3-2 Requires: libstdc++ >= 4.2.3-2 %description -n lib%{name} The International Components for Unicode (ICU) libraries provide robust and full-featured Unicode services on a wide variety of platforms. ICU supports the most current version of the Unicode standard, and they provide support for supplementary Unicode characters (needed for GB 18030 repertoire support). As computing environments become more heterogeneous, software portability becomes more important. ICU lets you produce the same results across all the various platforms you support, without sacrificing performance. It offers great flexibility to extend and customize the supplied services. %package -n lib%{name}-devel Summary: Development files for International Components for Unicode Group: Development/Libraries Provides: lib%{real_name}-devel = %{version} Requires: lib%{name} = %{version}-%{release} Requires: pkg-config %description -n lib%{name}-devel Includes and definitions for developing with %{name}. %package -n lib%{name}-doc Summary: Documentation for International Components for Unicode Group: Documentation Provides: lib%{real_name}-doc = %{version} %description -n lib%{name}-doc %{summary}. %prep %setup -q -n %{real_name} export PATH=/opt/freeware/bin:$PATH %patch1 -p1 -b .multiarchdevel %patch2 -p1 -b .icu6284.strictalias.patch %patch3 -p1 -b .icu6995.kannada.patch %patch4 -p1 -b .icuXXXX.buildfix.patch mkdir docs cd docs unzip %{SOURCE2} cd .. chown -R root.system docs chmod -R u+w docs chmod -R og-w docs chmod -R og+r docs mkdir ../32bit mv * ../32bit mv ../32bit . mkdir 64bit cd 32bit && tar cf - . | (cd ../64bit ; tar xpf -) %build export CC="gcc" export CXX="g++" cd 64bit/source # first build the 64-bit version export OBJECT_MODE=64 export CFLAGS="-maix64 -DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_ALL_SOURCE -DFUNCPROTO=15 -O -I/opt/freeware/include" export CXXFLAGS="${CFLAGS}" export LDFLAGS="-L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" autoconf ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir64} \ --mandir=%{_mandir} \ --enable-shared --disable-static \ --enable-release \ --disable-samples \ --disable-tests \ --with-library-bits=64 \ --with-data-packaging=library gmake # %{?_smp_mflags} # -j(X>1) does not work cd ../../32bit/source # now build the 32-bit version export OBJECT_MODE=32 export CFLAGS="-maix32 -DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_ALL_SOURCE -DFUNCPROTO=15 -O -I/opt/freeware/include" export CXXFLAGS="${CFLAGS}" export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" autoconf ./configure \ --prefix=%{_prefix} \ --mandir=%{_mandir} \ --enable-shared --disable-static \ --enable-release \ --disable-samples \ --disable-tests \ --with-library-bits=32 \ --with-data-packaging=library gmake # %{?_smp_mflags} # -j(X>1) does not work %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} cd 64bit/source gmake install DESTDIR=${RPM_BUILD_ROOT} ( cd ${RPM_BUILD_ROOT}%{_bindir} for f in * ; do mv -f ${f} ${f}_64 done ) cd ../../32bit/source export OBJECT_MODE=32 gmake install DESTDIR=${RPM_BUILD_ROOT} cd ../.. /usr/bin/strip -X32_64 ${RPM_BUILD_ROOT}%{_bindir}/* || : /usr/bin/strip -X32_64 ${RPM_BUILD_ROOT}%{_sbindir}/* || : cd 64bit/source/tools/ctestfw tar cf - libicutest*.a | (cd ${RPM_BUILD_ROOT}%{_libdir64}; tar xpf -) cd ../../../.. cd 32bit/source/tools/ctestfw tar cf - libicutest*.a | (cd ${RPM_BUILD_ROOT}%{_libdir}; tar xpf -) ( cd ${RPM_BUILD_ROOT}%{_libdir64} for f in *.a ; do /usr/bin/ar -X64 -x ${f} done cd ${RPM_BUILD_ROOT}%{_libdir} for f in *.a ; do /usr/bin/ar -X32 -x ${f} done ) # add the 64-bit shared objects to the shared libraries containing already the # 32-bit shared objects cd ${RPM_BUILD_ROOT}%{_libdir} for f in lib*.so ; do fn=`basename ${f} .so` /usr/bin/ar -X64 -q ${fn}.a ${RPM_BUILD_ROOT}%{_libdir64}/${f} done %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,system,-) %doc 32bit/license.html 32bit/readme.html %{_bindir}/derb* %{_bindir}/genbrk* %{_bindir}/gencfu* %{_bindir}/gencnval* %{_bindir}/genctd* %{_bindir}/genrb* %{_bindir}/makeconv* %{_bindir}/pkgdata* %{_bindir}/uconv* %{_sbindir}/* %{_mandir}/man1/derb.1* %{_mandir}/man1/gencnval.1* %{_mandir}/man1/genrb.1* %{_mandir}/man1/genbrk.1* %{_mandir}/man1/genctd.1* %{_mandir}/man1/makeconv.1* %{_mandir}/man1/pkgdata.1* %{_mandir}/man1/uconv.1* %{_mandir}/man8/*.8* %files -n lib%{name} %defattr(-,root,system,-) %doc 32bit/license.html 32bit/readme.html %{_libdir}/*.a %files -n lib%{name}-devel %defattr(-,root,system,-) %doc 32bit/license.html 32bit/readme.html %{_bindir}/%{real_name}-config* %{_bindir}/icuinfo* %{_mandir}/man1/%{real_name}-config.1* %{_includedir}/* %{_libdir}/%{real_name} %{_libdir64}/%{real_name} %{_libdir}/pkgconfig/%{real_name}.pc %{_libdir64}/pkgconfig/%{real_name}.pc %{_datadir}/%{real_name} %files -n lib%{name}-doc %defattr(-,root,system,-) %doc 32bit/license.html 32bit/readme.html %doc 32bit/docs/* %changelog * Mon Nov 04 2013 Michael Perzl - 4.4-2 - changed the build process and added some missing shared members - rebuilt with gcc/g++ * Fri Apr 09 2010 Michael Perzl - 4.4-1 - first version for AIX5L v5.1 and higher