Here's the promised spec file for building a Mesa that is compatible
with the latest and greatest XFree86...




-- 
*********************************

Tell me and I may forget,
Show me and I may remember,
Involve me and I will understand.

*********************************
Name: CompatMesa
Version: 3.1
Release: 0.1mdk
Summary: OpenGL 1.2 compatible 3D graphics library
Group: Libraries
BuildRoot: %{_tmppath}/mesa-root
Source: ftp://ftp.mesa3d.org/pub/Mesa/MesaLib-3.1.tar.bz2
Source1: ftp://ftp.mesa3d.org/pub/Mesa/MesaDemos-3.1.tar.bz2
Patch0: Mesa-3.0-pthread.patch.bz2
Patch1: Mesa-3.1-ppc.patch.bz2
Copyright: LGPL
Prefix: /usr/X11R6
Requires: XFree86 >= 4.0

%package devel
Summary: development files for Mesa (OpenGL compatible 3D lib)
Group: Development/Libraries
Requires: CompatMesa >= %{version}

%package demos
Summary: demos for Mesa (OpenGL compatible 3D lib)
Group: Applications/Graphics
Requires: CompatMesa >= %{version}

%description
Mesa is an OpenGL 1.2 compatible 3D graphics library. This version
is intended for XFree86 4.0

%description devel
Mesa is an OpenGL 1.2 compatible 3D graphics library.

This package contains the headers needed to compile Mesa programs.

%description demos
Mesa is an OpenGL 1.2 compatible 3D graphics library.

This package contains some demo programs for the Mesa library.

%prep
%setup -n Mesa-3.1

#Mesa-demos
tar xvfy %{SOURCE1} -C ../

# %patch0 -p1 # Use patch0 if you want to build a threaded library
%ifarch ppc
%patch1 -p1 -b .ppc
%endif

perl -p -i -e "s/-O3/$RPM_OPT_FLAGS/" Make-config
pushd demos && {
        for i in *.c; do 
        perl -pi -e "s|\.\./images/|%{prefix}/lib/mesa-demos-data/|" $i ; 
        done 
        perl -pi -e "s|isosurf.dat|%{prefix}/lib/mesa-demos-data/isosurf.dat|" 
isosurf.c 
} && popd

%build


%ifarch i386 i486 i586 k6 i686
./configure --prefix=%{prefix} --target=%{_target_cpu}-mandrake-linux-gnu
%else
./configure --prefix=%{prefix} \
        --target=%{_target_cpu}-mandrake-linux-gnu \
        --without-3dnow
%endif
%ifarch i386 i486 i586 k6 i686 
#make linux-386-pthread-shared
if [ x"$SMP" != x"" ]; then
        (make MAKE="make -j $SMP -k" ; exit 0)
        make 
else
        make 
fi
%else
# I dunno why this is here (ax)
if [ x"$SMP" != x"" ]; then
        (make MAKE="make -j $SMP -k" ; exit 0)
        make 
else
        make 
fi
%endif

pushd demos
for i in bounce clearspd drawpix gamma gears glinfo glutfx isosurf morph3d \
         multiarb osdemo paltex pointblast reflect renormal \
         spectex stex3d tessdemo texcyl texobj trispd winpos; do
        make $i 
done    
popd

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{prefix}/lib/mesa-demos-data
mkdir -p $RPM_BUILD_ROOT/usr/include
mkdir -p $RPM_BUILD_ROOT%{prefix}/etc/X11

make DESTDIR=$RPM_BUILD_ROOT    install

# Clean up and make it look like old Mesa
#mv $RPM_BUILD_ROOT%{prefix}/include/GL $RPM_BUILD_ROOT/usr/include

mkdir -p $RPM_BUILD_ROOT%{prefix}/bin
for i in bounce clearspd drawpix gamma gears glinfo glutfx isosurf morph3d \
         multiarb osdemo paltex pointblast reflect renormal \
         spectex stex3d tessdemo texcyl texobj trispd winpos; do
  cp -v demos/.libs/$i $RPM_BUILD_ROOT%{prefix}/bin
done

# (fg) So that demos at least work :)

