http://www.jwz.org/xscreensaver/xscreensaver-5.09.tar.gz
[xscreensaver] / hacks / glx / Makefile.in
index 5f34fb64b84988a2f170fcb047d1145680a2daae..23dde73b467fe7416bd9d3be3731290af53c8a53 100644 (file)
@@ -8,18 +8,22 @@
 
 srcdir         = @srcdir@
 VPATH          = @srcdir@
+top_srcdir     = @top_srcdir@
+top_builddir   = ..
 
 install_prefix =
 prefix         = @prefix@
 exec_prefix    = @exec_prefix@
 bindir         = @bindir@
+datarootdir    = @datarootdir@
+datadir                = @datadir@
 mandir         = @mandir@
-# maybe this should be 6 (games)?
-mansuffix      = 1
+libexecdir     = @libexecdir@
+mansuffix      = 6
 manNdir                = $(mandir)/man$(mansuffix)
 
-# maybe this should be 6 (games)?
-mansuffix      = 1
+HACKDIR                = @HACKDIR@
+HACK_CONF_DIR  = @HACK_CONF_DIR@
 
 CC             = @CC@
 CFLAGS         = @CFLAGS@
@@ -33,10 +37,11 @@ DEPEND_DEFINES      = @DEPEND_DEFINES@
 
 SHELL          = /bin/sh
 INSTALL                = @INSTALL@
+SUID_FLAGS      = -o root -m 4755
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SETUID  = @INSTALL_SETUID@
 INSTALL_DATA   = @INSTALL_DATA@
 INSTALL_DIRS   = @INSTALL_DIRS@
-HACKDIR                = @HACKDIR@
 
 X_CFLAGS       = @X_CFLAGS@
 X_LIBS         = @X_LIBS@
@@ -52,6 +57,7 @@ HACK_POST2    = @GL_LIBS@ @HACK_LIBS@ $(HACK_POST)
 HACK_LIBS      = $(HACK_PRE)                       $(HACK_POST2)
 XPM_LIBS       = $(HACK_PRE)            @XPM_LIBS@ $(HACK_POST2)
 GLE_LIBS       = $(HACK_PRE) @GLE_LIBS@ @XPM_LIBS@ $(HACK_POST2)
+MINIXPM                = $(UTILS_BIN)/minixpm.o
 
 HACK_SRC       = $(srcdir)/..
 HACK_BIN       = ..
@@ -69,20 +75,20 @@ UTIL_OBJS   = $(UTILS_SRC)/colors.o $(UTILS_SRC)/hsv.o \
                  $(UTILS_SRC)/visual.o $(UTILS_SRC)/visual-gl.o \
                   $(UTILS_SRC)/yarandom.o $(UTILS_SRC)/xshm.o
 
-SRCS           = xscreensaver-gl-helper.c normals.c glxfonts.c \
+SRCS           = xscreensaver-gl-helper.c normals.c glxfonts.c fps-gl.c \
                  atlantis.c b_draw.c b_lockglue.c b_sphere.c bubble3d.c \
                  buildlwo.c cage.c dolphin.c gears.c lament.c moebius.c \
                  morph3d.c pipeobjs.c pipes.c rubik.c s1_1.c s1_2.c s1_3.c \
                  s1_4.c s1_5.c s1_6.c s1_b.c shark.c sproingies.c \
                  sproingiewrap.c stairs.c superquadrics.c swim.c whale.c \
-                 xlock-gl.c fps.c xpm-ximage.c glplanet.c pulsar.c \
+                 xlock-gl-utils.c xpm-ximage.c glplanet.c pulsar.c \
                  extrusion.c extrusion-helix2.c extrusion-helix3.c \
                  extrusion-helix4.c extrusion-joinoffset.c extrusion-screw.c \
                  extrusion-taper.c extrusion-twistoid.c sierpinski3d.c \
                  gflux.c stonerview.c stonerview-move.c stonerview-osc.c \
                  stonerview-view.c starwars.c glut_stroke.c glut_swidth.c \
                  gltext.c molecule.c dangerball.c sphere.c tube.c circuit.c \
-                 menger.c engine.c flipscreen3d.c font-ximage.c \
+                 menger.c engine.c flipscreen3d.c font-ximage.c dnalogo.c \
                  grab-ximage.c glsnake.c boxed.c glforestfire.c sballs.c \
                  cubenetic.c spheremonics.c marching.c lavalite.c rotator.c \
                  trackball.c gltrackball.c queens.c endgame.c chessmodels.c \
@@ -96,24 +102,29 @@ SRCS               = xscreensaver-gl-helper.c normals.c glxfonts.c \
                  hypertorus.c glmatrix.c cubestorm.c glknots.c blocktube.c \
                  flipflop.c antspotlight.c polytopes.c gleidescope.c \
                  mirrorblob.c blinkbox.c noof.c polyhedra.c polyhedra-gl.c \
-                 antinspect.c providence.c pinion.c boing.c texfont.c \
-                 carousel.c
-
-
-OBJS           = xscreensaver-gl-helper.o normals.o glxfonts.o \
+                 antinspect.c providence.c pinion.c involute.c boing.c \
+                 texfont.c carousel.c fliptext.c antmaze.c tangram.c \
+                 tangram_shapes.c crackberg.c glhanoi.c cube21.c \
+                 timetunnel.c juggler3d.c topblock.c glschool.c \
+                 glschool_gl.c glschool_alg.c glcells.c voronoi.c \
+                 moebiusgears.c lockward.c cubicgrid.c hypnowheel.c \
+                 skytentacles.c teapot.c sonar.c sonar-sim.c sonar-icmp.c \
+                 jigsaw.c photopile.c rubikblocks.c surfaces.c
+
+OBJS           = xscreensaver-gl-helper.o normals.o glxfonts.o fps-gl.o \
                  atlantis.o b_draw.o b_lockglue.o b_sphere.o bubble3d.o \
                  buildlwo.o cage.o dolphin.o gears.o lament.o moebius.o \
                  morph3d.o pipeobjs.o pipes.o rubik.o s1_1.o s1_2.o s1_3.o \
                  s1_4.o s1_5.o s1_6.o s1_b.o shark.o sproingies.o \
                  sproingiewrap.o stairs.o superquadrics.o swim.o whale.o \
