From http://www.jwz.org/xscreensaver/xscreensaver-5.38.tar.gz
[xscreensaver] / hacks / glx / Makefile.in
index 054ac7ab94fa579567a9bd38655dfe3aac9675c6..56443f1b29552c2d79319f7e1e8b9b2481e7f48f 100644 (file)
@@ -48,13 +48,14 @@ X_LIBS              = @X_LIBS@
 X_PRE_LIBS     = @X_PRE_LIBS@
 X_EXTRA_LIBS   = @X_EXTRA_LIBS@
 XMU_LIBS       = @XMU_LIBS@
+XFT_LIBS       = @XFT_LIBS@
 
 # Note: see comment in ../../driver/Makefile.in for explanation of X_LIBS, etc.
 #
 HACK_PRE       = $(LIBS) $(X_LIBS)
-HACK_POST     = $(X_PRE_LIBS) -lXt -lX11 $(XMU_LIBS) -lXext $(X_EXTRA_LIBS) -lm
+HACK_POST     = $(X_PRE_LIBS) $(XFT_LIBS) -lXt -lX11 $(XMU_LIBS) -lXext $(X_EXTRA_LIBS) -lm
 HACK_POST2     = @GL_LIBS@ @HACK_LIBS@ $(HACK_POST)
-HACK_LIBS      = $(HACK_PRE)                       $(HACK_POST2)
+HACK_LIBS      = $(HACK_PRE)           @ANIM_LIBS@ $(HACK_POST2)
 XPM_LIBS       = $(HACK_PRE)            @XPM_LIBS@ $(HACK_POST2)
 GLE_LIBS       = $(HACK_PRE) @GLE_LIBS@ @XPM_LIBS@ $(HACK_POST2)
 TEXT_LIBS      = @PTY_LIBS@
@@ -63,20 +64,28 @@ MINIXPM             = $(UTILS_BIN)/minixpm.o
 HACK_SRC       = $(srcdir)/..
 HACK_BIN       = ..
 UTILS_SRC      = $(HACK_SRC)/../utils
+JWXYZ_SRC      = $(HACK_SRC)/../jwxyz
 UTILS_BIN      = $(HACK_BIN)/../utils
+JWXYZ_BIN      = $(HACK_BIN)/../jwxyz
 
-INCLUDES_1     = -I. -I$(srcdir) -I$(UTILS_SRC) -I$(HACK_SRC) -I../..
+INCLUDES_1     = -I. -I$(srcdir) -I$(UTILS_SRC) -I$(JWXYZ_SRC) -I$(HACK_SRC) -I../..
 INCLUDES       = $(INCLUDES_1) @INCLUDES@
 
-UTILDIR_OBJS   = $(UTILS_SRC)/colors.o $(UTILS_SRC)/hsv.o \
-                 $(UTILS_SRC)/resources.o $(UTILS_SRC)/usleep.o \
-                 $(UTILS_SRC)/visual.o $(UTILS_SRC)/visual-gl.o \
-                 $(UTILS_SRC)/yarandom.o $(UTILS_SRC)/xshm.o \
-                 $(UTILS_SRC)/textclient.o
-HACKDIR_OBJS   = $(HACK_SRC)/screenhack.o $(UTILS_SRC)/xlockmore.o \
+UTILDIR_OBJS   = $(UTILS_BIN)/colors.o $(UTILS_BIN)/grabclient.o \
+                 $(UTILS_BIN)/hsv.o $(UTILS_BIN)/resources.o \
+                 $(UTILS_BIN)/usleep.o $(UTILS_BIN)/visual.o \
+                 $(UTILS_BIN)/xmu.o $(UTILS_BIN)/xft.o \
+                 $(UTILS_BIN)/utf8wc.o $(UTILS_BIN)/logo.o \
+                 $(UTILS_BIN)/minixpm.o $(UTILS_BIN)/visual-gl.o \
+                 $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/xshm.o \
+                 $(UTILS_BIN)/textclient.o $(UTILS_BIN)/async_netdb.o \
+                 $(UTILS_BIN)/aligned_malloc.o $(UTILS_BIN)/thread_util.o \
+                 $(UTILS_BIN)/spline.o $(UTILS_BIN)/pow2.o
+JWXYZ_OBJS     = $(JWXYZ_BIN)/jwzgles.o
+HACKDIR_OBJS   = $(HACK_SRC)/screenhack.o $(HACK_SRC)/xlockmore.o \
                  $(HACK_SRC)/fps.o
 
-SRCS           = xscreensaver-gl-helper.c normals.c glxfonts.c fps-gl.c \
+SRCS           = xscreensaver-gl-helper.c normals.c erase-gl.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 lament_model.c \
                  moebius.c morph3d.c pipeobjs.c pipes.c rubik.c s1_1.c s1_2.c \
@@ -89,7 +98,7 @@ SRCS          = xscreensaver-gl-helper.c normals.c glxfonts.c fps-gl.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 dnalogo.c \
+                 menger.c engine.c flipscreen3d.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 \
@@ -113,11 +122,15 @@ SRCS              = xscreensaver-gl-helper.c normals.c glxfonts.c fps-gl.c \
                  jigsaw.c photopile.c dropshadow.c rubikblocks.c surfaces.c \
                  hilbert.c companion.c companion_quad.c companion_disc.c \
                  companion_heart.c tronbit.c tronbit_idle1.c tronbit_idle2.c \
-                 tronbit_no.c tronbit_yes.c jwzgles.c kaleidocycle.c \
-                 quasicrystal.c unknownpleasures.c geodesic.c \
-                 projectiveplane.c winduprobot.c robot.c robot-wireframe.c
-
-OBJS           = xscreensaver-gl-helper.o normals.o glxfonts.o fps-gl.o \
+                 tronbit_no.c tronbit_yes.c kaleidocycle.c \
+                 quasicrystal.c unknownpleasures.c geodesic.c geodesicgears.c \
+                 projectiveplane.c winduprobot.c robot.c robot-wireframe.c \
+                 cityflow.c romanboy.c splitflap.c splitflap_obj.c \
+                 dymaxionmap.c unicrud.c energystream.c raverhoop.c \
+                 hydrostat.c discoball.c cubetwist.c cubestack.c splodesic.c \
+                 hexstrut.c vigilance.c seccam.c esper.c
+
+OBJS           = xscreensaver-gl-helper.o normals.o erase-gl.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 lament_model.o \
                  moebius.o morph3d.o pipeobjs.o pipes.o rubik.o s1_1.o s1_2.o \
@@ -130,7 +143,7 @@ OBJS                = xscreensaver-gl-helper.o normals.o glxfonts.o fps-gl.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 dnalogo.o \
+                 menger.o engine.o flipscreen3d.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 \
@@ -154,9 +167,13 @@ OBJS               = xscreensaver-gl-helper.o normals.o glxfonts.o fps-gl.o \
                  jigsaw.o photopile.o dropshadow.o rubikblocks.o surfaces.o \
                  hilbert.o companion.o companion_quad.o companion_disc.o \
                  companion_heart.o tronbit.o tronbit_idle1.o tronbit_idle2.o \
-                 tronbit_no.o tronbit_yes.o jwzgles.o kaleidocycle.o \
-                 quasicrystal.o unknownpleasures.o geodesic.o \
-                 projectiveplane.o winduprobot.o robot.o robot-wireframe.o
+                 tronbit_no.o tronbit_yes.o kaleidocycle.o \
+                 quasicrystal.o unknownpleasures.o geodesic.o geodesicgears.o \
+                 projectiveplane.o winduprobot.o robot.o robot-wireframe.o \
+                 cityflow.o romanboy.o splitflap.o splitflap_obj.o \
+                 dymaxionmap.o unicrud.o energystream.o raverhoop.o \
+                 hydrostat.o discoball.o cubetwist.o cubestack.o splodesic.o \
+                 hexstrut.o vigilance.o seccam.o esper.o
 
 GL_EXES                = cage gears moebius pipes sproingies stairs superquadrics \
                  morph3d rubik atlantis lament bubble3d glplanet pulsar \
@@ -173,7 +190,10 @@ GL_EXES            = cage gears moebius pipes sproingies stairs superquadrics \
                  lockward cubicgrid hypnowheel skytentacles jigsaw photopile \
                  rubikblocks surfaces hilbert companioncube tronbit \
                  kaleidocycle quasicrystal unknownpleasures geodesic \
-                 projectiveplane winduprobot
+                 geodesicgears projectiveplane winduprobot cityflow romanboy \
+                 splitflap dymaxionmap unicrud energystream raverhoop \
+                 hydrostat discoball cubetwist cubestack splodesic \
+                 hexstrut vigilance esper
 GLE_EXES       = extrusion
 SUID_EXES      = sonar
 GL_UTIL_EXES   = xscreensaver-gl-helper
@@ -182,29 +202,33 @@ 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)
+ANIM_OBJS      = recanim-gl.o
+ANIM_LIBS      = @XPM_LIBS@
 EXES           = @GL_UTIL_EXES@ $(HACK_EXES)
 
 RETIRED_EXES   = @RETIRED_GL_EXES@
 RETIRED_GL_EXES        = glforestfire
 
-FPS_OBJS       = glxfonts.o texfont.o $(HACK_BIN)/fps.o fps-gl.o
-HACK_OBJS      = $(JWZGLES_OBJS) $(HACK_BIN)/screenhack.o \
-                 xlockmore-gl.o xlock-gl-utils.o ${FPS_OBJS} \
-                 $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
+FPS_OBJS       = texfont.o $(HACK_BIN)/fps.o fps-gl.o @XFT_OBJS@
+HACK_OBJS      = $(JWZGLES_OBJS) $(HACK_BIN)/screenhack.o @ANIM_OBJS@ \
+                 $(HACK_BIN)/xlockmore.o xlock-gl-utils.o erase-gl.o \
+                 ${FPS_OBJS} $(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 \
-                 $(UTILS_BIN)/colors.o
+                 $(UTILS_BIN)/colors.o $(UTILS_BIN)/async_netdb.o \
+                 $(UTILS_BIN)/aligned_malloc.o $(UTILS_BIN)/thread_util.o \
+                 $(UTILS_BIN)/utf8wc.o $(UTILS_BIN)/pow2.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 \
+                 grab-ximage.h tube.h sphere.h boxed.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 dropshadow.h starwars.h \
-                 jwzgles.h jwzglesI.h teapot2.h dnapizza.h
+                 glutstroke.h glut_roman.h glut_mroman.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 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 \
+                 dropshadow.h starwars.h teapot2.h dnapizza.h curlicue.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 \
@@ -228,11 +252,15 @@ GL_MEN            = atlantis.man boxed.man bubble3d.man cage.man circuit.man \
                  photopile.man rubikblocks.man surfaces.man hilbert.man \
                  companioncube.man tronbit.man kaleidocycle.man \
                  quasicrystal.man unknownpleasures.man geodesic.man \
-                 projectiveplane.man winduprobot.man
+                 geodesicgears.man projectiveplane.man winduprobot.man \
+                 cityflow.man romanboy.man splitflap.man dymaxionmap.man \
+                 unicrud.man energystream.man raverhoop.man hydrostat.man \
+                 discoball.man cubetwist.man cubestack.man splodesic.man \
+                 hexstrut.man vigilance.man esper.man
 MEN            = @GL_MEN@
 RETIRED_MEN    = glforestfire.man
 EXTRAS         = README Makefile.in dxf2gl.pl vrml2gl.pl wfront2gl.pl \
-                 molecules.sh starwars.txt *.dxf
+                 molecules.sh starwars.txt zalgo.txt *.dxf
 
 TARFILES       = $(SRCS) $(HDRS) $(GL_MEN) $(RETIRED_MEN) $(EXTRAS)
 
@@ -408,6 +436,7 @@ distdepend:: molecules.h
          sed -e '/^#.*/d'                                                  \
              -e 's@ \./@ @g;s@ /[^ ]*@@g;/^.*:$$/d'                        \
              -e 's@\.\./\.\./utils@$$(UTILS_SRC)@g'                        \
+             -e 's@\.\./\.\./jwxyz@$$(JWXYZ_SRC)@g'                        \
              -e 's@\.\./glx/@@g'                                           \
              -e 's@ \.\./@ $$(HACK_SRC)/@g'                                \
              -e 's@ \([^$$]\)@ $$(srcdir)/\1@g'                            \
@@ -416,7 +445,6 @@ distdepend:: molecules.h
              -e 's@ $$(srcdir)/\(.*molecules.h\)@ \1@g' ;                  \
          echo ''                                                           \
        ) > /tmp/distdepend.$$$$ &&                                         \
-       mv Makefile.in Makefile.in.bak &&                                   \
        mv /tmp/distdepend.$$$$ Makefile.in
 
 
@@ -461,18 +489,30 @@ $(UTILS_BIN)/hsv.o:               $(UTILS_SRC)/hsv.c
 $(UTILS_BIN)/resources.o:      $(UTILS_SRC)/resources.c
 $(UTILS_BIN)/usleep.o:         $(UTILS_SRC)/usleep.c
 $(UTILS_BIN)/visual.o:         $(UTILS_SRC)/visual.c
+$(UTILS_BIN)/xmu.o:            $(UTILS_SRC)/xmu.c
+$(UTILS_BIN)/xft.o:            $(UTILS_SRC)/xft.c
+$(UTILS_BIN)/utf8wc.o:         $(UTILS_SRC)/utf8wc.c
+$(UTILS_BIN)/logo.o:           $(UTILS_SRC)/logo.c
+$(UTILS_BIN)/minixpm.o:                $(UTILS_SRC)/minixpm.c
 $(UTILS_BIN)/visual-gl.o:      $(UTILS_SRC)/visual-gl.c
 $(UTILS_BIN)/yarandom.o:       $(UTILS_SRC)/yarandom.c
 $(UTILS_BIN)/xshm.o:           $(UTILS_SRC)/xshm.c
 $(UTILS_BIN)/textclient.o:     $(UTILS_SRC)/textclient.c
+$(UTILS_BIN)/async_netdb.o:    $(UTILS_SRC)/async_netdb.c
+$(UTILS_BIN)/aligned_malloc.o: $(UTILS_SRC)/aligned_malloc.c
+$(UTILS_BIN)/thread_util.o:    $(UTILS_SRC)/thread_util.c
+$(UTILS_BIN)/spline.o:         $(UTILS_SRC)/spline.c
+$(UTILS_BIN)/pow2.o:           $(UTILS_SRC)/pow2.c
 $(HACK_BIN)/screenhack.o:      $(HACK_SRC)/screenhack.c
 $(HACK_BIN)/xlockmore.o:       $(HACK_SRC)/xlockmore.c
 $(HACK_BIN)/fps.o:             $(HACK_SRC)/fps.c
 
 $(UTILDIR_OBJS):
-       $(MAKE) -C $(UTILS_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+       cd $(UTILS_BIN) ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+$(JWXYZ_OBJS):
+       cd $(JWXYZ_BIN) ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
 $(HACKDIR_OBJS):
-       $(MAKE) -C $(HACK_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+       cd $(HACK_BIN)  ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
 
 
 # How we build object files in this directory.
@@ -489,12 +529,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 xlockmore.c.
+# These hacks use a slightly-differently-compiled variant of recanim.c.
 # This is how to make the the other .o file from it.
 #
 XLM_CFLAGS=-DUSE_GL $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS)
-xlockmore-gl.o: $(HACK_SRC)/xlockmore.c
-       $(CC) -o $@ -c $(XLM_CFLAGS) $(HACK_SRC)/xlockmore.c
+recanim-gl.o: $(HACK_SRC)/recanim.c
+       $(CC) -o $@ -c $(XLM_CFLAGS) $(HACK_SRC)/recanim.c
 
 CC_HACK                = $(CC) $(LDFLAGS)
 
@@ -521,7 +561,8 @@ FLURRY_OBJS = $(FLURRY_OBJS_1) $(HACK_OBJS)
 flurry:                flurry.o        $(FLURRY_OBJS)
        $(CC_HACK) -o $@ $@.o   $(FLURRY_OBJS) $(HACK_LIBS) -lm
 
-GEARS_OBJS=normals.o involute.o $(HACK_TRACK_OBJS)
+GEARS_OBJS_1=normals.o involute.o
+GEARS_OBJS=$(GEARS_OBJS_1) $(HACK_TRACK_OBJS)
 gears:         gears.o         tube.o $(GEARS_OBJS)
        $(CC_HACK) -o $@ $@.o   tube.o $(GEARS_OBJS) $(HACK_LIBS)
 
@@ -567,6 +608,9 @@ PLANET_OBJS=sphere.o xpm-ximage.o $(HACK_TRACK_OBJS)
 glplanet:      glplanet.o      $(PLANET_OBJS)
        $(CC_HACK) -o $@ $@.o   $(PLANET_OBJS) $(XPM_LIBS)
 
+dymaxionmap:   dymaxionmap.o   normals.o $(PLANET_OBJS)
+       $(CC_HACK) -o $@ $@.o   normals.o $(PLANET_OBJS) $(XPM_LIBS)
+
 pulsar:                pulsar.o        $(HACK_OBJS) xpm-ximage.o
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) xpm-ximage.o $(XPM_LIBS)
 
@@ -596,8 +640,8 @@ DB_OBJS=sphere.o tube.o $(HACK_TRACK_OBJS)
 dangerball:    dangerball.o    $(DB_OBJS)
        $(CC_HACK) -o $@ $@.o   $(DB_OBJS) $(HACK_LIBS)
 
-circuit:       circuit.o       font-ximage.o $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   font-ximage.o $(HACK_OBJS) $(HACK_LIBS)
+circuit:       circuit.o       $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
 
 menger:                menger.o        $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
@@ -672,9 +716,8 @@ bouncingcow:                        $(COW_OBJS)
        $(CC_HACK) -o $@        $(COW_OBJS) $(XPM_LIBS)
 
 ROBO_OBJS=\
-  robot.o robot-wireframe.o \
-  gllist.o xpm-ximage.o normals.o involute.o sphere.o \
-  winduprobot.o $(TEXT) $(HACK_TRACK_OBJS)
+  robot.o robot-wireframe.o gllist.o xpm-ximage.o sphere.o \
+  winduprobot.o $(GEARS_OBJS_1) $(TEXT) $(HACK_TRACK_OBJS)
 winduprobot:                   $(ROBO_OBJS)
        $(CC_HACK) -o $@        $(ROBO_OBJS) $(XPM_LIBS) $(TEXT_LIBS)
 
@@ -682,6 +725,13 @@ winduprobot_dxf::
        ./dxf2gl.pl --smooth --layers robot.dxf robot.c
        ./dxf2gl.pl --wireframe robot-wireframe.dxf robot-wireframe.c
 
+CAM_OBJS=seccam.o gllist.o vigilance.o $(HACK_TRACK_OBJS)
+vigilance:                     $(CAM_OBJS)
+       $(CC_HACK) -o $@        $(CAM_OBJS) $(HACK_LIBS)
+
+seccam_dxf::
+       ./dxf2gl.pl --smooth --layers seccam.dxf seccam.c
+
 glslideshow:   glslideshow.o   $(HACK_GRAB_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_GRAB_OBJS) $(HACK_LIBS)
 
@@ -700,6 +750,9 @@ hypertorus: hypertorus.o    $(HACK_TRACK_OBJS)
 projectiveplane:       projectiveplane.o       $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
+romanboy:      romanboy.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)
 
@@ -725,7 +778,6 @@ 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)
 
-
 molecules.h:
        @echo "building molecules.h from $(HACK_SRC)/images/molecules/*.pdb"; \
        UTILS_SRC="$(UTILS_SRC)" \
@@ -797,8 +849,8 @@ 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)
+dnalogo:       dnalogo.o      tube.o sphere.o normals.o $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o  tube.o sphere.o normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
 topblock:      topblock.o      sphere.o tube.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   sphere.o tube.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
@@ -869,6 +921,51 @@ unknownpleasures: unknownpleasures.o       $(HACK_TRACK_OBJS)
 geodesic: geodesic.o            normals.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o    normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
