From http://www.jwz.org/xscreensaver/xscreensaver-5.39.tar.gz
[xscreensaver] / hacks / glx / Makefile.in
index c58c98cc76475989cfa78ab22052c182f632daf9..bbd07f38651b41c29f86d6e454f2ae436bab6ba8 100644 (file)
@@ -1,4 +1,4 @@
-# hacks/glx/Makefile.in --- xscreensaver, Copyright (c) 1999-2010
+# hacks/glx/Makefile.in --- xscreensaver, Copyright (c) 1999-2018
 #  by Jamie Zawinski.
 # the `../../configure' script generates `hacks/glx/Makefile' from this file.
 
@@ -30,6 +30,7 @@ CFLAGS                = @CFLAGS@
 LDFLAGS                = @LDFLAGS@
 DEFS           = -DSTANDALONE -DUSE_GL @DEFS@
 LIBS           = @LIBS@
+PERL           = @PERL@
 
 DEPEND         = @DEPEND@
 DEPEND_FLAGS   = @DEPEND_FLAGS@
@@ -48,51 +49,58 @@ 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)
-XPM_LIBS       = $(HACK_PRE)            @XPM_LIBS@ $(HACK_POST2)
-GLE_LIBS       = $(HACK_PRE) @GLE_LIBS@ @XPM_LIBS@ $(HACK_POST2)
+HACK_LIBS      = $(HACK_PRE)           @ANIM_LIBS@ $(HACK_POST2)
+PNG_LIBS       = $(HACK_PRE)            @PNG_LIBS@ $(HACK_POST2)
+GLE_LIBS       = $(HACK_PRE) @GLE_LIBS@ @PNG_LIBS@ $(HACK_POST2)
 TEXT_LIBS      = @PTY_LIBS@
-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@
 
-UTIL_SRCS      = $(UTILS_SRC)/colors.c $(UTILS_SRC)/hsv.c \
-                 $(UTILS_SRC)/resources.c $(UTILS_SRC)/usleep.c \
-                 $(UTILS_SRC)/visual.c $(UTILS_SRC)/visual-gl.c \
-                 $(UTILS_SRC)/yarandom.c $(UTILS_SRC)/xshm.c \
-                 $(UTILS_SRC)/textclient.c
-UTIL_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
-
-SRCS           = xscreensaver-gl-helper.c normals.c glxfonts.c fps-gl.c \
+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)/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 \
+                 $(UTILS_SRC)/font-retry.c
+JWXYZ_OBJS     = $(JWXYZ_BIN)/jwzgles.o
+HACKDIR_OBJS   = $(HACK_BIN)/screenhack.o $(HACK_BIN)/xlockmore.o \
+                 $(HACK_BIN)/fps.o $(HACK_BIN)/ximage-loader.o
+PNG            = $(HACK_BIN)/ximage-loader.o
+
+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 moebius.c \
-                 morph3d.c pipeobjs.c pipes.c rubik.c s1_1.c s1_2.c s1_3.c \
-                 s1_4.c s1_5.c s1_6.c s1_b.c shark.c sproingies.c \
+                 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 \
+                 s1_3.c s1_4.c s1_5.c s1_6.c s1_b.c shark.c sproingies.c \
                  sproingiewrap.c stairs.c superquadrics.c swim.c whale.c \
-                 xlock-gl-utils.c xpm-ximage.c glplanet.c pulsar.c \
+                 xlock-gl-utils.c glplanet.c pulsar.c \
                  extrusion.c extrusion-helix2.c extrusion-helix3.c \
                  extrusion-helix4.c extrusion-joinoffset.c extrusion-screw.c \
                  extrusion-taper.c extrusion-twistoid.c sierpinski3d.c \
                  gflux.c stonerview.c stonerview-move.c stonerview-osc.c \
                  stonerview-view.c starwars.c glut_stroke.c glut_swidth.c \
                  gltext.c molecule.c dangerball.c sphere.c tube.c circuit.c \
-                 menger.c engine.c flipscreen3d.c font-ximage.c 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 \
@@ -116,23 +124,29 @@ 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
-
-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 razzledazzle.c \
+                 ships.c peepers.c crumbler.c quickhull.c maze3d.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 moebius.o \
-                 morph3d.o pipeobjs.o pipes.o rubik.o s1_1.o s1_2.o s1_3.o \
-                 s1_4.o s1_5.o s1_6.o s1_b.o shark.o sproingies.o \
+                 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 \
+                 s1_3.o s1_4.o s1_5.o s1_6.o s1_b.o shark.o sproingies.o \
                  sproingiewrap.o stairs.o superquadrics.o swim.o whale.o \
-                 xlock-gl-utils.o xpm-ximage.o glplanet.o pulsar.o \
+                 xlock-gl-utils.o glplanet.o pulsar.o \
                  extrusion.o extrusion-helix2.o extrusion-helix3.o \
                  extrusion-helix4.o extrusion-joinoffset.o extrusion-screw.o \
                  extrusion-taper.o extrusion-twistoid.o sierpinski3d.o \
                  gflux.o stonerview.o stonerview-move.o stonerview-osc.o \
                  stonerview-view.o starwars.o glut_stroke.o glut_swidth.o \
                  gltext.o molecule.o dangerball.o sphere.o tube.o circuit.o \
-                 menger.o engine.o flipscreen3d.o font-ximage.o 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 \
@@ -156,8 +170,14 @@ 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
+                 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 razzledazzle.o \
+                 ships.o peepers.o crumbler.o quickhull.o maze3d.o
 
 GL_EXES                = cage gears moebius pipes sproingies stairs superquadrics \
                  morph3d rubik atlantis lament bubble3d glplanet pulsar \
@@ -173,7 +193,12 @@ GL_EXES            = cage gears moebius pipes sproingies stairs superquadrics \
                  juggler3d topblock glschool glcells voronoi moebiusgears \
                  lockward cubicgrid hypnowheel skytentacles jigsaw photopile \
                  rubikblocks surfaces hilbert companioncube tronbit \