-                 xlock-gl.o fps.o xpm-ximage.o glplanet.o pulsar.o \
+                 xlock-gl-utils.o xpm-ximage.o glplanet.o pulsar.o \
                  extrusion.o extrusion-helix2.o extrusion-helix3.o \
                  extrusion-helix4.o extrusion-joinoffset.o extrusion-screw.o \
                  extrusion-taper.o extrusion-twistoid.o sierpinski3d.o \
                  gflux.o stonerview.o stonerview-move.o stonerview-osc.o \
                  stonerview-view.o starwars.o glut_stroke.o glut_swidth.o \
                  gltext.o molecule.o dangerball.o sphere.o tube.o circuit.o \
-                 menger.o engine.o flipscreen3d.o font-ximage.o \
+                 menger.o engine.o flipscreen3d.o font-ximage.o dnalogo.o \
                  grab-ximage.o glsnake.o boxed.o glforestfire.o sballs.o \
                  cubenetic.o spheremonics.o marching.o lavalite.o rotator.o \
                  trackball.o gltrackball.o queens.o endgame.o chessmodels.o \
@@ -127,27 +138,43 @@ OBJS              = xscreensaver-gl-helper.o normals.o glxfonts.o \
                  hypertorus.o glmatrix.o cubestorm.o glknots.o blocktube.o \
                  flipflop.o antspotlight.o polytopes.o gleidescope.o \
                  mirrorblob.o blinkbox.o noof.o polyhedra.o polyhedra-gl.o \
-                 antinspect.o providence.o pinion.o boing.o texfont.o \
-                 carousel.o
+                 antinspect.o providence.o pinion.o involute.o boing.o \
+                 texfont.o carousel.o fliptext.o antmaze.o tangram.o \
+                 tangram_shapes.o crackberg.o glhanoi.o cube21.o \
+                 timetunnel.o juggler3d.o topblock.o glschool.o \
+                 glschool_gl.o glschool_alg.o glcells.o voronoi.o \
+                 moebiusgears.o lockward.o cubicgrid.o hypnowheel.o \
+                 skytentacles.o teapot.o sonar.o sonar-sim.o sonar-icmp.o \
+                 jigsaw.o photopile.o rubikblocks.o surfaces.o
 
 GL_EXES                = cage gears moebius pipes sproingies stairs superquadrics \
                  morph3d rubik atlantis lament bubble3d glplanet pulsar \
                  sierpinski3d gflux stonerview starwars gltext molecule \
                  dangerball circuit menger engine flipscreen3d glsnake boxed \
-                 glforestfire sballs cubenetic spheremonics lavalite queens \
+                 sballs cubenetic spheremonics lavalite queens \
                  endgame glblur flurry atunnel flyingtoasters bouncingcow \
                  glslideshow jigglypuff klein hypertorus glmatrix cubestorm \
                  glknots blocktube flipflop antspotlight polytopes \
                  gleidescope mirrorblob blinkbox noof polyhedra \
-                 antinspect providence pinion boing carousel
+                 antinspect providence pinion boing carousel fliptext \
+                 antmaze tangram crackberg glhanoi cube21 timetunnel \
+                 juggler3d topblock glschool glcells voronoi moebiusgears \
+                 lockward cubicgrid hypnowheel skytentacles jigsaw photopile \
+                 rubikblocks surfaces
 GLE_EXES       = extrusion
+SUID_EXES      = sonar
 GL_UTIL_EXES   = xscreensaver-gl-helper
-HACK_EXES      = @GL_EXES@ @GLE_EXES@
+HACK_EXES_1    = @GL_EXES@ @GLE_EXES@
+HACK_EXES      = $(HACK_EXES_1) @SUID_EXES@
 XSHM_OBJS      = $(UTILS_BIN)/xshm.o
 GRAB_OBJS      = $(UTILS_BIN)/grabclient.o grab-ximage.o $(XSHM_OBJS)
 EXES           = @GL_UTIL_EXES@ $(HACK_EXES)
 
-HACK_OBJS      = screenhack-gl.o xlock-gl.o fps.o $(HACK_BIN)/xlockmore.o \
+RETIRED_EXES   = @RETIRED_GL_EXES@
+RETIRED_GL_EXES        = glforestfire
+
+HACK_OBJS      = $(HACK_BIN)/screenhack.o $(HACK_BIN)/fps.o \
+                 xlockmore-gl.o xlock-gl-utils.o glxfonts.o fps-gl.o \
                  $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
                  $(UTILS_BIN)/visual-gl.o $(UTILS_BIN)/usleep.o \
                  $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/hsv.o \
@@ -155,13 +182,16 @@ HACK_OBJS = screenhack-gl.o xlock-gl.o fps.o $(HACK_BIN)/xlockmore.o \
 
 HDRS           = atlantis.h bubble3d.h buildlwo.h e_textures.h xpm-ximage.h \
                  grab-ximage.h font-ximage.h tube.h sphere.h boxed.h \
-                 stonerview-move.h stonerview-osc.h glutstroke.h \
-                 glut_roman.h marching.h rotator.h trackball.h gltrackball.h \
-                 chessmodels.h chessgames.h gllist.h flurry.h tunnel_draw.h \
-                 ants.h polyhedra.h normals.h glxfonts.h texfont.h
+                 stonerview.h stonerview-move.h stonerview-osc.h \
+                 glutstroke.h glut_roman.h marching.h rotator.h trackball.h \
+                 gltrackball.h chessmodels.h chessgames.h gllist.h flurry.h \
+                 tunnel_draw.h ants.h polyhedra.h normals.h glxfonts.h \
+                 texfont.h tangram_shapes.h sproingies.h extrusion.h \
+                 glschool.h glschool_gl.h glschool_alg.h topblock.h \
+                 involute.h teapot.h sonar.h
 GL_MEN         = atlantis.man boxed.man bubble3d.man cage.man circuit.man \
                  cubenetic.man dangerball.man engine.man extrusion.man \
-                 flipscreen3d.man gears.man gflux.man glforestfire.man \
+                 flipscreen3d.man gears.man gflux.man \
                  glplanet.man glsnake.man gltext.man lament.man lavalite.man \
                  menger.man moebius.man molecule.man morph3d.man pipes.man \
                  pulsar.man queens.man rubik.man sballs.man sierpinski3d.man \