+geodesicgears: geodesicgears.o  $(GEARS_OBJS)
+       $(CC_HACK) -o $@ $@.o    $(GEARS_OBJS) $(HACK_LIBS)
+
+cityflow:      cityflow.o      $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+splitflap_dxf::
+       ./dxf2gl.pl --normalize --smooth --layers splitflap.dxf splitflap_obj.c
+
+FLAP_OBJS=splitflap_obj.o gllist.o splitflap.o $(TEXT) $(HACK_TRACK_OBJS)
+splitflap:                     $(FLAP_OBJS)
+       $(CC_HACK) -o $@        $(FLAP_OBJS) $(XPM_LIBS) $(TEXT_LIBS)
+
+unicrud:       unicrud.o       $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+ES_OBJS=xpm-ximage.o $(HACK_TRACK_OBJS)
+energystream:  energystream.o  $(ES_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(ES_OBJS) $(XPM_LIBS) $(HACK_LIBS)
+
+raverhoop:     raverhoop.o     $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+HSTAT_OBJS=sphere.o normals.o $(HACK_TRACK_OBJS)
+hydrostat:     hydrostat.o     $(HSTAT_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HSTAT_OBJS) $(HACK_LIBS)
+
+discoball:     discoball.o     $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+cubetwist:     cubetwist.o     $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+cubestack:     cubestack.o     $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+splodesic:     splodesic.o     $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+hexstrut:      hexstrut.o       normals.o $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o    normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+esper: esper.o                 $(HACK_GRAB_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_GRAB_OBJS) $(HACK_LIBS)
+
 ##############################################################################
 #
 # DO NOT DELETE: updated by make distdepend
@@ -876,17 +973,15 @@ geodesic: geodesic.o               normals.o $(HACK_TRACK_OBJS)
 antinspect.o: ../../config.h
 antinspect.o: $(HACK_SRC)/fps.h
 antinspect.o: $(srcdir)/gltrackball.h
-antinspect.o: $(srcdir)/jwzglesI.h
-antinspect.o: $(srcdir)/jwzgles.h
 antinspect.o: $(HACK_SRC)/screenhackI.h
 antinspect.o: $(srcdir)/sphere.h
 antinspect.o: $(UTILS_SRC)/colors.h
+antinspect.o: $(UTILS_SRC)/erase.h
 antinspect.o: $(UTILS_SRC)/grabscreen.h
 antinspect.o: $(UTILS_SRC)/hsv.h
 antinspect.o: $(UTILS_SRC)/resources.h
 antinspect.o: $(UTILS_SRC)/usleep.h
 antinspect.o: $(UTILS_SRC)/visual.h
-antinspect.o: $(UTILS_SRC)/xshm.h
 antinspect.o: $(UTILS_SRC)/yarandom.h
 antinspect.o: $(HACK_SRC)/xlockmoreI.h
 antinspect.o: $(HACK_SRC)/xlockmore.h
@@ -894,19 +989,17 @@ antmaze.o: $(srcdir)/ants.h
 antmaze.o: ../../config.h
 antmaze.o: $(HACK_SRC)/fps.h
 antmaze.o: $(srcdir)/gltrackball.h
-antmaze.o: $(srcdir)/jwzglesI.h
-antmaze.o: $(srcdir)/jwzgles.h
 antmaze.o: $(srcdir)/rotator.h
 antmaze.o: $(HACK_SRC)/screenhackI.h
 antmaze.o: $(srcdir)/sphere.h
 antmaze.o: $(srcdir)/tube.h
 antmaze.o: $(UTILS_SRC)/colors.h
+antmaze.o: $(UTILS_SRC)/erase.h
 antmaze.o: $(UTILS_SRC)/grabscreen.h
 antmaze.o: $(UTILS_SRC)/hsv.h
 antmaze.o: $(UTILS_SRC)/resources.h
 antmaze.o: $(UTILS_SRC)/usleep.h
 antmaze.o: $(UTILS_SRC)/visual.h
-antmaze.o: $(UTILS_SRC)/xshm.h
 antmaze.o: $(UTILS_SRC)/yarandom.h
 antmaze.o: $(HACK_SRC)/xlockmoreI.h
 antmaze.o: $(HACK_SRC)/xlockmore.h
@@ -915,19 +1008,17 @@ antspotlight.o: ../../config.h
 antspotlight.o: $(HACK_SRC)/fps.h
 antspotlight.o: $(srcdir)/gltrackball.h
 antspotlight.o: $(srcdir)/grab-ximage.h
-antspotlight.o: $(srcdir)/jwzglesI.h
-antspotlight.o: $(srcdir)/jwzgles.h
 antspotlight.o: $(srcdir)/rotator.h
 antspotlight.o: $(HACK_SRC)/screenhackI.h
 antspotlight.o: $(srcdir)/sphere.h
 antspotlight.o: $(srcdir)/tube.h
 antspotlight.o: $(UTILS_SRC)/colors.h
+antspotlight.o: $(UTILS_SRC)/erase.h
 antspotlight.o: $(UTILS_SRC)/grabscreen.h
 antspotlight.o: $(UTILS_SRC)/hsv.h
 antspotlight.o: $(UTILS_SRC)/resources.h
 antspotlight.o: $(UTILS_SRC)/usleep.h
 antspotlight.o: $(UTILS_SRC)/visual.h
-antspotlight.o: $(UTILS_SRC)/xshm.h
 antspotlight.o: $(UTILS_SRC)/yarandom.h
 antspotlight.o: $(HACK_SRC)/xlockmoreI.h
 antspotlight.o: $(HACK_SRC)/xlockmore.h
@@ -935,16 +1026,14 @@ atlantis.o: $(srcdir)/atlantis.h
 atlantis.o: ../../config.h
 atlantis.o: $(HACK_SRC)/fps.h
 atlantis.o: $(HACK_SRC)/images/sea-texture.xpm
-atlantis.o: $(srcdir)/jwzglesI.h
-atlantis.o: $(srcdir)/jwzgles.h
 atlantis.o: $(HACK_SRC)/screenhackI.h
 atlantis.o: $(UTILS_SRC)/colors.h
+atlantis.o: $(UTILS_SRC)/erase.h
 atlantis.o: $(UTILS_SRC)/grabscreen.h
 atlantis.o: $(UTILS_SRC)/hsv.h
 atlantis.o: $(UTILS_SRC)/resources.h
 atlantis.o: $(UTILS_SRC)/usleep.h
 atlantis.o: $(UTILS_SRC)/visual.h
-atlantis.o: $(UTILS_SRC)/xshm.h
 atlantis.o: $(UTILS_SRC)/yarandom.h
 atlantis.o: $(HACK_SRC)/xlockmoreI.h
 atlantis.o: $(HACK_SRC)/xlockmore.h
@@ -957,17 +1046,15 @@ 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)/jwzglesI.h
-atunnel.o: $(srcdir)/jwzgles.h
 atunnel.o: $(HACK_SRC)/screenhackI.h
 atunnel.o: $(srcdir)/tunnel_draw.h
 atunnel.o: $(UTILS_SRC)/colors.h
+atunnel.o: $(UTILS_SRC)/erase.h
 atunnel.o: $(UTILS_SRC)/grabscreen.h
 atunnel.o: $(UTILS_SRC)/hsv.h
 atunnel.o: $(UTILS_SRC)/resources.h
 atunnel.o: $(UTILS_SRC)/usleep.h
 atunnel.o: $(UTILS_SRC)/visual.h
-atunnel.o: $(UTILS_SRC)/xshm.h
 atunnel.o: $(UTILS_SRC)/yarandom.h
 atunnel.o: $(HACK_SRC)/xlockmoreI.h
 atunnel.o: $(HACK_SRC)/xlockmore.h
@@ -975,63 +1062,55 @@ atunnel.o: $(srcdir)/xpm-ximage.h
 b_draw.o: $(srcdir)/bubble3d.h
 b_draw.o: ../../config.h
 b_draw.o: $(HACK_SRC)/fps.h
-b_draw.o: $(srcdir)/jwzglesI.h
-b_draw.o: $(srcdir)/jwzgles.h
 b_draw.o: $(HACK_SRC)/screenhackI.h
 b_draw.o: $(UTILS_SRC)/colors.h
+b_draw.o: $(UTILS_SRC)/erase.h
 b_draw.o: $(UTILS_SRC)/grabscreen.h
 b_draw.o: $(UTILS_SRC)/hsv.h
 b_draw.o: $(UTILS_SRC)/resources.h
 b_draw.o: $(UTILS_SRC)/usleep.h
 b_draw.o: $(UTILS_SRC)/visual.h
-b_draw.o: $(UTILS_SRC)/xshm.h
 b_draw.o: $(UTILS_SRC)/yarandom.h
 b_draw.o: $(HACK_SRC)/xlockmoreI.h
 blinkbox.o: ../../config.h
 blinkbox.o: $(HACK_SRC)/fps.h
-blinkbox.o: $(srcdir)/jwzglesI.h
-blinkbox.o: $(srcdir)/jwzgles.h
 blinkbox.o: $(HACK_SRC)/screenhackI.h
 blinkbox.o: $(srcdir)/sphere.h
 blinkbox.o: $(UTILS_SRC)/colors.h
+blinkbox.o: $(UTILS_SRC)/erase.h
 blinkbox.o: $(UTILS_SRC)/grabscreen.h
 blinkbox.o: $(UTILS_SRC)/hsv.h
 blinkbox.o: $(UTILS_SRC)/resources.h
 blinkbox.o: $(UTILS_SRC)/usleep.h
 blinkbox.o: $(UTILS_SRC)/visual.h
-blinkbox.o: $(UTILS_SRC)/xshm.h
 blinkbox.o: $(UTILS_SRC)/yarandom.h
 blinkbox.o: $(HACK_SRC)/xlockmoreI.h
 blinkbox.o: $(HACK_SRC)/xlockmore.h
 b_lockglue.o: $(srcdir)/bubble3d.h
 b_lockglue.o: ../../config.h
 b_lockglue.o: $(HACK_SRC)/fps.h
-b_lockglue.o: $(srcdir)/jwzglesI.h
-b_lockglue.o: $(srcdir)/jwzgles.h
 b_lockglue.o: $(HACK_SRC)/screenhackI.h
 b_lockglue.o: $(UTILS_SRC)/colors.h
+b_lockglue.o: $(UTILS_SRC)/erase.h
 b_lockglue.o: $(UTILS_SRC)/grabscreen.h
 b_lockglue.o: $(UTILS_SRC)/hsv.h
 b_lockglue.o: $(UTILS_SRC)/resources.h
 b_lockglue.o: $(UTILS_SRC)/usleep.h
 b_lockglue.o: $(UTILS_SRC)/visual.h
-b_lockglue.o: $(UTILS_SRC)/xshm.h
 b_lockglue.o: $(UTILS_SRC)/yarandom.h
 b_lockglue.o: $(HACK_SRC)/xlockmoreI.h
 b_lockglue.o: $(HACK_SRC)/xlockmore.h
 blocktube.o: ../../config.h
 blocktube.o: $(HACK_SRC)/fps.h
 blocktube.o: $(HACK_SRC)/images/blocktube.xpm
-blocktube.o: $(srcdir)/jwzglesI.h
-blocktube.o: $(srcdir)/jwzgles.h
 blocktube.o: $(HACK_SRC)/screenhackI.h
 blocktube.o: $(UTILS_SRC)/colors.h
+blocktube.o: $(UTILS_SRC)/erase.h
 blocktube.o: $(UTILS_SRC)/grabscreen.h
 blocktube.o: $(UTILS_SRC)/hsv.h
 blocktube.o: $(UTILS_SRC)/resources.h
 blocktube.o: $(UTILS_SRC)/usleep.h
 blocktube.o: $(UTILS_SRC)/visual.h
-blocktube.o: $(UTILS_SRC)/xshm.h
 blocktube.o: $(UTILS_SRC)/yarandom.h
 blocktube.o: $(HACK_SRC)/xlockmoreI.h
 blocktube.o: $(HACK_SRC)/xlockmore.h
@@ -1039,16 +1118,14 @@ blocktube.o: $(srcdir)/xpm-ximage.h
 boing.o: ../../config.h
 boing.o: $(HACK_SRC)/fps.h
 boing.o: $(srcdir)/gltrackball.h
-boing.o: $(srcdir)/jwzglesI.h
-boing.o: $(srcdir)/jwzgles.h
 boing.o: $(HACK_SRC)/screenhackI.h
 boing.o: $(UTILS_SRC)/colors.h
+boing.o: $(UTILS_SRC)/erase.h
 boing.o: $(UTILS_SRC)/grabscreen.h
 boing.o: $(UTILS_SRC)/hsv.h
 boing.o: $(UTILS_SRC)/resources.h
 boing.o: $(UTILS_SRC)/usleep.h
 boing.o: $(UTILS_SRC)/visual.h
-boing.o: $(UTILS_SRC)/xshm.h
 boing.o: $(UTILS_SRC)/yarandom.h
 boing.o: $(HACK_SRC)/xlockmoreI.h
 boing.o: $(HACK_SRC)/xlockmore.h
@@ -1056,17 +1133,15 @@ bouncingcow.o: ../../config.h
 bouncingcow.o: $(HACK_SRC)/fps.h
 bouncingcow.o: $(srcdir)/gllist.h
 bouncingcow.o: $(srcdir)/gltrackball.h
-bouncingcow.o: $(srcdir)/jwzglesI.h
-bouncingcow.o: $(srcdir)/jwzgles.h
 bouncingcow.o: $(srcdir)/rotator.h
 bouncingcow.o: $(HACK_SRC)/screenhackI.h
 bouncingcow.o: $(UTILS_SRC)/colors.h
+bouncingcow.o: $(UTILS_SRC)/erase.h
 bouncingcow.o: $(UTILS_SRC)/grabscreen.h
 bouncingcow.o: $(UTILS_SRC)/hsv.h
 bouncingcow.o: $(UTILS_SRC)/resources.h
 bouncingcow.o: $(UTILS_SRC)/usleep.h
 bouncingcow.o: $(UTILS_SRC)/visual.h
-bouncingcow.o: $(UTILS_SRC)/xshm.h
 bouncingcow.o: $(UTILS_SRC)/yarandom.h
 bouncingcow.o: $(HACK_SRC)/xlockmoreI.h
 bouncingcow.o: $(HACK_SRC)/xlockmore.h
@@ -1074,66 +1149,56 @@ bouncingcow.o: $(srcdir)/xpm-ximage.h
 boxed.o: $(srcdir)/boxed.h
 boxed.o: ../../config.h
 boxed.o: $(HACK_SRC)/fps.h
-boxed.o: $(srcdir)/jwzglesI.h
-boxed.o: $(srcdir)/jwzgles.h
 boxed.o: $(HACK_SRC)/screenhackI.h
 boxed.o: $(UTILS_SRC)/colors.h
+boxed.o: $(UTILS_SRC)/erase.h
 boxed.o: $(UTILS_SRC)/grabscreen.h
 boxed.o: $(UTILS_SRC)/hsv.h
 boxed.o: $(UTILS_SRC)/resources.h
 boxed.o: $(UTILS_SRC)/usleep.h
 boxed.o: $(UTILS_SRC)/visual.h
-boxed.o: $(UTILS_SRC)/xshm.h
 boxed.o: $(UTILS_SRC)/yarandom.h
 boxed.o: $(HACK_SRC)/xlockmoreI.h
 boxed.o: $(HACK_SRC)/xlockmore.h
 b_sphere.o: $(srcdir)/bubble3d.h
 b_sphere.o: ../../config.h
 b_sphere.o: $(HACK_SRC)/fps.h
-b_sphere.o: $(srcdir)/jwzglesI.h
-b_sphere.o: $(srcdir)/jwzgles.h
 b_sphere.o: $(HACK_SRC)/screenhackI.h
 b_sphere.o: $(UTILS_SRC)/colors.h
+b_sphere.o: $(UTILS_SRC)/erase.h
 b_sphere.o: $(UTILS_SRC)/grabscreen.h
 b_sphere.o: $(UTILS_SRC)/hsv.h
 b_sphere.o: $(UTILS_SRC)/resources.h
 b_sphere.o: $(UTILS_SRC)/usleep.h
 b_sphere.o: $(UTILS_SRC)/visual.h
-b_sphere.o: $(UTILS_SRC)/xshm.h
 b_sphere.o: $(UTILS_SRC)/yarandom.h
 b_sphere.o: $(HACK_SRC)/xlockmoreI.h
 bubble3d.o: $(srcdir)/bubble3d.h
 bubble3d.o: ../../config.h
 bubble3d.o: $(HACK_SRC)/fps.h
-bubble3d.o: $(srcdir)/jwzglesI.h
-bubble3d.o: $(srcdir)/jwzgles.h
 bubble3d.o: $(HACK_SRC)/screenhackI.h
 bubble3d.o: $(UTILS_SRC)/colors.h
+bubble3d.o: $(UTILS_SRC)/erase.h
 bubble3d.o: $(UTILS_SRC)/grabscreen.h
 bubble3d.o: $(UTILS_SRC)/hsv.h
 bubble3d.o: $(UTILS_SRC)/resources.h
 bubble3d.o: $(UTILS_SRC)/usleep.h
 bubble3d.o: $(UTILS_SRC)/visual.h
-bubble3d.o: $(UTILS_SRC)/xshm.h
 bubble3d.o: $(UTILS_SRC)/yarandom.h
 bubble3d.o: $(HACK_SRC)/xlockmoreI.h
 buildlwo.o: $(srcdir)/buildlwo.h
 buildlwo.o: ../../config.h
-buildlwo.o: $(srcdir)/jwzglesI.h
-buildlwo.o: $(srcdir)/jwzgles.h
 cage.o: ../../config.h
 cage.o: $(HACK_SRC)/fps.h
 cage.o: $(HACK_SRC)/images/wood.xpm
-cage.o: $(srcdir)/jwzglesI.h
-cage.o: $(srcdir)/jwzgles.h
 cage.o: $(HACK_SRC)/screenhackI.h
 cage.o: $(UTILS_SRC)/colors.h
+cage.o: $(UTILS_SRC)/erase.h
 cage.o: $(UTILS_SRC)/grabscreen.h
 cage.o: $(UTILS_SRC)/hsv.h
 cage.o: $(UTILS_SRC)/resources.h
 cage.o: $(UTILS_SRC)/usleep.h
 cage.o: $(UTILS_SRC)/visual.h
-cage.o: $(UTILS_SRC)/xshm.h
 cage.o: $(UTILS_SRC)/yarandom.h
 cage.o: $(HACK_SRC)/xlockmoreI.h
 cage.o: $(HACK_SRC)/xlockmore.h
@@ -1142,222 +1207,243 @@ carousel.o: ../../config.h
 carousel.o: $(HACK_SRC)/fps.h
 carousel.o: $(srcdir)/gltrackball.h
 carousel.o: $(srcdir)/grab-ximage.h
-carousel.o: $(srcdir)/jwzglesI.h
-carousel.o: $(srcdir)/jwzgles.h
 carousel.o: $(srcdir)/rotator.h
 carousel.o: $(HACK_SRC)/screenhackI.h
 carousel.o: $(srcdir)/texfont.h
 carousel.o: $(UTILS_SRC)/colors.h
+carousel.o: $(UTILS_SRC)/erase.h
 carousel.o: $(UTILS_SRC)/grabscreen.h
 carousel.o: $(UTILS_SRC)/hsv.h
 carousel.o: $(UTILS_SRC)/resources.h
 carousel.o: $(UTILS_SRC)/usleep.h
 carousel.o: $(UTILS_SRC)/visual.h
-carousel.o: $(UTILS_SRC)/xshm.h
 carousel.o: $(UTILS_SRC)/yarandom.h
 carousel.o: $(HACK_SRC)/xlockmoreI.h
 carousel.o: $(HACK_SRC)/xlockmore.h
 chessmodels.o: $(srcdir)/chessmodels.h
 chessmodels.o: ../../config.h
-chessmodels.o: $(srcdir)/jwzglesI.h
-chessmodels.o: $(srcdir)/jwzgles.h
 circuit.o: ../../config.h
-circuit.o: $(srcdir)/font-ximage.h
 circuit.o: $(HACK_SRC)/fps.h
-circuit.o: $(srcdir)/jwzglesI.h
-circuit.o: $(srcdir)/jwzgles.h
 circuit.o: $(HACK_SRC)/screenhackI.h
+circuit.o: $(srcdir)/texfont.h
 circuit.o: $(UTILS_SRC)/colors.h
+circuit.o: $(UTILS_SRC)/erase.h
 circuit.o: $(UTILS_SRC)/grabscreen.h
 circuit.o: $(UTILS_SRC)/hsv.h
 circuit.o: $(UTILS_SRC)/resources.h
 circuit.o: $(UTILS_SRC)/usleep.h
 circuit.o: $(UTILS_SRC)/visual.h
-circuit.o: $(UTILS_SRC)/xshm.h
 circuit.o: $(UTILS_SRC)/yarandom.h
 circuit.o: $(HACK_SRC)/xlockmoreI.h
 circuit.o: $(HACK_SRC)/xlockmore.h
+cityflow.o: ../../config.h
+cityflow.o: $(HACK_SRC)/fps.h
+cityflow.o: $(srcdir)/gltrackball.h
+cityflow.o: $(HACK_SRC)/screenhackI.h
+cityflow.o: $(UTILS_SRC)/colors.h
+cityflow.o: $(UTILS_SRC)/erase.h
+cityflow.o: $(UTILS_SRC)/grabscreen.h
+cityflow.o: $(UTILS_SRC)/hsv.h
+cityflow.o: $(UTILS_SRC)/resources.h
+cityflow.o: $(UTILS_SRC)/usleep.h
+cityflow.o: $(UTILS_SRC)/visual.h
+cityflow.o: $(UTILS_SRC)/yarandom.h
+cityflow.o: $(HACK_SRC)/xlockmoreI.h
+cityflow.o: $(HACK_SRC)/xlockmore.h
 companion_disc.o: ../../config.h
 companion_disc.o: $(srcdir)/gllist.h
-companion_disc.o: $(srcdir)/jwzglesI.h
-companion_disc.o: $(srcdir)/jwzgles.h
 companion_heart.o: ../../config.h
 companion_heart.o: $(srcdir)/gllist.h
-companion_heart.o: $(srcdir)/jwzglesI.h
-companion_heart.o: $(srcdir)/jwzgles.h
 companion.o: ../../config.h
 companion.o: $(HACK_SRC)/fps.h
 companion.o: $(srcdir)/gllist.h
 companion.o: $(srcdir)/gltrackball.h
-companion.o: $(srcdir)/jwzglesI.h
-companion.o: $(srcdir)/jwzgles.h
 companion.o: $(srcdir)/rotator.h
 companion.o: $(HACK_SRC)/screenhackI.h
 companion.o: $(UTILS_SRC)/colors.h
+companion.o: $(UTILS_SRC)/erase.h
 companion.o: $(UTILS_SRC)/grabscreen.h
 companion.o: $(UTILS_SRC)/hsv.h
 companion.o: $(UTILS_SRC)/resources.h
 companion.o: $(UTILS_SRC)/usleep.h
 companion.o: $(UTILS_SRC)/visual.h
-companion.o: $(UTILS_SRC)/xshm.h
 companion.o: $(UTILS_SRC)/yarandom.h
 companion.o: $(HACK_SRC)/xlockmoreI.h
 companion.o: $(HACK_SRC)/xlockmore.h
 companion.o: $(srcdir)/xpm-ximage.h
 companion_quad.o: ../../config.h
 companion_quad.o: $(srcdir)/gllist.h
-companion_quad.o: $(srcdir)/jwzglesI.h
-companion_quad.o: $(srcdir)/jwzgles.h
 cow_face.o: ../../config.h
 cow_face.o: $(srcdir)/gllist.h
-cow_face.o: $(srcdir)/jwzglesI.h
-cow_face.o: $(srcdir)/jwzgles.h
 cow_hide.o: ../../config.h
 cow_hide.o: $(srcdir)/gllist.h
-cow_hide.o: $(srcdir)/jwzglesI.h
-cow_hide.o: $(srcdir)/jwzgles.h
 cow_hoofs.o: ../../config.h
 cow_hoofs.o: $(srcdir)/gllist.h
-cow_hoofs.o: $(srcdir)/jwzglesI.h
-cow_hoofs.o: $(srcdir)/jwzgles.h
 cow_horns.o: ../../config.h
 cow_horns.o: $(srcdir)/gllist.h