-                 kaleidocycle quasicrystal unknownpleasures geodesic
+                 kaleidocycle quasicrystal unknownpleasures geodesic \
+                 geodesicgears projectiveplane winduprobot cityflow romanboy \
+                 splitflap dymaxionmap unicrud energystream raverhoop \
+                 hydrostat discoball cubetwist cubestack splodesic \
+                 hexstrut vigilance esper razzledazzle peepers crumbler \
+                 maze3d
 GLE_EXES       = extrusion
 SUID_EXES      = sonar
 GL_UTIL_EXES   = xscreensaver-gl-helper
@@ -182,31 +207,35 @@ 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      = @PNG_LIBS@
 EXES           = @GL_UTIL_EXES@ $(HACK_EXES)
 
 RETIRED_EXES   = @RETIRED_GL_EXES@
 RETIRED_GL_EXES        = glforestfire
 
-FPS_OBJS       = @GLFPS_OBJS@ $(HACK_BIN)/fps.o
-FONT_OBJS      = @GLFONT_OBJS@
-
-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 \
+                 $(UTILS_BIN)/font-retry.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 \
+HDRS           = atlantis.h bubble3d.h buildlwo.h e_textures.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 \
+                 quickhull.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 \
@@ -229,13 +258,19 @@ GL_MEN            = atlantis.man boxed.man bubble3d.man cage.man circuit.man \
                  hypnowheel.man skytentacles.man sonar.man jigsaw.man \
                  photopile.man rubikblocks.man surfaces.man hilbert.man \
                  companioncube.man tronbit.man kaleidocycle.man \
-                 quasicrystal.man unknownpleasures.man geodesic.man
+                 quasicrystal.man unknownpleasures.man geodesic.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 razzledazzle.man \
+                 peepers.man crumbler.man maze3d.man
 MEN            = @GL_MEN@
 RETIRED_MEN    = glforestfire.man
 EXTRAS         = README Makefile.in dxf2gl.pl vrml2gl.pl wfront2gl.pl \
-                 molecules.sh starwars.txt
+                 molecules.sh starwars.txt zalgo.txt *.dxf
 
-TARFILES       = $(SRCS) $(HDRS) $(MEN) $(RETIRED_MEN) $(EXTRAS)
+TARFILES       = $(SRCS) $(HDRS) $(GL_MEN) $(RETIRED_MEN) $(EXTRAS)
 
 
 default: all
@@ -380,7 +415,7 @@ uninstall-xml:
                  rm -f $$dest/$$file.xml ;                             \
        done
 
-clean:
+clean::
        -rm -f *.o a.out core $(EXES) $(RETIRED_EXES) molecules.h
 
 distclean: clean
@@ -409,6 +444,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'                            \
@@ -417,7 +453,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
 
 
@@ -446,15 +481,15 @@ check_men:
 
 validate_xml:
        @echo "Validating XML..." ; \
-       cd $(HACK_SRC) ; ./check-configs.pl $(EXES)
+       cd $(HACK_SRC) ; ./check-configs.pl $(GL_EXES) $(GLE_EXES) $(SUID_EXES)
 
 distdepend:: check_men validate_xml
 
 
 
-# Rules for noticing when the objects from the utils directory are out of
-# date with respect to their sources, and going and building them according
-# to the rules in their own Makefile...
+# Rules for noticing when the objects from the utils and hacks
+# directories are out of date with respect to their sources, and going
+# and building them according to the rules in their own Makefile...
 #
 $(UTILS_BIN)/colors.o:         $(UTILS_SRC)/colors.c
 $(UTILS_BIN)/grabclient.o:     $(UTILS_SRC)/grabclient.c
@@ -462,22 +497,39 @@ $(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)/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
-
-$(UTIL_OBJS):
-       $(MAKE) -C $(UTILS_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
-
-$(HACK_BIN)/xlockmore.o: $(HACK_SRC)/xlockmore.c
-       $(MAKE) -C $(HACK_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+$(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
+$(UTILS_BIN)/font-retry.o:     $(UTILS_SRC)/font-retry.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):
+       cd $(UTILS_BIN) ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+$(JWXYZ_OBJS):
+       cd $(JWXYZ_BIN) ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+$(HACKDIR_OBJS):
+       cd $(HACK_BIN)  ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
 
 
 # How we build object files in this directory.
 .c.o:
-       $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) $<
+       $(CC) -c $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) $<
 
+# Make sure the images have been packaged. This is the first one hit:
+$(srcdir)/../images/gen/wood_png.h:
+       cd $(srcdir)/../images && $(MAKE)
 
 # How to build the "xscreensaver-gl-helper" program, that lets the daemon
 # know which visual is the right one for GL programs.
@@ -488,31 +540,32 @@ 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) $(CFLAGS) $(X_CFLAGS)
-xlockmore-gl.o: $(HACK_SRC)/xlockmore.c
-       $(CC) -o $@ -c $(XLM_CFLAGS) $(HACK_SRC)/xlockmore.c
+XLM_CFLAGS=-DUSE_GL $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS)
+recanim-gl.o: $(HACK_SRC)/recanim.c
+       $(CC) -o $@ -c $(XLM_CFLAGS) $(HACK_SRC)/recanim.c
 
 CC_HACK                = $(CC) $(LDFLAGS)
 
+
 TRACK_OBJS=rotator.o trackball.o gltrackball.o
 HACK_TRACK_OBJS=$(HACK_OBJS) $(TRACK_OBJS)
 HACK_GRAB_OBJS=$(HACK_OBJS) $(GRAB_OBJS)
 HACK_TRACK_GRAB_OBJS=$(HACK_TRACK_OBJS) $(GRAB_OBJS)
 TEXT=$(UTILS_BIN)/textclient.o
 