@@ -174,25 +204,31 @@ GL_MEN            = atlantis.man boxed.man bubble3d.man cage.man circuit.man \
                  antspotlight.man polytopes.man gleidescope.man \
                  mirrorblob.man blinkbox.man noof.man polyhedra.man \
                  antinspect.man providence.man pinion.man boing.man \
-                 carousel.man
+                 carousel.man fliptext.man antmaze.man tangram.man \
+                 crackberg.man glhanoi.man cube21.man timetunnel.man \
+                 juggler3d.man topblock.man glschool.man glcells.man \
+                 voronoi.man moebiusgears.man lockward.man cubicgrid.man \
+                 hypnowheel.man skytentacles.man sonar.man jigsaw.man \
+                 photopile.man rubikblocks.man surfaces.man
 MEN            = @GL_MEN@
-EXTRAS         = README Makefile.in dxf2gl.pl starwars.txt
+RETIRED_MEN    = glforestfire.man
+EXTRAS         = README Makefile.in dxf2gl.pl molecules.sh starwars.txt
 
 TARFILES       = $(SRCS) $(HDRS) $(MEN) $(EXTRAS)
 
 
 default: all
-all: $(EXES)
+all: $(EXES) $(RETIRED_EXES)
 
-install:   install-program   install-man
-uninstall: uninstall-program uninstall-man
+install:   install-program    install-xml   install-man
+uninstall: uninstall-program  uninstall-xml uninstall-man
 
 install-strip:
        $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
 
 # the hacks, in $HACKDIR
 install-program:: $(EXES)
-       @exes="$(HACK_EXES)" ;                                          \
+       @exes="$(HACK_EXES_1)" ;                                        \
         idir="$(install_prefix)$(HACKDIR)" ;                           \
         if [ "$$exes" != "" ]; then                                    \
           if [ ! -d $$idir ]; then                                     \
@@ -201,9 +237,35 @@ install-program:: $(EXES)
           for program in $$exes; do                                    \
             echo $(INSTALL_PROGRAM) $$program $$idir/$$program ;       \
                  $(INSTALL_PROGRAM) $$program $$idir/$$program ;       \
+          done ;                                                       \
+                                                                       \
+          exes="$(SUID_EXES)" ;                                        \
+          if [ @SETUID_HACKS@ = yes ]; then                            \
+            sinst="$(INSTALL_SETUID)" ;                                \
+          else                                                         \
+            sinst="$(INSTALL_PROGRAM)" ;                               \
+          fi ;                                                         \
+          for program in $$exes; do                                    \
+            echo $$sinst $$program $$idir/$$program ;                  \
+            if   $$sinst $$program $$idir/$$program ; then             \
+               true ;                                                  \
+            elif [ @SETUID_HACKS@ = yes ]; then                        \
+              echo $(INSTALL_PROGRAM) $$program $$idir/$$program ;     \
+              if   $(INSTALL_PROGRAM) $$program $$idir/$$program ; then\
+                echo "" ;                                              \
+                echo "WARNING: unable to install $$program setuid:"    \
+                     "installed non-setuid instead." ;                 \
+                echo "" ;                                              \
+              else                                                     \
+                exit 1 ;                                               \
+              fi ;                                                     \
+            else                                                       \
+              exit 1 ;                                                 \
+            fi ;                                                       \
           done ;                                                       \
         fi
 
+
 # the xscreensaver-gl-helper program, in $bindir
 install-program:: $(EXES)
        @exes="@GL_UTIL_EXES@" ;                                        \
@@ -218,21 +280,55 @@ install-program:: $(EXES)
           done ;                                                       \
         fi
 
+# When installing man pages, we install "foo.man" as "foo.N" and update
+# the .TH line in the installed file with one like
+#
+#     .TH XScreenSaver N "V.VV (DD-MMM-YYYY)" "X Version 11"
+#
+# where N is the manual section suffix.
+#
 install-man: $(MEN)
        @men="$(MEN)" ;                                                 \
-        idir="$(install_prefix)$(manNdir)" ;                           \
-        if [ ! -d $$idir ]; then                                       \
-         $(INSTALL_DIRS) $$idir ;                                      \
+       U=$(UTILS_SRC)/version.h ;                                      \
+       V=`sed -n 's/.*xscreensaver \([0-9]\.[^)]*)\).*/\1/p' < $$U` ;          \
+       T=/tmp/xs$$$$.$(mansuffix) ;                                    \
+       TH=".TH XScreenSaver $(mansuffix) \"$$V\" \"X Version 11\"" ;   \
+       echo "installing man pages: $$TH" ;                             \
+                                                                       \
+       if [ ! -d $(install_prefix)$(manNdir) ]; then                   \
+         $(INSTALL_DIRS) $(install_prefix)$(manNdir) ;                 \
         fi ;                                                           \
-        for man in $$men; do                                           \
-          instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ;    \
-          echo $(INSTALL_DATA) $(srcdir)/$$man $$idir/$$instname ;     \
-               $(INSTALL_DATA) $(srcdir)/$$man $$idir/$$instname ;     \
-        done
+                                                                       \
+       for man in $$men; do                                            \
+         instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ;     \
+         manbase=`echo $$man | sed 's/\.man$$//'` ;    \
+         TH=".TH $$manbase $(mansuffix) \"$$V\" \"X Version 11\" \"XScreenSaver manual\"" ;   \
+         sed -e "s/^\.TH.*/$$TH/"                                      \
+             -e 's@(MANSUFFIX)@($(mansuffix))@g'                       \
+           < $(srcdir)/$$man > $$T ;                                   \
+         echo $(INSTALL_DATA) $(srcdir)/$$man                          \
+          $(install_prefix)$(manNdir)/$$instname ;                     \
+         $(INSTALL_DATA) $$T                                           \
+           $(install_prefix)$(manNdir)/$$instname ;                    \
+       done ;                                                          \
+       rm -f $$T
+
+install-xml:
+       @dest=$(install_prefix)$(HACK_CONF_DIR) ;                       \
+        if [ ! -d $$dest ]; then                                       \
+          $(INSTALL_DIRS) $$dest ;                                     \
+        fi ;                                                           \
+        src=$(srcdir)/../config ;                                      \
+        for file in $(EXES) $(SCRIPTS) ; do                            \
+          if [ -f $$src/$$file.xml ]; then                             \
+            echo $(INSTALL_DATA) $$src/$$file.xml $$dest/$$file.xml ;  \
+                 $(INSTALL_DATA) $$src/$$file.xml $$dest/$$file.xml ;  \
+          fi ;                                                         \
+       done
 
 # the hacks, in $HACKDIR
 uninstall-program::
