#!/bin/sh # Set initial variables: CWD=`pwd` if [ "$TMP" = "" ]; then TMP=/tmp fi PKG=$TMP/package-mesagl if [ ! -d $TMP ]; then mkdir -p $TMP # location to build the source fi if [ ! -d $PKG ]; then mkdir -p $PKG # place for the package to be built fi # explode the package framework cd $PKG tar xvzf $CWD/_mesagl.tar.gz echo "+==========+" echo "| Mesa-3.2 |" echo "+==========+" cd $TMP ### ### Build necessary support libraries first (libglide2x & headers for an h3) ### mkdir Glide cd Glide tar xvzf $CWD/glide2x.tar.gz tar xvzf $CWD/swlibs.tar.gz chmod +x swlibs/include/make/ostype ( cd $TMP/Glide/glide2x ; ln -s $TMP/Glide/swlibs swlibs ) # The Voodoo Banshee and Voodoo3 are known as an "h3" export FX_GLIDE_HW=h3 make -C glide2x -f makefile.linux ### ### Create a "build help" tree with the headers and libraries needed ### mkdir -p $TMP/glide/include mkdir -p $TMP/glide/lib cat swlibs/lib/libtexus.so.1.1 > $TMP/glide/lib/libtexus.so cat glide2x/h3/lib/libglide.so.2.60 > $TMP/glide/lib/libglide2x.so chmod 755 $TMP/glide/lib/* cat swlibs/fxmisc/3dfx.h > $TMP/glide/include/3dfx.h cat glide2x/h3/glide/src/glide.h > $TMP/glide/include/glide.h cat glide2x/h3/glide/src/glidesys.h > $TMP/glide/include/glidesys.h cat glide2x/h3/glide/src/glideutl.h > $TMP/glide/include/glideutl.h cat glide2x/h3/incsrc/sst1vid.h > $TMP/glide/include/sst1vid.h cat glide2x/h3/glide/src/gump.h > $TMP/glide/include/gump.h cat swlibs/fxmisc/linutil.h > $TMP/glide/include/linutil.h cat swlibs/texus/lib/texus.h > $TMP/glide/include/texus.h ### ### Build Mesa against Glide ### cd $TMP tar xvzf $CWD/MesaLib-3.2.tar.gz tar xvzf $CWD/MesaDemos-3.2.tar.gz cd Mesa-3.2 ./configure --prefix=/usr/X11R6 \ --enable-static \ --enable-shared \ --disable-3dnow \ --disable-mmx \ --with-glide=$TMP/glide make CFLAGS="-O2 -Wall -fomit-frame-pointer -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_REENTRANT" ( cd widgets-mesa ; ./configure --prefix=/usr/X11R6 --with-x ; make ) ### ### Write out the libraries ### cd $TMP/Mesa-3.2/src/.libs cp -a libGL.a libGL.so.1.2.030200 $PKG/usr/X11R6/lib ( cd $PKG/usr/X11R6/lib ; ln -sf libGL.so.1.2.030200 libGL.so.1 ) ( cd $PKG/usr/X11R6/lib ; ln -sf libGL.so.1 libGL.so ) cd $TMP/Mesa-3.2/src cp -a libGL.la $PKG/usr/X11R6/lib cd $TMP/Mesa-3.2/src-glu/.libs cp -a libGLU.a libGLU.so.1.2.030200 $PKG/usr/X11R6/lib ( cd $PKG/usr/X11R6/lib ; ln -sf libGLU.so.1.2.030200 libGLU.so.1 ) ( cd $PKG/usr/X11R6/lib ; ln -sf libGLU.so.1 libGLU.so ) cd $TMP/Mesa-3.2/src-glu cp -a libGLU.la $PKG/usr/X11R6/lib cd $TMP/Mesa-3.2/src-glut/.libs cp -a libglut.a libglut.so.3.7.0 $PKG/usr/X11R6/lib ( cd $PKG/usr/X11R6/lib ; ln -sf libglut.so.3.7.0 libglut.so.3 ) ( cd $PKG/usr/X11R6/lib ; ln -sf libglut.so.3 libglut.so ) cd $TMP/Mesa-3.2/src-glut cp -a libglut.la $PKG/usr/X11R6/lib cd $TMP/Mesa-3.2/widgets-mesa/src cp -a libMesaGLw.a $PKG/usr/X11R6/lib ( cd $PKG/usr/X11R6/lib ; rm -f libMesaGL.so libMesaGLU.so ) ( cd $PKG/usr/X11R6/lib ; ln -sf libGL.so libMesaGL.so ) ( cd $PKG/usr/X11R6/lib ; ln -sf libGLU.so libMesaGLU.so ) chown root.root $PKG/usr/X11R6/lib/* chmod 755 $PKG/usr/X11R6/lib/*.la chmod 644 $PKG/usr/X11R6/lib/*.a ### ### Write out the header files ### cd $TMP/Mesa-3.2/include/GL cp -a *.h $PKG/usr/X11R6/include/GL cd $TMP/Mesa-3.2/widgets-mesa/include/GL cp -a *.h $PKG/usr/X11R6/include/GL chown root.root $PKG/usr/X11R6/include/GL/* chmod 644 $PKG/usr/X11R6/include/GL/* ### ### Write out the man pages ### cd $TMP/Mesa-3.2/widgets-mesa/man for page in `/bin/ls -1 *.3x` do cat $page | gzip -9c > $PKG/usr/X11R6/man/man3/$page.gz done chown root.root $PKG/usr/X11R6/man/man3/* chmod 644 $PKG/usr/X11R6/man/man3/* ### ### Write out the configuration file ### cd $TMP/Mesa-3.2/src cp -a mesa.conf $PKG/usr/X11R6/etc chown root.root $PKG/usr/X11R6/etc/* chmod 644 $PKG/usr/X11R6/etc/* ### ### Write out the widgets and demos ### cd $TMP/Mesa-3.2 cp -a demos xdemos book samples 3Dfx/demos mtdemos ggi/demos \ $PKG/usr/X11R6/lib/Mesa cd $TMP/Mesa-3.2/widgets-mesa cp -a ChangeLog INSTALL README TODO demos $PKG/usr/X11R6/lib/Mesa/widgets-mesa chown -R root.root $PKG/usr/X11R6/lib/Mesa chmod 755 $PKG/usr/X11R6/lib/Mesa ### ### Write out the documentation ### cd $TMP/Mesa-3.2 cp -a docs/* $PKG/usr/doc/Mesa-3.2 chown -R root.root $PKG/usr/doc/Mesa-3.2 chmod 644 $PKG/usr/doc/Mesa-3.2/* ( cd $PKG/usr/doc/Mesa-3.2 ; ln -sf /usr/X11R6/lib/Mesa demos ) # A few housekeeping items cd $PKG find . -name CVS -type d -exec rm -rf {} \; find . -type f -exec chown root.root {} \; # make the package cd $PKG echo "y n" | makepkg $TMP/mesagl.tgz # clean up the extra stuff if [ "$1" = "--cleanup" ]; then rm -rf $PKG rm -rf $TMP/Mesa-3.2 rm -rf $TMP/glide rm -rf $TMP/Glide fi