-ATLANTIS_OBJS = $(HACK_OBJS) dolphin.o shark.o swim.o whale.o xpm-ximage.o
+ATLANTIS_OBJS = $(HACK_OBJS) dolphin.o shark.o swim.o whale.o $(PNG)
 atlantis:      atlantis.o      $(ATLANTIS_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(ATLANTIS_OBJS) $(XPM_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(ATLANTIS_OBJS) $(PNG_LIBS)
 
-ATUNNEL_OBJS = $(HACK_OBJS) tunnel_draw.o xpm-ximage.o
+ATUNNEL_OBJS = $(HACK_OBJS) tunnel_draw.o $(PNG)
 atunnel:       atunnel.o       $(ATUNNEL_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(ATUNNEL_OBJS) $(XPM_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(ATUNNEL_OBJS) $(PNG_LIBS)
 
-cage:          cage.o          xpm-ximage.o $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_OBJS) $(XPM_LIBS)
+cage:          cage.o          $(PNG) $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(PNG) $(HACK_OBJS) $(PNG_LIBS)
 
 FLURRY_OBJS_1 = flurry-smoke.o flurry-spark.o flurry-star.o flurry-texture.o
 FLURRY_OBJS = $(FLURRY_OBJS_1) $(HACK_OBJS)
@@ -520,13 +573,14 @@ 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)
 
-MOEBIUS_OBJS=sphere.o tube.o xpm-ximage.o $(HACK_TRACK_OBJS)
+MOEBIUS_OBJS=sphere.o tube.o $(PNG) $(HACK_TRACK_OBJS)
 moebius:       moebius.o       $(MOEBIUS_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(MOEBIUS_OBJS) $(HACK_LIBS) $(XPM_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(MOEBIUS_OBJS) $(HACK_LIBS) $(PNG_LIBS)
 
 PIPE_OBJS=pipeobjs.o buildlwo.o sphere.o teapot.o normals.o
 pipes:         pipes.o         $(PIPE_OBJS) $(HACK_TRACK_OBJS)
@@ -541,36 +595,43 @@ morph3d:  morph3d.o       $(HACK_OBJS)
 rubik:         rubik.o         $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-stairs:                stairs.o        sphere.o xpm-ximage.o $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   sphere.o xpm-ximage.o $(HACK_TRACK_OBJS) \
-                               $(HACK_LIBS) $(XPM_LIBS)
+stairs:                stairs.o        sphere.o $(PNG) $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   sphere.o $(PNG) $(HACK_TRACK_OBJS) \
+                               $(HACK_LIBS) $(PNG_LIBS)
 
 SPROINGIES = sproingiewrap.o gllist.o \
             s1_1.o s1_2.o s1_3.o s1_4.o s1_5.o s1_6.o s1_b.o
 sproingies: sproingies.o       $(HACK_OBJS) $(SPROINGIES)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(SPROINGIES) $(HACK_LIBS)
 
-LAMENTOBJS = $(HACK_TRACK_OBJS) xpm-ximage.o normals.o
+LAMENTOBJS = gllist.o lament_model.o $(HACK_TRACK_OBJS) $(PNG) normals.o
 lament:                lament.o        $(LAMENTOBJS)
-       $(CC_HACK) -o $@ $@.o   $(LAMENTOBJS) $(XPM_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(LAMENTOBJS) $(PNG_LIBS)
+
+lament_dxf::
+       ./dxf2gl.pl --smooth --layers lament.dxf lament_model.c
+
 
 B3D_OBJS = b_sphere.o b_draw.o b_lockglue.o $(HACK_OBJS)
 bubble3d:      bubble3d.o      $(B3D_OBJS)
        $(CC_HACK) -o $@ $@.o   $(B3D_OBJS) $(HACK_LIBS)
 
-PLANET_OBJS=sphere.o xpm-ximage.o $(HACK_TRACK_OBJS)
+PLANET_OBJS=sphere.o $(PNG) $(HACK_TRACK_OBJS)
 glplanet:      glplanet.o      $(PLANET_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(PLANET_OBJS) $(XPM_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(PLANET_OBJS) $(PNG_LIBS)
+
+dymaxionmap: dymaxionmap.o normals.o $(PLANET_OBJS)
+       $(CC_HACK) -o $@ $@.o   normals.o $(PLANET_OBJS) $(PNG_LIBS)
 
-pulsar:                pulsar.o        $(HACK_OBJS) xpm-ximage.o
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) xpm-ximage.o $(XPM_LIBS)
+pulsar:                pulsar.o        $(HACK_OBJS) $(PNG)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(PNG) $(PNG_LIBS)
 
 EXTRUSION_OBJS=extrusion.o extrusion-helix2.o extrusion-helix3.o    \
        extrusion-helix4.o extrusion-joinoffset.o extrusion-screw.o \
-       extrusion-taper.o extrusion-twistoid.o xpm-ximage.o \
+       extrusion-taper.o extrusion-twistoid.o $(PNG) \
        $(HACK_TRACK_OBJS)
 extrusion:                     $(EXTRUSION_OBJS)
-       $(CC_HACK) -o $@        $(EXTRUSION_OBJS) $(XPM_LIBS) $(GLE_LIBS)
+       $(CC_HACK) -o $@        $(EXTRUSION_OBJS) $(GLE_LIBS)
 
 sierpinski3d:  sierpinski3d.o  $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
@@ -578,8 +639,7 @@ sierpinski3d:       sierpinski3d.o  $(HACK_TRACK_OBJS)
 gflux:         gflux.o         $(HACK_TRACK_GRAB_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
 
-SW_OBJS=starwars.o glut_stroke.o glut_swidth.o \
-        $(TEXT) ${FONT_OBJS} $(HACK_OBJS)
+SW_OBJS=starwars.o glut_stroke.o glut_swidth.o $(TEXT) $(HACK_OBJS)
 starwars:                      $(SW_OBJS)
        $(CC_HACK) -o $@        $(SW_OBJS) $(HACK_LIBS) $(TEXT_LIBS)
 
@@ -592,8 +652,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)
@@ -610,11 +670,11 @@ glsnake:  glsnake.o       $(HACK_OBJS)
 boxed:         boxed.o         $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
 
-glforestfire:  glforestfire.o  xpm-ximage.o $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_TRACK_OBJS) $(XPM_LIBS)
+glforestfire:  glforestfire.o  $(PNG) $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(PNG) $(HACK_TRACK_OBJS) $(PNG_LIBS)
 
-sballs:                sballs.o        xpm-ximage.o $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_TRACK_OBJS) $(XPM_LIBS)
+sballs:                sballs.o        $(PNG) $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(PNG) $(HACK_TRACK_OBJS) $(PNG_LIBS)
 
 cubenetic:     cubenetic.o     $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
@@ -622,9 +682,9 @@ cubenetic:  cubenetic.o     $(HACK_TRACK_OBJS)
 spheremonics:  spheremonics.o  normals.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-LL_OBJS=marching.o xpm-ximage.o normals.o $(HACK_TRACK_OBJS)
+LL_OBJS=marching.o $(PNG) normals.o $(HACK_TRACK_OBJS)
 lavalite:      lavalite.o      $(LL_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(LL_OBJS) $(XPM_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(LL_OBJS) $(PNG_LIBS)
 
 queens:                queens.o        chessmodels.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   chessmodels.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
@@ -639,21 +699,56 @@ TOAST_OBJS=\
   toaster.o toaster_base.o toaster_handle.o toaster_handle2.o \
   toaster_jet.o toaster_knob.o toaster_slots.o toaster_wing.o \
   toast.o toast2.o \
-  flyingtoasters.o gllist.o xpm-ximage.o $(HACK_TRACK_OBJS)
+  flyingtoasters.o gllist.o $(PNG) $(HACK_TRACK_OBJS)
 flyingtoasters:                        $(TOAST_OBJS)
-       $(CC_HACK) -o $@        $(TOAST_OBJS) $(XPM_LIBS)
+       $(CC_HACK) -o $@        $(TOAST_OBJS) $(PNG_LIBS)
+
+toaster_dxf::
+       @set -e ; \
+       for f in \
+         toaster.dxf \
+         toaster_base.dxf \
+         toaster_handle.dxf \
+         toaster_handle2.dxf \
+         toaster_jet.dxf \
+         toaster_knob.dxf \
+         toaster_slots.dxf \
+         toaster_wing.dxf \
+         toast.dxf \
+         toast2.dxf \
+       ; do \
+         f2=`echo $$f | sed 's/dxf$$/c/'` ; \
+         ./dxf2gl.pl --normalize --smooth $$f $$f2 ; \
+       done ; \
 
 COW_OBJS=\
   cow_face.o cow_hide.o cow_hoofs.o cow_horns.o cow_tail.o cow_udder.o \
-  bouncingcow.o gllist.o xpm-ximage.o $(HACK_TRACK_OBJS)
+  bouncingcow.o gllist.o $(PNG) $(HACK_TRACK_OBJS)
 bouncingcow:                   $(COW_OBJS)         
-       $(CC_HACK) -o $@        $(COW_OBJS) $(XPM_LIBS)
+       $(CC_HACK) -o $@        $(COW_OBJS) $(PNG_LIBS)
+
+ROBO_OBJS=\
+  robot.o robot-wireframe.o gllist.o $(PNG) sphere.o \
+  winduprobot.o $(GEARS_OBJS_1) $(TEXT) $(HACK_TRACK_OBJS)
+winduprobot:                   $(ROBO_OBJS)
+       $(CC_HACK) -o $@        $(ROBO_OBJS) $(PNG_LIBS) $(TEXT_LIBS)
+
+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)
 
-jigglypuff:    jigglypuff.o    xpm-ximage.o $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_TRACK_OBJS) $(XPM_LIBS)
+jigglypuff:    jigglypuff.o    $(PNG) $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(PNG) $(HACK_TRACK_OBJS) $(PNG_LIBS)
 
 klein:         klein.o         $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
@@ -664,8 +759,14 @@ surfaces:  surfaces.o      $(HACK_TRACK_OBJS)
 hypertorus:    hypertorus.o    $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-glmatrix:      glmatrix.o      xpm-ximage.o $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_OBJS) $(XPM_LIBS)
+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      $(PNG) $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(PNG) $(HACK_OBJS) $(PNG_LIBS)
 
 cubestorm:     cubestorm.o     $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
@@ -673,8 +774,8 @@ cubestorm:  cubestorm.o     $(HACK_TRACK_OBJS)
 glknots:       glknots.o       tube.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   tube.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-blocktube:     blocktube.o     xpm-ximage.o $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_OBJS) $(XPM_LIBS)
+blocktube:     blocktube.o     $(PNG) $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(PNG) $(HACK_OBJS) $(PNG_LIBS)
 
 flipflop:      flipflop.o      $(HACK_TRACK_GRAB_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
@@ -689,7 +790,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)" \
@@ -700,11 +800,11 @@ molecule.o:       molecules.h
 molecule:      molecule.o      $(MOLECULE_OBJS)
        $(CC_HACK) -o $@ $@.o   $(MOLECULE_OBJS) $(HACK_LIBS)
 
-gleidescope:   gleidescope.o   xpm-ximage.o $(HACK_GRAB_OBJS)
-       $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_GRAB_OBJS) $(XPM_LIBS)
+gleidescope:   gleidescope.o   $(PNG) $(HACK_GRAB_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(PNG) $(HACK_GRAB_OBJS) $(PNG_LIBS)
 
 mirrorblob:    mirrorblob.o    $(HACK_TRACK_GRAB_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(XPM_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(PNG_LIBS)
 
 blinkbox:      blinkbox.o      sphere.o $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   sphere.o $(HACK_OBJS) $(HACK_LIBS)
@@ -731,11 +831,11 @@ moebiusgears:     moebiusgears.o  $(GEARS_OBJS)
 boing:         boing.o         normals.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-carousel:      carousel.o      ${FONT_OBJS} $(HACK_TRACK_GRAB_OBJS)
-       $(CC_HACK) -o $@ $@.o   ${FONT_OBJS} $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
+carousel:      carousel.o      $(HACK_TRACK_GRAB_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
 
-fliptext:      fliptext.o      $(TEXT) ${FONT_OBJS} $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(TEXT) ${FONT_OBJS} $(HACK_OBJS) $(HACK_LIBS) $(TEXT_LIBS)
+fliptext:      fliptext.o      $(TEXT) $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(TEXT) $(HACK_OBJS) $(HACK_LIBS) $(TEXT_LIBS)
 
 antmaze:       antmaze.o       sphere.o tube.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   sphere.o tube.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
@@ -753,16 +853,16 @@ glhanoi:  glhanoi.o       $(HACK_TRACK_OBJS)
 cube21:                cube21.o        $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-TIMETUNNEL_OBJS = xpm-ximage.o  $(HACK_TRACK_OBJS)
+TIMETUNNEL_OBJS = $(PNG)  $(HACK_TRACK_OBJS)
 timetunnel:    timetunnel.o    $(TIMETUNNEL_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(TIMETUNNEL_OBJS) $(XPM_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(TIMETUNNEL_OBJS) $(PNG_LIBS)
 
 JUGG_OBJS=sphere.o tube.o $(HACK_TRACK_OBJS)
 juggler3d:     juggler3d.o     $(JUGG_OBJS)
        $(CC_HACK) -o $@ $@.o   $(JUGG_OBJS) $(HACK_LIBS)
 
-dnalogo:       dnalogo.o      tube.o normals.o $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o  tube.o normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+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)
@@ -787,20 +887,19 @@ cubicgrid:        cubicgrid.o     $(HACK_TRACK_OBJS)
 hypnowheel:    hypnowheel.o    $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-TENTACLE_OBJS=normals.o xpm-ximage.o $(HACK_TRACK_OBJS)
+TENTACLE_OBJS=normals.o $(PNG) $(HACK_TRACK_OBJS)
 skytentacles:  skytentacles.o  $(TENTACLE_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(TENTACLE_OBJS) $(XPM_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(TENTACLE_OBJS) $(PNG_LIBS)
 
-SONAR_OBJS=sonar-sim.o sonar-icmp.o ${FONT_OBJS} $(HACK_TRACK_OBJS)
+SONAR_OBJS=sonar-sim.o sonar-icmp.o $(HACK_TRACK_OBJS)
 sonar:         sonar.o         $(SONAR_OBJS)
        $(CC_HACK) -o $@ $@.o   $(SONAR_OBJS) $(HACK_LIBS)
 
-JIGSAW_OBJS=normals.o $(UTILS_BIN)/spline.o \
-       ${FONT_OBJS} $(HACK_TRACK_GRAB_OBJS)
+JIGSAW_OBJS=normals.o $(UTILS_BIN)/spline.o $(HACK_TRACK_GRAB_OBJS)
 jigsaw:                jigsaw.o        $(JIGSAW_OBJS)
        $(CC_HACK) -o $@ $@.o   $(JIGSAW_OBJS) $(HACK_LIBS)
 
-PHOTOPILE_OBJS=${FONT_OBJS} dropshadow.o  $(HACK_GRAB_OBJS)
+PHOTOPILE_OBJS=dropshadow.o  $(HACK_GRAB_OBJS)
 photopile:     photopile.o     $(PHOTOPILE_OBJS)
        $(CC_HACK) -o $@ $@.o   $(PHOTOPILE_OBJS) $(HACK_LIBS)
 
@@ -834,6 +933,67 @@ 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) $(PNG_LIBS) $(TEXT_LIBS)
+
+unicrud:       unicrud.o       $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+ES_OBJS=$(PNG) $(HACK_TRACK_OBJS)
+energystream:  energystream.o  $(ES_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(ES_OBJS) $(PNG_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)
+
+ships_dxf::
+       ./dxf2gl.pl --normalize --layers ships.dxf ships.c
+
+DAZ_OBJS=ships.o gllist.o $(HACK_TRACK_OBJS)
+razzledazzle:  razzledazzle.o  $(DAZ_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(DAZ_OBJS) $(HACK_LIBS)
+
+peepers:       peepers.o        normals.o $(PNG) $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o    normals.o $(PNG) $(PNG_LIBS) $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+crumbler:      crumbler.o      quickhull.o $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   quickhull.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+maze3d:        maze3d.o                 $(PNG) $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o    $(PNG) $(PNG_LIBS) $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
 ##############################################################################
 #
 # DO NOT DELETE: updated by make distdepend
@@ -841,17 +1001,16 @@ 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)/font-retry.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
@@ -859,19 +1018,18 @@ 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)/font-retry.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
@@ -880,140 +1038,132 @@ 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)/font-retry.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
 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)/images/gen/sea-texture_png.h
 atlantis.o: $(HACK_SRC)/screenhackI.h
 atlantis.o: $(UTILS_SRC)/colors.h
+atlantis.o: $(UTILS_SRC)/erase.h
+atlantis.o: $(UTILS_SRC)/font-retry.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)/ximage-loader.h
 atlantis.o: $(HACK_SRC)/xlockmoreI.h
 atlantis.o: $(HACK_SRC)/xlockmore.h
-atlantis.o: $(srcdir)/xpm-ximage.h
 atunnel.o: ../../config.h
 atunnel.o: $(HACK_SRC)/fps.h
-atunnel.o: $(HACK_SRC)/images/tunnel0.xpm
-atunnel.o: $(HACK_SRC)/images/tunnel1.xpm
-atunnel.o: $(HACK_SRC)/images/tunnel2.xpm
-atunnel.o: $(HACK_SRC)/images/tunnel3.xpm
-atunnel.o: $(HACK_SRC)/images/tunnel4.xpm
-atunnel.o: $(HACK_SRC)/images/tunnel5.xpm
-atunnel.o: $(srcdir)/jwzglesI.h
-atunnel.o: $(srcdir)/jwzgles.h
+atunnel.o: $(HACK_SRC)/images/gen/tunnel0_png.h
+atunnel.o: $(HACK_SRC)/images/gen/tunnel1_png.h
+atunnel.o: $(HACK_SRC)/images/gen/tunnel2_png.h
+atunnel.o: $(HACK_SRC)/images/gen/tunnel3_png.h
+atunnel.o: $(HACK_SRC)/images/gen/tunnel4_png.h
+atunnel.o: $(HACK_SRC)/images/gen/tunnel5_png.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)/font-retry.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)/ximage-loader.h
 atunnel.o: $(HACK_SRC)/xlockmoreI.h
 atunnel.o: $(HACK_SRC)/xlockmore.h
-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)/font-retry.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)/font-retry.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)/font-retry.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)/images/gen/blocktube_png.h
 blocktube.o: $(HACK_SRC)/screenhackI.h
 blocktube.o: $(UTILS_SRC)/colors.h