-       @exes="$(HACK_EXES)" ;                                          \
+       @exes="$(HACK_EXES) $(RETIRED_EXES)" ;                          \
         idir="$(install_prefix)$(HACKDIR)" ;                           \
         for program in $$exes; do                                      \
           echo rm -f $$idir/$$program ;                                \
@@ -249,16 +345,22 @@ uninstall-program::
        done
 
 uninstall-man:
-       @men="$(MEN)" ;                                                 \
-        idir="$(install_prefix)$(manNdir)" ;                           \
-        for man in $$men; do                                           \
-          instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ;    \
-          echo rm -f $$idir/$$instname ;                               \
-               rm -f $$idir/$$instname ;                               \
+       @men="$(MEN) $(RETIRED_MEN)" ;                                  \
+       for man in $$men; do                                            \
+         instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ;     \
+         echo rm -f $(install_prefix)$(manNdir)/$$instname* ;          \
+              rm -f $(install_prefix)$(manNdir)/$$instname* ;          \
+       done
+
+uninstall-xml:
+       @dest=$(install_prefix)$(HACK_CONF_DIR) ;                       \
+        for file in $(EXES) $(RETIRED_EXES) $(SCRIPTS) ; do            \
+            echo rm -f $$dest/$$file.xml ;                             \
+                 rm -f $$dest/$$file.xml ;                             \
        done
 
 clean:
-       -rm -f *.o a.out core $(EXES) molecules.h
+       -rm -f *.o a.out core $(EXES) $(RETIRED_EXES) molecules.h
 
 distclean: clean
        -rm -f Makefile TAGS *~ "#"*
@@ -321,26 +423,11 @@ check_men:
           done ;                                                       \
         fi
 
-check_xml:
-       @badxml="" ;                                                    \
-        for exe in $(EXES); do                                         \
-          if ! [ -f $(srcdir)/../config/$$exe.xml -o                   \
-                 "$$exe" = xscreensaver-gl-helper ]; then              \
-            badxml="$$badxml $$exe" ;                                  \
-          fi ;                                                         \
-        done ;                                                         \
-        if [ -n "$$badxml" ]; then                                     \
-          echo "" ;                                                    \
-          echo "Warning: The following programs have no configurators:" ; \
-          echo "" ;                                                    \
-          for m in $$badxml ; do                                       \
-            echo "    $$m" ;                                           \
-          done ;                                                       \
-          echo "" ;                                                    \
-        fi
-
-distdepend:: check_men check_xml
+validate_xml:
+       @echo "Validating XML..." ; \
+       cd $(HACK_SRC) ; ./check-configs.pl $(EXES)
 
+distdepend:: check_men validate_xml
 
 
 
@@ -380,12 +467,12 @@ xscreensaver-gl-helper: $(HELPER_OBJS)
        $(CC) $(LDFLAGS) -o $@ $(HELPER_OBJS) $(LIBS) $(X_LIBS) $(HACK_POST2)
 
 
-# These hacks use a slightly-differently-compiled variant of screenhack.c.
+# These hacks use a slightly-differently-compiled variant of xlockmore.c.
 # This is how to make the the other .o file from it.
 #
-screenhack-gl.o: $(HACK_SRC)/screenhack.c
-       $(CC) -o $@ -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) \
-         -DXLOCKMORE  -DUSE_GL $(HACK_SRC)/screenhack.c
+XLM_CFLAGS=-DUSE_GL $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS)
+xlockmore-gl.o: $(HACK_SRC)/xlockmore.c
+       $(CC) -o $@ -c $(XLM_CFLAGS) $(HACK_SRC)/xlockmore.c
 
 CC_HACK                = $(CC) $(LDFLAGS)
 
@@ -411,14 +498,16 @@ FLURRY_OBJS = $(FLURRY_OBJS_1) $(HACK_OBJS)
 flurry:                flurry.o        $(FLURRY_OBJS)
        $(CC_HACK) -o $@ $@.o   $(FLURRY_OBJS) $(HACK_LIBS) -lm
 
-gears:         gears.o         $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+GEARS_OBJS=normals.o involute.o $(HACK_TRACK_OBJS)
+gears:         gears.o         tube.o $(GEARS_OBJS)
+       $(CC_HACK) -o $@ $@.o   tube.o $(GEARS_OBJS) $(HACK_LIBS)
 
 moebius:       moebius.o       $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-pipes:         pipes.o         pipeobjs.o buildlwo.o $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   pipeobjs.o buildlwo.o $(HACK_OBJS) $(HACK_LIBS)
+PIPE_OBJS=pipeobjs.o buildlwo.o teapot.o
+pipes:         pipes.o         $(PIPE_OBJS) $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(PIPE_OBJS) $(HACK_OBJS) $(HACK_LIBS)
 
 superquadrics: superquadrics.o $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
@@ -429,8 +518,8 @@ morph3d:    morph3d.o       $(HACK_OBJS)
 rubik:         rubik.o         $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
 
-stairs:                stairs.o        $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
+stairs:                stairs.o        sphere.o $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   sphere.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
 SPROINGIES = sproingiewrap.o gllist.o \
             s1_1.o s1_2.o s1_3.o s1_4.o s1_5.o s1_6.o s1_b.o
@@ -483,29 +572,29 @@ circuit:  circuit.o       font-ximage.o $(HACK_OBJS)
 menger:                menger.o        $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-engine:                engine.o        glxfonts.o $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   glxfonts.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+engine:                engine.o        $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
 flipscreen3d:  flipscreen3d.o  $(HACK_TRACK_GRAB_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
 
-glsnake:       glsnake.o       glxfonts.o $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   glxfonts.o $(HACK_OBJS) $(HACK_LIBS)
+glsnake:       glsnake.o       $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
 
 boxed:         boxed.o         $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
 
-glforestfire:  glforestfire.o  xpm-ximage.o $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_OBJS) $(XPM_LIBS)
+glforestfire:  glforestfire.o  xpm-ximage.o $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_TRACK_OBJS) $(XPM_LIBS)
 
