# $Id: Makefile.X11,v 1.95 2003/10/20 16:48:14 kschultz Exp $

# Mesa 3-D graphics library
# Version:  5.1
# 
# Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
# 
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


# Top-level makefile for Mesa
# To add a new configuration for your system add it to the list below
# then update the Make-config file.

SHELL = /bin/sh



default:
	@echo "Type one of the following:"
	@echo "  make aix                   for IBM RS/6000 with AIX"
	@echo "  make aix-sl                for IBM RS/6000, make shared libs"
	@echo "  make beos-r4               for BeOS R4"
	@echo "  make cygnus                for Win95/NT using Cygnus-Win32"
	@echo "  make cygnus-linux          for Win95/NT using Cygnus-Win32 under Linux"
	@echo "  make darwin                for Darwin - Mac OS X"
	@echo "  make freebsd               for FreeBSD systems with GCC"
	@echo "  make freebsd-386           for FreeBSD systems with GCC, w/ Intel assembly"
	@echo "  make gcc-sl                for a generic system with GCC for shared libs"
	@echo "  make hpux9                 for HP systems with HPUX 9.x"
	@echo "  make hpux9-sl              for HP systems with HPUX 9.x, make shared libs"
	@echo "  make hpux9-gcc             for HP systems with HPUX 9.x using GCC"
	@echo "  make hpux9-gcc-sl          for HP systems with HPUX 9.x, GCC, make shared libs"
	@echo "  make hpux10                for HP systems with HPUX 10.x and 11.x"
	@echo "  make hpux10-sl             for HP systems with HPUX 10.x and 11.x, shared libs"
	@echo "  make hpux10-gcc            for HP systems with HPUX 10.x w/ GCC"
	@echo "  make hpux10-gcc-sl         for HP systems with HPUX 10.x w/ GCC, shared libs"
	@echo "  make irix6-o32             for SGI systems with IRIX 6.x, make o32-bit libs"
	@echo "  make irix6-o32-dso         for SGI systems with IRIX 6.x, make o32-bit DSOs"
	@echo "  make irix6-n32             for SGI systems with IRIX 6.x, make n32-bit libs"
	@echo "  make irix6-n32-dso         for SGI systems with IRIX 6.x, make n32-bit DSOs"
	@echo "  make irix6-gcc-n32-sl      for SGI systems with IRIX 6.x, GCC, make n32 DSOs"
	@echo "  make irix6-64              for SGI systems with IRIX 6.x, make 64-bit libs"
	@echo "  make irix6-64-dso          for SGI systems with IRIX 6.x, make 64-bit DSOs"

	@echo "  make linux                 for Linux"
	@echo "  make linux-x86             for Linux with x86 optimizations"
	@echo "  make linux-ggi             for Linux with libggi driver"
	@echo "  make linux-x86-ggi         for Linux with libggi driver and x86 optimizations"
	@echo "  make linux-glide           for Linux with 3Dfx Glide driver"
	@echo "  make linux-x86-glide       for Linux with 3Dfx Glide driver and x86 opts"
	@echo "  make linux-alpha           for Linux with Alpha optimizations"
	@echo "  make linux-alpha-static    for Linux with Alpha opts, make static libs"
	@echo "  make linux-ppc             for Linux with PowerPC opts"
	@echo "  make linux-ppc-static      for Linux with PowerPC opts, make static libs"
	@echo "  make linux-sparc           for Linux with Sparc optimzations"
	@echo "  make linux-sparc5          for Linux with Sparc5 optimizations"
	@echo "  make linux-sparc-ultra     for Linux with UltraSparc optimizations"
	@echo "  make linux-osmesa16        for 16-bit/channel OSMesa"
	@echo "  make linux-osmesa16-static for 16-bit/channel OSMesa, make static libs"
	@echo "  make linux-osmesa32        for 32-bit/channel OSMesa"
	@echo "  make linux-solo            for Linux standalone with dri drivers"
	@echo "  make linux-icc             for Linux with the Intel C/C++ compiler"
	@echo "  make lynxos                for LynxOS systems with GCC"
	@echo "  make mklinux               for Linux on Power Macintosh"
	@echo "  make netbsd                for NetBSD 1.0 systems with GCC"
	@echo "  make openbsd               for OpenBSD systems"
	@echo "  make openstep              for OpenStep/MacOSX Server systems"
	@echo "  make osf1                  for DEC Alpha systems with OSF/1"
	@echo "  make qnx                   for QNX V4 systems with Watcom compiler"
	@echo "  make solaris-x86           for PCs with Solaris"
	@echo "  make solaris-x86-gcc       for PCs with Solaris using GCC"
	@echo "  make sunos4                for Suns with SunOS 4.x"
	@echo "  make sunos4-sl             for Suns with SunOS 4.x, make shared libs"
	@echo "  make sunos4-gcc            for Suns with SunOS 4.x and GCC"
	@echo "  make sunos4-gcc-sl         for Suns with SunOS 4.x, GCC, make shared libs"
	@echo "  make sunos5                for Suns with SunOS 5.x"
	@echo "  make sunos5-smp            for Suns with SunOS 5.x, SMP optimization"
	@echo "  make sunos5-gcc            for Suns with SunOS 5.x and GCC"
	@echo "  make ultrix-gcc            for DEC systems with Ultrix and GCC"
	@echo "  make unixware              for PCs running UnixWare"
	@echo "  make unixware-shared       for PCs running UnixWare, shared libs"
	@echo "  make clean                 remove .o files"
	@echo "  make realclean             remove .o, library and executable files"