+blocktube.o: $(UTILS_SRC)/erase.h
+blocktube.o: $(UTILS_SRC)/font-retry.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)/ximage-loader.h
 blocktube.o: $(HACK_SRC)/xlockmoreI.h
 blocktube.o: $(HACK_SRC)/xlockmore.h
-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)/font-retry.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
@@ -1021,310 +1171,356 @@ 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)/font-retry.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)/ximage-loader.h
 bouncingcow.o: $(HACK_SRC)/xlockmoreI.h
 bouncingcow.o: $(HACK_SRC)/xlockmore.h
-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)/font-retry.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)/font-retry.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)/font-retry.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)/images/gen/wood_png.h
 cage.o: $(HACK_SRC)/screenhackI.h
 cage.o: $(UTILS_SRC)/colors.h
+cage.o: $(UTILS_SRC)/erase.h
+cage.o: $(UTILS_SRC)/font-retry.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)/ximage-loader.h
 cage.o: $(HACK_SRC)/xlockmoreI.h
 cage.o: $(HACK_SRC)/xlockmore.h
-cage.o: $(srcdir)/xpm-ximage.h
 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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/ximage-loader.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)/font-retry.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
+crumbler.o: ../../config.h
+crumbler.o: $(HACK_SRC)/fps.h
+crumbler.o: $(srcdir)/gltrackball.h
+crumbler.o: $(srcdir)/quickhull.h
+crumbler.o: $(srcdir)/rotator.h
+crumbler.o: $(HACK_SRC)/screenhackI.h
+crumbler.o: $(UTILS_SRC)/colors.h
+crumbler.o: $(UTILS_SRC)/erase.h
+crumbler.o: $(UTILS_SRC)/font-retry.h
+crumbler.o: $(UTILS_SRC)/grabscreen.h
+crumbler.o: $(UTILS_SRC)/hsv.h
+crumbler.o: $(UTILS_SRC)/resources.h
+crumbler.o: $(UTILS_SRC)/usleep.h
+crumbler.o: $(UTILS_SRC)/visual.h
+crumbler.o: $(UTILS_SRC)/yarandom.h
+crumbler.o: $(HACK_SRC)/xlockmoreI.h
+crumbler.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.h
 dolphin.o: $(UTILS_SRC)/grabscreen.h
 dolphin.o: $(UTILS_SRC)/hsv.h
 dolphin.o: $(UTILS_SRC)/resources.h