cp -v images/*rgb demos/isosurf.dat $RPM_BUILD_ROOT%{prefix}/lib/mesa-demos-data 

cd $RPM_BUILD_ROOT/%{prefix}/lib/
ln -sf libGLU.so.1 libGLU.so
ln -sf libglut.so.3 libglut.so

%post
ldconfig 

%postun
ldconfig

%files
%defattr(-,root,root)
%{prefix}/lib/libGLU.so.*
%{prefix}/lib/libglut.so.*
%{prefix}/etc/mesa.conf

%files devel
%defattr(-,root,root)
%dir %{prefix}/include/GL
%{prefix}/include/GL/glu.h
%{prefix}/include/GL/glu_mangle.h
%{prefix}/include/GL/osmesa.h
%ifarch i386 i486 i586 i686 k6
%{prefix}/include/GL/svgamesa.h
%endif
%{prefix}/include/GL/xmesa.h
%{prefix}/include/GL/xmesa_x.h
%{prefix}/include/GL/xmesa_xf86.h
%{prefix}/include/GL/glut.h
%{prefix}/lib/libGLU.so
%{prefix}/lib/libglut.so
%{prefix}/lib/libGLU.la
%{prefix}/lib/libglut.la

%files demos
%defattr(-,root,root)
%{prefix}/bin/*
%dir %{prefix}/lib/mesa-demos-data
%{prefix}/lib/mesa-demos-data/*

%changelog
* Sun Mar 26 2000 John Cavan <[EMAIL PROTECTED]>
- converted to support XFree86 4.0

* Sun Mar 19 2000 John Buswell <[EMAIL PROTECTED]> 3.1-8mdk
- Added patch for PPC arch
- Included PPC in GLX skip
- Added ifarch 

* Fri Jan 28 2000 Francis Galiegue <[EMAIL PROTECTED]>

- Added .so symlinks in -devel


* Mon Jan 17 2000 Francis Galiegue <[EMAIL PROTECTED]>

- Made demos fully functional


* Mon Jan 17 2000 Francis Galiegue <[EMAIL PROTECTED]>

- Also skip svgalib for sparcs

* Thu Jan 13 2000 Chmouel Boudjnah <[EMAIL PROTECTED]> 3.1-4mdk
- Make sure to get the right link.

* Tue Jan 11 2000 Pixel <[EMAIL PROTECTED]>
- fix build for non-svgalib architectures

* Mon Dec 20 1999 Axalon Bloodstone <[EMAIL PROTECTED]>
- id k6 chipset as i586 for glx

* Tue Dec 14 1999 Axalon Bloodstone <[EMAIL PROTECTED]>
- Mesa 3.1 final.
- rewrite files

* Sat Dec 11 1999 Axalon Bloodstone <[EMAIL PROTECTED]>
-  Really fix alpha build (no glx for you)
- and use _tmppath in Buildroot

* Tue Dec 07 1999 Axalon Bloodstone <[EMAIL PROTECTED]>
- Fix alpha build (i think)
- Clean up .spec (scared chmou, big wuss) ;)
- make cheesie 'glx' script to LD_PRELOAD the libGL.so.1.0 for the demos

* Fri Nov 26 1999 Axalon Bloodstone <[EMAIL PROTECTED]>
- Update cvs snaps
- Use new --with-chipset=both for glx
- (this is not backwards compatible, you must recompile) don't blame me ask the Mesa 
people
- use the right --target (must say they did a damned fine job of optimizing the code

* Tue Nov 02 1999 Axalon Bloodstone <[EMAIL PROTECTED]>
- add arch's, defattr
- integrate glx (mga_gxl.so, tnt_glx.so)

* Mon Oct 11 1999 Chmouel Boudjnah <[EMAIL PROTECTED]>

- Back to old Mesa lib.

* Fri Jul 16 1999 Bernhard Rosenkraenzer <[EMAIL PROTECTED]>
- remove the -ffast-math removal stuff - Mesa 3.1 works with -ffast-math
  and is actually 11.7% faster than without it.

* Fri Jul 16 1999 Bernhard Rosenkraenzer <[EMAIL PROTECTED]>
- 3.1beta2

* Wed Jun 30 1999 Chmouel Boudjnah <[EMAIL PROTECTED]>
- Build in the new environement (rel: 3mdk).

* Thu May 06 1999 Chmouel Boudjnah <[EMAIL PROTECTED]>
- ldconfig to %post and %postun.

* Mon Feb 15 1999 Bernhard Rosenkraenzer <[EMAIL PROTECTED]>
- initial RPM; changes to base:
  - Handle RPM_OPT_FLAGS
  - link with pthread library

Reply via email to