%define _prefix /opt/freeware %define _defaultdocdir %{_prefix}/doc Name: xrender Version: 0.9.1 Release: 3 Group: X11/Libraries Summary: X Render Extension License: MIT URL: http://freedesktop.org/Software/xlibs/ BuildRoot: %{_tmppath}/%{name}-%{version}-root Source: http:///%{name}-%{version}.tar.bz2 # Use --define 'no64 1' on the command line to disable 64bit build %{!?no64:%define BUILD64 1} %{?no64:%define BUILD64 0} %define prefix64 %{_prefix}/64 %define DEFCC xlc_r %description X11 Render Extension library. %prep %setup -q %if %{BUILD64} == 1 # Prep 64-bit build in 64bit subdirectory ########################################## # Test whether we can run a 64bit command so we don't waste our time /usr/bin/locale64 >/dev/null 2>&1 mkdir 64 cd 64 bzip2 -dc %{_sourcedir}/%{name}-%{version}.tar.bz2 |tar xf - cd %{name}-%{version} %endif %build # Use the default compiler for this platform - gcc otherwise if [[ -z "$CC" ]] then if test "X`type %{DEFCC} 2>/dev/null`" != 'X'; then export CC=%{DEFCC} else export CC=gcc fi fi export CFLAGS="-O2" export X_LIBS="-lX11" export X_CFLAGS="-DFUNCPROTO=15 -DAIXV4" ## It is important to define AIXV4 when building 64bit on AIX 4.3 through AIX 5.3. ## It is not needed on AIX 6.1 (but won't harm anything). export OBJECT_MODE=32 ./configure --prefix=%{_prefix} gmake #cp src/.libs/libXrender.so.1 src/.libs/libXrender.so.0 /usr/bin/ar -X32_64 -q src/.libs/libXrender.a src/.libs/libXrender.so.0 %if %{BUILD64} == 1 # Now build again as 64bit ########################### cd 64/%{name}-%{version} export OBJECT_MODE=64 ./configure --prefix=%{_prefix} gmake #cp src/.libs/libXrender.so.1 src/.libs/libXrender.so.0 # Go back to 32-bit library and add our 64bit shared object # into same archive cd ../.. /usr/bin/ar -X32_64 -q src/.libs/libXrender.a 64/%{name}-%{version}/src/.libs/libXrender.so.0 %endif #BUILD64 %install if test "%{buildroot}" != "/"; then rm -rf %{buildroot} fi mkdir -p %{buildroot} gmake DESTDIR=%{buildroot} install cp ./src/.libs/libXrender.exp %{buildroot}%{_prefix}/lib # Make the links cd %{buildroot} for dir in bin lib include do mkdir -p usr/$dir cd usr/$dir ln -sf ../..%{_prefix}/$dir/* . cd - done %if %{BUILD64} == 1 #Add links for 64-bit library members ( mkdir -p %{buildroot}%{_prefix}/64/lib cd %{buildroot}%{_prefix}/64/lib ln -sf ../../../..%{_prefix}/lib/* . ) %endif %post if [ `/usr/bin/uname -v` -ne 5 ]; then ## ## Repair link back to X11 path if pointing to freeware path ## if [ -f /usr/lib/libXrender.a ]; then DEST_PATH=`/usr/bin/ls -l /usr/lib/libXrender.a | tr -s " " | cut -d" " -f11` if [ $? -ne 0 ]; then ## ## Don't know what went wrong ## exit 1 fi if [ -n "${DEST_PATH}" -a "${DEST_PATH}" == '../../opt/freeware/lib/libXrender.a' ]; then /usr/bin/mv -f /usr/lib/libXrender.a /tmp /usr/bin/ln -fs /usr/lpp/X11/lib/R7/libXrender.a /usr/lib if [ $? -ne 0 ]; then ## ## Restore whatever was there in /usr/lib ## /usr/bin/mv -f /tmp/libXrender.a /usr/lib exit 1 fi ## ## Remove backup ## /usr/bin/rm -f /tmp/libXrender.a fi else /usr/bin/ln -fs /usr/lpp/X11/lib/R7/libXrender.a /usr/lib if [ $? -ne 0 ]; then exit 1 fi fi fi %postun if [ `/usr/bin/uname -v` -ne 5 ]; then ## ## Repair link back to X11 path ## /usr/bin/ln -fs /usr/lpp/X11/lib/R7/libXrender.a /usr/lib if [ $? -ne 0 ]; then exit 1 fi fi exit 0 %files %defattr (-,root,system) %doc AUTHORS COPYING README INSTALL ChangeLog %dir %{_libdir} %{_libdir}/lib*.a %{_libdir}/lib*.la %{_libdir}/lib*.exp %if %{BUILD64} == 1 %attr(755,bin,bin) %dir %{prefix64} %attr(755,bin,bin) %dir %{prefix64}/lib %{prefix64}/lib/lib*.a %{prefix64}/lib/lib*.la %{prefix64}/lib/lib*.exp %endif %dir %{_libdir}/pkgconfig %{_libdir}/pkgconfig/* %dir %{_includedir}/X11 %{_includedir}/X11/* /usr/lib/lib*.a /usr/lib/lib*.la %changelog * Fri Apr 25 2008 IBM - Must build 64bit extension libs with -DAIXV4 * Mon Dec 10 2007 IBM - Upgraded to release 0.9.1 - Changed spec to build RPM and to build 32 as well 64 bit lib files. * Fri Nov 17 2006 BULL - Release 9 - gnome 2.16.1 * Wed Jul 26 2006 BULL - Release 8 * Mon Feb 13 2006 BULL - Release 7 - support 64 bit - build with type CARD32 = unsigned int - Prototype gtk 64 bit * Fri Dec 23 2005 BULL - Release 6 - Prototype gtk 64 bit * Tue Nov 15 2005 BULL - Release 5 * Wed May 25 2005 BULL - Release 4 * Tue Nov 24 2004 BULL - Release 3 * Thu Sep 30 2004 BULL - Release 2 - Removed the link "/usr/include/X11" which was overwriting a system link