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