-sballs:                sballs.o        xpm-ximage.o $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_OBJS) $(XPM_LIBS)
+sballs:                sballs.o        xpm-ximage.o $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_TRACK_OBJS) $(XPM_LIBS)
 
 cubenetic:     cubenetic.o     $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-spheremonics:  spheremonics.o  normals.o glxfonts.o $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   normals.o glxfonts.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+spheremonics:  spheremonics.o  normals.o $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
 LL_OBJS=marching.o xpm-ximage.o normals.o $(HACK_TRACK_OBJS)
 lavalite:      lavalite.o      $(LL_OBJS)
@@ -534,8 +623,8 @@ COW_OBJS=\
 bouncingcow:                   $(COW_OBJS)         
        $(CC_HACK) -o $@        $(COW_OBJS) $(XPM_LIBS)
 
-glslideshow:   glslideshow.o   glxfonts.o $(HACK_GRAB_OBJS)
-       $(CC_HACK) -o $@ $@.o   glxfonts.o $(HACK_GRAB_OBJS) $(HACK_LIBS)
+glslideshow:   glslideshow.o   $(HACK_GRAB_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_GRAB_OBJS) $(HACK_LIBS)
 
 jigglypuff:    jigglypuff.o    xpm-ximage.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_TRACK_OBJS) $(XPM_LIBS)
@@ -543,8 +632,11 @@ jigglypuff:        jigglypuff.o    xpm-ximage.o $(HACK_TRACK_OBJS)
 klein:         klein.o         $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-hypertorus:    hypertorus.o    $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
+surfaces:      surfaces.o      $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+hypertorus:    hypertorus.o    $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
 glmatrix:      glmatrix.o      xpm-ximage.o $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_OBJS) $(XPM_LIBS)
@@ -558,42 +650,34 @@ glknots:  glknots.o       tube.o $(HACK_TRACK_OBJS)
 blocktube:     blocktube.o     xpm-ximage.o $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_OBJS) $(XPM_LIBS)
 