-cow_horns.o: $(srcdir)/jwzglesI.h
-cow_horns.o: $(srcdir)/jwzgles.h
 cow_tail.o: ../../config.h
 cow_tail.o: $(srcdir)/gllist.h
-cow_tail.o: $(srcdir)/jwzglesI.h
-cow_tail.o: $(srcdir)/jwzgles.h
 cow_udder.o: ../../config.h
 cow_udder.o: $(srcdir)/gllist.h
-cow_udder.o: $(srcdir)/jwzglesI.h
-cow_udder.o: $(srcdir)/jwzgles.h
 crackberg.o: ../../config.h
 crackberg.o: $(HACK_SRC)/fps.h
-crackberg.o: $(srcdir)/jwzglesI.h
-crackberg.o: $(srcdir)/jwzgles.h
 crackberg.o: $(HACK_SRC)/screenhackI.h
 crackberg.o: $(UTILS_SRC)/colors.h
+crackberg.o: $(UTILS_SRC)/erase.h
 crackberg.o: $(UTILS_SRC)/grabscreen.h
 crackberg.o: $(UTILS_SRC)/hsv.h
 crackberg.o: $(UTILS_SRC)/resources.h
 crackberg.o: $(UTILS_SRC)/usleep.h
 crackberg.o: $(UTILS_SRC)/visual.h
-crackberg.o: $(UTILS_SRC)/xshm.h
 crackberg.o: $(UTILS_SRC)/yarandom.h
 crackberg.o: $(HACK_SRC)/xlockmoreI.h
 crackberg.o: $(HACK_SRC)/xlockmore.h
 cube21.o: ../../config.h
 cube21.o: $(HACK_SRC)/fps.h
 cube21.o: $(srcdir)/gltrackball.h
-cube21.o: $(srcdir)/jwzglesI.h
-cube21.o: $(srcdir)/jwzgles.h
 cube21.o: $(HACK_SRC)/screenhackI.h
 cube21.o: $(UTILS_SRC)/colors.h
+cube21.o: $(UTILS_SRC)/erase.h
 cube21.o: $(UTILS_SRC)/grabscreen.h
 cube21.o: $(UTILS_SRC)/hsv.h
 cube21.o: $(UTILS_SRC)/resources.h
 cube21.o: $(UTILS_SRC)/usleep.h
 cube21.o: $(UTILS_SRC)/visual.h
-cube21.o: $(UTILS_SRC)/xshm.h
 cube21.o: $(UTILS_SRC)/yarandom.h
 cube21.o: $(HACK_SRC)/xlockmoreI.h
 cube21.o: $(HACK_SRC)/xlockmore.h
 cubenetic.o: ../../config.h
 cubenetic.o: $(HACK_SRC)/fps.h
 cubenetic.o: $(srcdir)/gltrackball.h
-cubenetic.o: $(srcdir)/jwzglesI.h
-cubenetic.o: $(srcdir)/jwzgles.h
 cubenetic.o: $(srcdir)/rotator.h
 cubenetic.o: $(HACK_SRC)/screenhackI.h
 cubenetic.o: $(UTILS_SRC)/colors.h
+cubenetic.o: $(UTILS_SRC)/erase.h
 cubenetic.o: $(UTILS_SRC)/grabscreen.h
 cubenetic.o: $(UTILS_SRC)/hsv.h
 cubenetic.o: $(UTILS_SRC)/resources.h
 cubenetic.o: $(UTILS_SRC)/usleep.h
 cubenetic.o: $(UTILS_SRC)/visual.h
-cubenetic.o: $(UTILS_SRC)/xshm.h
 cubenetic.o: $(UTILS_SRC)/yarandom.h
 cubenetic.o: $(HACK_SRC)/xlockmoreI.h
 cubenetic.o: $(HACK_SRC)/xlockmore.h
+cubestack.o: ../../config.h
+cubestack.o: $(HACK_SRC)/fps.h
+cubestack.o: $(srcdir)/gltrackball.h
+cubestack.o: $(srcdir)/rotator.h
+cubestack.o: $(HACK_SRC)/screenhackI.h
+cubestack.o: $(UTILS_SRC)/colors.h
+cubestack.o: $(UTILS_SRC)/erase.h
+cubestack.o: $(UTILS_SRC)/grabscreen.h
+cubestack.o: $(UTILS_SRC)/hsv.h
+cubestack.o: $(UTILS_SRC)/resources.h
+cubestack.o: $(UTILS_SRC)/usleep.h
+cubestack.o: $(UTILS_SRC)/visual.h
+cubestack.o: $(UTILS_SRC)/yarandom.h
+cubestack.o: $(HACK_SRC)/xlockmoreI.h
+cubestack.o: $(HACK_SRC)/xlockmore.h
 cubestorm.o: ../../config.h
 cubestorm.o: $(HACK_SRC)/fps.h
 cubestorm.o: $(srcdir)/gltrackball.h
-cubestorm.o: $(srcdir)/jwzglesI.h
-cubestorm.o: $(srcdir)/jwzgles.h
 cubestorm.o: $(srcdir)/rotator.h
 cubestorm.o: $(HACK_SRC)/screenhackI.h
 cubestorm.o: $(UTILS_SRC)/colors.h
+cubestorm.o: $(UTILS_SRC)/erase.h
 cubestorm.o: $(UTILS_SRC)/grabscreen.h
 cubestorm.o: $(UTILS_SRC)/hsv.h
 cubestorm.o: $(UTILS_SRC)/resources.h
 cubestorm.o: $(UTILS_SRC)/usleep.h
 cubestorm.o: $(UTILS_SRC)/visual.h
-cubestorm.o: $(UTILS_SRC)/xshm.h
 cubestorm.o: $(UTILS_SRC)/yarandom.h
 cubestorm.o: $(HACK_SRC)/xlockmoreI.h
 cubestorm.o: $(HACK_SRC)/xlockmore.h
+cubetwist.o: ../../config.h
+cubetwist.o: $(HACK_SRC)/fps.h
+cubetwist.o: $(srcdir)/gltrackball.h
+cubetwist.o: $(srcdir)/normals.h
+cubetwist.o: $(srcdir)/rotator.h
+cubetwist.o: $(HACK_SRC)/screenhackI.h
+cubetwist.o: $(UTILS_SRC)/colors.h
+cubetwist.o: $(UTILS_SRC)/erase.h
+cubetwist.o: $(UTILS_SRC)/grabscreen.h
+cubetwist.o: $(UTILS_SRC)/hsv.h
+cubetwist.o: $(UTILS_SRC)/resources.h
+cubetwist.o: $(UTILS_SRC)/usleep.h
+cubetwist.o: $(UTILS_SRC)/visual.h
+cubetwist.o: $(UTILS_SRC)/yarandom.h
+cubetwist.o: $(HACK_SRC)/xlockmoreI.h
+cubetwist.o: $(HACK_SRC)/xlockmore.h
 cubicgrid.o: ../../config.h
 cubicgrid.o: $(HACK_SRC)/fps.h
 cubicgrid.o: $(srcdir)/gltrackball.h
-cubicgrid.o: $(srcdir)/jwzglesI.h
-cubicgrid.o: $(srcdir)/jwzgles.h
 cubicgrid.o: $(srcdir)/rotator.h
 cubicgrid.o: $(HACK_SRC)/screenhackI.h
 cubicgrid.o: $(UTILS_SRC)/colors.h
+cubicgrid.o: $(UTILS_SRC)/erase.h
 cubicgrid.o: $(UTILS_SRC)/grabscreen.h
 cubicgrid.o: $(UTILS_SRC)/hsv.h
 cubicgrid.o: $(UTILS_SRC)/resources.h
 cubicgrid.o: $(UTILS_SRC)/usleep.h
 cubicgrid.o: $(UTILS_SRC)/visual.h
-cubicgrid.o: $(UTILS_SRC)/xshm.h
 cubicgrid.o: $(UTILS_SRC)/yarandom.h
 cubicgrid.o: $(HACK_SRC)/xlockmoreI.h
 cubicgrid.o: $(HACK_SRC)/xlockmore.h
 dangerball.o: ../../config.h
 dangerball.o: $(HACK_SRC)/fps.h
 dangerball.o: $(srcdir)/gltrackball.h
-dangerball.o: $(srcdir)/jwzglesI.h
-dangerball.o: $(srcdir)/jwzgles.h
 dangerball.o: $(srcdir)/rotator.h
 dangerball.o: $(HACK_SRC)/screenhackI.h
 dangerball.o: $(srcdir)/sphere.h
 dangerball.o: $(srcdir)/tube.h
 dangerball.o: $(UTILS_SRC)/colors.h
+dangerball.o: $(UTILS_SRC)/erase.h
 dangerball.o: $(UTILS_SRC)/grabscreen.h
 dangerball.o: $(UTILS_SRC)/hsv.h
 dangerball.o: $(UTILS_SRC)/resources.h
 dangerball.o: $(UTILS_SRC)/usleep.h
 dangerball.o: $(UTILS_SRC)/visual.h
-dangerball.o: $(UTILS_SRC)/xshm.h
 dangerball.o: $(UTILS_SRC)/yarandom.h
 dangerball.o: $(HACK_SRC)/xlockmoreI.h
 dangerball.o: $(HACK_SRC)/xlockmore.h
+discoball.o: ../../config.h
+discoball.o: $(HACK_SRC)/fps.h
+discoball.o: $(srcdir)/gltrackball.h
+discoball.o: $(srcdir)/normals.h
+discoball.o: $(srcdir)/rotator.h
+discoball.o: $(HACK_SRC)/screenhackI.h
+discoball.o: $(UTILS_SRC)/colors.h
+discoball.o: $(UTILS_SRC)/erase.h
+discoball.o: $(UTILS_SRC)/grabscreen.h
+discoball.o: $(UTILS_SRC)/hsv.h
+discoball.o: $(UTILS_SRC)/resources.h
+discoball.o: $(UTILS_SRC)/usleep.h
+discoball.o: $(UTILS_SRC)/visual.h
+discoball.o: $(UTILS_SRC)/yarandom.h
+discoball.o: $(HACK_SRC)/xlockmoreI.h
+discoball.o: $(HACK_SRC)/xlockmore.h
 dnalogo.o: ../../config.h
-dnalogo.o: $(srcdir)/dnapizza.h
 dnalogo.o: $(HACK_SRC)/fps.h
 dnalogo.o: $(srcdir)/gltrackball.h
-dnalogo.o: $(srcdir)/jwzglesI.h
-dnalogo.o: $(srcdir)/jwzgles.h
 dnalogo.o: $(srcdir)/normals.h
 dnalogo.o: $(srcdir)/rotator.h
 dnalogo.o: $(HACK_SRC)/screenhackI.h
+dnalogo.o: $(srcdir)/sphere.h
+dnalogo.o: $(srcdir)/texfont.h
 dnalogo.o: $(srcdir)/tube.h
 dnalogo.o: $(UTILS_SRC)/colors.h
+dnalogo.o: $(UTILS_SRC)/erase.h
 dnalogo.o: $(UTILS_SRC)/grabscreen.h
 dnalogo.o: $(UTILS_SRC)/hsv.h
 dnalogo.o: $(UTILS_SRC)/resources.h
 dnalogo.o: $(UTILS_SRC)/usleep.h
+dnalogo.o: $(UTILS_SRC)/utf8wc.h
 dnalogo.o: $(UTILS_SRC)/visual.h
-dnalogo.o: $(UTILS_SRC)/xshm.h
 dnalogo.o: $(UTILS_SRC)/yarandom.h
 dnalogo.o: $(HACK_SRC)/xlockmoreI.h
 dnalogo.o: $(HACK_SRC)/xlockmore.h
 dolphin.o: $(srcdir)/atlantis.h
 dolphin.o: ../../config.h
 dolphin.o: $(HACK_SRC)/fps.h
-dolphin.o: $(srcdir)/jwzglesI.h
-dolphin.o: $(srcdir)/jwzgles.h
 dolphin.o: $(HACK_SRC)/screenhackI.h
 dolphin.o: $(UTILS_SRC)/colors.h
 dolphin.o: $(UTILS_SRC)/grabscreen.h
@@ -1368,106 +1454,147 @@ dolphin.o: $(UTILS_SRC)/visual.h
 dolphin.o: $(UTILS_SRC)/yarandom.h
 dropshadow.o: ../../config.h
 dropshadow.o: $(srcdir)/dropshadow.h
-dropshadow.o: $(srcdir)/jwzglesI.h
-dropshadow.o: $(srcdir)/jwzgles.h
+dropshadow.o: $(HACK_SRC)/fps.h
+dropshadow.o: $(HACK_SRC)/screenhackI.h
+dropshadow.o: $(UTILS_SRC)/colors.h
+dropshadow.o: $(UTILS_SRC)/erase.h
+dropshadow.o: $(UTILS_SRC)/grabscreen.h
+dropshadow.o: $(UTILS_SRC)/hsv.h
+dropshadow.o: $(UTILS_SRC)/resources.h
+dropshadow.o: $(UTILS_SRC)/usleep.h
+dropshadow.o: $(UTILS_SRC)/visual.h
+dropshadow.o: $(UTILS_SRC)/yarandom.h
+dropshadow.o: $(HACK_SRC)/xlockmoreI.h
+dymaxionmap.o: ../../config.h
+dymaxionmap.o: $(HACK_SRC)/fps.h
+dymaxionmap.o: $(srcdir)/gltrackball.h
+dymaxionmap.o: $(HACK_SRC)/images/dymaxionmap.xpm
+dymaxionmap.o: $(HACK_SRC)/images/ground.xpm
+dymaxionmap.o: $(srcdir)/normals.h
+dymaxionmap.o: $(srcdir)/rotator.h
+dymaxionmap.o: $(HACK_SRC)/screenhackI.h
+dymaxionmap.o: $(srcdir)/sphere.h
+dymaxionmap.o: $(srcdir)/texfont.h
+dymaxionmap.o: $(UTILS_SRC)/colors.h
+dymaxionmap.o: $(UTILS_SRC)/erase.h
+dymaxionmap.o: $(UTILS_SRC)/grabscreen.h
+dymaxionmap.o: $(UTILS_SRC)/hsv.h
+dymaxionmap.o: $(UTILS_SRC)/resources.h
+dymaxionmap.o: $(UTILS_SRC)/usleep.h
+dymaxionmap.o: $(UTILS_SRC)/visual.h
+dymaxionmap.o: $(UTILS_SRC)/yarandom.h
+dymaxionmap.o: $(HACK_SRC)/xlockmoreI.h
+dymaxionmap.o: $(HACK_SRC)/xlockmore.h
+dymaxionmap.o: $(srcdir)/xpm-ximage.h
 endgame.o: $(srcdir)/chessgames.h
 endgame.o: $(srcdir)/chessmodels.h
 endgame.o: ../../config.h
 endgame.o: $(HACK_SRC)/fps.h
 endgame.o: $(srcdir)/gltrackball.h
-endgame.o: $(srcdir)/jwzglesI.h
-endgame.o: $(srcdir)/jwzgles.h
 endgame.o: $(HACK_SRC)/screenhackI.h
 endgame.o: $(UTILS_SRC)/colors.h
+endgame.o: $(UTILS_SRC)/erase.h
 endgame.o: $(UTILS_SRC)/grabscreen.h
 endgame.o: $(UTILS_SRC)/hsv.h
 endgame.o: $(UTILS_SRC)/resources.h
 endgame.o: $(UTILS_SRC)/usleep.h
 endgame.o: $(UTILS_SRC)/visual.h
-endgame.o: $(UTILS_SRC)/xshm.h
 endgame.o: $(UTILS_SRC)/yarandom.h
 endgame.o: $(HACK_SRC)/xlockmoreI.h
 endgame.o: $(HACK_SRC)/xlockmore.h
+energystream.o: ../../config.h
+energystream.o: $(HACK_SRC)/fps.h
+energystream.o: $(srcdir)/gltrackball.h
+energystream.o: $(srcdir)/rotator.h
+energystream.o: $(HACK_SRC)/screenhackI.h
+energystream.o: $(UTILS_SRC)/colors.h
+energystream.o: $(UTILS_SRC)/erase.h
+energystream.o: $(UTILS_SRC)/grabscreen.h
+energystream.o: $(UTILS_SRC)/hsv.h
+energystream.o: $(UTILS_SRC)/resources.h
+energystream.o: $(UTILS_SRC)/usleep.h
+energystream.o: $(UTILS_SRC)/visual.h
+energystream.o: $(UTILS_SRC)/yarandom.h
+energystream.o: $(HACK_SRC)/xlockmoreI.h
+energystream.o: $(HACK_SRC)/xlockmore.h
 engine.o: ../../config.h
 engine.o: $(HACK_SRC)/fps.h
 engine.o: $(srcdir)/gltrackball.h
-engine.o: $(srcdir)/glxfonts.h
-engine.o: $(srcdir)/jwzglesI.h
-engine.o: $(srcdir)/jwzgles.h
 engine.o: $(srcdir)/rotator.h
 engine.o: $(HACK_SRC)/screenhackI.h
 engine.o: $(srcdir)/texfont.h
 engine.o: $(UTILS_SRC)/colors.h
+engine.o: $(UTILS_SRC)/erase.h
 engine.o: $(UTILS_SRC)/grabscreen.h
 engine.o: $(UTILS_SRC)/hsv.h
 engine.o: $(UTILS_SRC)/resources.h
 engine.o: $(UTILS_SRC)/usleep.h
 engine.o: $(UTILS_SRC)/visual.h
-engine.o: $(UTILS_SRC)/xshm.h
 engine.o: $(UTILS_SRC)/yarandom.h
 engine.o: $(HACK_SRC)/xlockmoreI.h
 engine.o: $(HACK_SRC)/xlockmore.h
+erase-gl.o: ../../config.h
+erase-gl.o: $(UTILS_SRC)/erase.h
+erase-gl.o: $(UTILS_SRC)/utils.h
+esper.o: ../../config.h
+esper.o: $(HACK_SRC)/fps.h
+esper.o: $(srcdir)/grab-ximage.h
+esper.o: $(HACK_SRC)/screenhackI.h
+esper.o: $(srcdir)/texfont.h
+esper.o: $(UTILS_SRC)/colors.h
+esper.o: $(UTILS_SRC)/erase.h
+esper.o: $(UTILS_SRC)/grabscreen.h
+esper.o: $(UTILS_SRC)/hsv.h
+esper.o: $(UTILS_SRC)/resources.h
+esper.o: $(UTILS_SRC)/usleep.h
+esper.o: $(UTILS_SRC)/visual.h
+esper.o: $(UTILS_SRC)/xshm.h
+esper.o: $(UTILS_SRC)/yarandom.h
+esper.o: $(HACK_SRC)/xlockmoreI.h
+esper.o: $(HACK_SRC)/xlockmore.h
 extrusion-helix2.o: ../../config.h
 extrusion-helix2.o: $(srcdir)/extrusion.h
-extrusion-helix2.o: $(srcdir)/jwzglesI.h
-extrusion-helix2.o: $(srcdir)/jwzgles.h
 extrusion-helix3.o: ../../config.h
 extrusion-helix3.o: $(srcdir)/extrusion.h
-extrusion-helix3.o: $(srcdir)/jwzglesI.h
-extrusion-helix3.o: $(srcdir)/jwzgles.h
 extrusion-helix4.o: ../../config.h
 extrusion-helix4.o: $(srcdir)/extrusion.h
-extrusion-helix4.o: $(srcdir)/jwzglesI.h
-extrusion-helix4.o: $(srcdir)/jwzgles.h
 extrusion-joinoffset.o: ../../config.h
 extrusion-joinoffset.o: $(srcdir)/extrusion.h
-extrusion-joinoffset.o: $(srcdir)/jwzglesI.h
-extrusion-joinoffset.o: $(srcdir)/jwzgles.h
 extrusion.o: ../../config.h
 extrusion.o: $(srcdir)/extrusion.h
 extrusion.o: $(HACK_SRC)/fps.h
 extrusion.o: $(srcdir)/gltrackball.h
-extrusion.o: $(srcdir)/jwzglesI.h
-extrusion.o: $(srcdir)/jwzgles.h
 extrusion.o: $(srcdir)/rotator.h
 extrusion.o: $(HACK_SRC)/screenhackI.h
 extrusion.o: $(UTILS_SRC)/colors.h
+extrusion.o: $(UTILS_SRC)/erase.h
 extrusion.o: $(UTILS_SRC)/grabscreen.h
 extrusion.o: $(UTILS_SRC)/hsv.h
 extrusion.o: $(UTILS_SRC)/resources.h
 extrusion.o: $(UTILS_SRC)/usleep.h
 extrusion.o: $(UTILS_SRC)/visual.h
-extrusion.o: $(UTILS_SRC)/xshm.h
 extrusion.o: $(UTILS_SRC)/yarandom.h
 extrusion.o: $(HACK_SRC)/xlockmoreI.h
 extrusion.o: $(HACK_SRC)/xlockmore.h
 extrusion.o: $(srcdir)/xpm-ximage.h
 extrusion-screw.o: ../../config.h
 extrusion-screw.o: $(srcdir)/extrusion.h
-extrusion-screw.o: $(srcdir)/jwzglesI.h
-extrusion-screw.o: $(srcdir)/jwzgles.h
 extrusion-taper.o: ../../config.h
 extrusion-taper.o: $(srcdir)/extrusion.h
-extrusion-taper.o: $(srcdir)/jwzglesI.h
-extrusion-taper.o: $(srcdir)/jwzgles.h
 extrusion-twistoid.o: ../../config.h
 extrusion-twistoid.o: $(srcdir)/extrusion.h
-extrusion-twistoid.o: $(srcdir)/jwzglesI.h
-extrusion-twistoid.o: $(srcdir)/jwzgles.h
 flipflop.o: ../../config.h
 flipflop.o: $(HACK_SRC)/fps.h
 flipflop.o: $(srcdir)/gltrackball.h
 flipflop.o: $(srcdir)/grab-ximage.h
-flipflop.o: $(srcdir)/jwzglesI.h
-flipflop.o: $(srcdir)/jwzgles.h
 flipflop.o: $(HACK_SRC)/screenhackI.h
 flipflop.o: $(UTILS_SRC)/colors.h
