# $Id: Makefile.X11,v 1.116 2004/03/25 01:51:38 brianp Exp $

# Mesa 3-D graphics library
# Version:  6.1
# 
# Copyright (C) 1999-2004  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 AIX systems with xlc"
	@echo "  make aix-nothreads         for AIX systems with xlc, no threads"
	@echo "  make aix64                 for AIX systems with xlc, 64-bit"
	@echo "  make aix64-nothreads       for AIX systems with xlc, 64-bit, no threads"
	@echo "  make aix-sl                for AIX systems, make shared libs"
	@echo "  make aix-gcc               for AIX sytems with gcc"
	@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 darwin-static         for Darwin - Mac OS X, static libs"
	@echo "  make darwin-static-nothreads for Darwin - Mac OS X, static libs, no threads"
	@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 hpux11-32             for HP systems with HPUX 11.x, static libs"
	@echo "  make hpux11-32-nothreads   for HP systems with HPUX 11.x, static libs, no threads"
	@echo "  make hpux11-64             for HP systems with HPUX 11.x, 64-bit static libs"
	@echo "  make hpux11-64-nothreads   for HP systems with HPUX 11.x, 64-bit static libs, no threads"
	@echo "  make hpux11-ia64           for HP IA64 systems with HPUX 11.x, 64-bit static libs"
	@echo "  make hpux11-ia64-nothreads for HP IA64 systems with HPUX 11.x, 64-bit static libs, no threads"
	@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-nothreads   for SGI systems with IRIX 6.x, make n32-bit libs, no threads"
	@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-nothreads    for SGI systems with IRIX 6.x, make 64-bit libs, no threads"
	@echo "  make irix6-64-dso          for SGI systems with IRIX 6.x, make 64-bit DSOs"

	@echo "  make linux                 for Linux"
	@echo "  make linux-static          for Linux, static libs"
	@echo "  make linux-x86             for Linux with x86 optimizations"
	@echo "  make linux-x86-static      for Linux with x86 optimizations, static libs"
	@echo "  make linux-x86-static-nothreads  for Linux with x86 optimizations, static, no threads"
	@echo "  make linux-x86-64-static   for Linux with x86_64 optimizations, static libs"
	@echo "  make linux-x86-64-static-nothreads   for Linux with x86_64 optimizations, static libs, no threads"
	@echo "  make linux-x86-opteron     for Linux on Opteron"
	@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-ia64-ecc-static for Linux with IA64 opts, Intel compiler, static libs"
	@echo "  make linux-ia64-ecc-static-nothreads for Linux with IA64 opts, Intel compiler, static, no threads"
	@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 linux-icc-static      for Linux with the Intel C/C++ compiler, static libs"
	@echo "  make linux-icc-static-nothreads  for Linux with the Intel C/C++ compiler, static, no threads"
	@echo "  make linux-ia64-ecc-static for Linux IA64 with the Intel C/C++ compiler, static libs"
	@echo "  make linux-ia64-ecc-static-nothreads  for Linux IA64 with the Intel C/C++ compiler, static, no threads"
	@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 osf1-nothreads        for DEC Alpha systems with OSF/1, no threads"
	@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 sunos5-gcc-debug      for Suns with SunOS 5.x and GCC"
	@echo "  make sunos5-v8             for Suns with SunOS 5.x, 32-bit V8 no threads"
	@echo "  make sunos5-v8-pthread     for Suns with SunOS 5.x, 32-bit V8 with threads"
	@echo "  make sunos5-v9             for Suns with SunOS 5.x, 64-bit V8 no threads"
	@echo "  make sunos5-v9-pthread     for Suns with SunOS 5.x, 64-bit V8 with threads"
	@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-nothreads aix-sl aix-gcc darwin freebsd freebsd-386 gcc-sl \