-flipflop:      flipflop.o      $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+flipflop:      flipflop.o      $(HACK_TRACK_GRAB_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
 
 antspotlight:  antspotlight.o  $(HACK_TRACK_GRAB_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
 
-polytopes:     polytopes.o     $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
+polytopes:     polytopes.o     $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+STONER_OBJS=stonerview-move.o stonerview-osc.o stonerview-view.o
+stonerview:    stonerview.o    $(STONER_OBJS) $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(STONER_OBJS) $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-# This one works differently (it's not xlock-like.)
-#
-STONER_OBJS=stonerview.o stonerview-move.o stonerview-osc.o stonerview-view.o \
-           $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/usleep.o
-stonerview:                    $(STONER_OBJS)
-       $(CC_HACK) -o $@        $(STONER_OBJS) $(HACK_LIBS)
 
 molecules.h:
-       @tmp=molecules.h.$$$$ ;                                         \
-       rm -f $$tmp ;                                                   \
-       echo "building molecules.h from $(HACK_SRC)/images/molecules/*.pdb" ; \
-       for f in $(HACK_SRC)/images/molecules/*.pdb ; do                \
-         $(SHELL) $(UTILS_SRC)/ad2c "$$f" |                            \
-           sed 's/",$$/\\n"/' >> $$tmp ;                               \
-         echo ',' >> $$tmp ;                                           \
-       done ;                                                          \
-       mv $$tmp molecules.h
+       @echo "building molecules.h from $(HACK_SRC)/images/molecules/*.pdb"; \
+       UTILS_SRC="$(UTILS_SRC)" \
+       $(srcdir)/molecules.sh molecules.h $(HACK_SRC)/images/molecules/*.pdb
 
-MOLECULE_OBJS=sphere.o tube.o glxfonts.o $(HACK_TRACK_OBJS)
+MOLECULE_OBJS=sphere.o tube.o $(HACK_TRACK_OBJS)
 molecule:      molecule.o      $(MOLECULE_OBJS)
        $(CC_HACK) -o $@ $@.o   $(MOLECULE_OBJS) $(HACK_LIBS)
 
 gleidescope:   gleidescope.o   xpm-ximage.o $(HACK_GRAB_OBJS)
        $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_GRAB_OBJS) $(XPM_LIBS)
 
-mirrorblob:    mirrorblob.o    $(HACK_GRAB_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(HACK_GRAB_OBJS) $(XPM_LIBS)
+mirrorblob:    mirrorblob.o    $(HACK_TRACK_GRAB_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(XPM_LIBS)
 
 blinkbox:      blinkbox.o      sphere.o $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   sphere.o $(HACK_OBJS) $(HACK_LIBS)
@@ -601,7 +685,7 @@ blinkbox:   blinkbox.o      sphere.o $(HACK_OBJS)
 noof:  noof.o                  $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
 
-PH_OBJS=polyhedra-gl.o normals.o glxfonts.o $(HACK_TRACK_OBJS)
+PH_OBJS=polyhedra-gl.o normals.o teapot.o $(HACK_TRACK_OBJS)
 polyhedra:     polyhedra.o     $(PH_OBJS)
        $(CC_HACK) -o $@ $@.o   $(PH_OBJS) $(HACK_LIBS)
 
@@ -611,8 +695,11 @@ antinspect:        antinspect.o    $(HACK_TRACK_OBJS)
 providence:    providence.o    $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-pinion:                pinion.o        normals.o glxfonts.o $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   normals.o glxfonts.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+pinion:                pinion.o        $(GEARS_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(GEARS_OBJS) $(HACK_LIBS)
+
+moebiusgears:  moebiusgears.o  $(GEARS_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(GEARS_OBJS) $(HACK_LIBS)
 
 boing:         boing.o         normals.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
@@ -620,318 +707,77 @@ boing:           boing.o         normals.o $(HACK_TRACK_OBJS)
 carousel:      carousel.o      texfont.o $(HACK_TRACK_GRAB_OBJS)
        $(CC_HACK) -o $@ $@.o   texfont.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
 
+fliptext:      fliptext.o      texfont.o $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   texfont.o $(HACK_OBJS) $(HACK_LIBS)
+
+antmaze:       antmaze.o       $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+TANGRAM_OBJS=tangram_shapes.o $(HACK_OBJS)
+tangram:       tangram.o       $(TANGRAM_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(TANGRAM_OBJS) $(HACK_LIBS)
+
+crackberg:     crackberg.o     $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
+
+glhanoi:       glhanoi.o       $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+cube21:                cube21.o        $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
+
+TIMETUNNEL_OBJS = xpm-ximage.o  $(HACK_TRACK_OBJS)
+timetunnel:    timetunnel.o    $(TIMETUNNEL_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(TIMETUNNEL_OBJS) $(XPM_LIBS)
+
+JUGG_OBJS=sphere.o tube.o $(HACK_TRACK_OBJS)
+juggler3d:     juggler3d.o     $(JUGG_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(JUGG_OBJS) $(HACK_LIBS)
+
 dnalogo:       dnalogo.o      tube.o normals.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o  tube.o normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
+topblock:      topblock.o      sphere.o $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   sphere.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+SCHOOL_OBJS=glschool.o glschool_alg.o glschool_gl.o sphere.o tube.o $(HACK_OBJS)
+glschool: $(SCHOOL_OBJS)
+       $(CC_HACK) -o $@ $(SCHOOL_OBJS) $(HACK_LIBS)
+
+glcells:       glcells.o       $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
+
+voronoi:       voronoi.o       $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
+
+lockward:      lockward.o      $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
+
+cubicgrid:     cubicgrid.o     $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+hypnowheel:    hypnowheel.o    $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+TENTACLE_OBJS=normals.o xpm-ximage.o $(HACK_TRACK_OBJS)
+skytentacles:  skytentacles.o  $(TENTACLE_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(TENTACLE_OBJS) $(XPM_LIBS)
+
+SONAR_OBJS=sonar-sim.o sonar-icmp.o texfont.o $(HACK_TRACK_OBJS)
+sonar:         sonar.o         $(SONAR_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(SONAR_OBJS) $(XPM_LIBS)
+
+JIGSAW_OBJS=normals.o $(UTILS_BIN)/spline.o $(HACK_TRACK_GRAB_OBJS)
+jigsaw:                jigsaw.o        $(JIGSAW_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(JIGSAW_OBJS) $(HACK_LIBS)
+
+photopile:     photopile.o     texfont.o $(HACK_GRAB_OBJS)
+       $(CC_HACK) -o $@ $@.o   texfont.o $(HACK_GRAB_OBJS) $(HACK_LIBS)
+
+rubikblocks:   rubikblocks.o   $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
 ##############################################################################
 #
 # DO NOT DELETE: updated by make distdepend
 
-antinspect.o: ../../config.h
-antinspect.o: $(srcdir)/gltrackball.h
-antspotlight.o: $(srcdir)/ants.h
-antspotlight.o: ../../config.h
-antspotlight.o: $(srcdir)/gltrackball.h
-antspotlight.o: $(srcdir)/grab-ximage.h
-antspotlight.o: $(srcdir)/rotator.h
-atlantis.o: $(srcdir)/atlantis.h
-atlantis.o: ../../config.h
-atlantis.o: $(HACK_SRC)/images/sea-texture.xpm
-atlantis.o: $(srcdir)/xpm-ximage.h
-atunnel.o: ../../config.h
-atunnel.o: $(HACK_SRC)/images/tunnel0.xpm
-atunnel.o: $(HACK_SRC)/images/tunnel1.xpm
-atunnel.o: $(HACK_SRC)/images/tunnel2.xpm
-atunnel.o: $(HACK_SRC)/images/tunnel3.xpm
-atunnel.o: $(HACK_SRC)/images/tunnel4.xpm
-atunnel.o: $(HACK_SRC)/images/tunnel5.xpm
-atunnel.o: $(srcdir)/tunnel_draw.h
-atunnel.o: $(srcdir)/xpm-ximage.h
-b_draw.o: $(srcdir)/bubble3d.h
-b_draw.o: ../../config.h
-blinkbox.o: ../../config.h
-blinkbox.o: $(srcdir)/sphere.h
-b_lockglue.o: $(srcdir)/bubble3d.h
-b_lockglue.o: ../../config.h
-blocktube.o: ../../config.h
-blocktube.o: $(HACK_SRC)/images/blocktube.xpm
-blocktube.o: $(srcdir)/xpm-ximage.h
-boing.o: ../../config.h
-boing.o: $(srcdir)/gltrackball.h
-bouncingcow.o: ../../config.h
-bouncingcow.o: $(srcdir)/gllist.h
-bouncingcow.o: $(srcdir)/gltrackball.h
-bouncingcow.o: $(srcdir)/rotator.h
-bouncingcow.o: $(srcdir)/xpm-ximage.h
-boxed.o: $(srcdir)/boxed.h
-boxed.o: ../../config.h
-b_sphere.o: $(srcdir)/bubble3d.h
-b_sphere.o: ../../config.h
-bubble3d.o: $(srcdir)/bubble3d.h
-bubble3d.o: ../../config.h
-buildlwo.o: $(srcdir)/buildlwo.h
-cage.o: ../../config.h
-cage.o: $(srcdir)/e_textures.h
-carousel.o: ../../config.h
-carousel.o: $(srcdir)/gltrackball.h
-carousel.o: $(srcdir)/grab-ximage.h
-carousel.o: $(srcdir)/rotator.h
-carousel.o: $(srcdir)/texfont.h
-chessmodels.o: $(srcdir)/chessmodels.h
-circuit.o: ../../config.h
-circuit.o: $(srcdir)/font-ximage.h
-cow_face.o: $(srcdir)/gllist.h
-cow_hide.o: $(srcdir)/gllist.h
-cow_hoofs.o: $(srcdir)/gllist.h
-cow_horns.o: $(srcdir)/gllist.h
-cow_tail.o: $(srcdir)/gllist.h
-cow_udder.o: $(srcdir)/gllist.h
-cubenetic.o: ../../config.h
-cubenetic.o: $(srcdir)/gltrackball.h
-cubenetic.o: $(srcdir)/rotator.h
-cubestorm.o: ../../config.h
-cubestorm.o: $(srcdir)/gltrackball.h
-cubestorm.o: $(srcdir)/rotator.h
-dangerball.o: ../../config.h
-dangerball.o: $(srcdir)/gltrackball.h
-dangerball.o: $(srcdir)/rotator.h
-dangerball.o: $(srcdir)/sphere.h
-dangerball.o: $(srcdir)/tube.h
-dolphin.o: $(srcdir)/atlantis.h
-endgame.o: $(srcdir)/chessgames.h
-endgame.o: $(srcdir)/chessmodels.h
-endgame.o: ../../config.h
-endgame.o: $(srcdir)/gltrackball.h
-engine.o: ../../config.h
-engine.o: $(srcdir)/gltrackball.h
-engine.o: $(srcdir)/glxfonts.h
-engine.o: $(srcdir)/rotator.h
-extrusion-helix2.o: ../../config.h
-extrusion-helix3.o: ../../config.h
-extrusion-helix4.o: ../../config.h
-extrusion-joinoffset.o: ../../config.h
-extrusion.o: ../../config.h
-extrusion.o: $(srcdir)/gltrackball.h
-extrusion.o: $(srcdir)/rotator.h
-extrusion.o: $(srcdir)/xpm-ximage.h
-extrusion-screw.o: ../../config.h
-extrusion-taper.o: ../../config.h
-extrusion-twistoid.o: ../../config.h
-flipflop.o: ../../config.h
-flipflop.o: $(srcdir)/gltrackball.h
-flipscreen3d.o: ../../config.h
-flipscreen3d.o: $(srcdir)/gltrackball.h
-flipscreen3d.o: $(srcdir)/grab-ximage.h
-flurry.o: ../../config.h
-flurry.o: $(srcdir)/flurry.h
-flurry.o: $(srcdir)/gltrackball.h
-flurry.o: $(srcdir)/rotator.h
-flurry-smoke.o: ../../config.h
-flurry-smoke.o: $(srcdir)/flurry.h
-flurry-smoke.o: $(srcdir)/gltrackball.h
-flurry-smoke.o: $(srcdir)/rotator.h
-flurry-spark.o: ../../config.h
-flurry-spark.o: $(srcdir)/flurry.h
-flurry-spark.o: $(srcdir)/gltrackball.h
-flurry-spark.o: $(srcdir)/rotator.h
-flurry-star.o: ../../config.h
-flurry-star.o: $(srcdir)/flurry.h
-flurry-star.o: $(srcdir)/gltrackball.h
-flurry-star.o: $(srcdir)/rotator.h
-flurry-texture.o: ../../config.h
-flurry-texture.o: $(srcdir)/flurry.h
-flurry-texture.o: $(srcdir)/gltrackball.h
-flurry-texture.o: $(srcdir)/rotator.h
-flyingtoasters.o: ../../config.h
-flyingtoasters.o: $(srcdir)/gllist.h
-flyingtoasters.o: $(srcdir)/gltrackball.h
-flyingtoasters.o: $(HACK_SRC)/images/chromesphere.xpm
-flyingtoasters.o: $(HACK_SRC)/images/toast.xpm
-flyingtoasters.o: $(srcdir)/xpm-ximage.h
-font-ximage.o: ../../config.h
-fps.o: ../../config.h
-gears.o: ../../config.h
-gears.o: $(srcdir)/gltrackball.h
-gears.o: $(srcdir)/rotator.h
-gflux.o: ../../config.h
-gflux.o: $(srcdir)/gltrackball.h
-gflux.o: $(srcdir)/grab-ximage.h
-glblur.o: ../../config.h
-glblur.o: $(srcdir)/gltrackball.h
-glblur.o: $(srcdir)/rotator.h
-gleidescope.o: ../../config.h
-gleidescope.o: $(srcdir)/grab-ximage.h
-gleidescope.o: $(srcdir)/xpm-ximage.h
-glforestfire.o: ../../config.h
-glforestfire.o: $(HACK_SRC)/images/ground.xpm
-glforestfire.o: $(HACK_SRC)/images/tree.xpm
-glforestfire.o: $(srcdir)/xpm-ximage.h
-glknots.o: ../../config.h
-glknots.o: $(srcdir)/gltrackball.h
-glknots.o: $(srcdir)/rotator.h
-glknots.o: $(srcdir)/tube.h
-gllist.o: $(srcdir)/gllist.h
-glmatrix.o: ../../config.h
-glmatrix.o: $(srcdir)/gllist.h
-glmatrix.o: $(HACK_SRC)/images/matrix3.xpm
-glmatrix.o: $(srcdir)/xpm-ximage.h
-glplanet.o: ../../config.h
-glplanet.o: $(srcdir)/gltrackball.h
-glplanet.o: $(HACK_SRC)/images/earth.xpm
-glplanet.o: $(srcdir)/rotator.h
-glplanet.o: $(srcdir)/sphere.h
-glplanet.o: $(srcdir)/xpm-ximage.h
-glslideshow.o: ../../config.h
-glslideshow.o: $(srcdir)/glxfonts.h
-glslideshow.o: $(srcdir)/grab-ximage.h
-glsnake.o: ../../config.h
-glsnake.o: $(srcdir)/glxfonts.h
-gltext.o: ../../config.h
-gltext.o: $(srcdir)/gltrackball.h
-gltext.o: $(srcdir)/glut_roman.h
-gltext.o: $(srcdir)/glutstroke.h
-gltext.o: $(srcdir)/rotator.h
-gltext.o: $(srcdir)/tube.h
-gltrackball.o: ../../config.h
-gltrackball.o: $(srcdir)/gltrackball.h
-gltrackball.o: $(srcdir)/trackball.h
-glut_stroke.o: ../../config.h
-glut_stroke.o: $(srcdir)/glutstroke.h
-glut_swidth.o: ../../config.h
-glut_swidth.o: $(srcdir)/glutstroke.h
-glxfonts.o: ../../config.h
-glxfonts.o: $(srcdir)/glxfonts.h
-grab-ximage.o: ../../config.h
-hypertorus.o: ../../config.h
-jigglypuff.o: ../../config.h
-jigglypuff.o: $(srcdir)/gltrackball.h
-jigglypuff.o: $(HACK_SRC)/images/jigglymap.xpm
-jigglypuff.o: $(srcdir)/xpm-ximage.h
-klein.o: ../../config.h
-klein.o: $(srcdir)/gltrackball.h
-klein.o: $(srcdir)/rotator.h
-lament.o: ../../config.h
-lament.o: $(srcdir)/gltrackball.h
-lament.o: $(HACK_SRC)/images/lament.xpm
-lament.o: $(srcdir)/normals.h
-lament.o: $(srcdir)/rotator.h
-lament.o: $(srcdir)/xpm-ximage.h
-lavalite.o: ../../config.h
-lavalite.o: $(srcdir)/gltrackball.h
-lavalite.o: $(srcdir)/marching.h
-lavalite.o: $(srcdir)/rotator.h
-lavalite.o: $(srcdir)/xpm-ximage.h
-marching.o: ../../config.h
-marching.o: $(srcdir)/marching.h
-marching.o: $(srcdir)/normals.h
-menger.o: ../../config.h
-menger.o: $(srcdir)/gltrackball.h
-menger.o: $(srcdir)/rotator.h
-mirrorblob.o: ../../config.h
-mirrorblob.o: $(srcdir)/grab-ximage.h
-moebius.o: ../../config.h
-moebius.o: $(srcdir)/e_textures.h
-moebius.o: $(srcdir)/gltrackball.h
-moebius.o: $(srcdir)/rotator.h
-molecule.o: ../../config.h
-molecule.o: $(srcdir)/gltrackball.h
-molecule.o: $(srcdir)/glxfonts.h
-molecule.o: molecules.h
-molecule.o: $(srcdir)/rotator.h
-molecule.o: $(srcdir)/sphere.h
-molecule.o: $(srcdir)/tube.h
-morph3d.o: ../../config.h
-noof.o: ../../config.h
-normals.o: ../../config.h
-normals.o: $(srcdir)/normals.h
-pinion.o: ../../config.h
-pinion.o: $(srcdir)/gltrackball.h
-pinion.o: $(srcdir)/glxfonts.h
-pinion.o: $(srcdir)/normals.h
-pipeobjs.o: $(srcdir)/buildlwo.h
-pipes.o: $(srcdir)/buildlwo.h
-pipes.o: ../../config.h
-polyhedra-gl.o: ../../config.h
-polyhedra-gl.o: $(srcdir)/gltrackball.h
-polyhedra-gl.o: $(srcdir)/glxfonts.h
-polyhedra-gl.o: $(srcdir)/normals.h
-polyhedra-gl.o: $(srcdir)/polyhedra.h
-polyhedra-gl.o: $(srcdir)/rotator.h
-polyhedra.o: ../../config.h
-polyhedra.o: $(srcdir)/polyhedra.h
-polytopes.o: ../../config.h
-providence.o: ../../config.h
-providence.o: $(srcdir)/gltrackball.h
-pulsar.o: ../../config.h
-pulsar.o: $(srcdir)/xpm-ximage.h
-queens.o: ../../config.h
-queens.o: $(srcdir)/gltrackball.h
-rotator.o: ../../config.h
-rotator.o: $(srcdir)/rotator.h
-rubik.o: ../../config.h
-s1_1.o: $(srcdir)/gllist.h
-s1_2.o: $(srcdir)/gllist.h
-s1_3.o: $(srcdir)/gllist.h
-s1_4.o: $(srcdir)/gllist.h
-s1_5.o: $(srcdir)/gllist.h
-s1_6.o: $(srcdir)/gllist.h
-s1_b.o: $(srcdir)/gllist.h
-sballs.o: ../../config.h
-sballs.o: $(HACK_SRC)/images/sball-bg.xpm
-sballs.o: $(HACK_SRC)/images/sball.xpm
-sballs.o: $(srcdir)/xpm-ximage.h
-shark.o: $(srcdir)/atlantis.h
-sierpinski3d.o: ../../config.h
-sierpinski3d.o: $(srcdir)/gltrackball.h
-sierpinski3d.o: $(srcdir)/rotator.h
-spheremonics.o: ../../config.h
-spheremonics.o: $(srcdir)/gltrackball.h
-spheremonics.o: $(srcdir)/glxfonts.h
-spheremonics.o: $(srcdir)/normals.h
-spheremonics.o: $(srcdir)/rotator.h
-sphere.o: ../../config.h
-sproingies.o: ../../config.h
-sproingies.o: $(srcdir)/gllist.h
-sproingiewrap.o: ../../config.h
-stairs.o: ../../config.h
-stairs.o: $(srcdir)/e_textures.h
-starwars.o: ../../config.h
-starwars.o: $(srcdir)/glut_roman.h
-starwars.o: $(srcdir)/glutstroke.h
-starwars.o: $(srcdir)/texfont.h
-stonerview-move.o: ../../config.h
-stonerview-move.o: $(srcdir)/stonerview-move.h
-stonerview-move.o: $(srcdir)/stonerview-osc.h
-stonerview.o: ../../config.h
-stonerview-osc.o: ../../config.h
-stonerview-osc.o: $(srcdir)/stonerview-osc.h
-stonerview.o: $(srcdir)/stonerview-move.h
-stonerview-view.o: ../../config.h
-stonerview-view.o: $(srcdir)/stonerview-move.h
-stonerview-view.o: $(srcdir)/stonerview-osc.h
-superquadrics.o: ../../config.h
-swim.o: $(srcdir)/atlantis.h
-swim.o: ../../config.h
-texfont.o: ../../config.h
-texfont.o: $(srcdir)/texfont.h
-toast2.o: $(srcdir)/gllist.h
-toaster_base.o: $(srcdir)/gllist.h
-toaster_handle2.o: $(srcdir)/gllist.h
-toaster_handle.o: $(srcdir)/gllist.h
-toaster_jet.o: $(srcdir)/gllist.h
-toaster_knob.o: $(srcdir)/gllist.h
-toaster.o: $(srcdir)/gllist.h
-toaster_slots.o: $(srcdir)/gllist.h
-toaster_wing.o: $(srcdir)/gllist.h
-toast.o: $(srcdir)/gllist.h
-trackball.o: ../../config.h
-trackball.o: $(srcdir)/trackball.h
-tube.o: ../../config.h
-tube.o: $(srcdir)/tube.h
-tunnel_draw.o: ../../config.h
-tunnel_draw.o: $(srcdir)/tunnel_draw.h
-whale.o: $(srcdir)/atlantis.h
-xlock-gl.o: ../../config.h
-xpm-ximage.o: ../../config.h
-xscreensaver-gl-helper.o: ../../config.h
-