+flipflop.o: $(UTILS_SRC)/erase.h
 flipflop.o: $(UTILS_SRC)/grabscreen.h
 flipflop.o: $(UTILS_SRC)/hsv.h
 flipflop.o: $(UTILS_SRC)/resources.h
 flipflop.o: $(UTILS_SRC)/usleep.h
 flipflop.o: $(UTILS_SRC)/visual.h
-flipflop.o: $(UTILS_SRC)/xshm.h
 flipflop.o: $(UTILS_SRC)/yarandom.h
 flipflop.o: $(HACK_SRC)/xlockmoreI.h
 flipflop.o: $(HACK_SRC)/xlockmore.h
@@ -1475,33 +1602,29 @@ flipscreen3d.o: ../../config.h
 flipscreen3d.o: $(HACK_SRC)/fps.h
 flipscreen3d.o: $(srcdir)/gltrackball.h
 flipscreen3d.o: $(srcdir)/grab-ximage.h
-flipscreen3d.o: $(srcdir)/jwzglesI.h
-flipscreen3d.o: $(srcdir)/jwzgles.h
 flipscreen3d.o: $(HACK_SRC)/screenhackI.h
 flipscreen3d.o: $(UTILS_SRC)/colors.h
+flipscreen3d.o: $(UTILS_SRC)/erase.h
 flipscreen3d.o: $(UTILS_SRC)/grabscreen.h
 flipscreen3d.o: $(UTILS_SRC)/hsv.h
 flipscreen3d.o: $(UTILS_SRC)/resources.h
 flipscreen3d.o: $(UTILS_SRC)/usleep.h
 flipscreen3d.o: $(UTILS_SRC)/visual.h
-flipscreen3d.o: $(UTILS_SRC)/xshm.h
 flipscreen3d.o: $(UTILS_SRC)/yarandom.h
 flipscreen3d.o: $(HACK_SRC)/xlockmoreI.h
 flipscreen3d.o: $(HACK_SRC)/xlockmore.h
 fliptext.o: ../../config.h
 fliptext.o: $(HACK_SRC)/fps.h
-fliptext.o: $(srcdir)/jwzglesI.h
-fliptext.o: $(srcdir)/jwzgles.h
 fliptext.o: $(HACK_SRC)/screenhackI.h
 fliptext.o: $(srcdir)/texfont.h
 fliptext.o: $(UTILS_SRC)/colors.h
+fliptext.o: $(UTILS_SRC)/erase.h
 fliptext.o: $(UTILS_SRC)/grabscreen.h
 fliptext.o: $(UTILS_SRC)/hsv.h
 fliptext.o: $(UTILS_SRC)/resources.h
 fliptext.o: $(UTILS_SRC)/textclient.h
 fliptext.o: $(UTILS_SRC)/usleep.h
 fliptext.o: $(UTILS_SRC)/visual.h
-fliptext.o: $(UTILS_SRC)/xshm.h
 fliptext.o: $(UTILS_SRC)/yarandom.h
 fliptext.o: $(HACK_SRC)/xlockmoreI.h
 fliptext.o: $(HACK_SRC)/xlockmore.h
@@ -1509,46 +1632,36 @@ flurry.o: ../../config.h
 flurry.o: $(srcdir)/flurry.h
 flurry.o: $(HACK_SRC)/fps.h
 flurry.o: $(srcdir)/gltrackball.h
-flurry.o: $(srcdir)/jwzglesI.h
-flurry.o: $(srcdir)/jwzgles.h
 flurry.o: $(srcdir)/rotator.h
 flurry.o: $(HACK_SRC)/screenhackI.h
 flurry.o: $(UTILS_SRC)/colors.h
+flurry.o: $(UTILS_SRC)/erase.h
 flurry.o: $(UTILS_SRC)/grabscreen.h
 flurry.o: $(UTILS_SRC)/hsv.h
 flurry.o: $(UTILS_SRC)/resources.h
 flurry.o: $(UTILS_SRC)/usleep.h
 flurry.o: $(UTILS_SRC)/visual.h
-flurry.o: $(UTILS_SRC)/xshm.h
 flurry.o: $(UTILS_SRC)/yarandom.h
 flurry.o: $(HACK_SRC)/xlockmoreI.h
 flurry.o: $(HACK_SRC)/xlockmore.h
 flurry-smoke.o: ../../config.h
 flurry-smoke.o: $(srcdir)/flurry.h
 flurry-smoke.o: $(srcdir)/gltrackball.h
-flurry-smoke.o: $(srcdir)/jwzglesI.h
-flurry-smoke.o: $(srcdir)/jwzgles.h
 flurry-smoke.o: $(srcdir)/rotator.h
 flurry-smoke.o: $(UTILS_SRC)/yarandom.h
 flurry-spark.o: ../../config.h
 flurry-spark.o: $(srcdir)/flurry.h
 flurry-spark.o: $(srcdir)/gltrackball.h
-flurry-spark.o: $(srcdir)/jwzglesI.h
-flurry-spark.o: $(srcdir)/jwzgles.h
 flurry-spark.o: $(srcdir)/rotator.h
 flurry-spark.o: $(UTILS_SRC)/yarandom.h
 flurry-star.o: ../../config.h
 flurry-star.o: $(srcdir)/flurry.h
 flurry-star.o: $(srcdir)/gltrackball.h
-flurry-star.o: $(srcdir)/jwzglesI.h
-flurry-star.o: $(srcdir)/jwzgles.h
 flurry-star.o: $(srcdir)/rotator.h
 flurry-star.o: $(UTILS_SRC)/yarandom.h
 flurry-texture.o: ../../config.h
 flurry-texture.o: $(srcdir)/flurry.h
 flurry-texture.o: $(srcdir)/gltrackball.h
-flurry-texture.o: $(srcdir)/jwzglesI.h
-flurry-texture.o: $(srcdir)/jwzgles.h
 flurry-texture.o: $(srcdir)/rotator.h
 flurry-texture.o: $(UTILS_SRC)/yarandom.h
 flyingtoasters.o: ../../config.h
@@ -1557,77 +1670,83 @@ 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)/jwzglesI.h
-flyingtoasters.o: $(srcdir)/jwzgles.h
 flyingtoasters.o: $(HACK_SRC)/screenhackI.h
 flyingtoasters.o: $(UTILS_SRC)/colors.h
+flyingtoasters.o: $(UTILS_SRC)/erase.h
 flyingtoasters.o: $(UTILS_SRC)/grabscreen.h
 flyingtoasters.o: $(UTILS_SRC)/hsv.h
 flyingtoasters.o: $(UTILS_SRC)/resources.h
 flyingtoasters.o: $(UTILS_SRC)/usleep.h
 flyingtoasters.o: $(UTILS_SRC)/visual.h
-flyingtoasters.o: $(UTILS_SRC)/xshm.h
 flyingtoasters.o: $(UTILS_SRC)/yarandom.h
 flyingtoasters.o: $(HACK_SRC)/xlockmoreI.h
 flyingtoasters.o: $(HACK_SRC)/xlockmore.h
 flyingtoasters.o: $(srcdir)/xpm-ximage.h
-font-ximage.o: ../../config.h
-font-ximage.o: $(srcdir)/font-ximage.h
-font-ximage.o: $(srcdir)/jwzglesI.h
-font-ximage.o: $(srcdir)/jwzgles.h
 fps-gl.o: ../../config.h
 fps-gl.o: $(HACK_SRC)/fpsI.h
 fps-gl.o: $(HACK_SRC)/fps.h
-fps-gl.o: $(srcdir)/glxfonts.h
-fps-gl.o: $(srcdir)/jwzglesI.h
-fps-gl.o: $(srcdir)/jwzgles.h
 fps-gl.o: $(HACK_SRC)/screenhackI.h
 fps-gl.o: $(srcdir)/texfont.h
 fps-gl.o: $(UTILS_SRC)/colors.h
+fps-gl.o: $(UTILS_SRC)/erase.h
 fps-gl.o: $(UTILS_SRC)/grabscreen.h
 fps-gl.o: $(UTILS_SRC)/hsv.h
 fps-gl.o: $(UTILS_SRC)/resources.h
 fps-gl.o: $(UTILS_SRC)/usleep.h
 fps-gl.o: $(UTILS_SRC)/visual.h
-fps-gl.o: $(UTILS_SRC)/xshm.h
 fps-gl.o: $(UTILS_SRC)/yarandom.h
 fps-gl.o: $(HACK_SRC)/xlockmoreI.h
 gears.o: ../../config.h
 gears.o: $(HACK_SRC)/fps.h
 gears.o: $(srcdir)/gltrackball.h
 gears.o: $(srcdir)/involute.h
-gears.o: $(srcdir)/jwzglesI.h
-gears.o: $(srcdir)/jwzgles.h
 gears.o: $(srcdir)/normals.h
 gears.o: $(srcdir)/rotator.h
 gears.o: $(HACK_SRC)/screenhackI.h
 gears.o: $(srcdir)/tube.h
 gears.o: $(UTILS_SRC)/colors.h
+gears.o: $(UTILS_SRC)/erase.h
 gears.o: $(UTILS_SRC)/grabscreen.h
 gears.o: $(UTILS_SRC)/hsv.h
 gears.o: $(UTILS_SRC)/resources.h
 gears.o: $(UTILS_SRC)/usleep.h
 gears.o: $(UTILS_SRC)/visual.h
-gears.o: $(UTILS_SRC)/xshm.h
 gears.o: $(UTILS_SRC)/yarandom.h
 gears.o: $(HACK_SRC)/xlockmoreI.h
 gears.o: $(HACK_SRC)/xlockmore.h
+geodesicgears.o: ../../config.h
+geodesicgears.o: $(HACK_SRC)/fps.h
+geodesicgears.o: $(srcdir)/gllist.h
+geodesicgears.o: $(srcdir)/gltrackball.h
+geodesicgears.o: $(srcdir)/involute.h
+geodesicgears.o: $(srcdir)/normals.h
+geodesicgears.o: $(srcdir)/rotator.h
+geodesicgears.o: $(HACK_SRC)/screenhackI.h
+geodesicgears.o: $(srcdir)/texfont.h
+geodesicgears.o: $(UTILS_SRC)/colors.h
+geodesicgears.o: $(UTILS_SRC)/erase.h
+geodesicgears.o: $(UTILS_SRC)/grabscreen.h
+geodesicgears.o: $(UTILS_SRC)/hsv.h
+geodesicgears.o: $(UTILS_SRC)/resources.h
+geodesicgears.o: $(UTILS_SRC)/usleep.h
+geodesicgears.o: $(UTILS_SRC)/visual.h
+geodesicgears.o: $(UTILS_SRC)/yarandom.h
+geodesicgears.o: $(HACK_SRC)/xlockmoreI.h
+geodesicgears.o: $(HACK_SRC)/xlockmore.h
 geodesic.o: ../../config.h
 geodesic.o: $(HACK_SRC)/fps.h
 geodesic.o: $(srcdir)/gllist.h
 geodesic.o: $(srcdir)/gltrackball.h
-geodesic.o: $(srcdir)/jwzglesI.h
-geodesic.o: $(srcdir)/jwzgles.h
 geodesic.o: $(srcdir)/normals.h
 geodesic.o: $(srcdir)/rotator.h
 geodesic.o: $(HACK_SRC)/screenhackI.h
 geodesic.o: $(UTILS_SRC)/colors.h
+geodesic.o: $(UTILS_SRC)/erase.h
 geodesic.o: $(UTILS_SRC)/grabscreen.h
 geodesic.o: $(UTILS_SRC)/hsv.h
 geodesic.o: $(UTILS_SRC)/resources.h
 geodesic.o: $(UTILS_SRC)/usleep.h
 geodesic.o: $(UTILS_SRC)/visual.h
-geodesic.o: $(UTILS_SRC)/xshm.h
 geodesic.o: $(UTILS_SRC)/yarandom.h
 geodesic.o: $(HACK_SRC)/xlockmoreI.h
 geodesic.o: $(HACK_SRC)/xlockmore.h
@@ -1635,64 +1754,56 @@ gflux.o: ../../config.h
 gflux.o: $(HACK_SRC)/fps.h
 gflux.o: $(srcdir)/gltrackball.h
 gflux.o: $(srcdir)/grab-ximage.h
-gflux.o: $(srcdir)/jwzglesI.h
-gflux.o: $(srcdir)/jwzgles.h
 gflux.o: $(HACK_SRC)/screenhackI.h
 gflux.o: $(UTILS_SRC)/colors.h
+gflux.o: $(UTILS_SRC)/erase.h
 gflux.o: $(UTILS_SRC)/grabscreen.h
 gflux.o: $(UTILS_SRC)/hsv.h
 gflux.o: $(UTILS_SRC)/resources.h
 gflux.o: $(UTILS_SRC)/usleep.h
 gflux.o: $(UTILS_SRC)/visual.h
-gflux.o: $(UTILS_SRC)/xshm.h
 gflux.o: $(UTILS_SRC)/yarandom.h
 gflux.o: $(HACK_SRC)/xlockmoreI.h
 gflux.o: $(HACK_SRC)/xlockmore.h
 glblur.o: ../../config.h
 glblur.o: $(HACK_SRC)/fps.h
 glblur.o: $(srcdir)/gltrackball.h
-glblur.o: $(srcdir)/jwzglesI.h
-glblur.o: $(srcdir)/jwzgles.h
 glblur.o: $(srcdir)/rotator.h
 glblur.o: $(HACK_SRC)/screenhackI.h
 glblur.o: $(UTILS_SRC)/colors.h
+glblur.o: $(UTILS_SRC)/erase.h
 glblur.o: $(UTILS_SRC)/grabscreen.h
 glblur.o: $(UTILS_SRC)/hsv.h
 glblur.o: $(UTILS_SRC)/resources.h
 glblur.o: $(UTILS_SRC)/usleep.h
 glblur.o: $(UTILS_SRC)/visual.h
-glblur.o: $(UTILS_SRC)/xshm.h
 glblur.o: $(UTILS_SRC)/yarandom.h
 glblur.o: $(HACK_SRC)/xlockmoreI.h
 glblur.o: $(HACK_SRC)/xlockmore.h
 glcells.o: ../../config.h
 glcells.o: $(HACK_SRC)/fps.h
-glcells.o: $(srcdir)/jwzglesI.h
-glcells.o: $(srcdir)/jwzgles.h
 glcells.o: $(HACK_SRC)/screenhackI.h
 glcells.o: $(UTILS_SRC)/colors.h
+glcells.o: $(UTILS_SRC)/erase.h
 glcells.o: $(UTILS_SRC)/grabscreen.h
 glcells.o: $(UTILS_SRC)/hsv.h
 glcells.o: $(UTILS_SRC)/resources.h
 glcells.o: $(UTILS_SRC)/usleep.h
 glcells.o: $(UTILS_SRC)/visual.h
-glcells.o: $(UTILS_SRC)/xshm.h
 glcells.o: $(UTILS_SRC)/yarandom.h
 glcells.o: $(HACK_SRC)/xlockmoreI.h
 glcells.o: $(HACK_SRC)/xlockmore.h
 gleidescope.o: ../../config.h
 gleidescope.o: $(HACK_SRC)/fps.h
 gleidescope.o: $(srcdir)/grab-ximage.h
-gleidescope.o: $(srcdir)/jwzglesI.h
-gleidescope.o: $(srcdir)/jwzgles.h
 gleidescope.o: $(HACK_SRC)/screenhackI.h
 gleidescope.o: $(UTILS_SRC)/colors.h
+gleidescope.o: $(UTILS_SRC)/erase.h
 gleidescope.o: $(UTILS_SRC)/grabscreen.h
 gleidescope.o: $(UTILS_SRC)/hsv.h
 gleidescope.o: $(UTILS_SRC)/resources.h
 gleidescope.o: $(UTILS_SRC)/usleep.h
 gleidescope.o: $(UTILS_SRC)/visual.h
-gleidescope.o: $(UTILS_SRC)/xshm.h
 gleidescope.o: $(UTILS_SRC)/yarandom.h
 gleidescope.o: $(HACK_SRC)/xlockmoreI.h
 gleidescope.o: $(HACK_SRC)/xlockmore.h
@@ -1702,71 +1813,61 @@ glforestfire.o: $(HACK_SRC)/fps.h
 glforestfire.o: $(srcdir)/gltrackball.h
 glforestfire.o: $(HACK_SRC)/images/ground.xpm
 glforestfire.o: $(HACK_SRC)/images/tree.xpm
-glforestfire.o: $(srcdir)/jwzglesI.h
-glforestfire.o: $(srcdir)/jwzgles.h
 glforestfire.o: $(HACK_SRC)/screenhackI.h
 glforestfire.o: $(UTILS_SRC)/colors.h
+glforestfire.o: $(UTILS_SRC)/erase.h
 glforestfire.o: $(UTILS_SRC)/grabscreen.h
 glforestfire.o: $(UTILS_SRC)/hsv.h
 glforestfire.o: $(UTILS_SRC)/resources.h
 glforestfire.o: $(UTILS_SRC)/usleep.h
 glforestfire.o: $(UTILS_SRC)/visual.h
-glforestfire.o: $(UTILS_SRC)/xshm.h
 glforestfire.o: $(UTILS_SRC)/yarandom.h
 glforestfire.o: $(HACK_SRC)/xlockmoreI.h
 glforestfire.o: $(HACK_SRC)/xlockmore.h
 glforestfire.o: $(srcdir)/xpm-ximage.h
 glhanoi.o: ../../config.h
 glhanoi.o: $(HACK_SRC)/fps.h
-glhanoi.o: $(srcdir)/jwzglesI.h
-glhanoi.o: $(srcdir)/jwzgles.h
 glhanoi.o: $(srcdir)/rotator.h
 glhanoi.o: $(HACK_SRC)/screenhackI.h
 glhanoi.o: $(UTILS_SRC)/colors.h
+glhanoi.o: $(UTILS_SRC)/erase.h
 glhanoi.o: $(UTILS_SRC)/grabscreen.h
 glhanoi.o: $(UTILS_SRC)/hsv.h
 glhanoi.o: $(UTILS_SRC)/resources.h
 glhanoi.o: $(UTILS_SRC)/usleep.h
 glhanoi.o: $(UTILS_SRC)/visual.h
-glhanoi.o: $(UTILS_SRC)/xshm.h
 glhanoi.o: $(UTILS_SRC)/yarandom.h
 glhanoi.o: $(HACK_SRC)/xlockmoreI.h
 glhanoi.o: $(HACK_SRC)/xlockmore.h
 glknots.o: ../../config.h
 glknots.o: $(HACK_SRC)/fps.h
 glknots.o: $(srcdir)/gltrackball.h
-glknots.o: $(srcdir)/jwzglesI.h
-glknots.o: $(srcdir)/jwzgles.h
 glknots.o: $(srcdir)/rotator.h
 glknots.o: $(HACK_SRC)/screenhackI.h
 glknots.o: $(srcdir)/tube.h
 glknots.o: $(UTILS_SRC)/colors.h
+glknots.o: $(UTILS_SRC)/erase.h
 glknots.o: $(UTILS_SRC)/grabscreen.h
 glknots.o: $(UTILS_SRC)/hsv.h
 glknots.o: $(UTILS_SRC)/resources.h
 glknots.o: $(UTILS_SRC)/usleep.h
 glknots.o: $(UTILS_SRC)/visual.h
-glknots.o: $(UTILS_SRC)/xshm.h
 glknots.o: $(UTILS_SRC)/yarandom.h
 glknots.o: $(HACK_SRC)/xlockmoreI.h
 glknots.o: $(HACK_SRC)/xlockmore.h
 gllist.o: ../../config.h
 gllist.o: $(srcdir)/gllist.h
-gllist.o: $(srcdir)/jwzglesI.h
-gllist.o: $(srcdir)/jwzgles.h
 glmatrix.o: ../../config.h
 glmatrix.o: $(HACK_SRC)/fps.h
 glmatrix.o: $(HACK_SRC)/images/matrix3.xpm
-glmatrix.o: $(srcdir)/jwzglesI.h
-glmatrix.o: $(srcdir)/jwzgles.h
 glmatrix.o: $(HACK_SRC)/screenhackI.h
 glmatrix.o: $(UTILS_SRC)/colors.h
+glmatrix.o: $(UTILS_SRC)/erase.h
 glmatrix.o: $(UTILS_SRC)/grabscreen.h
 glmatrix.o: $(UTILS_SRC)/hsv.h
 glmatrix.o: $(UTILS_SRC)/resources.h
 glmatrix.o: $(UTILS_SRC)/usleep.h
 glmatrix.o: $(UTILS_SRC)/visual.h
-glmatrix.o: $(UTILS_SRC)/xshm.h
 glmatrix.o: $(UTILS_SRC)/yarandom.h
 glmatrix.o: $(HACK_SRC)/xlockmoreI.h
 glmatrix.o: $(HACK_SRC)/xlockmore.h
@@ -1774,19 +1875,18 @@ glmatrix.o: $(srcdir)/xpm-ximage.h
 glplanet.o: ../../config.h
 glplanet.o: $(HACK_SRC)/fps.h
 glplanet.o: $(srcdir)/gltrackball.h
+glplanet.o: $(HACK_SRC)/images/earth_night.xpm
 glplanet.o: $(HACK_SRC)/images/earth.xpm
-glplanet.o: $(srcdir)/jwzglesI.h
-glplanet.o: $(srcdir)/jwzgles.h
 glplanet.o: $(srcdir)/rotator.h
 glplanet.o: $(HACK_SRC)/screenhackI.h
 glplanet.o: $(srcdir)/sphere.h
 glplanet.o: $(UTILS_SRC)/colors.h
+glplanet.o: $(UTILS_SRC)/erase.h
 glplanet.o: $(UTILS_SRC)/grabscreen.h
 glplanet.o: $(UTILS_SRC)/hsv.h
 glplanet.o: $(UTILS_SRC)/resources.h
 glplanet.o: $(UTILS_SRC)/usleep.h
 glplanet.o: $(UTILS_SRC)/visual.h