@@ -1333,106 +1529,155 @@ 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)/font-retry.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/gen/dymaxionmap_png.h
+dymaxionmap.o: $(HACK_SRC)/images/gen/ground_png.h
+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)/font-retry.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)/ximage-loader.h
+dymaxionmap.o: $(HACK_SRC)/xlockmoreI.h
+dymaxionmap.o: $(HACK_SRC)/xlockmore.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/ximage-loader.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)/font-retry.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
@@ -1440,33 +1685,31 @@ 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)/font-retry.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)/font-retry.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
@@ -1474,125 +1717,127 @@ 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)/font-retry.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
 flyingtoasters.o: $(HACK_SRC)/fps.h
 flyingtoasters.o: $(srcdir)/gllist.h
 flyingtoasters.o: $(srcdir)/gltrackball.h
-flyingtoasters.o: $(HACK_SRC)/images/chromesphere.xpm
-flyingtoasters.o: $(HACK_SRC)/images/toast.xpm
-flyingtoasters.o: $(srcdir)/jwzglesI.h
-flyingtoasters.o: $(srcdir)/jwzgles.h
+flyingtoasters.o: $(HACK_SRC)/images/gen/chromesphere_png.h
+flyingtoasters.o: $(HACK_SRC)/images/gen/toast_png.h
 flyingtoasters.o: $(HACK_SRC)/screenhackI.h
 flyingtoasters.o: $(UTILS_SRC)/colors.h