# XXX we may have to split up this group of targets into those that
# have a C++ compiler and those that don't for the SI-GLU library.

aix aix-sl darwin freebsd freebsd-386 gcc-sl \
hpux9 hpux9-sl hpux9-gcc hpux9-gcc-sl \
hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \
linux linux-debug \
linux-x86 linux-x86-sse linux-icc linux-x86-static linux-x86-debug \
linux-glide linux-x86-glide linux-glide-debug \
linux-alpha-static linux-alpha \
linux-ppc-static linux-ppc \
linux-sparc linux-sparc5 linux-sparc-ultra \
mklinux netbsd osf1 openbsd qnx \
solaris-x86 solaris-x86-gcc \
sunos4 sunos4-sl sunos4-gcc sunos4-gcc-sl sunos4-gcc-x11r6-sl \
sunos5 sunos5-smp sunos5-gcc \
ultrix-gcc unixware:
	-mkdir lib
	if [ -d src/mesa     ] ; then touch src/mesa/depend     ; fi
	if [ -d src/glu/sgi  ] ; then touch src/glu/sgi/depend  ; fi
	if [ -d src/glut/glx ] ; then touch src/glut/glx/depend ; fi
	if [ -d src/glw      ] ; then touch src/glw/depend      ; fi
	if [ -d src/mesa      ] ; then cd src/mesa      ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glu/sgi   ] ; then cd src/glu/sgi   ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glut/glx  ] ; then cd src/glut/glx  ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/demos   ] ; then cd progs/demos   ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/xdemos  ] ; then cd progs/xdemos  ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glw       ] ; then cd src/glw       ; $(MAKE) -f Makefile.X11 $@ ; fi

gcc-mesa-sl:
	if [ -d src ] ; then cd src  ; $(MAKE) -f Makefile.X11 $@ ; fi

irix6-o32 irix6-o32-dso irix6-n32 irix6-n32-dso irix6-gcc-n32-sl:
	-mkdir lib32
	if [ -d src/mesa      ] ; then touch src/mesa/depend      ; fi
	if [ -d src/glu/sgi   ] ; then touch src/glu/sgi/depend   ; fi
	if [ -d src/glut/glx ] ; then touch src/glut/glx/depend ; fi
	if [ -d src/glw ] ; then touch src/glw/depend ; fi
	if [ -d src/mesa      ] ; then cd src/mesa      ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glu/sgi   ] ; then cd src/glu/sgi   ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glut/glx ] ; then cd src/glut/glx ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/demos    ] ; then cd progs/demos    ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/xdemos   ] ; then cd progs/xdemos   ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/samples  ] ; then cd progs/samples  ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/redbook     ] ; then cd progs/redbook     ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glw ] ; then cd src/glw; $(MAKE) -f Makefile.X11 $@ ; fi

irix6-64 irix6-64-dso:
	-mkdir lib64
	if [ -d src/mesa     ] ; then touch src/mesa/depend     ; fi
	if [ -d src/glu/sgi  ] ; then touch src/glu/sgi/depend  ; fi
	if [ -d src/glut/glx ] ; then touch src/glut/glx/depend ; fi
	if [ -d src/glw      ] ; then touch src/glw/depend      ; fi
	if [ -d src/mesa      ] ; then cd src/mesa      ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glu/sgi   ] ; then cd src/glu/sgi   ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glut/glx  ] ; then cd src/glut/glx  ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/demos   ] ; then cd progs/demos   ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/xdemos  ] ; then cd progs/xdemos  ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glw ] ; then cd src/glw; $(MAKE) -f Makefile.X11 $@ ; fi