-glplanet.o: $(UTILS_SRC)/xshm.h
 glplanet.o: $(UTILS_SRC)/yarandom.h
 glplanet.o: $(HACK_SRC)/xlockmoreI.h
 glplanet.o: $(HACK_SRC)/xlockmore.h
@@ -1797,8 +1897,6 @@ glschool_alg.o: $(UTILS_SRC)/yarandom.h
 glschool_gl.o: ../../config.h
 glschool_gl.o: $(srcdir)/glschool_alg.h
 glschool_gl.o: $(srcdir)/glschool_gl.h
-glschool_gl.o: $(srcdir)/jwzglesI.h
-glschool_gl.o: $(srcdir)/jwzgles.h
 glschool_gl.o: $(srcdir)/sphere.h
 glschool_gl.o: $(srcdir)/tube.h
 glschool.o: ../../config.h
@@ -1806,160 +1904,161 @@ glschool.o: $(HACK_SRC)/fps.h
 glschool.o: $(srcdir)/glschool_alg.h
 glschool.o: $(srcdir)/glschool_gl.h
 glschool.o: $(srcdir)/glschool.h
-glschool.o: $(srcdir)/jwzglesI.h
-glschool.o: $(srcdir)/jwzgles.h
 glschool.o: $(HACK_SRC)/screenhackI.h
 glschool.o: $(UTILS_SRC)/colors.h
+glschool.o: $(UTILS_SRC)/erase.h
 glschool.o: $(UTILS_SRC)/grabscreen.h
 glschool.o: $(UTILS_SRC)/hsv.h
 glschool.o: $(UTILS_SRC)/resources.h
 glschool.o: $(UTILS_SRC)/usleep.h
 glschool.o: $(UTILS_SRC)/visual.h
-glschool.o: $(UTILS_SRC)/xshm.h
 glschool.o: $(UTILS_SRC)/yarandom.h
 glschool.o: $(HACK_SRC)/xlockmoreI.h
 glschool.o: $(HACK_SRC)/xlockmore.h
 glslideshow.o: ../../config.h
 glslideshow.o: $(HACK_SRC)/fps.h
-glslideshow.o: $(srcdir)/glxfonts.h
 glslideshow.o: $(srcdir)/grab-ximage.h
-glslideshow.o: $(srcdir)/jwzglesI.h
-glslideshow.o: $(srcdir)/jwzgles.h
 glslideshow.o: $(HACK_SRC)/screenhackI.h
 glslideshow.o: $(srcdir)/texfont.h
 glslideshow.o: $(UTILS_SRC)/colors.h
+glslideshow.o: $(UTILS_SRC)/erase.h
 glslideshow.o: $(UTILS_SRC)/grabscreen.h
 glslideshow.o: $(UTILS_SRC)/hsv.h
 glslideshow.o: $(UTILS_SRC)/resources.h
 glslideshow.o: $(UTILS_SRC)/usleep.h
 glslideshow.o: $(UTILS_SRC)/visual.h
-glslideshow.o: $(UTILS_SRC)/xshm.h
 glslideshow.o: $(UTILS_SRC)/yarandom.h
 glslideshow.o: $(HACK_SRC)/xlockmoreI.h
 glslideshow.o: $(HACK_SRC)/xlockmore.h
 glsnake.o: ../../config.h
 glsnake.o: $(HACK_SRC)/fps.h
-glsnake.o: $(srcdir)/glxfonts.h
-glsnake.o: $(srcdir)/jwzglesI.h
-glsnake.o: $(srcdir)/jwzgles.h
 glsnake.o: $(HACK_SRC)/screenhackI.h
 glsnake.o: $(srcdir)/texfont.h
 glsnake.o: $(UTILS_SRC)/colors.h
+glsnake.o: $(UTILS_SRC)/erase.h
 glsnake.o: $(UTILS_SRC)/grabscreen.h
 glsnake.o: $(UTILS_SRC)/hsv.h
 glsnake.o: $(UTILS_SRC)/resources.h
 glsnake.o: $(UTILS_SRC)/usleep.h
 glsnake.o: $(UTILS_SRC)/visual.h
-glsnake.o: $(UTILS_SRC)/xshm.h
 glsnake.o: $(UTILS_SRC)/yarandom.h
 glsnake.o: $(HACK_SRC)/xlockmoreI.h
 glsnake.o: $(HACK_SRC)/xlockmore.h
 gltext.o: ../../config.h
 gltext.o: $(HACK_SRC)/fps.h
 gltext.o: $(srcdir)/gltrackball.h
+gltext.o: $(srcdir)/glut_mroman.h
 gltext.o: $(srcdir)/glut_roman.h
 gltext.o: $(srcdir)/glutstroke.h
-gltext.o: $(srcdir)/jwzglesI.h
-gltext.o: $(srcdir)/jwzgles.h
 gltext.o: $(srcdir)/rotator.h
 gltext.o: $(HACK_SRC)/screenhackI.h
 gltext.o: $(srcdir)/sphere.h
 gltext.o: $(srcdir)/tube.h
 gltext.o: $(UTILS_SRC)/colors.h
+gltext.o: $(UTILS_SRC)/erase.h
 gltext.o: $(UTILS_SRC)/grabscreen.h
 gltext.o: $(UTILS_SRC)/hsv.h
 gltext.o: $(UTILS_SRC)/resources.h
 gltext.o: $(UTILS_SRC)/textclient.h
 gltext.o: $(UTILS_SRC)/usleep.h
+gltext.o: $(UTILS_SRC)/utf8wc.h
 gltext.o: $(UTILS_SRC)/visual.h
-gltext.o: $(UTILS_SRC)/xshm.h
 gltext.o: $(UTILS_SRC)/yarandom.h
 gltext.o: $(HACK_SRC)/xlockmoreI.h
 gltext.o: $(HACK_SRC)/xlockmore.h
 gltrackball.o: ../../config.h
 gltrackball.o: $(srcdir)/gltrackball.h
-gltrackball.o: $(srcdir)/jwzglesI.h
-gltrackball.o: $(srcdir)/jwzgles.h
 gltrackball.o: $(srcdir)/trackball.h
 glut_stroke.o: ../../config.h
 glut_stroke.o: $(srcdir)/glutstroke.h
-glut_stroke.o: $(srcdir)/jwzglesI.h
-glut_stroke.o: $(srcdir)/jwzgles.h
 glut_swidth.o: ../../config.h
 glut_swidth.o: $(srcdir)/glutstroke.h
-glut_swidth.o: $(srcdir)/jwzglesI.h
-glut_swidth.o: $(srcdir)/jwzgles.h
-glxfonts.o: ../../config.h
-glxfonts.o: $(HACK_SRC)/fps.h
-glxfonts.o: $(srcdir)/glxfonts.h
-glxfonts.o: $(srcdir)/jwzglesI.h
-glxfonts.o: $(srcdir)/jwzgles.h
-glxfonts.o: $(srcdir)/texfont.h
-glxfonts.o: $(UTILS_SRC)/resources.h
 grab-ximage.o: ../../config.h
 grab-ximage.o: $(srcdir)/grab-ximage.h
-grab-ximage.o: $(srcdir)/jwzglesI.h
-grab-ximage.o: $(srcdir)/jwzgles.h
 grab-ximage.o: $(UTILS_SRC)/grabscreen.h
-grab-ximage.o: $(UTILS_SRC)/resources.h
+grab-ximage.o: $(UTILS_SRC)/pow2.h
 grab-ximage.o: $(UTILS_SRC)/visual.h
 grab-ximage.o: $(UTILS_SRC)/xshm.h
+hexstrut.o: ../../config.h
+hexstrut.o: $(HACK_SRC)/fps.h
+hexstrut.o: $(srcdir)/gltrackball.h
+hexstrut.o: $(srcdir)/normals.h
+hexstrut.o: $(srcdir)/rotator.h
+hexstrut.o: $(HACK_SRC)/screenhackI.h
+hexstrut.o: $(UTILS_SRC)/colors.h
+hexstrut.o: $(UTILS_SRC)/erase.h
+hexstrut.o: $(UTILS_SRC)/grabscreen.h
+hexstrut.o: $(UTILS_SRC)/hsv.h
+hexstrut.o: $(UTILS_SRC)/resources.h
+hexstrut.o: $(UTILS_SRC)/usleep.h
+hexstrut.o: $(UTILS_SRC)/visual.h
+hexstrut.o: $(UTILS_SRC)/yarandom.h
+hexstrut.o: $(HACK_SRC)/xlockmoreI.h
+hexstrut.o: $(HACK_SRC)/xlockmore.h
 hilbert.o: ../../config.h
 hilbert.o: $(HACK_SRC)/fps.h
 hilbert.o: $(srcdir)/gltrackball.h
-hilbert.o: $(srcdir)/jwzglesI.h
-hilbert.o: $(srcdir)/jwzgles.h
 hilbert.o: $(srcdir)/rotator.h
 hilbert.o: $(HACK_SRC)/screenhackI.h
 hilbert.o: $(srcdir)/sphere.h
 hilbert.o: $(srcdir)/tube.h
 hilbert.o: $(UTILS_SRC)/colors.h
+hilbert.o: $(UTILS_SRC)/erase.h
 hilbert.o: $(UTILS_SRC)/grabscreen.h
 hilbert.o: $(UTILS_SRC)/hsv.h
 hilbert.o: $(UTILS_SRC)/resources.h
 hilbert.o: $(UTILS_SRC)/usleep.h
 hilbert.o: $(UTILS_SRC)/visual.h
-hilbert.o: $(UTILS_SRC)/xshm.h
 hilbert.o: $(UTILS_SRC)/yarandom.h
 hilbert.o: $(HACK_SRC)/xlockmoreI.h
 hilbert.o: $(HACK_SRC)/xlockmore.h
+hydrostat.o: ../../config.h
+hydrostat.o: $(HACK_SRC)/fps.h
+hydrostat.o: $(srcdir)/gltrackball.h
+hydrostat.o: $(srcdir)/normals.h
+hydrostat.o: $(HACK_SRC)/screenhackI.h
+hydrostat.o: $(srcdir)/sphere.h
+hydrostat.o: $(UTILS_SRC)/colors.h
+hydrostat.o: $(UTILS_SRC)/erase.h
+hydrostat.o: $(UTILS_SRC)/grabscreen.h
+hydrostat.o: $(UTILS_SRC)/hsv.h
+hydrostat.o: $(UTILS_SRC)/resources.h
+hydrostat.o: $(UTILS_SRC)/usleep.h
+hydrostat.o: $(UTILS_SRC)/visual.h
+hydrostat.o: $(UTILS_SRC)/yarandom.h
+hydrostat.o: $(HACK_SRC)/xlockmoreI.h
+hydrostat.o: $(HACK_SRC)/xlockmore.h
 hypertorus.o: ../../config.h
 hypertorus.o: $(HACK_SRC)/fps.h
 hypertorus.o: $(srcdir)/gltrackball.h
-hypertorus.o: $(srcdir)/jwzglesI.h
-hypertorus.o: $(srcdir)/jwzgles.h
 hypertorus.o: $(HACK_SRC)/screenhackI.h
 hypertorus.o: $(UTILS_SRC)/colors.h
+hypertorus.o: $(UTILS_SRC)/erase.h
 hypertorus.o: $(UTILS_SRC)/grabscreen.h
 hypertorus.o: $(UTILS_SRC)/hsv.h
 hypertorus.o: $(UTILS_SRC)/resources.h
 hypertorus.o: $(UTILS_SRC)/usleep.h
 hypertorus.o: $(UTILS_SRC)/visual.h
-hypertorus.o: $(UTILS_SRC)/xshm.h
 hypertorus.o: $(UTILS_SRC)/yarandom.h
 hypertorus.o: $(HACK_SRC)/xlockmoreI.h
 hypertorus.o: $(HACK_SRC)/xlockmore.h
 hypnowheel.o: ../../config.h
 hypnowheel.o: $(HACK_SRC)/fps.h
-hypnowheel.o: $(srcdir)/jwzglesI.h
-hypnowheel.o: $(srcdir)/jwzgles.h
 hypnowheel.o: $(srcdir)/rotator.h
 hypnowheel.o: $(HACK_SRC)/screenhackI.h
 hypnowheel.o: $(UTILS_SRC)/colors.h
+hypnowheel.o: $(UTILS_SRC)/erase.h
 hypnowheel.o: $(UTILS_SRC)/grabscreen.h
 hypnowheel.o: $(UTILS_SRC)/hsv.h
 hypnowheel.o: $(UTILS_SRC)/resources.h
 hypnowheel.o: $(UTILS_SRC)/usleep.h
 hypnowheel.o: $(UTILS_SRC)/visual.h
-hypnowheel.o: $(UTILS_SRC)/xshm.h
 hypnowheel.o: $(UTILS_SRC)/yarandom.h
 hypnowheel.o: $(HACK_SRC)/xlockmoreI.h
 hypnowheel.o: $(HACK_SRC)/xlockmore.h
 involute.o: ../../config.h
 involute.o: $(HACK_SRC)/fps.h
 involute.o: $(srcdir)/involute.h
-involute.o: $(srcdir)/jwzglesI.h
-involute.o: $(srcdir)/jwzgles.h
 involute.o: $(srcdir)/normals.h
 involute.o: $(HACK_SRC)/screenhackI.h
 involute.o: $(UTILS_SRC)/colors.h
@@ -1973,16 +2072,14 @@ jigglypuff.o: ../../config.h
 jigglypuff.o: $(HACK_SRC)/fps.h
 jigglypuff.o: $(srcdir)/gltrackball.h
 jigglypuff.o: $(HACK_SRC)/images/jigglymap.xpm
-jigglypuff.o: $(srcdir)/jwzglesI.h
-jigglypuff.o: $(srcdir)/jwzgles.h
 jigglypuff.o: $(HACK_SRC)/screenhackI.h
 jigglypuff.o: $(UTILS_SRC)/colors.h
+jigglypuff.o: $(UTILS_SRC)/erase.h
 jigglypuff.o: $(UTILS_SRC)/grabscreen.h
 jigglypuff.o: $(UTILS_SRC)/hsv.h
 jigglypuff.o: $(UTILS_SRC)/resources.h
 jigglypuff.o: $(UTILS_SRC)/usleep.h
 jigglypuff.o: $(UTILS_SRC)/visual.h
-jigglypuff.o: $(UTILS_SRC)/xshm.h
 jigglypuff.o: $(UTILS_SRC)/yarandom.h
 jigglypuff.o: $(HACK_SRC)/xlockmoreI.h
 jigglypuff.o: $(HACK_SRC)/xlockmore.h
@@ -1991,101 +2088,87 @@ jigsaw.o: ../../config.h
 jigsaw.o: $(HACK_SRC)/fps.h
 jigsaw.o: $(srcdir)/gltrackball.h
 jigsaw.o: $(srcdir)/grab-ximage.h
-jigsaw.o: $(srcdir)/jwzglesI.h
-jigsaw.o: $(srcdir)/jwzgles.h
 jigsaw.o: $(srcdir)/normals.h
 jigsaw.o: $(srcdir)/rotator.h
 jigsaw.o: $(HACK_SRC)/screenhackI.h
 jigsaw.o: $(srcdir)/texfont.h
 jigsaw.o: $(UTILS_SRC)/colors.h
+jigsaw.o: $(UTILS_SRC)/erase.h
 jigsaw.o: $(UTILS_SRC)/grabscreen.h
 jigsaw.o: $(UTILS_SRC)/hsv.h
 jigsaw.o: $(UTILS_SRC)/resources.h
 jigsaw.o: $(UTILS_SRC)/spline.h
 jigsaw.o: $(UTILS_SRC)/usleep.h
 jigsaw.o: $(UTILS_SRC)/visual.h
-jigsaw.o: $(UTILS_SRC)/xshm.h
 jigsaw.o: $(UTILS_SRC)/yarandom.h
 jigsaw.o: $(HACK_SRC)/xlockmoreI.h
 jigsaw.o: $(HACK_SRC)/xlockmore.h
 juggler3d.o: ../../config.h
 juggler3d.o: $(HACK_SRC)/fps.h
 juggler3d.o: $(srcdir)/gltrackball.h
-juggler3d.o: $(srcdir)/glxfonts.h
-juggler3d.o: $(srcdir)/jwzglesI.h
-juggler3d.o: $(srcdir)/jwzgles.h
 juggler3d.o: $(srcdir)/rotator.h
 juggler3d.o: $(HACK_SRC)/screenhackI.h
 juggler3d.o: $(srcdir)/sphere.h
 juggler3d.o: $(srcdir)/texfont.h
 juggler3d.o: $(srcdir)/tube.h
 juggler3d.o: $(UTILS_SRC)/colors.h
+juggler3d.o: $(UTILS_SRC)/erase.h
 juggler3d.o: $(UTILS_SRC)/grabscreen.h
 juggler3d.o: $(UTILS_SRC)/hsv.h
 juggler3d.o: $(UTILS_SRC)/resources.h
 juggler3d.o: $(UTILS_SRC)/usleep.h
 juggler3d.o: $(UTILS_SRC)/visual.h
-juggler3d.o: $(UTILS_SRC)/xshm.h
 juggler3d.o: $(UTILS_SRC)/yarandom.h
 juggler3d.o: $(HACK_SRC)/xlockmoreI.h
 juggler3d.o: $(HACK_SRC)/xlockmore.h
-jwzgles.o: ../../config.h
-jwzgles.o: $(srcdir)/jwzglesI.h
 kaleidocycle.o: ../../config.h
 kaleidocycle.o: $(HACK_SRC)/fps.h
 kaleidocycle.o: $(srcdir)/gltrackball.h
-kaleidocycle.o: $(srcdir)/jwzglesI.h
-kaleidocycle.o: $(srcdir)/jwzgles.h
 kaleidocycle.o: $(srcdir)/normals.h
 kaleidocycle.o: $(srcdir)/rotator.h
 kaleidocycle.o: $(HACK_SRC)/screenhackI.h
 kaleidocycle.o: $(UTILS_SRC)/colors.h
+kaleidocycle.o: $(UTILS_SRC)/erase.h
 kaleidocycle.o: $(UTILS_SRC)/grabscreen.h
 kaleidocycle.o: $(UTILS_SRC)/hsv.h
 kaleidocycle.o: $(UTILS_SRC)/resources.h
 kaleidocycle.o: $(UTILS_SRC)/usleep.h
 kaleidocycle.o: $(UTILS_SRC)/visual.h
-kaleidocycle.o: $(UTILS_SRC)/xshm.h
 kaleidocycle.o: $(UTILS_SRC)/yarandom.h
 kaleidocycle.o: $(HACK_SRC)/xlockmoreI.h
 kaleidocycle.o: $(HACK_SRC)/xlockmore.h
 klein.o: ../../config.h
+klein.o: $(srcdir)/curlicue.h
 klein.o: $(HACK_SRC)/fps.h
 klein.o: $(srcdir)/gltrackball.h
-klein.o: $(srcdir)/jwzglesI.h
-klein.o: $(srcdir)/jwzgles.h
 klein.o: $(HACK_SRC)/screenhackI.h
 klein.o: $(UTILS_SRC)/colors.h
+klein.o: $(UTILS_SRC)/erase.h
 klein.o: $(UTILS_SRC)/grabscreen.h
 klein.o: $(UTILS_SRC)/hsv.h
 klein.o: $(UTILS_SRC)/resources.h
 klein.o: $(UTILS_SRC)/usleep.h
 klein.o: $(UTILS_SRC)/visual.h
-klein.o: $(UTILS_SRC)/xshm.h
 klein.o: $(UTILS_SRC)/yarandom.h
 klein.o: $(HACK_SRC)/xlockmoreI.h
 klein.o: $(HACK_SRC)/xlockmore.h
 lament_model.o: ../../config.h
 lament_model.o: $(srcdir)/gllist.h
-lament_model.o: $(srcdir)/jwzglesI.h
-lament_model.o: $(srcdir)/jwzgles.h
 lament.o: ../../config.h
 lament.o: $(HACK_SRC)/fps.h
 lament.o: $(srcdir)/gllist.h
 lament.o: $(srcdir)/gltrackball.h
 lament.o: $(HACK_SRC)/images/lament512.xpm
-lament.o: $(srcdir)/jwzglesI.h
-lament.o: $(srcdir)/jwzgles.h
 lament.o: $(srcdir)/normals.h
 lament.o: $(srcdir)/rotator.h
 lament.o: $(HACK_SRC)/screenhackI.h
 lament.o: $(UTILS_SRC)/colors.h
+lament.o: $(UTILS_SRC)/erase.h
 lament.o: $(UTILS_SRC)/grabscreen.h
 lament.o: $(UTILS_SRC)/hsv.h
 lament.o: $(UTILS_SRC)/resources.h
 lament.o: $(UTILS_SRC)/usleep.h
 lament.o: $(UTILS_SRC)/visual.h
-lament.o: $(UTILS_SRC)/xshm.h
 lament.o: $(UTILS_SRC)/yarandom.h
 lament.o: $(HACK_SRC)/xlockmoreI.h
 lament.o: $(HACK_SRC)/xlockmore.h
@@ -2093,56 +2176,48 @@ lament.o: $(srcdir)/xpm-ximage.h
 lavalite.o: ../../config.h
 lavalite.o: $(HACK_SRC)/fps.h
 lavalite.o: $(srcdir)/gltrackball.h
-lavalite.o: $(srcdir)/jwzglesI.h
-lavalite.o: $(srcdir)/jwzgles.h
 lavalite.o: $(srcdir)/marching.h
 lavalite.o: $(srcdir)/rotator.h
 lavalite.o: $(HACK_SRC)/screenhackI.h
 lavalite.o: $(UTILS_SRC)/colors.h
+lavalite.o: $(UTILS_SRC)/erase.h
 lavalite.o: $(UTILS_SRC)/grabscreen.h
 lavalite.o: $(UTILS_SRC)/hsv.h
 lavalite.o: $(UTILS_SRC)/resources.h
 lavalite.o: $(UTILS_SRC)/usleep.h
 lavalite.o: $(UTILS_SRC)/visual.h
-lavalite.o: $(UTILS_SRC)/xshm.h
 lavalite.o: $(UTILS_SRC)/yarandom.h
 lavalite.o: $(HACK_SRC)/xlockmoreI.h
 lavalite.o: $(HACK_SRC)/xlockmore.h
 lavalite.o: $(srcdir)/xpm-ximage.h
 lockward.o: ../../config.h
 lockward.o: $(HACK_SRC)/fps.h