+flyingtoasters.o: $(UTILS_SRC)/erase.h
+flyingtoasters.o: $(UTILS_SRC)/font-retry.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)/ximage-loader.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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
@@ -1600,170 +1845,158 @@ 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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/ximage-loader.h
 gleidescope.o: $(HACK_SRC)/xlockmoreI.h
 gleidescope.o: $(HACK_SRC)/xlockmore.h
-gleidescope.o: $(srcdir)/xpm-ximage.h
 glforestfire.o: ../../config.h
 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)/images/gen/ground_png.h
+glforestfire.o: $(HACK_SRC)/images/gen/tree_png.h
 glforestfire.o: $(HACK_SRC)/screenhackI.h
 glforestfire.o: $(UTILS_SRC)/colors.h
+glforestfire.o: $(UTILS_SRC)/erase.h
+glforestfire.o: $(UTILS_SRC)/font-retry.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)/ximage-loader.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)/font-retry.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)/font-retry.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)/images/gen/matrix3_png.h
 glmatrix.o: $(HACK_SRC)/screenhackI.h
 glmatrix.o: $(UTILS_SRC)/colors.h
+glmatrix.o: $(UTILS_SRC)/erase.h
+glmatrix.o: $(UTILS_SRC)/font-retry.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)/ximage-loader.h
 glmatrix.o: $(HACK_SRC)/xlockmoreI.h
 glmatrix.o: $(HACK_SRC)/xlockmore.h
