
%define _prefix /opt/freeware
%define _defaultdocdir %{_prefix}/doc
      

Name: 		xrender
Version: 	0.9.1
Release: 	2
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 -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 -q src/.libs/libXrender.a 64/%{name}-%{version}/src/.libs/libXrender.so.0
/usr/bin/ar -q src/.libs/libXrender.a 64/%{name}-%{version}/src/.libs/libXrender.so.1

%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