beos-r4:
	-mkdir lib
	-rm src/mesa/depend
	touch src/mesa/depend
	-rm src/glu/sgi/depend
	touch src/glu/sgi/depend
	if [ -d src/mesa      ] ; then cd src/mesa      ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
	if [ -d src/glu/sgi   ] ; then cd src/glu/sgi   ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
	if [ -d src/glut/beos ] ; then cd src/glut/beos ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
	if [ -d src/glut/beos ] ; then cp src/glut/beos/obj*/libglut.so lib  ; fi
	if [ -d progs/beos    ] ; then cd progs/beos    ; $(MAKE)                        ; fi
	if [ -d progs/demos   ] ; then cd progs/demos   ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
	if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
	if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi

cygnus cygnus-linux:
	-mkdir lib
	touch src/depend
	touch src-glu/depend
	if [ -d src/mesa     ] ; then cd src/mesa     ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glu/sgi  ] ; then cd src/glu/sgi  ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glut/glx ] ; then cd src/glut/glx ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/demos  ] ; then cd progs/demos  ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glw      ] ; then cd src/glw      ; $(MAKE) -f Makefile.X11 $@ ; fi

openstep:
	-mkdir lib
	cd src/mesa    ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
	cd src/glu/sgi ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@

linux-ggi linux-x86-ggi:
	-mkdir lib
	touch src/depend
	touch src/glu/sgi/depend
	if [ -d src/glut/glx    ] ; then touch src/glut/glx/depend ; fi
	if [ -d src/glw         ] ; then touch src/glw/depend ; fi
	if [ -d src/mesa        ] ; then cd src            ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glu/sgi     ] ; then cd src/glu/sgi    ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glut/glx    ] ; then cd src/glut/glx   ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d ggi/demos       ] ; then cd ggi/demos      ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/demos     ] ; then cd progs/demos    ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/xdemos    ] ; then cd progs/xdemos   ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/samples   ] ; then cd progs/samples  ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/redbook   ] ; then cd progs/redbook  ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glw ] ; then cd src/glw; $(MAKE) -f Makefile.X11 $@ ; fi

# if you change GGI_DEST please change it in ggimesa.conf, too.
DESTDIR=/usr/local
GGI_DEST=lib/ggi/mesa