-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.xpm
-glplanet.o: $(srcdir)/jwzglesI.h
-glplanet.o: $(srcdir)/jwzgles.h
+glplanet.o: $(HACK_SRC)/images/gen/earth_night_png.h
+glplanet.o: $(HACK_SRC)/images/gen/earth_png.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)/font-retry.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)/ximage-loader.h
 glplanet.o: $(HACK_SRC)/xlockmoreI.h
 glplanet.o: $(HACK_SRC)/xlockmore.h
-glplanet.o: $(srcdir)/xpm-ximage.h
 glschool_alg.o: ../../config.h
 glschool_alg.o: $(srcdir)/glschool_alg.h
 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
@@ -1771,163 +2004,174 @@ 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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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
+involute.o: $(UTILS_SRC)/font-retry.h
 involute.o: $(UTILS_SRC)/grabscreen.h
 involute.o: $(UTILS_SRC)/hsv.h
 involute.o: $(UTILS_SRC)/resources.h
@@ -1937,172 +2181,183 @@ involute.o: $(UTILS_SRC)/yarandom.h
 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)/images/gen/jigglymap_png.h
 jigglypuff.o: $(HACK_SRC)/screenhackI.h
 jigglypuff.o: $(UTILS_SRC)/colors.h
+jigglypuff.o: $(UTILS_SRC)/erase.h
+jigglypuff.o: $(UTILS_SRC)/font-retry.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)/ximage-loader.h
 jigglypuff.o: $(HACK_SRC)/xlockmoreI.h
 jigglypuff.o: $(HACK_SRC)/xlockmore.h
-jigglypuff.o: $(srcdir)/xpm-ximage.h
 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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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.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: $(HACK_SRC)/images/gen/lament512_png.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)/font-retry.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)/ximage-loader.h
 lament.o: $(HACK_SRC)/xlockmoreI.h
 lament.o: $(HACK_SRC)/xlockmore.h
-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)/font-retry.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)/ximage-loader.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)/font-retry.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
+maze3d.o: ../../config.h
+maze3d.o: $(HACK_SRC)/fps.h
+maze3d.o: $(HACK_SRC)/images/gen/bob_png.h
+maze3d.o: $(HACK_SRC)/images/gen/brick1_png.h
+maze3d.o: $(HACK_SRC)/images/gen/brick2_png.h
+maze3d.o: $(HACK_SRC)/images/gen/logo-32_png.h
+maze3d.o: $(HACK_SRC)/images/gen/start_png.h
+maze3d.o: $(HACK_SRC)/images/gen/wood2_png.h
+maze3d.o: $(HACK_SRC)/screenhackI.h
+maze3d.o: $(UTILS_SRC)/colors.h
+maze3d.o: $(UTILS_SRC)/erase.h
+maze3d.o: $(UTILS_SRC)/font-retry.h
+maze3d.o: $(UTILS_SRC)/grabscreen.h
+maze3d.o: $(UTILS_SRC)/hsv.h
+maze3d.o: $(UTILS_SRC)/resources.h
+maze3d.o: $(UTILS_SRC)/usleep.h
+maze3d.o: $(UTILS_SRC)/visual.h
+maze3d.o: $(UTILS_SRC)/yarandom.h
+maze3d.o: $(HACK_SRC)/ximage-loader.h
+maze3d.o: $(HACK_SRC)/xlockmoreI.h
+maze3d.o: $(HACK_SRC)/xlockmore.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)/font-retry.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
@@ -2110,16 +2365,15 @@ 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)/font-retry.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
@@ -2127,46 +2381,41 @@ 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)/font-retry.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)/font-retry.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
@@ -2174,116 +2423,124 @@ 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)/font-retry.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)/font-retry.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)/font-retry.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
+peepers.o: ../../config.h
+peepers.o: $(HACK_SRC)/fps.h
+peepers.o: $(srcdir)/gltrackball.h
+peepers.o: $(HACK_SRC)/images/gen/iris_png.h
+peepers.o: $(HACK_SRC)/images/gen/sclera_png.h
+peepers.o: $(srcdir)/normals.h
+peepers.o: $(srcdir)/rotator.h
+peepers.o: $(HACK_SRC)/screenhackI.h
+peepers.o: $(UTILS_SRC)/colors.h
+peepers.o: $(UTILS_SRC)/erase.h
+peepers.o: $(UTILS_SRC)/font-retry.h
+peepers.o: $(UTILS_SRC)/grabscreen.h
+peepers.o: $(UTILS_SRC)/hsv.h
+peepers.o: $(UTILS_SRC)/resources.h
+peepers.o: $(UTILS_SRC)/usleep.h
+peepers.o: $(UTILS_SRC)/visual.h
+peepers.o: $(UTILS_SRC)/yarandom.h
+peepers.o: $(HACK_SRC)/ximage-loader.h
+peepers.o: $(HACK_SRC)/xlockmoreI.h
+peepers.o: $(HACK_SRC)/xlockmore.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)/font-retry.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)/font-retry.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)/font-retry.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
@@ -2291,12 +2548,13 @@ 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)/font-retry.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
@@ -2305,64 +2563,76 @@ 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)/font-retry.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: $(HACK_SRC)/screenhackI.h
+projectiveplane.o: $(UTILS_SRC)/colors.h
+projectiveplane.o: $(UTILS_SRC)/erase.h
+projectiveplane.o: $(UTILS_SRC)/font-retry.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)/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)/font-retry.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)/font-retry.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)/ximage-loader.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)/font-retry.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
@@ -2370,160 +2640,201 @@ 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)/font-retry.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
+quickhull.o: ../../config.h
+quickhull.o: $(srcdir)/quickhull.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)/font-retry.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
+razzledazzle.o: ../../config.h
+razzledazzle.o: $(HACK_SRC)/fps.h
+razzledazzle.o: $(srcdir)/gllist.h
+razzledazzle.o: $(srcdir)/normals.h
+razzledazzle.o: $(HACK_SRC)/screenhackI.h
+razzledazzle.o: $(UTILS_SRC)/colors.h
+razzledazzle.o: $(UTILS_SRC)/erase.h
+razzledazzle.o: $(UTILS_SRC)/font-retry.h
+razzledazzle.o: $(UTILS_SRC)/grabscreen.h
+razzledazzle.o: $(UTILS_SRC)/hsv.h
+razzledazzle.o: $(UTILS_SRC)/resources.h
+razzledazzle.o: $(UTILS_SRC)/usleep.h
+razzledazzle.o: $(UTILS_SRC)/visual.h
+razzledazzle.o: $(UTILS_SRC)/yarandom.h
+razzledazzle.o: $(HACK_SRC)/xlockmoreI.h
+razzledazzle.o: $(HACK_SRC)/xlockmore.h
+robot.o: ../../config.h
+robot.o: $(srcdir)/gllist.h
+robot-wireframe.o: ../../config.h
+robot-wireframe.o: $(srcdir)/gllist.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)/font-retry.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)/font-retry.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)/font-retry.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)/images/gen/sball-bg_png.h
+sballs.o: $(HACK_SRC)/images/gen/sball_png.h
 sballs.o: $(HACK_SRC)/screenhackI.h
 sballs.o: $(UTILS_SRC)/colors.h
