# rpm -ba --define 'dotests 0' libunistring-0.9.9-1-release.spec ... %{!?dotests:%define DO_TESTS 1} %{?dotests:%define DO_TESTS 0} %define _libdir64 %{_prefix}/lib64 Name: libunistring Version: 0.9.9 Release: 2 Group: System Environment/Libraries Summary: GNU Unicode string library License: LGPLv3+ URL: http://www.gnu.org/software/libunistring/ Source0: http://ftp.gnu.org/gnu/libunistring/%{name}-%{version}.tar.gz Source1: http://ftp.gnu.org/gnu/libunistring/%{name}-%{version}.tar.gz.sig #Source100: libunistring-%{version}-%{release}.build.log BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot Requires: info Requires : libiconv >= 1.14-1 Requires : libgcc >= 6.3.0-1 %description This portable C library implements Unicode string types in three flavours: (UTF-8, UTF-16, UTF-32), together with functions for character processing (names, classifications, properties) and functions for string processing (iteration, formatted output, width, word breaks, line breaks, normalization, case folding and regular expressions). The library is available as 32-bit and 64-bit. %package devel Group: Development/Libraries Summary: GNU Unicode string library - development files Requires: %{name} = %{version}-%{release} #Requires : libiconv >= 1.14-1 %description devel Development files for programs using libunistring. If you are compiling a 32-bit program, no special compiler options are needed. If you are compiling a 64-bit program, you have to compile and link your application with "cc -q64" or "gcc -maix64". %prep %setup -q # Duplicate source for 32 & 64 bits rm -rf /tmp/%{name}-%{version}-32bit mkdir /tmp/%{name}-%{version}-32bit mv * /tmp/%{name}-%{version}-32bit mkdir 32bit mv /tmp/%{name}-%{version}-32bit/* 32bit rm -rf /tmp/%{name}-%{version}-32bit mkdir 64bit cp -pr 32bit/* 64bit/ %build export PATH=/usr/bin:/opt/freeware/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:. # setup environment for 32-bit and 64-bit builds export AR="/usr/bin/ar -X32_64" export NM="/usr/bin/nm -X32_64" export RM="/usr/bin/rm -f" export CFLAGS="-O3" #export LIBS="/usr/lib/libiconv.a" cd 64bit # first build the 64-bit version export CC="gcc -maix64" export OBJECT_MODE=64 export LDFLAGS="-L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib " ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir64} \ --infodir=%{_infodir} \ --enable-shared --disable-static \ --with-libiconv-prefix=/opt/freeware gmake %{?_smp_mflags} if [ "%{DO_TESTS}" == 1 ] then (gmake -k check || true ) /usr/sbin/slibclean fi cd ../32bit # now build the 32-bit version export CC="gcc -maix32 -D_LARGE_FILES" export OBJECT_MODE=32 export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib " ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --infodir=%{_infodir} \ --enable-shared --disable-static \ --with-libiconv-prefix=/opt/freeware gmake %{?_smp_mflags} if [ "%{DO_TESTS}" == 1 ] then (gmake -k check || true ) /usr/sbin/slibclean fi %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} export PATH=/usr/bin:/opt/freeware/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:. # setup environment for 32-bit and 64-bit builds export AR="/usr/bin/ar -X32_64" export NM="/usr/bin/nm -X32_64" export RM="/usr/bin/rm -f" cd 64bit export OBJECT_MODE=64 make DESTDIR=${RPM_BUILD_ROOT} install cd ../32bit export OBJECT_MODE=32 make DESTDIR=${RPM_BUILD_ROOT} install cd .. ( 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 ) rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir gzip -9 ${RPM_BUILD_ROOT}%{_infodir}/*info* # Add the 64-bit shared objects to the shared libraries containing already the # 32-bit shared objects /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/%{name}.a ${RPM_BUILD_ROOT}%{_libdir64}/%{name}.so* ( cd ${RPM_BUILD_ROOT} for dir in include lib lib64 do mkdir -p usr/${dir} cd usr/${dir} ln -sf ../..%{_prefix}/${dir}/* . cd - done ) %post devel /sbin/install-info %{_infodir}/%{name}.info.gz %{_infodir}/dir || : %preun devel if [ $1 = 0 ]; then /sbin/install-info --delete %{_infodir}/%{name}.info.gz %{_infodir}/dir || : fi %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,system,-) %doc 32bit/AUTHORS 32bit/NEWS 32bit/README %{_libdir}/*.a /usr/lib/*.a %files devel %defattr(-,root,system,-) %doc 32bit/HACKING 32bit/DEPENDENCIES 32bit/THANKS 32bit/ChangeLog %doc %{_datadir}/doc/%{name}/*.html %{_includedir}/* %{_infodir}/*info* /usr/include/* %changelog * Mon Nov 19 2018 Harshita Jain -0.9.9-2 - Built with libiconv support * Fri Jun 08 2018 Ravi Hirekurabar - 0.9.9-1 - Added build.log. - Built with gcc-6.3.0 - Updated to 0.9.9 Removed compatibility as we - dont have approval for older version * Fri Apr 29 2016 Tony Reix - 0.9.6-2 - Initial port on AIX 6.1 - Add compatibility * Fri Apr 29 2016 Tony Reix - 0.9.3-2 - Fix bug with 64bits : add -q64 for xlc * Thu Nov 13 2014 Gerard Visiedo - 0.9.3-1 - First version for Aix6.1