linux-ggi-install linux-x86-ggi-install:
	install -d $(DESTDIR)/$(GGI_DEST)/default $(DESTDIR)/$(GGI_DEST)/display $(DESTDIR)/etc/ggi
	install -m 0755 src/GGI/default/*.so $(DESTDIR)/$(GGI_DEST)/default
	install -m 0755 src/GGI/display/*.so $(DESTDIR)/$(GGI_DEST)/display
	install -m 0644 src/GGI/ggimesa.conf $(DESTDIR)/etc/ggi
#	if [ -z "`grep ggimesa $(DESTDIR)/etc/ggi/libggi.conf`" ]; then \
#	echo ".include $(DESTDIR)/etc/ggi/ggimesa.conf" >> $(DESTDIR)/etc/ggi/libggi.conf ; \
#	fi

linux-osmesa16 linux-osmesa16-static linux-osmesa32:
	-mkdir lib
	if [ -d src/mesa ] ; then touch src/mesa/depend ; fi
	if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.OSMesa16 $@ ; fi

linux-solo:
	-mkdir lib
	if [ -d src/mesa     ] ; then touch src/mesa/depend     ; fi
	if [ -d src/glx/mini ] ; then touch src/glx/mini/depend  ; fi
	if [ -d src/glu/mini ] ; then touch src/glu/mini/depend  ; fi
	if [ -d src/glut/mini ] ; then touch src/glut/mini/depend  ; fi
	if [ -d src/mesa/drivers/dri/r200 ] ; then touch src/mesa/drivers/dri/r200/depend ; fi
	if [ -d src/mesa/drivers/dri/r128 ] ; then touch src/mesa/drivers/dri/r128/depend ; fi
	if [ -d src/mesa/drivers/dri/radeon ] ; then touch src/mesa/drivers/dri/radeon/depend ; fi
	if [ -d src/mesa/drivers/dri/mga ] ; then touch src/mesa/drivers/dri/mga/depend ; fi
	if [ -d src/mesa/drivers/dri/i810 ] ; then touch src/mesa/drivers/dri/i810/depend ; fi
	if [ -d src/mesa/drivers/dri/i830 ] ; then touch src/mesa/drivers/dri/i830/depend ; fi
	if [ -d src/mesa/drivers/dri/sis ] ; then touch src/mesa/drivers/dri/sis/depend ; fi
	if [ -d src/mesa/drivers/dri/gamma ] ; then touch src/mesa/drivers/dri/gamma/depend ; fi
	if [ -d src/mesa/drivers/dri/fb ] ; then touch src/mesa/drivers/dri/fb/depend ; fi
	if [ -d src/glut/mini ] ; then touch src/glut/mini/depend ; fi
	if [ -d progs/miniglx ] ; then touch progs/miniglx/depend ; fi
	if [ -d progs/tests ] ; then touch progs/tests/depend ; fi
	if [ -d src/mesa      ] ; then cd src/mesa      ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/mesa/drivers/dri/r200 ] ; then cd src/mesa/drivers/dri/r200     ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/mesa/drivers/dri/r128 ] ; then cd src/mesa/drivers/dri/r128     ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/mesa/drivers/dri/radeon ] ; then cd src/mesa/drivers/dri/radeon ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/mesa/drivers/dri/mga ] ; then cd src/mesa/drivers/dri/mga       ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/mesa/drivers/dri/i810 ] ; then cd src/mesa/drivers/dri/i810       ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/mesa/drivers/dri/i830 ] ; then cd src/mesa/drivers/dri/i830       ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/mesa/drivers/dri/sis ] ; then cd src/mesa/drivers/dri/sis       ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/mesa/drivers/dri/gamma ] ; then cd src/mesa/drivers/dri/gamma       ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/mesa/drivers/dri/fb ] ; then cd src/mesa/drivers/dri/fb         ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glx/mini  ] ; then cd src/glx/mini  ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glu/mini  ] ; then cd src/glu/mini  ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d src/glut/mini ] ; then cd src/glut/mini ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/miniglx ] ; then cd progs/miniglx ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/tests   ] ; then cd progs/tests   ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/demos   ] ; then cd progs/demos   ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/xdemos  ] ; then cd progs/xdemos  ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
	if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi

# Remove .o files, emacs backup files, etc.
clean:
	if ! [ -f src/mesa/depend      ] ; then touch src/mesa/depend      ; fi
	if ! [ -f src/mesa/drivers/dri/r200/depend ];   then touch src/mesa/drivers/dri/r200/depend;   fi
	if ! [ -f src/mesa/drivers/dri/r128/depend ];   then touch src/mesa/drivers/dri/r128/depend;   fi
	if ! [ -f src/mesa/drivers/dri/radeon/depend ]; then touch src/mesa/drivers/dri/radeon/depend; fi
	if ! [ -f src/mesa/drivers/dri/mga/depend ];    then touch src/mesa/drivers/dri/mga/depend;    fi
	if ! [ -f src/mesa/drivers/dri/fb/depend ];     then touch src/mesa/drivers/dri/fb/depend;     fi
	if ! [ -f src/glu/mesa/depend  ] ; then touch src/glu/mesa/depend  ; fi
	if ! [ -f src/glu/sgi/depend   ] ; then touch src/glu/sgi/depend   ; fi
	if ! [ -f src/glu/mini/depend  ] ; then touch src/glu/mini/depend  ; fi
	if ! [ -f src/glut/glx/depend  ] ; then touch src/glut/glx/depend  ; fi
	if ! [ -f src/glut/mini/depend ] ; then touch src/glut/mini/depend ; fi
	if ! [ -f src/glx/mini/depend  ] ; then touch src/glx/mini/depend  ; fi
	if ! [ -f progs/tests/depend   ] ; then touch progs/tests/depend   ; fi
	if ! [ -f progs/miniglx/depend ] ; then touch progs/miniglx/depend ; fi
	-rm -f include/GL/*~
	cd src/mesa          && $(MAKE) -f Makefile.X11 $@ || true
	cd src/mesa/drivers/dri/r200   && $(MAKE) -f Makefile.X11 $@ || true
	cd src/mesa/drivers/dri/r128   && $(MAKE) -f Makefile.X11 $@ || true
	cd src/mesa/drivers/dri/radeon && $(MAKE) -f Makefile.X11 $@ || true
	cd src/mesa/drivers/dri/mga    && $(MAKE) -f Makefile.X11 $@ || true
	cd src/mesa/drivers/dri/fb     && $(MAKE) -f Makefile.X11 $@ || true
	cd src/glu/mesa      && $(MAKE) -f Makefile.X11 $@ || true
	cd src/glu/sgi       && $(MAKE) -f Makefile.X11 $@ || true
	cd src/glu/mini      && $(MAKE) -f Makefile.X11 $@ || true
	cd src/glut/glx      && $(MAKE) -f Makefile.X11 $@ || true
	cd src/glut/mini     && $(MAKE) -f Makefile.X11 $@ || true
	cd src/glw           && $(MAKE) -f Makefile.X11 $@ || true
	cd src/glx/mini      && $(MAKE) -f Makefile.X11 $@ || true
	cd progs/demos       && $(MAKE) -f Makefile.X11 $@ || true
	cd progs/redbook     && $(MAKE) -f Makefile.X11 $@ || true
	cd progs/xdemos      && $(MAKE) -f Makefile.X11 $@ || true
	cd progs/samples     && $(MAKE) -f Makefile.X11 $@ || true
	cd progs/tests       && $(MAKE) -f Makefile.X11 $@ || true
	cd progs/miniglx     && $(MAKE) -f Makefile.X11 $@ || true
	if [ -f src/mesa/depend      ] ; then rm src/mesa/depend      ; fi
	if [ -f src/mesa/drivers/dri/r200/depend ];   then rm -f src/mesa/drivers/dri/r200/depend;   fi
	if [ -f src/mesa/drivers/dri/r128/depend ];   then rm -f src/mesa/drivers/dri/r128/depend;   fi
	if [ -f src/mesa/drivers/dri/radeon/depend ]; then rm -f src/mesa/drivers/dri/radeon/depend; fi
	if [ -f src/mesa/drivers/dri/mga/depend ];    then rm -f src/mesa/drivers/dri/mga/depend;    fi
	if [ -f src/mesa/drivers/dri/fb/depend ];     then rm -f src/mesa/drivers/dri/fb/depend;     fi
	if [ -f src/glu/mesa/depend  ] ; then rm -f src/glu/mesa/depend  ; fi
	if [ -f src/glu/sgi/depend   ] ; then rm -f src/glu/sgi/depend   ; fi
	if [ -f src/glu/mini/depend  ] ; then rm -f src/glu/mini/depend  ; fi
	if [ -f src/glut/glx/depend  ] ; then rm -f src/glut/glx/depend  ; fi
	if [ -f src/glut/mini/depend ] ; then rm -f src/glut/mini/depend ; fi
	if [ -f src/glx/mini/depend  ] ; then rm -f src/glx/mini/depend  ; fi
	if [ -f progs/tests/depend   ] ; then rm -f progs/tests/depend   ; fi
	if [ -f progs/miniglx/depend ] ; then rm -f progs/miniglx/depend ; fi

# Remove everything that can be remade
realclean: clean
	-rm -fr lib lib32 lib64
	cd progs/demos       && $(MAKE) -f Makefile.X11 realclean || true
	cd progs/xdemos      && $(MAKE) -f Makefile.X11 realclean || true
	cd progs/redbook     && $(MAKE) -f Makefile.X11 realclean || true
	cd progs/samples     && $(MAKE) -f Makefile.X11 realclean || true

# Remove everything not in CVS
cvsclean: realclean
	-rm -f acinclude.m4 aclocal.m4
	-rm -f conf.h conf.h.in config.guess config.log config.status
	-rm -f config.sub configure
	-rm -f install-sh libtool ltmain.sh Makefile.in
	-rm -f missing mkinstalldirs stamp-h stamp-h.in




DIRECTORY = Mesa-5.1
LIB_NAME = MesaLib-5.1
DEMO_NAME = MesaDemos-5.1
GLU_NAME = MesaGLU-5.1
GLUT_NAME = GLUT-3.7


LIB_FILES =	\
	$(DIRECTORY)/Makefile*						\
	$(DIRECTORY)/Make-config					\
	$(DIRECTORY)/descrip.mms					\
	$(DIRECTORY)/mms-config.					\
	$(DIRECTORY)/Mesa.dsw						\
	$(DIRECTORY)/bin/mklib*						\
	$(DIRECTORY)/docs/*.html					\
	$(DIRECTORY)/docs/COPYING					\
	$(DIRECTORY)/docs/INSTALL.GNU					\
	$(DIRECTORY)/docs/README.*					\
	$(DIRECTORY)/docs/RELNOTES*					\
	$(DIRECTORY)/docs/VERSIONS					\
	$(DIRECTORY)/docs/*.spec					\
	$(DIRECTORY)/include/GL/internal/glcore.h			\
	$(DIRECTORY)/include/GL/dmesa.h					\
	$(DIRECTORY)/include/GL/amesa.h					\
	$(DIRECTORY)/include/GL/fxmesa.h				\
	$(DIRECTORY)/include/GL/ggimesa.h				\
	$(DIRECTORY)/include/GL/gl.h					\
	$(DIRECTORY)/include/GL/glext.h					\
	$(DIRECTORY)/include/GL/gl_mangle.h				\
	$(DIRECTORY)/include/GL/glu.h					\
	$(DIRECTORY)/include/GL/glu_mangle.h				\
	$(DIRECTORY)/include/GL/glx.h					\
	$(DIRECTORY)/include/GL/glxext.h				\
	$(DIRECTORY)/include/GL/glx_mangle.h				\
	$(DIRECTORY)/include/GL/mesa_wgl.h				\
	$(DIRECTORY)/include/GL/mglmesa.h				\
	$(DIRECTORY)/include/GL/osmesa.h				\
	$(DIRECTORY)/include/GL/svgamesa.h				\
	$(DIRECTORY)/include/GL/ugl*.h					\
	$(DIRECTORY)/include/GL/vms_x_fix.h				\
	$(DIRECTORY)/include/GL/wmesa.h					\
	$(DIRECTORY)/include/GL/xmesa.h					\
	$(DIRECTORY)/include/GL/xmesa_x.h				\
	$(DIRECTORY)/include/GL/xmesa_xf86.h				\
	$(DIRECTORY)/src/mesa/Makefile*					\
	$(DIRECTORY)/src/mesa/descrip.mms				\
	$(DIRECTORY)/src/mesa/depend					\
	$(DIRECTORY)/src/mesa/main/*.[chS]				\
	$(DIRECTORY)/src/mesa/main/main.dsp				\
	$(DIRECTORY)/src/mesa/glapi/*.[chS]				\
	$(DIRECTORY)/src/mesa/glapi/glapi.dsp				\
	$(DIRECTORY)/src/mesa/array_cache/*.[ch]			\
	$(DIRECTORY)/src/mesa/array_cache/array_cache.dsp		\
	$(DIRECTORY)/src/mesa/math/*.[ch]				\
	$(DIRECTORY)/src/mesa/math/math.dsp				\
	$(DIRECTORY)/src/mesa/swrast/*.[ch]				\
	$(DIRECTORY)/src/mesa/swrast/swrast.dsp				\
	$(DIRECTORY)/src/mesa/swrast_setup/*.[ch]			\
	$(DIRECTORY)/src/mesa/swrast_setup/swrast_setup.dsp		\
	$(DIRECTORY)/src/mesa/tnl/*.[ch]				\
	$(DIRECTORY)/src/mesa/tnl/tnl.dsp				\
	$(DIRECTORY)/src/mesa/tnl_dd/*.[ch]				\
	$(DIRECTORY)/src/mesa/tnl_dd/imm/*.[ch]				\
	$(DIRECTORY)/src/mesa/tnl_dd/imm/NOTES.imm			\
	$(DIRECTORY)/src/mesa/drivers/common/*.[ch]			\
	$(DIRECTORY)/src/mesa/drivers/dos/*.[chS]			\
	$(DIRECTORY)/src/mesa/drivers/dos/mga/*.[ch]			\
	$(DIRECTORY)/src/mesa/drivers/beos/*.cpp			\
	$(DIRECTORY)/src/mesa/drivers/glide/*.[ch]			\
	$(DIRECTORY)/src/mesa/drivers/glide/*.def			\
	$(DIRECTORY)/src/mesa/drivers/ggi/*.[ch]			\
	$(DIRECTORY)/src/mesa/drivers/ggi/ggimesa.conf.in		\
	$(DIRECTORY)/src/mesa/drivers/ggi/default/*.c			\
	$(DIRECTORY)/src/mesa/drivers/ggi/default/genkgi.conf.in	\
	$(DIRECTORY)/src/mesa/drivers/ggi/display/*.c			\
	$(DIRECTORY)/src/mesa/drivers/ggi/display/fbdev.conf.in		\
	$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/*.h		\
	$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win		\
	$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def			\
	$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.dsp			\
	$(DIRECTORY)/src/mesa/drivers/osmesa/*.[ch]			\
	$(DIRECTORY)/src/mesa/drivers/svga/*.[ch]			\
	$(DIRECTORY)/src/mesa/drivers/windows/*/*.[ch]			\
	$(DIRECTORY)/src/mesa/drivers/windows/*/*.def			\
	$(DIRECTORY)/src/mesa/drivers/windows/*/*.dsp			\
	$(DIRECTORY)/src/mesa/drivers/x11/*.[ch]			\
	$(DIRECTORY)/src/mesa/sparc/*.[chS]				\
	$(DIRECTORY)/src/mesa/x86/*.[ch]				\
	$(DIRECTORY)/src/mesa/x86/*.S					\
	$(DIRECTORY)/src/glu/sgi/Makefile.X11				\
	$(DIRECTORY)/src/glu/sgi/Makefile.win				\
	$(DIRECTORY)/src/glu/sgi/Makefile.DJ				\
	$(DIRECTORY)/src/glu/sgi/cc*.txt				\
	$(DIRECTORY)/src/glu/sgi/glu.def				\
	$(DIRECTORY)/src/glu/sgi/glu.dsp				\
	$(DIRECTORY)/src/glu/sgi/dummy.cc				\
	$(DIRECTORY)/src/glu/sgi/descrip.mms				\
	$(DIRECTORY)/src/glu/sgi/mesaglu.opt				\
	$(DIRECTORY)/src/glu/sgi/include/gluos.h			\
	$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.h			\
	$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.cc		\
	$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.h			\
	$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.cc		\
	$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/*.h			\
	$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/*.cc			\
	$(DIRECTORY)/src/glu/sgi/libtess/README				\
	$(DIRECTORY)/src/glu/sgi/libtess/alg-outline			\
	$(DIRECTORY)/src/glu/sgi/libtess/*.[ch]				\
	$(DIRECTORY)/src/glu/sgi/libutil/*.[ch]				\
	$(DIRECTORY)/src/glu/mesa/README[12]				\
	$(DIRECTORY)/src/glu/mesa/Makefile*				\
	$(DIRECTORY)/src/glu/mesa/descrip.mms				\
	$(DIRECTORY)/src/glu/mesa/mms_depend				\
	$(DIRECTORY)/src/glu/mesa/*.def					\
	$(DIRECTORY)/src/glu/mesa/depend				\
	$(DIRECTORY)/src/glu/mesa/*.[ch]				\
	$(DIRECTORY)/src/glw/*.[ch]					\
	$(DIRECTORY)/src/glw/Makefile*					\
	$(DIRECTORY)/src/glw/README					\
	$(DIRECTORY)/progs/util/README					\
	$(DIRECTORY)/progs/util/*.[ch]					\
	$(DIRECTORY)/progs/util/sampleMakefile				\
	$(DIRECTORY)/vms/analyze_map.com				\
	$(DIRECTORY)/vms/xlib.opt					\
	$(DIRECTORY)/vms/xlib_share.opt


DEMO_FILES =	\
	$(DIRECTORY)/include/GL/glut.h			\
	$(DIRECTORY)/include/GL/glutf90.h		\
	$(DIRECTORY)/src/glut/glx/Makefile*		\
	$(DIRECTORY)/src/glut/glx/depend		\
	$(DIRECTORY)/src/glut/glx/*def			\
	$(DIRECTORY)/src/glut/glx/descrip.mms		\
	$(DIRECTORY)/src/glut/glx/mms_depend		\
	$(DIRECTORY)/src/glut/glx/glut.dsp		\
	$(DIRECTORY)/src/glut/glx/*.[ch]		\
	$(DIRECTORY)/src/glut/dos/*.[ch]		\
	$(DIRECTORY)/src/glut/dos/Makefile.DJ		\
	$(DIRECTORY)/src/glut/dos/PC_HW/*.[chS]		\
	$(DIRECTORY)/progs/images/*			\
	$(DIRECTORY)/progs/demos/Makefile*		\
	$(DIRECTORY)/progs/demos/descrip.mms		\
	$(DIRECTORY)/progs/demos/*.[ch]			\
	$(DIRECTORY)/progs/demos/*.cxx			\
	$(DIRECTORY)/progs/demos/*.dat			\
	$(DIRECTORY)/progs/demos/README			\
	$(DIRECTORY)/progs/demos/Windows/*		\
	$(DIRECTORY)/progs/xdemos/Makefile*		\
	$(DIRECTORY)/progs/xdemos/descrip.mms		\
	$(DIRECTORY)/progs/xdemos/*.[chf]		\
	$(DIRECTORY)/progs/redbook/Makefile*		\
	$(DIRECTORY)/progs/redbook/README		\
	$(DIRECTORY)/progs/redbook/*.[ch]		\
	$(DIRECTORY)/progs/samples/Makefile*		\
	$(DIRECTORY)/progs/samples/README		\
	$(DIRECTORY)/progs/samples/*.c			\
	$(DIRECTORY)/progs/windml/Makefile.ugl		\
	$(DIRECTORY)/progs/windml/*.c			\
	$(DIRECTORY)/progs/windml/*.bmp			\
	$(DIRECTORY)/progs/ggi/*.c

SI_GLU_FILES = \
	$(DIRECTORY)/Makefile*					\
	$(DIRECTORY)/Make-config				\
	$(DIRECTORY)/bin/mklib*					\
	$(DIRECTORY)/include/GL/glu.h				\
	$(DIRECTORY)/src/glu/sgi/Makefile.X11			\
	$(DIRECTORY)/src/glu/sgi/include/gluos.h		\
	$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.h		\
	$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.cc	\
	$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.h		\
	$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.cc	\
	$(DIRECTORY)/src/glu/sgi/libnurbs/nurbstess/*.h		\
	$(DIRECTORY)/src/glu/sgi/libnurbs/nurbstess/*.cc	\
	$(DIRECTORY)/src/glu/sgi/libtess/README			\
	$(DIRECTORY)/src/glu/sgi/libtess/alg-outline		\
	$(DIRECTORY)/src/glu/sgi/libtess/*.[ch]			\
	$(DIRECTORY)/src/glu/sgi/libutil/*.[ch]

GLU_FILES = \
	$(DIRECTORY)/Makefile*			\
	$(DIRECTORY)/Make-config		\
	$(DIRECTORY)/bin/mklib*			\
	$(DIRECTORY)/include/GL/gl.h		\
	$(DIRECTORY)/include/GL/gl_mangle.h	\
	$(DIRECTORY)/include/GL/glext.h		\
	$(DIRECTORY)/include/GL/glu.h		\
	$(DIRECTORY)/include/GL/glu_mangle.h	\
	$(DIRECTORY)/src/glu/mesa/README[12]	\
	$(DIRECTORY)/src/glu/mesa/Makefile*	\
	$(DIRECTORY)/src/glu/mesa/descrip.mms	\
	$(DIRECTORY)/src/glu/mesa/mms_depend	\
	$(DIRECTORY)/src/glu/mesa/*.def		\
	$(DIRECTORY)/src/glu/mesa/depend	\
	$(DIRECTORY)/src/glu/mesa/*.[ch]

GLUT_FILES = \
	$(DIRECTORY)/Makefile*			\
	$(DIRECTORY)/Make-config		\
	$(DIRECTORY)/bin/mklib*			\
	$(DIRECTORY)/include/GL/gl.h		\
	$(DIRECTORY)/include/GL/gl_mangle.h	\
	$(DIRECTORY)/include/GL/glext.h		\
	$(DIRECTORY)/include/GL/glu.h		\
	$(DIRECTORY)/include/GL/glu_mangle.h	\
	$(DIRECTORY)/include/GL/glut.h		\
	$(DIRECTORY)/include/GL/glutf90.h	\
	$(DIRECTORY)/src/glut/glx/Makefile*	\
	$(DIRECTORY)/src/glut/glx/depend	\
	$(DIRECTORY)/src/glut/glx/*def		\
	$(DIRECTORY)/src/glut/glx/descrip.mms	\
	$(DIRECTORY)/src/glut/glx/mms_depend	\
	$(DIRECTORY)/src/glut/glx/*.[ch]



lib_gz:
	cp Makefile.X11 Makefile ; \
	cd .. ; \
	tar -cvf $(LIB_NAME).tar $(LIB_FILES) ; \
	gzip $(LIB_NAME).tar ; \
	mv $(LIB_NAME).tar.gz $(DIRECTORY)

demo_gz:
	cd .. ; \
	tar -cvf $(DEMO_NAME).tar $(DEMO_FILES) ; \
	gzip $(DEMO_NAME).tar ; \
	mv $(DEMO_NAME).tar.gz $(DIRECTORY)

lib_bz2:
	cp Makefile.X11 Makefile ; \
	cd .. ; \
	tar -cvf $(LIB_NAME).tar $(LIB_FILES) ; \
	bzip2 $(LIB_NAME).tar ; \
	mv $(LIB_NAME).tar.bz2 $(DIRECTORY)

demo_bz2:
	cd .. ; \
	tar -cvf $(DEMO_NAME).tar $(DEMO_FILES) ; \
	bzip2 $(DEMO_NAME).tar ; \
	mv $(DEMO_NAME).tar.bz2 $(DIRECTORY)

lib_zip:
	-rm $(LIB_NAME).zip ; \
	cp Makefile.X11 Makefile ; \
	cd .. ; \
	zip -r $(LIB_NAME).zip $(LIB_FILES) ; \
	mv $(LIB_NAME).zip $(DIRECTORY)

demo_zip:
	-rm $(DEMO_NAME).zip ; \
	cd .. ; \
	zip -r $(DEMO_NAME).zip $(DEMO_FILES) ; \
	mv $(DEMO_NAME).zip $(DIRECTORY)

md5:
	@-md5sum $(LIB_NAME).tar.gz
	@-md5sum $(LIB_NAME).tar.bz2
	@-md5sum $(LIB_NAME).zip
	@-md5sum $(DEMO_NAME).tar.gz
	@-md5sum $(DEMO_NAME).tar.bz2
	@-md5sum $(DEMO_NAME).zip

# Everything for new Mesa release:
tarballs: lib_gz demo_gz lib_bz2 demo_bz2 lib_zip demo_zip md5


# not used
glu_gz:
	cp Makefile.X11 Makefile ; \
	cd .. ; \
	tar -cvf $(GLU_NAME).tar $(GLU_FILES) ; \
	gzip $(GLU_NAME).tar ; \
	mv $(GLU_NAME).tar.gz $(DIRECTORY)

glut_gz:
	cp Makefile.X11 Makefile ; \
	cd .. ; \
	tar -cvf $(GLUT_NAME).tar $(GLUT_FILES) ; \
	gzip $(GLUT_NAME).tar ; \
	mv $(GLUT_NAME).tar.gz $(DIRECTORY)