+sballs.o: $(UTILS_SRC)/erase.h
+sballs.o: $(UTILS_SRC)/font-retry.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)/ximage-loader.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)/font-retry.h
 shark.o: $(UTILS_SRC)/grabscreen.h
 shark.o: $(UTILS_SRC)/hsv.h
 shark.o: $(UTILS_SRC)/resources.h
 shark.o: $(UTILS_SRC)/usleep.h
 shark.o: $(UTILS_SRC)/visual.h
 shark.o: $(UTILS_SRC)/yarandom.h
+ships.o: ../../config.h
+ships.o: $(srcdir)/gllist.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)/font-retry.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
 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: $(HACK_SRC)/images/gen/scales_png.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)/font-retry.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)/ximage-loader.h
 skytentacles.o: $(HACK_SRC)/xlockmoreI.h
 skytentacles.o: $(HACK_SRC)/xlockmore.h
-skytentacles.o: $(srcdir)/xpm-ximage.h
 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)/font-retry.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
@@ -2531,19 +2842,20 @@ 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)/font-retry.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
@@ -2552,6 +2864,7 @@ sonar-sim.o: $(HACK_SRC)/fps.h
 sonar-sim.o: $(HACK_SRC)/screenhackI.h
 sonar-sim.o: $(srcdir)/sonar.h
 sonar-sim.o: $(UTILS_SRC)/colors.h
+sonar-sim.o: $(UTILS_SRC)/font-retry.h
 sonar-sim.o: $(UTILS_SRC)/grabscreen.h
 sonar-sim.o: $(UTILS_SRC)/hsv.h
 sonar-sim.o: $(UTILS_SRC)/resources.h
@@ -2561,101 +2874,132 @@ 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)/font-retry.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)/font-retry.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)/ximage-loader.h
+splitflap.o: $(HACK_SRC)/xlockmoreI.h
+splitflap.o: $(HACK_SRC)/xlockmore.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)/font-retry.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)/font-retry.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)/font-retry.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
 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)/images/gen/wood_png.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)/font-retry.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)/ximage-loader.h
 stairs.o: $(HACK_SRC)/xlockmoreI.h
 stairs.o: $(HACK_SRC)/xlockmore.h
-stairs.o: $(srcdir)/xpm-ximage.h
 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)/font-retry.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
@@ -2663,194 +3007,158 @@ 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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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
-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: $(HACK_SRC)/images/gen/logo-180_png.h
+timetunnel.o: $(HACK_SRC)/images/gen/timetunnel0_png.h
+timetunnel.o: $(HACK_SRC)/images/gen/timetunnel1_png.h
+timetunnel.o: $(HACK_SRC)/images/gen/timetunnel2_png.h
+timetunnel.o: $(HACK_SRC)/images/gen/tunnelstar_png.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)/font-retry.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)/ximage-loader.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)/font-retry.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
@@ -2858,120 +3166,159 @@ 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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/font-retry.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)/ximage-loader.h
+vigilance.o: $(HACK_SRC)/xlockmoreI.h
+vigilance.o: $(HACK_SRC)/xlockmore.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)/font-retry.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)/font-retry.h
 whale.o: $(UTILS_SRC)/grabscreen.h
 whale.o: $(UTILS_SRC)/hsv.h
 whale.o: $(UTILS_SRC)/resources.h
 whale.o: $(UTILS_SRC)/usleep.h
 whale.o: $(UTILS_SRC)/visual.h
 whale.o: $(UTILS_SRC)/yarandom.h
+winduprobot.o: ../../config.h
+winduprobot.o: $(HACK_SRC)/fps.h
+winduprobot.o: $(srcdir)/gllist.h
+winduprobot.o: $(srcdir)/gltrackball.h
+winduprobot.o: $(HACK_SRC)/images/gen/chromesphere_png.h
+winduprobot.o: $(srcdir)/involute.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)/font-retry.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)/yarandom.h
+winduprobot.o: $(HACK_SRC)/ximage-loader.h
+winduprobot.o: $(HACK_SRC)/xlockmoreI.h
+winduprobot.o: $(HACK_SRC)/xlockmore.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)/font-retry.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
-xpm-ximage.o: $(srcdir)/xpm-ximage.h
 xscreensaver-gl-helper.o: ../../config.h
 xscreensaver-gl-helper.o: $(UTILS_SRC)/utils.h
 xscreensaver-gl-helper.o: $(UTILS_SRC)/visual.h