-lockward.o: $(srcdir)/jwzglesI.h
-lockward.o: $(srcdir)/jwzgles.h
 lockward.o: $(HACK_SRC)/screenhackI.h
 lockward.o: $(UTILS_SRC)/colors.h
+lockward.o: $(UTILS_SRC)/erase.h
 lockward.o: $(UTILS_SRC)/grabscreen.h
 lockward.o: $(UTILS_SRC)/hsv.h
 lockward.o: $(UTILS_SRC)/resources.h
 lockward.o: $(UTILS_SRC)/usleep.h
 lockward.o: $(UTILS_SRC)/visual.h
-lockward.o: $(UTILS_SRC)/xshm.h
 lockward.o: $(UTILS_SRC)/yarandom.h
 lockward.o: $(HACK_SRC)/xlockmoreI.h
 lockward.o: $(HACK_SRC)/xlockmore.h
 marching.o: ../../config.h
-marching.o: $(srcdir)/jwzglesI.h
-marching.o: $(srcdir)/jwzgles.h
 marching.o: $(srcdir)/marching.h
 marching.o: $(srcdir)/normals.h
 menger.o: ../../config.h
 menger.o: $(HACK_SRC)/fps.h
 menger.o: $(srcdir)/gltrackball.h
-menger.o: $(srcdir)/jwzglesI.h
-menger.o: $(srcdir)/jwzgles.h
 menger.o: $(srcdir)/rotator.h
 menger.o: $(HACK_SRC)/screenhackI.h
 menger.o: $(UTILS_SRC)/colors.h
+menger.o: $(UTILS_SRC)/erase.h
 menger.o: $(UTILS_SRC)/grabscreen.h
 menger.o: $(UTILS_SRC)/hsv.h
 menger.o: $(UTILS_SRC)/resources.h
 menger.o: $(UTILS_SRC)/usleep.h
 menger.o: $(UTILS_SRC)/visual.h
-menger.o: $(UTILS_SRC)/xshm.h
 menger.o: $(UTILS_SRC)/yarandom.h
 menger.o: $(HACK_SRC)/xlockmoreI.h
 menger.o: $(HACK_SRC)/xlockmore.h
@@ -2150,16 +2225,14 @@ mirrorblob.o: ../../config.h
 mirrorblob.o: $(HACK_SRC)/fps.h
 mirrorblob.o: $(srcdir)/gltrackball.h
 mirrorblob.o: $(srcdir)/grab-ximage.h
-mirrorblob.o: $(srcdir)/jwzglesI.h
-mirrorblob.o: $(srcdir)/jwzgles.h
 mirrorblob.o: $(HACK_SRC)/screenhackI.h
 mirrorblob.o: $(UTILS_SRC)/colors.h
+mirrorblob.o: $(UTILS_SRC)/erase.h
 mirrorblob.o: $(UTILS_SRC)/grabscreen.h
 mirrorblob.o: $(UTILS_SRC)/hsv.h
 mirrorblob.o: $(UTILS_SRC)/resources.h
 mirrorblob.o: $(UTILS_SRC)/usleep.h
 mirrorblob.o: $(UTILS_SRC)/visual.h
-mirrorblob.o: $(UTILS_SRC)/xshm.h
 mirrorblob.o: $(UTILS_SRC)/yarandom.h
 mirrorblob.o: $(HACK_SRC)/xlockmoreI.h
 mirrorblob.o: $(HACK_SRC)/xlockmore.h
@@ -2167,46 +2240,39 @@ moebiusgears.o: ../../config.h
 moebiusgears.o: $(HACK_SRC)/fps.h
 moebiusgears.o: $(srcdir)/gltrackball.h
 moebiusgears.o: $(srcdir)/involute.h
-moebiusgears.o: $(srcdir)/jwzglesI.h
-moebiusgears.o: $(srcdir)/jwzgles.h
 moebiusgears.o: $(srcdir)/normals.h
 moebiusgears.o: $(srcdir)/rotator.h
 moebiusgears.o: $(HACK_SRC)/screenhackI.h
 moebiusgears.o: $(UTILS_SRC)/colors.h
+moebiusgears.o: $(UTILS_SRC)/erase.h
 moebiusgears.o: $(UTILS_SRC)/grabscreen.h
 moebiusgears.o: $(UTILS_SRC)/hsv.h
 moebiusgears.o: $(UTILS_SRC)/resources.h
 moebiusgears.o: $(UTILS_SRC)/usleep.h
 moebiusgears.o: $(UTILS_SRC)/visual.h
-moebiusgears.o: $(UTILS_SRC)/xshm.h
 moebiusgears.o: $(UTILS_SRC)/yarandom.h
 moebiusgears.o: $(HACK_SRC)/xlockmoreI.h
 moebiusgears.o: $(HACK_SRC)/xlockmore.h
 moebius.o: ../../config.h
 moebius.o: $(HACK_SRC)/fps.h
 moebius.o: $(srcdir)/gltrackball.h
-moebius.o: $(srcdir)/jwzglesI.h
-moebius.o: $(srcdir)/jwzgles.h
 moebius.o: $(srcdir)/rotator.h
 moebius.o: $(HACK_SRC)/screenhackI.h
 moebius.o: $(srcdir)/sphere.h
 moebius.o: $(srcdir)/tube.h
 moebius.o: $(UTILS_SRC)/colors.h
+moebius.o: $(UTILS_SRC)/erase.h
 moebius.o: $(UTILS_SRC)/grabscreen.h
 moebius.o: $(UTILS_SRC)/hsv.h
 moebius.o: $(UTILS_SRC)/resources.h
 moebius.o: $(UTILS_SRC)/usleep.h
 moebius.o: $(UTILS_SRC)/visual.h
-moebius.o: $(UTILS_SRC)/xshm.h
 moebius.o: $(UTILS_SRC)/yarandom.h
 moebius.o: $(HACK_SRC)/xlockmoreI.h
 moebius.o: $(HACK_SRC)/xlockmore.h
 molecule.o: ../../config.h
 molecule.o: $(HACK_SRC)/fps.h
 molecule.o: $(srcdir)/gltrackball.h
-molecule.o: $(srcdir)/glxfonts.h
-molecule.o: $(srcdir)/jwzglesI.h
-molecule.o: $(srcdir)/jwzgles.h
 molecule.o: molecules.h
 molecule.o: $(srcdir)/rotator.h
 molecule.o: $(HACK_SRC)/screenhackI.h
@@ -2214,116 +2280,98 @@ molecule.o: $(srcdir)/sphere.h
 molecule.o: $(srcdir)/texfont.h
 molecule.o: $(srcdir)/tube.h
 molecule.o: $(UTILS_SRC)/colors.h
+molecule.o: $(UTILS_SRC)/erase.h
 molecule.o: $(UTILS_SRC)/grabscreen.h
 molecule.o: $(UTILS_SRC)/hsv.h
 molecule.o: $(UTILS_SRC)/resources.h
 molecule.o: $(UTILS_SRC)/usleep.h
 molecule.o: $(UTILS_SRC)/visual.h
-molecule.o: $(UTILS_SRC)/xshm.h
 molecule.o: $(UTILS_SRC)/yarandom.h
 molecule.o: $(HACK_SRC)/xlockmoreI.h
 molecule.o: $(HACK_SRC)/xlockmore.h
 morph3d.o: ../../config.h
 morph3d.o: $(HACK_SRC)/fps.h
-morph3d.o: $(srcdir)/jwzglesI.h
-morph3d.o: $(srcdir)/jwzgles.h
 morph3d.o: $(HACK_SRC)/screenhackI.h
 morph3d.o: $(UTILS_SRC)/colors.h
+morph3d.o: $(UTILS_SRC)/erase.h
 morph3d.o: $(UTILS_SRC)/grabscreen.h
 morph3d.o: $(UTILS_SRC)/hsv.h
 morph3d.o: $(UTILS_SRC)/resources.h
 morph3d.o: $(UTILS_SRC)/usleep.h
 morph3d.o: $(UTILS_SRC)/visual.h
-morph3d.o: $(UTILS_SRC)/xshm.h
 morph3d.o: $(UTILS_SRC)/yarandom.h
 morph3d.o: $(HACK_SRC)/xlockmoreI.h
 morph3d.o: $(HACK_SRC)/xlockmore.h
 noof.o: ../../config.h
 noof.o: $(HACK_SRC)/fps.h
-noof.o: $(srcdir)/jwzglesI.h
-noof.o: $(srcdir)/jwzgles.h
 noof.o: $(HACK_SRC)/screenhackI.h
 noof.o: $(UTILS_SRC)/colors.h
+noof.o: $(UTILS_SRC)/erase.h
 noof.o: $(UTILS_SRC)/grabscreen.h
 noof.o: $(UTILS_SRC)/hsv.h
 noof.o: $(UTILS_SRC)/resources.h
 noof.o: $(UTILS_SRC)/usleep.h
 noof.o: $(UTILS_SRC)/visual.h
-noof.o: $(UTILS_SRC)/xshm.h
 noof.o: $(UTILS_SRC)/yarandom.h
 noof.o: $(HACK_SRC)/xlockmoreI.h
 noof.o: $(HACK_SRC)/xlockmore.h
 normals.o: ../../config.h
-normals.o: $(srcdir)/jwzglesI.h
-normals.o: $(srcdir)/jwzgles.h
 normals.o: $(srcdir)/normals.h
 photopile.o: ../../config.h
 photopile.o: $(srcdir)/dropshadow.h
 photopile.o: $(HACK_SRC)/fps.h
 photopile.o: $(srcdir)/grab-ximage.h
-photopile.o: $(srcdir)/jwzglesI.h
-photopile.o: $(srcdir)/jwzgles.h
 photopile.o: $(HACK_SRC)/screenhackI.h
 photopile.o: $(srcdir)/texfont.h
 photopile.o: $(UTILS_SRC)/colors.h
+photopile.o: $(UTILS_SRC)/erase.h
 photopile.o: $(UTILS_SRC)/grabscreen.h
 photopile.o: $(UTILS_SRC)/hsv.h
 photopile.o: $(UTILS_SRC)/resources.h
 photopile.o: $(UTILS_SRC)/usleep.h
 photopile.o: $(UTILS_SRC)/visual.h
-photopile.o: $(UTILS_SRC)/xshm.h
 photopile.o: $(UTILS_SRC)/yarandom.h
 photopile.o: $(HACK_SRC)/xlockmoreI.h
 photopile.o: $(HACK_SRC)/xlockmore.h
 pinion.o: ../../config.h
 pinion.o: $(HACK_SRC)/fps.h
 pinion.o: $(srcdir)/gltrackball.h
-pinion.o: $(srcdir)/glxfonts.h
 pinion.o: $(srcdir)/involute.h
-pinion.o: $(srcdir)/jwzglesI.h
-pinion.o: $(srcdir)/jwzgles.h
 pinion.o: $(srcdir)/normals.h
 pinion.o: $(HACK_SRC)/screenhackI.h
 pinion.o: $(srcdir)/texfont.h
 pinion.o: $(UTILS_SRC)/colors.h
+pinion.o: $(UTILS_SRC)/erase.h
 pinion.o: $(UTILS_SRC)/grabscreen.h
 pinion.o: $(UTILS_SRC)/hsv.h
 pinion.o: $(UTILS_SRC)/resources.h
 pinion.o: $(UTILS_SRC)/usleep.h
 pinion.o: $(UTILS_SRC)/visual.h
-pinion.o: $(UTILS_SRC)/xshm.h
 pinion.o: $(UTILS_SRC)/yarandom.h
 pinion.o: $(HACK_SRC)/xlockmoreI.h
 pinion.o: $(HACK_SRC)/xlockmore.h
 pipeobjs.o: $(srcdir)/buildlwo.h
 pipeobjs.o: ../../config.h
-pipeobjs.o: $(srcdir)/jwzglesI.h
-pipeobjs.o: $(srcdir)/jwzgles.h
 pipes.o: $(srcdir)/buildlwo.h
 pipes.o: ../../config.h
 pipes.o: $(HACK_SRC)/fps.h
 pipes.o: $(srcdir)/gltrackball.h
-pipes.o: $(srcdir)/jwzglesI.h
-pipes.o: $(srcdir)/jwzgles.h
 pipes.o: $(HACK_SRC)/screenhackI.h
 pipes.o: $(srcdir)/sphere.h
 pipes.o: $(srcdir)/teapot.h
 pipes.o: $(UTILS_SRC)/colors.h
+pipes.o: $(UTILS_SRC)/erase.h
 pipes.o: $(UTILS_SRC)/grabscreen.h
 pipes.o: $(UTILS_SRC)/hsv.h
 pipes.o: $(UTILS_SRC)/resources.h
 pipes.o: $(UTILS_SRC)/usleep.h
 pipes.o: $(UTILS_SRC)/visual.h
-pipes.o: $(UTILS_SRC)/xshm.h
 pipes.o: $(UTILS_SRC)/yarandom.h
 pipes.o: $(HACK_SRC)/xlockmoreI.h
 pipes.o: $(HACK_SRC)/xlockmore.h
 polyhedra-gl.o: ../../config.h
 polyhedra-gl.o: $(HACK_SRC)/fps.h
 polyhedra-gl.o: $(srcdir)/gltrackball.h
-polyhedra-gl.o: $(srcdir)/glxfonts.h
-polyhedra-gl.o: $(srcdir)/jwzglesI.h
-polyhedra-gl.o: $(srcdir)/jwzgles.h
 polyhedra-gl.o: $(srcdir)/normals.h
 polyhedra-gl.o: $(srcdir)/polyhedra.h
 polyhedra-gl.o: $(srcdir)/rotator.h
@@ -2331,12 +2379,12 @@ polyhedra-gl.o: $(HACK_SRC)/screenhackI.h
 polyhedra-gl.o: $(srcdir)/teapot.h
 polyhedra-gl.o: $(srcdir)/texfont.h
 polyhedra-gl.o: $(UTILS_SRC)/colors.h
+polyhedra-gl.o: $(UTILS_SRC)/erase.h
 polyhedra-gl.o: $(UTILS_SRC)/grabscreen.h
 polyhedra-gl.o: $(UTILS_SRC)/hsv.h
 polyhedra-gl.o: $(UTILS_SRC)/resources.h
 polyhedra-gl.o: $(UTILS_SRC)/usleep.h
 polyhedra-gl.o: $(UTILS_SRC)/visual.h
-polyhedra-gl.o: $(UTILS_SRC)/xshm.h
 polyhedra-gl.o: $(UTILS_SRC)/yarandom.h
 polyhedra-gl.o: $(HACK_SRC)/xlockmoreI.h
 polyhedra-gl.o: $(HACK_SRC)/xlockmore.h
@@ -2345,80 +2393,71 @@ polyhedra.o: $(srcdir)/polyhedra.h
 polytopes.o: ../../config.h
 polytopes.o: $(HACK_SRC)/fps.h
 polytopes.o: $(srcdir)/gltrackball.h
-polytopes.o: $(srcdir)/jwzglesI.h
-polytopes.o: $(srcdir)/jwzgles.h
 polytopes.o: $(HACK_SRC)/screenhackI.h
 polytopes.o: $(UTILS_SRC)/colors.h
+polytopes.o: $(UTILS_SRC)/erase.h
 polytopes.o: $(UTILS_SRC)/grabscreen.h
 polytopes.o: $(UTILS_SRC)/hsv.h
 polytopes.o: $(UTILS_SRC)/resources.h
 polytopes.o: $(UTILS_SRC)/usleep.h
 polytopes.o: $(UTILS_SRC)/visual.h
-polytopes.o: $(UTILS_SRC)/xshm.h
 polytopes.o: $(UTILS_SRC)/yarandom.h
 polytopes.o: $(HACK_SRC)/xlockmoreI.h
 polytopes.o: $(HACK_SRC)/xlockmore.h
 projectiveplane.o: ../../config.h
+projectiveplane.o: $(srcdir)/curlicue.h
 projectiveplane.o: $(HACK_SRC)/fps.h
 projectiveplane.o: $(srcdir)/gltrackball.h
-projectiveplane.o: $(srcdir)/jwzglesI.h
-projectiveplane.o: $(srcdir)/jwzgles.h
 projectiveplane.o: $(HACK_SRC)/screenhackI.h
 projectiveplane.o: $(UTILS_SRC)/colors.h
+projectiveplane.o: $(UTILS_SRC)/erase.h
 projectiveplane.o: $(UTILS_SRC)/grabscreen.h
 projectiveplane.o: $(UTILS_SRC)/hsv.h
 projectiveplane.o: $(UTILS_SRC)/resources.h
 projectiveplane.o: $(UTILS_SRC)/usleep.h
 projectiveplane.o: $(UTILS_SRC)/visual.h
-projectiveplane.o: $(UTILS_SRC)/xshm.h
 projectiveplane.o: $(UTILS_SRC)/yarandom.h
 projectiveplane.o: $(HACK_SRC)/xlockmoreI.h
 projectiveplane.o: $(HACK_SRC)/xlockmore.h
 providence.o: ../../config.h
 providence.o: $(HACK_SRC)/fps.h
 providence.o: $(srcdir)/gltrackball.h
-providence.o: $(srcdir)/jwzglesI.h
-providence.o: $(srcdir)/jwzgles.h
 providence.o: $(HACK_SRC)/screenhackI.h
 providence.o: $(UTILS_SRC)/colors.h
+providence.o: $(UTILS_SRC)/erase.h
 providence.o: $(UTILS_SRC)/grabscreen.h
 providence.o: $(UTILS_SRC)/hsv.h
 providence.o: $(UTILS_SRC)/resources.h
 providence.o: $(UTILS_SRC)/usleep.h
 providence.o: $(UTILS_SRC)/visual.h
-providence.o: $(UTILS_SRC)/xshm.h
 providence.o: $(UTILS_SRC)/yarandom.h
 providence.o: $(HACK_SRC)/xlockmoreI.h
 providence.o: $(HACK_SRC)/xlockmore.h
 pulsar.o: ../../config.h
 pulsar.o: $(HACK_SRC)/fps.h
-pulsar.o: $(srcdir)/jwzglesI.h
-pulsar.o: $(srcdir)/jwzgles.h
 pulsar.o: $(HACK_SRC)/screenhackI.h
 pulsar.o: $(UTILS_SRC)/colors.h
+pulsar.o: $(UTILS_SRC)/erase.h
 pulsar.o: $(UTILS_SRC)/grabscreen.h
 pulsar.o: $(UTILS_SRC)/hsv.h
 pulsar.o: $(UTILS_SRC)/resources.h
 pulsar.o: $(UTILS_SRC)/usleep.h
 pulsar.o: $(UTILS_SRC)/visual.h
-pulsar.o: $(UTILS_SRC)/xshm.h
 pulsar.o: $(UTILS_SRC)/yarandom.h
 pulsar.o: $(HACK_SRC)/xlockmoreI.h
 pulsar.o: $(HACK_SRC)/xlockmore.h
 pulsar.o: $(srcdir)/xpm-ximage.h
 quasicrystal.o: ../../config.h
 quasicrystal.o: $(HACK_SRC)/fps.h
-quasicrystal.o: $(srcdir)/jwzglesI.h
-quasicrystal.o: $(srcdir)/jwzgles.h
 quasicrystal.o: $(srcdir)/rotator.h
 quasicrystal.o: $(HACK_SRC)/screenhackI.h
 quasicrystal.o: $(UTILS_SRC)/colors.h
+quasicrystal.o: $(UTILS_SRC)/erase.h
 quasicrystal.o: $(UTILS_SRC)/grabscreen.h
 quasicrystal.o: $(UTILS_SRC)/hsv.h
 quasicrystal.o: $(UTILS_SRC)/resources.h
 quasicrystal.o: $(UTILS_SRC)/usleep.h
 quasicrystal.o: $(UTILS_SRC)/visual.h
-quasicrystal.o: $(UTILS_SRC)/xshm.h
 quasicrystal.o: $(UTILS_SRC)/yarandom.h
 quasicrystal.o: $(HACK_SRC)/xlockmoreI.h
 quasicrystal.o: $(HACK_SRC)/xlockmore.h
@@ -2426,115 +2465,119 @@ queens.o: $(srcdir)/chessmodels.h
 queens.o: ../../config.h
 queens.o: $(HACK_SRC)/fps.h
 queens.o: $(srcdir)/gltrackball.h
-queens.o: $(srcdir)/jwzglesI.h
-queens.o: $(srcdir)/jwzgles.h
 queens.o: $(HACK_SRC)/screenhackI.h
 queens.o: $(UTILS_SRC)/colors.h
+queens.o: $(UTILS_SRC)/erase.h
 queens.o: $(UTILS_SRC)/grabscreen.h
 queens.o: $(UTILS_SRC)/hsv.h
 queens.o: $(UTILS_SRC)/resources.h
 queens.o: $(UTILS_SRC)/usleep.h
 queens.o: $(UTILS_SRC)/visual.h
-queens.o: $(UTILS_SRC)/xshm.h
 queens.o: $(UTILS_SRC)/yarandom.h
 queens.o: $(HACK_SRC)/xlockmoreI.h
 queens.o: $(HACK_SRC)/xlockmore.h
+raverhoop.o: ../../config.h
+raverhoop.o: $(HACK_SRC)/fps.h
+raverhoop.o: $(srcdir)/gltrackball.h
+raverhoop.o: $(srcdir)/rotator.h
+raverhoop.o: $(HACK_SRC)/screenhackI.h
+raverhoop.o: $(UTILS_SRC)/colors.h
+raverhoop.o: $(UTILS_SRC)/erase.h
+raverhoop.o: $(UTILS_SRC)/grabscreen.h
+raverhoop.o: $(UTILS_SRC)/hsv.h
+raverhoop.o: $(UTILS_SRC)/resources.h
+raverhoop.o: $(UTILS_SRC)/usleep.h
+raverhoop.o: $(UTILS_SRC)/visual.h
+raverhoop.o: $(UTILS_SRC)/yarandom.h
+raverhoop.o: $(HACK_SRC)/xlockmoreI.h
+raverhoop.o: $(HACK_SRC)/xlockmore.h
 robot.o: ../../config.h
 robot.o: $(srcdir)/gllist.h