darwin-static darwin-static-nothreads \
cygnus cygnus-linux \
hpux9 hpux9-sl hpux9-gcc hpux9-gcc-sl \
hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \
hpux11-32 hpux11-32-nothreads \
irix6-o32 irix6-o32-nothreads \
linux linux-debug linux-static \
linux-x86 linux-x86-sse linux-x86-opteron \
linux-x86-static linux-x86-debug linux-x86-static-nothreads \
linux-icc linux-icc-static linux-icc-static-nothreads \
linux-ia64-ecc-static linux-ia64-ecc-static-nothreads \
linux-x86-64-static linux-x86-64-static-nothreads \
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 osf1-nothreads openbsd qnx \
solaris-x86 solaris-x86-gcc \
sunos4 sunos4-sl sunos4-gcc sunos4-gcc-sl sunos4-gcc-x11r6-sl \
sunos5 sunos5-smp sunos5-gcc sunos5-gcc-debug \
sunos5-v8 sunos5-v8-pthread \
ultrix-gcc unixware:
	-mkdir lib
	if [ -d src/mesa ] ; then \
		cd src/mesa ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glu/sgi ] ; then \
		cd src/glu/sgi ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glut/glx ] ; then \
		cd src/glut/glx ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glw ] ; then \
		cd src/glw ; \
		touch depend ; \
		$(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


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


irix6-n32 irix6-n32-nothreads irix6-n32-dso irix6-gcc-n32-sl:
	-mkdir lib32
	if [ -d src/mesa ] ; then \
		cd src/mesa ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glu/sgi ] ; then \
		cd src/glu/sgi ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glut/glx ] ; then \
		cd src/glut/glx ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glw ] ; then \
		cd src/glw ; \
		touch depend ; \
		$(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

aix-64 aix-64-nothreads hpux11-64 hpux11-64-nothreads irix6-64 \
irix6-64-nothreads  irix6-64-dso hpux11-ia64 hpux11-ia64-nothreads \
sunos5-v9 sunos5-v9-pthread:
	-mkdir lib64
	if [ -d src/mesa ] ; then \
		cd src/mesa ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glu/sgi ] ; then \
		cd src/glu/sgi ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glut/glx ] ; then \
		cd src/glut/glx ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glw ] ; then \
		cd src/glw ; \
		touch depend ; \
		$(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

irix6-mgl-n32-dso:
	-mkdir libMGL32
	if [ -d src/mesa ] ; then \
		cd src/mesa ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glu/sgi ] ; then \
		cd src/glu/sgi ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi

beos-r4:
	-mkdir lib
	if [ -d src/mesa ] ; then \
		cd src/mesa ; \
		-rm depend ; \
		touch depend ; \
		$(MAKE) -f Makefile.BeOS-R4 $@ ; \
	fi
	if [ -d src/glu/sgi ] ; then \
		cd src/glu/sgi ; \
		-rm depend ; \
		touch depend ; \
		$(MAKE) -f Makefile.BeOS-R4 $@ ; \
	fi
	if [ -d src/glut/beos ] ; then \
		cd src/glut/beos ; \
		$(MAKE) -f Makefile.BeOS-R4 $@ ; \
		cp 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


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
	if [ -d src/mesa ] ; then \
		cd src/mesa ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glu/sgi ] ; then \
		cd src/glu/sgi ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glut/glx ] ; then \
		cd src/glut/glx ; \
		touch depend ; \
		$(MAKE) -f Makefile.X11 $@ ; \
	fi
	if [ -d src/glw ] ; then \
		cd src/glw ; \
		touch depend ; \
		$(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 progs/ggi ] ; then \
		cd progs/ggi ; \
		$(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 \
		cd src/mesa ; \
		touch depend ; \
		$(MAKE) -f Makefile.OSMesa16 $@ ; \
	fi


# Stand-alone DRI hardware drivers
linux-solo:
	-mkdir lib
	cd src/mesa                    ; touch depend ; $(MAKE) -f Makefile.solo $@
	cd src/mesa/drivers/dri/r200   ; touch depend ; $(MAKE) -f Makefile.solo $@
	cd src/mesa/drivers/dri/radeon ; touch depend ; $(MAKE) -f Makefile.solo $@
	cd src/mesa/drivers/dri/r128   ; touch depend ; $(MAKE) -f Makefile.solo $@
	cd src/mesa/drivers/dri/mga    ; touch depend ; $(MAKE) -f Makefile.solo $@
	cd src/mesa/drivers/dri/i810   ; touch depend ; $(MAKE) -f Makefile.solo $@
	cd src/mesa/drivers/dri/i830   ; touch depend ; $(MAKE) -f Makefile.solo $@
	cd src/mesa/drivers/dri/sis    ; touch depend ; $(MAKE) -f Makefile.solo $@
	cd src/mesa/drivers/dri/gamma  ; touch depend ; $(MAKE) -f Makefile.solo $@
	cd src/mesa/drivers/dri/tdfx   ; touch depend ; $(MAKE) -f Makefile.solo $@
	cd src/mesa/drivers/dri/fb     ; touch depend ; $(MAKE) -f Makefile.solo $@
	cd src/mesa/drivers/dri/unichrome ; touch depend ; $(MAKE) -f Makefile.solo $@
	cd src/glx/mini                ; touch depend ; $(MAKE) -f Makefile.solo $@
	if [ -d src/glu/sgi ] ; then \
		cd src/glu/sgi ; \
		touch depend ; \
		ln -s Makefile.X11 Makefile.solo ; \
		$(MAKE) -f Makefile.solo $@ ; \
	fi
	if [ -d src/glut/mini ] ; then \
		cd src/glut/mini ; \
		touch depend ; \
		$(MAKE) -f Makefile.solo $@ ; \
	fi
	if [ -d progs/miniglx ] ; then \
		cd progs/miniglx ; \
		touch depend ; \
		$(MAKE) -f Makefile.solo $@ ; \
	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.
# XXX this should be cleaned up
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.solo $@ || true
	cd src/mesa/drivers/dri/r128   && $(MAKE) -f Makefile.solo $@ || true
	cd src/mesa/drivers/dri/radeon && $(MAKE) -f Makefile.solo $@ || true
	cd src/mesa/drivers/dri/mga    && $(MAKE) -f Makefile.solo $@ || true
	cd src/mesa/drivers/dri/fb     && $(MAKE) -f Makefile.solo $@ || true
	cd src/mesa/drivers/dri/unichrome && $(MAKE) -f Makefile.solo $@ || 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.solo $@ || 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-6.1
LIB_NAME = MesaLib-6.1
DEMO_NAME = MesaDemos-6.1
GLU_NAME = MesaGLU-6.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/descrip.mms					\
	$(DIRECTORY)/src/mesa/Makefile*					\
	$(DIRECTORY)/src/mesa/sources					\
	$(DIRECTORY)/src/mesa/descrip.mms				\
	$(DIRECTORY)/src/mesa/depend					\
	$(DIRECTORY)/src/mesa/main/*.[chS]				\
	$(DIRECTORY)/src/mesa/main/main.dsp				\
	$(DIRECTORY)/src/mesa/main/descrip.mms				\
	$(DIRECTORY)/src/mesa/glapi/*.[chS]				\
	$(DIRECTORY)/src/mesa/glapi/glapi.dsp				\
	$(DIRECTORY)/src/mesa/glapi/descrip.mms				\
	$(DIRECTORY)/src/mesa/array_cache/*.[ch]			\
	$(DIRECTORY)/src/mesa/array_cache/array_cache.dsp		\
	$(DIRECTORY)/src/mesa/array_cache/descrip.mms			\
	$(DIRECTORY)/src/mesa/math/*.[ch]				\
	$(DIRECTORY)/src/mesa/math/math.dsp				\
	$(DIRECTORY)/src/mesa/math/descrip.mms				\
	$(DIRECTORY)/src/mesa/swrast/*.[ch]				\
	$(DIRECTORY)/src/mesa/swrast/swrast.dsp				\
	$(DIRECTORY)/src/mesa/swrast/descrip.mms			\
	$(DIRECTORY)/src/mesa/swrast_setup/*.[ch]			\
	$(DIRECTORY)/src/mesa/swrast_setup/swrast_setup.dsp		\
	$(DIRECTORY)/src/mesa/swrast_setup/descrip.mms			\
	$(DIRECTORY)/src/mesa/tnl/*.[ch]				\
	$(DIRECTORY)/src/mesa/tnl/tnl.dsp				\
	$(DIRECTORY)/src/mesa/tnl/descrip.mms				\
	$(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/beos/*.cpp			\
	$(DIRECTORY)/src/mesa/drivers/beos/*.h				\
	$(DIRECTORY)/src/mesa/drivers/common/*.[ch]			\
	$(DIRECTORY)/src/mesa/drivers/common/descrip.mms		\
	$(DIRECTORY)/src/mesa/drivers/dos/*.[chS]			\
	$(DIRECTORY)/src/mesa/drivers/dri/common/*.[ch]			\
	$(DIRECTORY)/src/mesa/drivers/fbdev/glfbdev.c			\
	$(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/descrip.mms		\
	$(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/descrip.mms			\
	$(DIRECTORY)/src/mesa/drivers/x11/*.[ch]			\
	$(DIRECTORY)/src/mesa/sparc/*.[chS]				\
	$(DIRECTORY)/src/mesa/x86/*.[ch]				\
	$(DIRECTORY)/src/mesa/x86/*.S					\
	$(DIRECTORY)/src/glu/descrip.mms				\
	$(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/beos/*.h			\
	$(DIRECTORY)/src/glut/beos/*.cpp		\
	$(DIRECTORY)/src/glut/beos/libglut.def		\
	$(DIRECTORY)/src/glut/beos/Makefile*		\
	$(DIRECTORY)/src/glut/dos/*.[ch]		\
	$(DIRECTORY)/src/glut/dos/Makefile.DJ		\
	$(DIRECTORY)/src/glut/dos/PC_HW/*.[chS]		\
	$(DIRECTORY)/progs/images/*.rgb			\
	$(DIRECTORY)/progs/images/*.rgba		\
	$(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/*.dsp		\
	$(DIRECTORY)/progs/demos/Windows/*.dsw		\
	$(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)