-robot.o: $(srcdir)/jwzglesI.h
-robot.o: $(srcdir)/jwzgles.h
 robot-wireframe.o: ../../config.h
 robot-wireframe.o: $(srcdir)/gllist.h
-robot-wireframe.o: $(srcdir)/jwzglesI.h
-robot-wireframe.o: $(srcdir)/jwzgles.h
+romanboy.o: ../../config.h
+romanboy.o: $(srcdir)/curlicue.h
+romanboy.o: $(HACK_SRC)/fps.h
+romanboy.o: $(srcdir)/gltrackball.h
+romanboy.o: $(HACK_SRC)/screenhackI.h
+romanboy.o: $(UTILS_SRC)/colors.h
+romanboy.o: $(UTILS_SRC)/erase.h
+romanboy.o: $(UTILS_SRC)/grabscreen.h
+romanboy.o: $(UTILS_SRC)/hsv.h
+romanboy.o: $(UTILS_SRC)/resources.h
+romanboy.o: $(UTILS_SRC)/usleep.h
+romanboy.o: $(UTILS_SRC)/visual.h
+romanboy.o: $(UTILS_SRC)/yarandom.h
+romanboy.o: $(HACK_SRC)/xlockmoreI.h
+romanboy.o: $(HACK_SRC)/xlockmore.h
 rotator.o: ../../config.h
 rotator.o: $(srcdir)/rotator.h
 rotator.o: $(UTILS_SRC)/yarandom.h
 rubikblocks.o: ../../config.h
 rubikblocks.o: $(HACK_SRC)/fps.h
 rubikblocks.o: $(srcdir)/gltrackball.h
-rubikblocks.o: $(srcdir)/jwzglesI.h
-rubikblocks.o: $(srcdir)/jwzgles.h
 rubikblocks.o: $(srcdir)/rotator.h
 rubikblocks.o: $(HACK_SRC)/screenhackI.h
 rubikblocks.o: $(UTILS_SRC)/colors.h
+rubikblocks.o: $(UTILS_SRC)/erase.h
 rubikblocks.o: $(UTILS_SRC)/grabscreen.h
 rubikblocks.o: $(UTILS_SRC)/hsv.h
 rubikblocks.o: $(UTILS_SRC)/resources.h
 rubikblocks.o: $(UTILS_SRC)/usleep.h
 rubikblocks.o: $(UTILS_SRC)/visual.h
-rubikblocks.o: $(UTILS_SRC)/xshm.h
 rubikblocks.o: $(UTILS_SRC)/yarandom.h
 rubikblocks.o: $(HACK_SRC)/xlockmoreI.h
 rubikblocks.o: $(HACK_SRC)/xlockmore.h
 rubik.o: ../../config.h
 rubik.o: $(HACK_SRC)/fps.h
 rubik.o: $(srcdir)/gltrackball.h
-rubik.o: $(srcdir)/jwzglesI.h
-rubik.o: $(srcdir)/jwzgles.h
 rubik.o: $(HACK_SRC)/screenhackI.h
 rubik.o: $(UTILS_SRC)/colors.h
+rubik.o: $(UTILS_SRC)/erase.h
 rubik.o: $(UTILS_SRC)/grabscreen.h
 rubik.o: $(UTILS_SRC)/hsv.h
 rubik.o: $(UTILS_SRC)/resources.h
 rubik.o: $(UTILS_SRC)/usleep.h
 rubik.o: $(UTILS_SRC)/visual.h
-rubik.o: $(UTILS_SRC)/xshm.h
 rubik.o: $(UTILS_SRC)/yarandom.h
 rubik.o: $(HACK_SRC)/xlockmoreI.h
 rubik.o: $(HACK_SRC)/xlockmore.h
 s1_1.o: ../../config.h
 s1_1.o: $(srcdir)/gllist.h
-s1_1.o: $(srcdir)/jwzglesI.h
-s1_1.o: $(srcdir)/jwzgles.h
 s1_2.o: ../../config.h
 s1_2.o: $(srcdir)/gllist.h
-s1_2.o: $(srcdir)/jwzglesI.h
-s1_2.o: $(srcdir)/jwzgles.h
 s1_3.o: ../../config.h
 s1_3.o: $(srcdir)/gllist.h
-s1_3.o: $(srcdir)/jwzglesI.h
-s1_3.o: $(srcdir)/jwzgles.h
 s1_4.o: ../../config.h
 s1_4.o: $(srcdir)/gllist.h
-s1_4.o: $(srcdir)/jwzglesI.h
-s1_4.o: $(srcdir)/jwzgles.h
 s1_5.o: ../../config.h
 s1_5.o: $(srcdir)/gllist.h
-s1_5.o: $(srcdir)/jwzglesI.h
-s1_5.o: $(srcdir)/jwzgles.h
 s1_6.o: ../../config.h
 s1_6.o: $(srcdir)/gllist.h
-s1_6.o: $(srcdir)/jwzglesI.h
-s1_6.o: $(srcdir)/jwzgles.h
 s1_b.o: ../../config.h
 s1_b.o: $(srcdir)/gllist.h
-s1_b.o: $(srcdir)/jwzglesI.h
-s1_b.o: $(srcdir)/jwzgles.h
 sballs.o: ../../config.h
 sballs.o: $(HACK_SRC)/fps.h
 sballs.o: $(srcdir)/gltrackball.h
 sballs.o: $(HACK_SRC)/images/sball-bg.xpm
 sballs.o: $(HACK_SRC)/images/sball.xpm
-sballs.o: $(srcdir)/jwzglesI.h
-sballs.o: $(srcdir)/jwzgles.h
 sballs.o: $(HACK_SRC)/screenhackI.h
 sballs.o: $(UTILS_SRC)/colors.h
+sballs.o: $(UTILS_SRC)/erase.h
 sballs.o: $(UTILS_SRC)/grabscreen.h
 sballs.o: $(UTILS_SRC)/hsv.h
 sballs.o: $(UTILS_SRC)/resources.h
 sballs.o: $(UTILS_SRC)/usleep.h
 sballs.o: $(UTILS_SRC)/visual.h
-sballs.o: $(UTILS_SRC)/xshm.h
 sballs.o: $(UTILS_SRC)/yarandom.h
 sballs.o: $(HACK_SRC)/xlockmoreI.h
 sballs.o: $(HACK_SRC)/xlockmore.h
 sballs.o: $(srcdir)/xpm-ximage.h
+seccam.o: ../../config.h
+seccam.o: $(srcdir)/gllist.h
 shark.o: $(srcdir)/atlantis.h
 shark.o: ../../config.h
 shark.o: $(HACK_SRC)/fps.h
-shark.o: $(srcdir)/jwzglesI.h
-shark.o: $(srcdir)/jwzgles.h
 shark.o: $(HACK_SRC)/screenhackI.h
 shark.o: $(UTILS_SRC)/colors.h
 shark.o: $(UTILS_SRC)/grabscreen.h
@@ -2546,17 +2589,15 @@ shark.o: $(UTILS_SRC)/yarandom.h
 sierpinski3d.o: ../../config.h
 sierpinski3d.o: $(HACK_SRC)/fps.h
 sierpinski3d.o: $(srcdir)/gltrackball.h
-sierpinski3d.o: $(srcdir)/jwzglesI.h
-sierpinski3d.o: $(srcdir)/jwzgles.h
 sierpinski3d.o: $(srcdir)/rotator.h
 sierpinski3d.o: $(HACK_SRC)/screenhackI.h
 sierpinski3d.o: $(UTILS_SRC)/colors.h
+sierpinski3d.o: $(UTILS_SRC)/erase.h
 sierpinski3d.o: $(UTILS_SRC)/grabscreen.h
 sierpinski3d.o: $(UTILS_SRC)/hsv.h
 sierpinski3d.o: $(UTILS_SRC)/resources.h
 sierpinski3d.o: $(UTILS_SRC)/usleep.h
 sierpinski3d.o: $(UTILS_SRC)/visual.h
-sierpinski3d.o: $(UTILS_SRC)/xshm.h
 sierpinski3d.o: $(UTILS_SRC)/yarandom.h
 sierpinski3d.o: $(HACK_SRC)/xlockmoreI.h
 sierpinski3d.o: $(HACK_SRC)/xlockmore.h
@@ -2564,18 +2605,16 @@ skytentacles.o: ../../config.h
 skytentacles.o: $(HACK_SRC)/fps.h
 skytentacles.o: $(srcdir)/gltrackball.h
 skytentacles.o: $(HACK_SRC)/images/scales.xpm
-skytentacles.o: $(srcdir)/jwzglesI.h
-skytentacles.o: $(srcdir)/jwzgles.h
 skytentacles.o: $(srcdir)/normals.h
 skytentacles.o: $(srcdir)/rotator.h
 skytentacles.o: $(HACK_SRC)/screenhackI.h
 skytentacles.o: $(UTILS_SRC)/colors.h
+skytentacles.o: $(UTILS_SRC)/erase.h
 skytentacles.o: $(UTILS_SRC)/grabscreen.h
 skytentacles.o: $(UTILS_SRC)/hsv.h
 skytentacles.o: $(UTILS_SRC)/resources.h
 skytentacles.o: $(UTILS_SRC)/usleep.h
 skytentacles.o: $(UTILS_SRC)/visual.h
-skytentacles.o: $(UTILS_SRC)/xshm.h
 skytentacles.o: $(UTILS_SRC)/yarandom.h
 skytentacles.o: $(HACK_SRC)/xlockmoreI.h
 skytentacles.o: $(HACK_SRC)/xlockmore.h
@@ -2584,10 +2623,13 @@ sonar-icmp.o: ../../config.h
 sonar-icmp.o: $(HACK_SRC)/fps.h
 sonar-icmp.o: $(HACK_SRC)/screenhackI.h
 sonar-icmp.o: $(srcdir)/sonar.h
+sonar-icmp.o: $(UTILS_SRC)/aligned_malloc.h
+sonar-icmp.o: $(UTILS_SRC)/async_netdb.h
 sonar-icmp.o: $(UTILS_SRC)/colors.h
 sonar-icmp.o: $(UTILS_SRC)/grabscreen.h
 sonar-icmp.o: $(UTILS_SRC)/hsv.h
 sonar-icmp.o: $(UTILS_SRC)/resources.h
+sonar-icmp.o: $(UTILS_SRC)/thread_util.h
 sonar-icmp.o: $(UTILS_SRC)/usleep.h
 sonar-icmp.o: $(UTILS_SRC)/version.h
 sonar-icmp.o: $(UTILS_SRC)/visual.h
@@ -2595,19 +2637,19 @@ sonar-icmp.o: $(UTILS_SRC)/yarandom.h
 sonar.o: ../../config.h
 sonar.o: $(HACK_SRC)/fps.h
 sonar.o: $(srcdir)/gltrackball.h
-sonar.o: $(srcdir)/jwzglesI.h
-sonar.o: $(srcdir)/jwzgles.h
 sonar.o: $(srcdir)/rotator.h
 sonar.o: $(HACK_SRC)/screenhackI.h
 sonar.o: $(srcdir)/sonar.h
 sonar.o: $(srcdir)/texfont.h
+sonar.o: $(UTILS_SRC)/aligned_malloc.h
 sonar.o: $(UTILS_SRC)/colors.h
+sonar.o: $(UTILS_SRC)/erase.h
 sonar.o: $(UTILS_SRC)/grabscreen.h
 sonar.o: $(UTILS_SRC)/hsv.h
 sonar.o: $(UTILS_SRC)/resources.h
+sonar.o: $(UTILS_SRC)/thread_util.h
 sonar.o: $(UTILS_SRC)/usleep.h
 sonar.o: $(UTILS_SRC)/visual.h
-sonar.o: $(UTILS_SRC)/xshm.h
 sonar.o: $(UTILS_SRC)/yarandom.h
 sonar.o: $(HACK_SRC)/xlockmoreI.h
 sonar.o: $(HACK_SRC)/xlockmore.h
@@ -2625,56 +2667,85 @@ sonar-sim.o: $(UTILS_SRC)/yarandom.h
 spheremonics.o: ../../config.h
 spheremonics.o: $(HACK_SRC)/fps.h
 spheremonics.o: $(srcdir)/gltrackball.h
-spheremonics.o: $(srcdir)/glxfonts.h
-spheremonics.o: $(srcdir)/jwzglesI.h
-spheremonics.o: $(srcdir)/jwzgles.h
 spheremonics.o: $(srcdir)/normals.h
 spheremonics.o: $(srcdir)/rotator.h
 spheremonics.o: $(HACK_SRC)/screenhackI.h
 spheremonics.o: $(srcdir)/texfont.h
 spheremonics.o: $(UTILS_SRC)/colors.h
+spheremonics.o: $(UTILS_SRC)/erase.h
 spheremonics.o: $(UTILS_SRC)/grabscreen.h
 spheremonics.o: $(UTILS_SRC)/hsv.h
 spheremonics.o: $(UTILS_SRC)/resources.h
 spheremonics.o: $(UTILS_SRC)/usleep.h
 spheremonics.o: $(UTILS_SRC)/visual.h
-spheremonics.o: $(UTILS_SRC)/xshm.h
 spheremonics.o: $(UTILS_SRC)/yarandom.h
 spheremonics.o: $(HACK_SRC)/xlockmoreI.h
 spheremonics.o: $(HACK_SRC)/xlockmore.h
 sphere.o: ../../config.h
-sphere.o: $(srcdir)/jwzglesI.h
-sphere.o: $(srcdir)/jwzgles.h
 sphere.o: $(srcdir)/sphere.h
+splitflap.o: ../../config.h
+splitflap.o: $(HACK_SRC)/fps.h
+splitflap.o: $(srcdir)/gllist.h
+splitflap.o: $(srcdir)/gltrackball.h
+splitflap.o: $(srcdir)/rotator.h
+splitflap.o: $(HACK_SRC)/screenhackI.h
+splitflap.o: $(srcdir)/texfont.h
+splitflap.o: $(UTILS_SRC)/colors.h
+splitflap.o: $(UTILS_SRC)/erase.h
+splitflap.o: $(UTILS_SRC)/grabscreen.h
+splitflap.o: $(UTILS_SRC)/hsv.h
+splitflap.o: $(UTILS_SRC)/resources.h
+splitflap.o: $(UTILS_SRC)/textclient.h
+splitflap.o: $(UTILS_SRC)/usleep.h
+splitflap.o: $(UTILS_SRC)/utf8wc.h
+splitflap.o: $(UTILS_SRC)/visual.h
+splitflap.o: $(UTILS_SRC)/yarandom.h
+splitflap.o: $(HACK_SRC)/xlockmoreI.h
+splitflap.o: $(HACK_SRC)/xlockmore.h
+splitflap.o: $(srcdir)/xpm-ximage.h
+splitflap_obj.o: ../../config.h
+splitflap_obj.o: $(srcdir)/gllist.h
+splodesic.o: ../../config.h
+splodesic.o: $(HACK_SRC)/fps.h
+splodesic.o: $(srcdir)/gltrackball.h
+splodesic.o: $(srcdir)/normals.h
+splodesic.o: $(srcdir)/rotator.h
+splodesic.o: $(HACK_SRC)/screenhackI.h
+splodesic.o: $(UTILS_SRC)/colors.h
+splodesic.o: $(UTILS_SRC)/erase.h
+splodesic.o: $(UTILS_SRC)/grabscreen.h
+splodesic.o: $(UTILS_SRC)/hsv.h
+splodesic.o: $(UTILS_SRC)/resources.h
+splodesic.o: $(UTILS_SRC)/usleep.h
+splodesic.o: $(UTILS_SRC)/visual.h
+splodesic.o: $(UTILS_SRC)/yarandom.h
+splodesic.o: $(HACK_SRC)/xlockmoreI.h
+splodesic.o: $(HACK_SRC)/xlockmore.h
 sproingies.o: ../../config.h
 sproingies.o: $(HACK_SRC)/fps.h
 sproingies.o: $(srcdir)/gllist.h
-sproingies.o: $(srcdir)/jwzglesI.h
-sproingies.o: $(srcdir)/jwzgles.h
 sproingies.o: $(HACK_SRC)/screenhackI.h
 sproingies.o: $(srcdir)/sproingies.h
 sproingies.o: $(UTILS_SRC)/colors.h
+sproingies.o: $(UTILS_SRC)/erase.h
 sproingies.o: $(UTILS_SRC)/grabscreen.h
 sproingies.o: $(UTILS_SRC)/hsv.h
 sproingies.o: $(UTILS_SRC)/resources.h
 sproingies.o: $(UTILS_SRC)/usleep.h
 sproingies.o: $(UTILS_SRC)/visual.h
-sproingies.o: $(UTILS_SRC)/xshm.h
 sproingies.o: $(UTILS_SRC)/yarandom.h
 sproingies.o: $(HACK_SRC)/xlockmoreI.h
 sproingiewrap.o: ../../config.h
 sproingiewrap.o: $(HACK_SRC)/fps.h
-sproingiewrap.o: $(srcdir)/jwzglesI.h
-sproingiewrap.o: $(srcdir)/jwzgles.h
 sproingiewrap.o: $(HACK_SRC)/screenhackI.h
 sproingiewrap.o: $(srcdir)/sproingies.h
 sproingiewrap.o: $(UTILS_SRC)/colors.h
+sproingiewrap.o: $(UTILS_SRC)/erase.h
 sproingiewrap.o: $(UTILS_SRC)/grabscreen.h
 sproingiewrap.o: $(UTILS_SRC)/hsv.h
 sproingiewrap.o: $(UTILS_SRC)/resources.h
 sproingiewrap.o: $(UTILS_SRC)/usleep.h
 sproingiewrap.o: $(UTILS_SRC)/visual.h
-sproingiewrap.o: $(UTILS_SRC)/xshm.h
 sproingiewrap.o: $(UTILS_SRC)/yarandom.h
 sproingiewrap.o: $(HACK_SRC)/xlockmoreI.h
 sproingiewrap.o: $(HACK_SRC)/xlockmore.h
@@ -2682,17 +2753,15 @@ stairs.o: ../../config.h
 stairs.o: $(HACK_SRC)/fps.h
 stairs.o: $(srcdir)/gltrackball.h
 stairs.o: $(HACK_SRC)/images/wood.xpm
-stairs.o: $(srcdir)/jwzglesI.h
-stairs.o: $(srcdir)/jwzgles.h
 stairs.o: $(HACK_SRC)/screenhackI.h
 stairs.o: $(srcdir)/sphere.h
 stairs.o: $(UTILS_SRC)/colors.h
+stairs.o: $(UTILS_SRC)/erase.h
 stairs.o: $(UTILS_SRC)/grabscreen.h
 stairs.o: $(UTILS_SRC)/hsv.h
 stairs.o: $(UTILS_SRC)/resources.h
 stairs.o: $(UTILS_SRC)/usleep.h
 stairs.o: $(UTILS_SRC)/visual.h
-stairs.o: $(UTILS_SRC)/xshm.h
 stairs.o: $(UTILS_SRC)/yarandom.h
 stairs.o: $(HACK_SRC)/xlockmoreI.h
 stairs.o: $(HACK_SRC)/xlockmore.h
@@ -2701,25 +2770,22 @@ starwars.o: ../../config.h
 starwars.o: $(HACK_SRC)/fps.h
 starwars.o: $(srcdir)/glut_roman.h
 starwars.o: $(srcdir)/glutstroke.h
-starwars.o: $(srcdir)/jwzglesI.h
-starwars.o: $(srcdir)/jwzgles.h
 starwars.o: $(HACK_SRC)/screenhackI.h
 starwars.o: $(srcdir)/starwars.h
 starwars.o: $(srcdir)/texfont.h
 starwars.o: $(UTILS_SRC)/colors.h
+starwars.o: $(UTILS_SRC)/erase.h
 starwars.o: $(UTILS_SRC)/grabscreen.h
 starwars.o: $(UTILS_SRC)/hsv.h
 starwars.o: $(UTILS_SRC)/resources.h
 starwars.o: $(UTILS_SRC)/textclient.h
 starwars.o: $(UTILS_SRC)/usleep.h
+starwars.o: $(UTILS_SRC)/utf8wc.h
 starwars.o: $(UTILS_SRC)/visual.h
-starwars.o: $(UTILS_SRC)/xshm.h
 starwars.o: $(UTILS_SRC)/yarandom.h
 starwars.o: $(HACK_SRC)/xlockmoreI.h
 starwars.o: $(HACK_SRC)/xlockmore.h
 stonerview-move.o: ../../config.h
-stonerview-move.o: $(srcdir)/jwzglesI.h
-stonerview-move.o: $(srcdir)/jwzgles.h
 stonerview-move.o: $(srcdir)/stonerview.h
 stonerview-move.o: $(srcdir)/stonerview-move.h
 stonerview-move.o: $(srcdir)/stonerview-osc.h
@@ -2727,115 +2793,96 @@ stonerview-move.o: $(UTILS_SRC)/yarandom.h
 stonerview.o: ../../config.h
 stonerview.o: $(HACK_SRC)/fps.h
 stonerview.o: $(srcdir)/gltrackball.h
-stonerview.o: $(srcdir)/jwzglesI.h
-stonerview.o: $(srcdir)/jwzgles.h
 stonerview.o: $(HACK_SRC)/screenhackI.h
 stonerview.o: $(srcdir)/stonerview.h
 stonerview.o: $(srcdir)/stonerview-move.h
 stonerview.o: $(srcdir)/stonerview-osc.h
 stonerview.o: $(UTILS_SRC)/colors.h
+stonerview.o: $(UTILS_SRC)/erase.h
 stonerview.o: $(UTILS_SRC)/grabscreen.h
 stonerview.o: $(UTILS_SRC)/hsv.h
 stonerview.o: $(UTILS_SRC)/resources.h
 stonerview.o: $(UTILS_SRC)/usleep.h
 stonerview.o: $(UTILS_SRC)/visual.h
-stonerview.o: $(UTILS_SRC)/xshm.h
 stonerview.o: $(UTILS_SRC)/yarandom.h
 stonerview.o: $(HACK_SRC)/xlockmoreI.h
 stonerview.o: $(HACK_SRC)/xlockmore.h
 stonerview-osc.o: ../../config.h
-stonerview-osc.o: $(srcdir)/jwzglesI.h
-stonerview-osc.o: $(srcdir)/jwzgles.h
 stonerview-osc.o: $(srcdir)/stonerview.h
 stonerview-osc.o: $(srcdir)/stonerview-move.h
 stonerview-osc.o: $(srcdir)/stonerview-osc.h
 stonerview-osc.o: $(UTILS_SRC)/yarandom.h
 stonerview-view.o: ../../config.h
-stonerview-view.o: $(srcdir)/jwzglesI.h
-stonerview-view.o: $(srcdir)/jwzgles.h
 stonerview-view.o: $(srcdir)/stonerview.h
 stonerview-view.o: $(srcdir)/stonerview-move.h
 stonerview-view.o: $(srcdir)/stonerview-osc.h
 superquadrics.o: ../../config.h
 superquadrics.o: $(HACK_SRC)/fps.h
-superquadrics.o: $(srcdir)/jwzglesI.h
-superquadrics.o: $(srcdir)/jwzgles.h
 superquadrics.o: $(HACK_SRC)/screenhackI.h
 superquadrics.o: $(UTILS_SRC)/colors.h
+superquadrics.o: $(UTILS_SRC)/erase.h
 superquadrics.o: $(UTILS_SRC)/grabscreen.h
 superquadrics.o: $(UTILS_SRC)/hsv.h
 superquadrics.o: $(UTILS_SRC)/resources.h
 superquadrics.o: $(UTILS_SRC)/usleep.h
 superquadrics.o: $(UTILS_SRC)/visual.h
-superquadrics.o: $(UTILS_SRC)/xshm.h
 superquadrics.o: $(UTILS_SRC)/yarandom.h
 superquadrics.o: $(HACK_SRC)/xlockmoreI.h
 superquadrics.o: $(HACK_SRC)/xlockmore.h
 surfaces.o: ../../config.h
 surfaces.o: $(HACK_SRC)/fps.h
 surfaces.o: $(srcdir)/gltrackball.h
-surfaces.o: $(srcdir)/jwzglesI.h
-surfaces.o: $(srcdir)/jwzgles.h
 surfaces.o: $(srcdir)/rotator.h
 surfaces.o: $(HACK_SRC)/screenhackI.h
 surfaces.o: $(UTILS_SRC)/colors.h
+surfaces.o: $(UTILS_SRC)/erase.h
 surfaces.o: $(UTILS_SRC)/grabscreen.h
 surfaces.o: $(UTILS_SRC)/hsv.h
 surfaces.o: $(UTILS_SRC)/resources.h
 surfaces.o: $(UTILS_SRC)/usleep.h
 surfaces.o: $(UTILS_SRC)/visual.h
-surfaces.o: $(UTILS_SRC)/xshm.h
 surfaces.o: $(UTILS_SRC)/yarandom.h
 surfaces.o: $(HACK_SRC)/xlockmoreI.h
 surfaces.o: $(HACK_SRC)/xlockmore.h
 swim.o: $(srcdir)/atlantis.h
 swim.o: ../../config.h
 swim.o: $(HACK_SRC)/fps.h
-swim.o: $(srcdir)/jwzglesI.h
-swim.o: $(srcdir)/jwzgles.h
 swim.o: $(HACK_SRC)/screenhackI.h
 swim.o: $(UTILS_SRC)/colors.h
+swim.o: $(UTILS_SRC)/erase.h
 swim.o: $(UTILS_SRC)/grabscreen.h
 swim.o: $(UTILS_SRC)/hsv.h
 swim.o: $(UTILS_SRC)/resources.h
 swim.o: $(UTILS_SRC)/usleep.h
 swim.o: $(UTILS_SRC)/visual.h
-swim.o: $(UTILS_SRC)/xshm.h
 swim.o: $(UTILS_SRC)/yarandom.h
 swim.o: $(HACK_SRC)/xlockmoreI.h
 tangram.o: ../../config.h
 tangram.o: $(HACK_SRC)/fps.h
-tangram.o: $(srcdir)/glxfonts.h
-tangram.o: $(srcdir)/jwzglesI.h
-tangram.o: $(srcdir)/jwzgles.h
 tangram.o: $(HACK_SRC)/screenhackI.h
 tangram.o: $(srcdir)/tangram_shapes.h
 tangram.o: $(srcdir)/texfont.h
 tangram.o: $(UTILS_SRC)/colors.h
+tangram.o: $(UTILS_SRC)/erase.h
 tangram.o: $(UTILS_SRC)/grabscreen.h
 tangram.o: $(UTILS_SRC)/hsv.h
 tangram.o: $(UTILS_SRC)/resources.h
 tangram.o: $(UTILS_SRC)/usleep.h
 tangram.o: $(UTILS_SRC)/visual.h
-tangram.o: $(UTILS_SRC)/xshm.h
 tangram.o: $(UTILS_SRC)/yarandom.h
 tangram.o: $(HACK_SRC)/xlockmoreI.h
 tangram.o: $(HACK_SRC)/xlockmore.h
 tangram_shapes.o: ../../config.h
-tangram_shapes.o: $(srcdir)/jwzglesI.h
-tangram_shapes.o: $(srcdir)/jwzgles.h
 tangram_shapes.o: $(srcdir)/tangram_shapes.h
 teapot.o: ../../config.h
-teapot.o: $(srcdir)/jwzglesI.h
-teapot.o: $(srcdir)/jwzgles.h
-teapot.o: $(srcdir)/normals.h
-teapot.o: $(srcdir)/teapot2.h
 teapot.o: $(srcdir)/teapot.h
 texfont.o: ../../config.h
-texfont.o: $(srcdir)/jwzglesI.h
-texfont.o: $(srcdir)/jwzgles.h
+texfont.o: $(HACK_SRC)/fps.h
 texfont.o: $(srcdir)/texfont.h
+texfont.o: $(UTILS_SRC)/pow2.h
 texfont.o: $(UTILS_SRC)/resources.h
+texfont.o: $(UTILS_SRC)/xft.h
+texfont.o: $(UTILS_SRC)/xshm.h
 timetunnel.o: ../../config.h
 timetunnel.o: $(HACK_SRC)/fps.h
 timetunnel.o: $(srcdir)/gltrackball.h
@@ -2843,78 +2890,54 @@ timetunnel.o: $(HACK_SRC)/images/timetunnel0.xpm
 timetunnel.o: $(HACK_SRC)/images/timetunnel1.xpm
 timetunnel.o: $(HACK_SRC)/images/timetunnel2.xpm
 timetunnel.o: $(HACK_SRC)/images/tunnelstar.xpm
-timetunnel.o: $(srcdir)/jwzglesI.h
-timetunnel.o: $(srcdir)/jwzgles.h
 timetunnel.o: $(srcdir)/rotator.h
 timetunnel.o: $(HACK_SRC)/screenhackI.h
 timetunnel.o: $(UTILS_SRC)/colors.h
+timetunnel.o: $(UTILS_SRC)/erase.h
 timetunnel.o: $(UTILS_SRC)/grabscreen.h
 timetunnel.o: $(UTILS_SRC)/hsv.h
 timetunnel.o: $(UTILS_SRC)/images/logo-180.xpm
 timetunnel.o: $(UTILS_SRC)/resources.h
 timetunnel.o: $(UTILS_SRC)/usleep.h
 timetunnel.o: $(UTILS_SRC)/visual.h
-timetunnel.o: $(UTILS_SRC)/xshm.h
 timetunnel.o: $(UTILS_SRC)/yarandom.h
 timetunnel.o: $(HACK_SRC)/xlockmoreI.h
 timetunnel.o: $(HACK_SRC)/xlockmore.h
 timetunnel.o: $(srcdir)/xpm-ximage.h
 toast2.o: ../../config.h
 toast2.o: $(srcdir)/gllist.h
-toast2.o: $(srcdir)/jwzglesI.h
-toast2.o: $(srcdir)/jwzgles.h
 toaster_base.o: ../../config.h
 toaster_base.o: $(srcdir)/gllist.h
-toaster_base.o: $(srcdir)/jwzglesI.h
-toaster_base.o: $(srcdir)/jwzgles.h
 toaster_handle2.o: ../../config.h
 toaster_handle2.o: $(srcdir)/gllist.h
-toaster_handle2.o: $(srcdir)/jwzglesI.h
-toaster_handle2.o: $(srcdir)/jwzgles.h
 toaster_handle.o: ../../config.h
 toaster_handle.o: $(srcdir)/gllist.h
-toaster_handle.o: $(srcdir)/jwzglesI.h
-toaster_handle.o: $(srcdir)/jwzgles.h
 toaster_jet.o: ../../config.h
 toaster_jet.o: $(srcdir)/gllist.h
-toaster_jet.o: $(srcdir)/jwzglesI.h
-toaster_jet.o: $(srcdir)/jwzgles.h
 toaster_knob.o: ../../config.h
 toaster_knob.o: $(srcdir)/gllist.h
-toaster_knob.o: $(srcdir)/jwzglesI.h
-toaster_knob.o: $(srcdir)/jwzgles.h
 toaster.o: ../../config.h
 toaster.o: $(srcdir)/gllist.h
-toaster.o: $(srcdir)/jwzglesI.h
-toaster.o: $(srcdir)/jwzgles.h
 toaster_slots.o: ../../config.h
 toaster_slots.o: $(srcdir)/gllist.h
-toaster_slots.o: $(srcdir)/jwzglesI.h
-toaster_slots.o: $(srcdir)/jwzgles.h
 toaster_wing.o: ../../config.h
 toaster_wing.o: $(srcdir)/gllist.h
-toaster_wing.o: $(srcdir)/jwzglesI.h
-toaster_wing.o: $(srcdir)/jwzgles.h
 toast.o: ../../config.h
 toast.o: $(srcdir)/gllist.h
-toast.o: $(srcdir)/jwzglesI.h
-toast.o: $(srcdir)/jwzgles.h
 topblock.o: ../../config.h
 topblock.o: $(HACK_SRC)/fps.h
 topblock.o: $(srcdir)/gltrackball.h
-topblock.o: $(srcdir)/jwzglesI.h
-topblock.o: $(srcdir)/jwzgles.h
 topblock.o: $(HACK_SRC)/screenhackI.h
 topblock.o: $(srcdir)/sphere.h
 topblock.o: $(srcdir)/topblock.h
 topblock.o: $(srcdir)/tube.h
 topblock.o: $(UTILS_SRC)/colors.h
+topblock.o: $(UTILS_SRC)/erase.h
 topblock.o: $(UTILS_SRC)/grabscreen.h
 topblock.o: $(UTILS_SRC)/hsv.h
 topblock.o: $(UTILS_SRC)/resources.h
 topblock.o: $(UTILS_SRC)/usleep.h
 topblock.o: $(UTILS_SRC)/visual.h
-topblock.o: $(UTILS_SRC)/xshm.h
 topblock.o: $(UTILS_SRC)/yarandom.h
 topblock.o: $(HACK_SRC)/xlockmoreI.h
 topblock.o: $(HACK_SRC)/xlockmore.h
@@ -2922,94 +2945,108 @@ trackball.o: ../../config.h
 trackball.o: $(srcdir)/trackball.h
 tronbit_idle1.o: ../../config.h
 tronbit_idle1.o: $(srcdir)/gllist.h
-tronbit_idle1.o: $(srcdir)/jwzglesI.h
-tronbit_idle1.o: $(srcdir)/jwzgles.h
 tronbit_idle2.o: ../../config.h
 tronbit_idle2.o: $(srcdir)/gllist.h
-tronbit_idle2.o: $(srcdir)/jwzglesI.h
-tronbit_idle2.o: $(srcdir)/jwzgles.h
 tronbit_no.o: ../../config.h
 tronbit_no.o: $(srcdir)/gllist.h
-tronbit_no.o: $(srcdir)/jwzglesI.h
-tronbit_no.o: $(srcdir)/jwzgles.h
 tronbit.o: ../../config.h
 tronbit.o: $(HACK_SRC)/fps.h
 tronbit.o: $(srcdir)/gllist.h
 tronbit.o: $(srcdir)/gltrackball.h
-tronbit.o: $(srcdir)/jwzglesI.h
-tronbit.o: $(srcdir)/jwzgles.h
 tronbit.o: $(srcdir)/rotator.h
 tronbit.o: $(HACK_SRC)/screenhackI.h
 tronbit.o: $(srcdir)/sphere.h
 tronbit.o: $(UTILS_SRC)/colors.h
+tronbit.o: $(UTILS_SRC)/erase.h
 tronbit.o: $(UTILS_SRC)/grabscreen.h
 tronbit.o: $(UTILS_SRC)/hsv.h
 tronbit.o: $(UTILS_SRC)/resources.h
 tronbit.o: $(UTILS_SRC)/usleep.h
 tronbit.o: $(UTILS_SRC)/visual.h
-tronbit.o: $(UTILS_SRC)/xshm.h
 tronbit.o: $(UTILS_SRC)/yarandom.h
 tronbit.o: $(HACK_SRC)/xlockmoreI.h
 tronbit.o: $(HACK_SRC)/xlockmore.h
 tronbit_yes.o: ../../config.h
 tronbit_yes.o: $(srcdir)/gllist.h
-tronbit_yes.o: $(srcdir)/jwzglesI.h
-tronbit_yes.o: $(srcdir)/jwzgles.h
 tube.o: ../../config.h
-tube.o: $(srcdir)/jwzglesI.h
-tube.o: $(srcdir)/jwzgles.h
 tube.o: $(srcdir)/tube.h
 tunnel_draw.o: ../../config.h
 tunnel_draw.o: $(HACK_SRC)/fps.h
-tunnel_draw.o: $(srcdir)/jwzglesI.h
-tunnel_draw.o: $(srcdir)/jwzgles.h
 tunnel_draw.o: $(HACK_SRC)/screenhackI.h
 tunnel_draw.o: $(srcdir)/tunnel_draw.h
 tunnel_draw.o: $(UTILS_SRC)/colors.h
+tunnel_draw.o: $(UTILS_SRC)/erase.h
 tunnel_draw.o: $(UTILS_SRC)/grabscreen.h
 tunnel_draw.o: $(UTILS_SRC)/hsv.h
 tunnel_draw.o: $(UTILS_SRC)/resources.h
 tunnel_draw.o: $(UTILS_SRC)/usleep.h
 tunnel_draw.o: $(UTILS_SRC)/visual.h
-tunnel_draw.o: $(UTILS_SRC)/xshm.h
 tunnel_draw.o: $(UTILS_SRC)/yarandom.h
 tunnel_draw.o: $(HACK_SRC)/xlockmoreI.h
+unicrud.o: ../../config.h
+unicrud.o: $(HACK_SRC)/fps.h
+unicrud.o: $(srcdir)/gltrackball.h
+unicrud.o: $(srcdir)/rotator.h
+unicrud.o: $(HACK_SRC)/screenhackI.h
+unicrud.o: $(srcdir)/texfont.h
+unicrud.o: $(UTILS_SRC)/colors.h
+unicrud.o: $(UTILS_SRC)/erase.h
+unicrud.o: $(UTILS_SRC)/grabscreen.h
+unicrud.o: $(UTILS_SRC)/hsv.h
+unicrud.o: $(UTILS_SRC)/resources.h
+unicrud.o: $(UTILS_SRC)/usleep.h
+unicrud.o: $(UTILS_SRC)/utf8wc.h
+unicrud.o: $(UTILS_SRC)/visual.h
+unicrud.o: $(UTILS_SRC)/yarandom.h
+unicrud.o: $(HACK_SRC)/xlockmoreI.h
+unicrud.o: $(HACK_SRC)/xlockmore.h
 unknownpleasures.o: ../../config.h
 unknownpleasures.o: $(HACK_SRC)/fps.h
 unknownpleasures.o: $(srcdir)/gltrackball.h
-unknownpleasures.o: $(srcdir)/jwzglesI.h
-unknownpleasures.o: $(srcdir)/jwzgles.h
 unknownpleasures.o: $(HACK_SRC)/screenhackI.h
 unknownpleasures.o: $(UTILS_SRC)/colors.h
+unknownpleasures.o: $(UTILS_SRC)/erase.h
 unknownpleasures.o: $(UTILS_SRC)/grabscreen.h
 unknownpleasures.o: $(UTILS_SRC)/hsv.h
 unknownpleasures.o: $(UTILS_SRC)/resources.h
 unknownpleasures.o: $(UTILS_SRC)/usleep.h
 unknownpleasures.o: $(UTILS_SRC)/visual.h
-unknownpleasures.o: $(UTILS_SRC)/xshm.h
 unknownpleasures.o: $(UTILS_SRC)/yarandom.h
 unknownpleasures.o: $(HACK_SRC)/xlockmoreI.h
 unknownpleasures.o: $(HACK_SRC)/xlockmore.h
+vigilance.o: ../../config.h
+vigilance.o: $(HACK_SRC)/fps.h
+vigilance.o: $(srcdir)/gllist.h
+vigilance.o: $(srcdir)/gltrackball.h
+vigilance.o: $(srcdir)/normals.h
+vigilance.o: $(HACK_SRC)/screenhackI.h
+vigilance.o: $(UTILS_SRC)/colors.h
+vigilance.o: $(UTILS_SRC)/erase.h
+vigilance.o: $(UTILS_SRC)/grabscreen.h
+vigilance.o: $(UTILS_SRC)/hsv.h
+vigilance.o: $(UTILS_SRC)/resources.h
+vigilance.o: $(UTILS_SRC)/usleep.h
+vigilance.o: $(UTILS_SRC)/visual.h
+vigilance.o: $(UTILS_SRC)/yarandom.h
+vigilance.o: $(HACK_SRC)/xlockmoreI.h
+vigilance.o: $(HACK_SRC)/xlockmore.h
+vigilance.o: $(srcdir)/xpm-ximage.h
 voronoi.o: ../../config.h
 voronoi.o: $(HACK_SRC)/fps.h
-voronoi.o: $(srcdir)/jwzglesI.h
-voronoi.o: $(srcdir)/jwzgles.h
 voronoi.o: $(HACK_SRC)/screenhackI.h
 voronoi.o: $(UTILS_SRC)/colors.h
+voronoi.o: $(UTILS_SRC)/erase.h
 voronoi.o: $(UTILS_SRC)/grabscreen.h
 voronoi.o: $(UTILS_SRC)/hsv.h
 voronoi.o: $(UTILS_SRC)/resources.h
 voronoi.o: $(UTILS_SRC)/usleep.h
 voronoi.o: $(UTILS_SRC)/visual.h
-voronoi.o: $(UTILS_SRC)/xshm.h
 voronoi.o: $(UTILS_SRC)/yarandom.h
 voronoi.o: $(HACK_SRC)/xlockmoreI.h
 voronoi.o: $(HACK_SRC)/xlockmore.h
 whale.o: $(srcdir)/atlantis.h
 whale.o: ../../config.h
 whale.o: $(HACK_SRC)/fps.h
-whale.o: $(srcdir)/jwzglesI.h
-whale.o: $(srcdir)/jwzgles.h
 whale.o: $(HACK_SRC)/screenhackI.h
 whale.o: $(UTILS_SRC)/colors.h
 whale.o: $(UTILS_SRC)/grabscreen.h
@@ -3022,39 +3059,34 @@ winduprobot.o: ../../config.h
 winduprobot.o: $(HACK_SRC)/fps.h
 winduprobot.o: $(srcdir)/gllist.h
 winduprobot.o: $(srcdir)/gltrackball.h
-winduprobot.o: $(srcdir)/glxfonts.h
+winduprobot.o: $(HACK_SRC)/images/chromesphere.xpm
 winduprobot.o: $(srcdir)/involute.h
-winduprobot.o: $(srcdir)/jwzglesI.h
-winduprobot.o: $(srcdir)/jwzgles.h
 winduprobot.o: $(HACK_SRC)/screenhackI.h
 winduprobot.o: $(srcdir)/sphere.h
 winduprobot.o: $(srcdir)/texfont.h
 winduprobot.o: $(UTILS_SRC)/colors.h
+winduprobot.o: $(UTILS_SRC)/erase.h
 winduprobot.o: $(UTILS_SRC)/grabscreen.h
 winduprobot.o: $(UTILS_SRC)/hsv.h
 winduprobot.o: $(UTILS_SRC)/resources.h
 winduprobot.o: $(UTILS_SRC)/textclient.h
 winduprobot.o: $(UTILS_SRC)/usleep.h
 winduprobot.o: $(UTILS_SRC)/visual.h
-winduprobot.o: $(UTILS_SRC)/xshm.h
 winduprobot.o: $(UTILS_SRC)/yarandom.h
 winduprobot.o: $(HACK_SRC)/xlockmoreI.h
 winduprobot.o: $(HACK_SRC)/xlockmore.h
 winduprobot.o: $(srcdir)/xpm-ximage.h
 xlock-gl-utils.o: ../../config.h
 xlock-gl-utils.o: $(HACK_SRC)/fps.h
-xlock-gl-utils.o: $(srcdir)/glxfonts.h
-xlock-gl-utils.o: $(srcdir)/jwzglesI.h
-xlock-gl-utils.o: $(srcdir)/jwzgles.h
 xlock-gl-utils.o: $(HACK_SRC)/screenhackI.h
 xlock-gl-utils.o: $(srcdir)/texfont.h
 xlock-gl-utils.o: $(UTILS_SRC)/colors.h
+xlock-gl-utils.o: $(UTILS_SRC)/erase.h
 xlock-gl-utils.o: $(UTILS_SRC)/grabscreen.h
 xlock-gl-utils.o: $(UTILS_SRC)/hsv.h
 xlock-gl-utils.o: $(UTILS_SRC)/resources.h
 xlock-gl-utils.o: $(UTILS_SRC)/usleep.h
 xlock-gl-utils.o: $(UTILS_SRC)/visual.h
-xlock-gl-utils.o: $(UTILS_SRC)/xshm.h
 xlock-gl-utils.o: $(UTILS_SRC)/yarandom.h
 xlock-gl-utils.o: $(HACK_SRC)/xlockmoreI.h
 xpm-ximage.o: ../../config.h