From http://www.jwz.org/xscreensaver/xscreensaver-5.38.tar.gz
[xscreensaver] / hacks / glx / Makefile.in
index f788728c212fbfd3e0d06065a962f1d7aa83e099..56443f1b29552c2d79319f7e1e8b9b2481e7f48f 100644 (file)
@@ -80,12 +80,12 @@ UTILDIR_OBJS        = $(UTILS_BIN)/colors.o $(UTILS_BIN)/grabclient.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)/spline.o $(UTILS_BIN)/pow2.o
 JWXYZ_OBJS     = $(JWXYZ_BIN)/jwzgles.o
-HACKDIR_OBJS   = $(HACK_SRC)/screenhack.o $(UTILS_SRC)/xlockmore.o \
+HACKDIR_OBJS   = $(HACK_SRC)/screenhack.o $(HACK_SRC)/xlockmore.o \
                  $(HACK_SRC)/fps.o
 
-SRCS           = xscreensaver-gl-helper.c normals.c fps-gl.c \
+SRCS           = xscreensaver-gl-helper.c normals.c erase-gl.c fps-gl.c \
                  atlantis.c b_draw.c b_lockglue.c b_sphere.c bubble3d.c \
                  buildlwo.c cage.c dolphin.c gears.c lament.c lament_model.c \
                  moebius.c morph3d.c pipeobjs.c pipes.c rubik.c s1_1.c s1_2.c \
@@ -128,9 +128,9 @@ SRCS                = xscreensaver-gl-helper.c normals.c fps-gl.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
+                 hexstrut.c vigilance.c seccam.c esper.c
 
-OBJS           = xscreensaver-gl-helper.o normals.o fps-gl.o \
+OBJS           = xscreensaver-gl-helper.o normals.o erase-gl.o fps-gl.o \
                  atlantis.o b_draw.o b_lockglue.o b_sphere.o bubble3d.o \
                  buildlwo.o cage.o dolphin.o gears.o lament.o lament_model.o \
                  moebius.o morph3d.o pipeobjs.o pipes.o rubik.o s1_1.o s1_2.o \
@@ -173,7 +173,7 @@ OBJS                = xscreensaver-gl-helper.o normals.o fps-gl.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
+                 hexstrut.o vigilance.o seccam.o esper.o
 
 GL_EXES                = cage gears moebius pipes sproingies stairs superquadrics \
                  morph3d rubik atlantis lament bubble3d glplanet pulsar \
@@ -193,7 +193,7 @@ GL_EXES             = cage gears moebius pipes sproingies stairs superquadrics \
                  geodesicgears projectiveplane winduprobot cityflow romanboy \
                  splitflap dymaxionmap unicrud energystream raverhoop \
                  hydrostat discoball cubetwist cubestack splodesic \
-                 hexstrut
+                 hexstrut vigilance esper
 GLE_EXES       = extrusion
 SUID_EXES      = sonar
 GL_UTIL_EXES   = xscreensaver-gl-helper
@@ -211,24 +211,24 @@ RETIRED_GL_EXES   = glforestfire
 
 FPS_OBJS       = texfont.o $(HACK_BIN)/fps.o fps-gl.o @XFT_OBJS@
 HACK_OBJS      = $(JWZGLES_OBJS) $(HACK_BIN)/screenhack.o @ANIM_OBJS@ \
-                 xlockmore-gl.o xlock-gl-utils.o ${FPS_OBJS} \
-                 $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
+                 $(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)/async_netdb.o \
                  $(UTILS_BIN)/aligned_malloc.o $(UTILS_BIN)/thread_util.o \
-                 $(UTILS_BIN)/utf8wc.o
+                 $(UTILS_BIN)/utf8wc.o $(UTILS_BIN)/pow2.o
 
 HDRS           = atlantis.h bubble3d.h buildlwo.h e_textures.h xpm-ximage.h \
                  grab-ximage.h 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 \
-                 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
+                 glutstroke.h glut_roman.h glut_mroman.h marching.h \
+                 rotator.h trackball.h gltrackball.h chessmodels.h \
+                 chessgames.h gllist.h flurry.h tunnel_draw.h ants.h \
+                 polyhedra.h normals.h texfont.h tangram_shapes.h \
+                 sproingies.h extrusion.h glschool.h glschool_gl.h \
+                 glschool_alg.h topblock.h involute.h teapot.h sonar.h \
+                 dropshadow.h starwars.h teapot2.h dnapizza.h curlicue.h
 GL_MEN         = atlantis.man boxed.man bubble3d.man cage.man circuit.man \
                  cubenetic.man dangerball.man engine.man extrusion.man \
                  flipscreen3d.man gears.man gflux.man \
@@ -256,7 +256,7 @@ GL_MEN              = atlantis.man boxed.man bubble3d.man cage.man circuit.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
+                 hexstrut.man vigilance.man esper.man
 MEN            = @GL_MEN@
 RETIRED_MEN    = glforestfire.man
 EXTRAS         = README Makefile.in dxf2gl.pl vrml2gl.pl wfront2gl.pl \
@@ -502,16 +502,17 @@ $(UTILS_BIN)/async_netdb.o:       $(UTILS_SRC)/async_netdb.c
 $(UTILS_BIN)/aligned_malloc.o: $(UTILS_SRC)/aligned_malloc.c
 $(UTILS_BIN)/thread_util.o:    $(UTILS_SRC)/thread_util.c
 $(UTILS_BIN)/spline.o:         $(UTILS_SRC)/spline.c
+$(UTILS_BIN)/pow2.o:           $(UTILS_SRC)/pow2.c
 $(HACK_BIN)/screenhack.o:      $(HACK_SRC)/screenhack.c
 $(HACK_BIN)/xlockmore.o:       $(HACK_SRC)/xlockmore.c
 $(HACK_BIN)/fps.o:             $(HACK_SRC)/fps.c
 
 $(UTILDIR_OBJS):
-       $(MAKE) -C $(UTILS_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+       cd $(UTILS_BIN) ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
 $(JWXYZ_OBJS):
-       $(MAKE) -C $(JWXYZ_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+       cd $(JWXYZ_BIN) ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
 $(HACKDIR_OBJS):
-       $(MAKE) -C $(HACK_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+       cd $(HACK_BIN)  ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
 
 
 # How we build object files in this directory.
@@ -528,12 +529,10 @@ xscreensaver-gl-helper: $(HELPER_OBJS)
        $(CC) $(LDFLAGS) -o $@ $(HELPER_OBJS) $(LIBS) $(X_LIBS) $(HACK_POST2)
 
 
-# These hacks use a slightly-differently-compiled variant of xlockmore.c.
+# These hacks use a slightly-differently-compiled variant of recanim.c.
 # This is how to make the the other .o file from it.
 #
 XLM_CFLAGS=-DUSE_GL $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS)
-xlockmore-gl.o: $(HACK_SRC)/xlockmore.c
-       $(CC) -o $@ -c $(XLM_CFLAGS) $(HACK_SRC)/xlockmore.c
 recanim-gl.o: $(HACK_SRC)/recanim.c
        $(CC) -o $@ -c $(XLM_CFLAGS) $(HACK_SRC)/recanim.c
 
@@ -726,6 +725,13 @@ winduprobot_dxf::
        ./dxf2gl.pl --smooth --layers robot.dxf robot.c
        ./dxf2gl.pl --wireframe robot-wireframe.dxf robot-wireframe.c
 
+CAM_OBJS=seccam.o gllist.o vigilance.o $(HACK_TRACK_OBJS)
+vigilance:                     $(CAM_OBJS)
+       $(CC_HACK) -o $@        $(CAM_OBJS) $(HACK_LIBS)
+
+seccam_dxf::
+       ./dxf2gl.pl --smooth --layers seccam.dxf seccam.c
+
 glslideshow:   glslideshow.o   $(HACK_GRAB_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_GRAB_OBJS) $(HACK_LIBS)
 
@@ -957,6 +963,9 @@ splodesic:  splodesic.o     $(HACK_TRACK_OBJS)
 hexstrut:      hexstrut.o       normals.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o    normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
+esper: esper.o                 $(HACK_GRAB_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_GRAB_OBJS) $(HACK_LIBS)
+
 ##############################################################################
 #
 # DO NOT DELETE: updated by make distdepend
@@ -967,12 +976,12 @@ antinspect.o: $(srcdir)/gltrackball.h
 antinspect.o: $(HACK_SRC)/screenhackI.h
 antinspect.o: $(srcdir)/sphere.h
 antinspect.o: $(UTILS_SRC)/colors.h
+antinspect.o: $(UTILS_SRC)/erase.h
 antinspect.o: $(UTILS_SRC)/grabscreen.h
 antinspect.o: $(UTILS_SRC)/hsv.h
 antinspect.o: $(UTILS_SRC)/resources.h
 antinspect.o: $(UTILS_SRC)/usleep.h
 antinspect.o: $(UTILS_SRC)/visual.h
-antinspect.o: $(UTILS_SRC)/xshm.h
 antinspect.o: $(UTILS_SRC)/yarandom.h
 antinspect.o: $(HACK_SRC)/xlockmoreI.h
 antinspect.o: $(HACK_SRC)/xlockmore.h
@@ -985,12 +994,12 @@ antmaze.o: $(HACK_SRC)/screenhackI.h
 antmaze.o: $(srcdir)/sphere.h
 antmaze.o: $(srcdir)/tube.h
 antmaze.o: $(UTILS_SRC)/colors.h
+antmaze.o: $(UTILS_SRC)/erase.h
 antmaze.o: $(UTILS_SRC)/grabscreen.h
 antmaze.o: $(UTILS_SRC)/hsv.h
 antmaze.o: $(UTILS_SRC)/resources.h
 antmaze.o: $(UTILS_SRC)/usleep.h
 antmaze.o: $(UTILS_SRC)/visual.h
-antmaze.o: $(UTILS_SRC)/xshm.h
 antmaze.o: $(UTILS_SRC)/yarandom.h
 antmaze.o: $(HACK_SRC)/xlockmoreI.h
 antmaze.o: $(HACK_SRC)/xlockmore.h
@@ -1004,12 +1013,12 @@ antspotlight.o: $(HACK_SRC)/screenhackI.h
 antspotlight.o: $(srcdir)/sphere.h
 antspotlight.o: $(srcdir)/tube.h
 antspotlight.o: $(UTILS_SRC)/colors.h
+antspotlight.o: $(UTILS_SRC)/erase.h
 antspotlight.o: $(UTILS_SRC)/grabscreen.h
 antspotlight.o: $(UTILS_SRC)/hsv.h
 antspotlight.o: $(UTILS_SRC)/resources.h
 antspotlight.o: $(UTILS_SRC)/usleep.h
 antspotlight.o: $(UTILS_SRC)/visual.h
-antspotlight.o: $(UTILS_SRC)/xshm.h
 antspotlight.o: $(UTILS_SRC)/yarandom.h
 antspotlight.o: $(HACK_SRC)/xlockmoreI.h
 antspotlight.o: $(HACK_SRC)/xlockmore.h
@@ -1019,12 +1028,12 @@ atlantis.o: $(HACK_SRC)/fps.h
 atlantis.o: $(HACK_SRC)/images/sea-texture.xpm
 atlantis.o: $(HACK_SRC)/screenhackI.h
 atlantis.o: $(UTILS_SRC)/colors.h
+atlantis.o: $(UTILS_SRC)/erase.h
 atlantis.o: $(UTILS_SRC)/grabscreen.h
 atlantis.o: $(UTILS_SRC)/hsv.h
 atlantis.o: $(UTILS_SRC)/resources.h
 atlantis.o: $(UTILS_SRC)/usleep.h
 atlantis.o: $(UTILS_SRC)/visual.h
-atlantis.o: $(UTILS_SRC)/xshm.h
 atlantis.o: $(UTILS_SRC)/yarandom.h
 atlantis.o: $(HACK_SRC)/xlockmoreI.h
 atlantis.o: $(HACK_SRC)/xlockmore.h
@@ -1040,12 +1049,12 @@ atunnel.o: $(HACK_SRC)/images/tunnel5.xpm
 atunnel.o: $(HACK_SRC)/screenhackI.h
 atunnel.o: $(srcdir)/tunnel_draw.h
 atunnel.o: $(UTILS_SRC)/colors.h
+atunnel.o: $(UTILS_SRC)/erase.h
 atunnel.o: $(UTILS_SRC)/grabscreen.h
 atunnel.o: $(UTILS_SRC)/hsv.h
 atunnel.o: $(UTILS_SRC)/resources.h
 atunnel.o: $(UTILS_SRC)/usleep.h
 atunnel.o: $(UTILS_SRC)/visual.h
-atunnel.o: $(UTILS_SRC)/xshm.h
 atunnel.o: $(UTILS_SRC)/yarandom.h
 atunnel.o: $(HACK_SRC)/xlockmoreI.h
 atunnel.o: $(HACK_SRC)/xlockmore.h
@@ -1055,12 +1064,12 @@ b_draw.o: ../../config.h
 b_draw.o: $(HACK_SRC)/fps.h
 b_draw.o: $(HACK_SRC)/screenhackI.h
 b_draw.o: $(UTILS_SRC)/colors.h
+b_draw.o: $(UTILS_SRC)/erase.h
 b_draw.o: $(UTILS_SRC)/grabscreen.h
 b_draw.o: $(UTILS_SRC)/hsv.h
 b_draw.o: $(UTILS_SRC)/resources.h
 b_draw.o: $(UTILS_SRC)/usleep.h
 b_draw.o: $(UTILS_SRC)/visual.h
-b_draw.o: $(UTILS_SRC)/xshm.h
 b_draw.o: $(UTILS_SRC)/yarandom.h
 b_draw.o: $(HACK_SRC)/xlockmoreI.h
 blinkbox.o: ../../config.h
@@ -1068,12 +1077,12 @@ blinkbox.o: $(HACK_SRC)/fps.h
 blinkbox.o: $(HACK_SRC)/screenhackI.h
 blinkbox.o: $(srcdir)/sphere.h
 blinkbox.o: $(UTILS_SRC)/colors.h
+blinkbox.o: $(UTILS_SRC)/erase.h
 blinkbox.o: $(UTILS_SRC)/grabscreen.h
 blinkbox.o: $(UTILS_SRC)/hsv.h
 blinkbox.o: $(UTILS_SRC)/resources.h
 blinkbox.o: $(UTILS_SRC)/usleep.h
 blinkbox.o: $(UTILS_SRC)/visual.h
-blinkbox.o: $(UTILS_SRC)/xshm.h
 blinkbox.o: $(UTILS_SRC)/yarandom.h
 blinkbox.o: $(HACK_SRC)/xlockmoreI.h
 blinkbox.o: $(HACK_SRC)/xlockmore.h
@@ -1082,12 +1091,12 @@ b_lockglue.o: ../../config.h
 b_lockglue.o: $(HACK_SRC)/fps.h
 b_lockglue.o: $(HACK_SRC)/screenhackI.h
 b_lockglue.o: $(UTILS_SRC)/colors.h
+b_lockglue.o: $(UTILS_SRC)/erase.h
 b_lockglue.o: $(UTILS_SRC)/grabscreen.h
 b_lockglue.o: $(UTILS_SRC)/hsv.h
 b_lockglue.o: $(UTILS_SRC)/resources.h
 b_lockglue.o: $(UTILS_SRC)/usleep.h
 b_lockglue.o: $(UTILS_SRC)/visual.h
-b_lockglue.o: $(UTILS_SRC)/xshm.h
 b_lockglue.o: $(UTILS_SRC)/yarandom.h
 b_lockglue.o: $(HACK_SRC)/xlockmoreI.h
 b_lockglue.o: $(HACK_SRC)/xlockmore.h
@@ -1096,12 +1105,12 @@ blocktube.o: $(HACK_SRC)/fps.h
 blocktube.o: $(HACK_SRC)/images/blocktube.xpm
 blocktube.o: $(HACK_SRC)/screenhackI.h
 blocktube.o: $(UTILS_SRC)/colors.h
+blocktube.o: $(UTILS_SRC)/erase.h
 blocktube.o: $(UTILS_SRC)/grabscreen.h
 blocktube.o: $(UTILS_SRC)/hsv.h
 blocktube.o: $(UTILS_SRC)/resources.h
 blocktube.o: $(UTILS_SRC)/usleep.h
 blocktube.o: $(UTILS_SRC)/visual.h
-blocktube.o: $(UTILS_SRC)/xshm.h
 blocktube.o: $(UTILS_SRC)/yarandom.h
 blocktube.o: $(HACK_SRC)/xlockmoreI.h
 blocktube.o: $(HACK_SRC)/xlockmore.h
@@ -1111,12 +1120,12 @@ boing.o: $(HACK_SRC)/fps.h
 boing.o: $(srcdir)/gltrackball.h
 boing.o: $(HACK_SRC)/screenhackI.h
 boing.o: $(UTILS_SRC)/colors.h
+boing.o: $(UTILS_SRC)/erase.h
 boing.o: $(UTILS_SRC)/grabscreen.h
 boing.o: $(UTILS_SRC)/hsv.h
 boing.o: $(UTILS_SRC)/resources.h
 boing.o: $(UTILS_SRC)/usleep.h
 boing.o: $(UTILS_SRC)/visual.h
-boing.o: $(UTILS_SRC)/xshm.h
 boing.o: $(UTILS_SRC)/yarandom.h
 boing.o: $(HACK_SRC)/xlockmoreI.h
 boing.o: $(HACK_SRC)/xlockmore.h
@@ -1127,12 +1136,12 @@ bouncingcow.o: $(srcdir)/gltrackball.h
 bouncingcow.o: $(srcdir)/rotator.h
 bouncingcow.o: $(HACK_SRC)/screenhackI.h
 bouncingcow.o: $(UTILS_SRC)/colors.h
+bouncingcow.o: $(UTILS_SRC)/erase.h
 bouncingcow.o: $(UTILS_SRC)/grabscreen.h
 bouncingcow.o: $(UTILS_SRC)/hsv.h
 bouncingcow.o: $(UTILS_SRC)/resources.h
 bouncingcow.o: $(UTILS_SRC)/usleep.h
 bouncingcow.o: $(UTILS_SRC)/visual.h
-bouncingcow.o: $(UTILS_SRC)/xshm.h
 bouncingcow.o: $(UTILS_SRC)/yarandom.h
 bouncingcow.o: $(HACK_SRC)/xlockmoreI.h
 bouncingcow.o: $(HACK_SRC)/xlockmore.h
@@ -1142,12 +1151,12 @@ boxed.o: ../../config.h
 boxed.o: $(HACK_SRC)/fps.h
 boxed.o: $(HACK_SRC)/screenhackI.h
 boxed.o: $(UTILS_SRC)/colors.h
+boxed.o: $(UTILS_SRC)/erase.h
 boxed.o: $(UTILS_SRC)/grabscreen.h
 boxed.o: $(UTILS_SRC)/hsv.h
 boxed.o: $(UTILS_SRC)/resources.h
 boxed.o: $(UTILS_SRC)/usleep.h
 boxed.o: $(UTILS_SRC)/visual.h
-boxed.o: $(UTILS_SRC)/xshm.h
 boxed.o: $(UTILS_SRC)/yarandom.h
 boxed.o: $(HACK_SRC)/xlockmoreI.h
 boxed.o: $(HACK_SRC)/xlockmore.h
@@ -1156,12 +1165,12 @@ b_sphere.o: ../../config.h
 b_sphere.o: $(HACK_SRC)/fps.h
 b_sphere.o: $(HACK_SRC)/screenhackI.h
 b_sphere.o: $(UTILS_SRC)/colors.h
+b_sphere.o: $(UTILS_SRC)/erase.h
 b_sphere.o: $(UTILS_SRC)/grabscreen.h
 b_sphere.o: $(UTILS_SRC)/hsv.h
 b_sphere.o: $(UTILS_SRC)/resources.h
 b_sphere.o: $(UTILS_SRC)/usleep.h
 b_sphere.o: $(UTILS_SRC)/visual.h
-b_sphere.o: $(UTILS_SRC)/xshm.h
 b_sphere.o: $(UTILS_SRC)/yarandom.h
 b_sphere.o: $(HACK_SRC)/xlockmoreI.h
 bubble3d.o: $(srcdir)/bubble3d.h
@@ -1169,12 +1178,12 @@ bubble3d.o: ../../config.h
 bubble3d.o: $(HACK_SRC)/fps.h
 bubble3d.o: $(HACK_SRC)/screenhackI.h
 bubble3d.o: $(UTILS_SRC)/colors.h
+bubble3d.o: $(UTILS_SRC)/erase.h
 bubble3d.o: $(UTILS_SRC)/grabscreen.h
 bubble3d.o: $(UTILS_SRC)/hsv.h
 bubble3d.o: $(UTILS_SRC)/resources.h
 bubble3d.o: $(UTILS_SRC)/usleep.h
 bubble3d.o: $(UTILS_SRC)/visual.h
-bubble3d.o: $(UTILS_SRC)/xshm.h
 bubble3d.o: $(UTILS_SRC)/yarandom.h
 bubble3d.o: $(HACK_SRC)/xlockmoreI.h
 buildlwo.o: $(srcdir)/buildlwo.h
@@ -1184,12 +1193,12 @@ cage.o: $(HACK_SRC)/fps.h
 cage.o: $(HACK_SRC)/images/wood.xpm
 cage.o: $(HACK_SRC)/screenhackI.h
 cage.o: $(UTILS_SRC)/colors.h
+cage.o: $(UTILS_SRC)/erase.h
 cage.o: $(UTILS_SRC)/grabscreen.h
 cage.o: $(UTILS_SRC)/hsv.h
 cage.o: $(UTILS_SRC)/resources.h
 cage.o: $(UTILS_SRC)/usleep.h
 cage.o: $(UTILS_SRC)/visual.h
-cage.o: $(UTILS_SRC)/xshm.h
 cage.o: $(UTILS_SRC)/yarandom.h
 cage.o: $(HACK_SRC)/xlockmoreI.h
 cage.o: $(HACK_SRC)/xlockmore.h
@@ -1202,12 +1211,12 @@ carousel.o: $(srcdir)/rotator.h
 carousel.o: $(HACK_SRC)/screenhackI.h
 carousel.o: $(srcdir)/texfont.h
 carousel.o: $(UTILS_SRC)/colors.h
+carousel.o: $(UTILS_SRC)/erase.h
 carousel.o: $(UTILS_SRC)/grabscreen.h
 carousel.o: $(UTILS_SRC)/hsv.h
 carousel.o: $(UTILS_SRC)/resources.h
 carousel.o: $(UTILS_SRC)/usleep.h
 carousel.o: $(UTILS_SRC)/visual.h
-carousel.o: $(UTILS_SRC)/xshm.h
 carousel.o: $(UTILS_SRC)/yarandom.h
 carousel.o: $(HACK_SRC)/xlockmoreI.h
 carousel.o: $(HACK_SRC)/xlockmore.h
@@ -1218,12 +1227,12 @@ circuit.o: $(HACK_SRC)/fps.h
 circuit.o: $(HACK_SRC)/screenhackI.h
 circuit.o: $(srcdir)/texfont.h
 circuit.o: $(UTILS_SRC)/colors.h
+circuit.o: $(UTILS_SRC)/erase.h
 circuit.o: $(UTILS_SRC)/grabscreen.h
 circuit.o: $(UTILS_SRC)/hsv.h
 circuit.o: $(UTILS_SRC)/resources.h
 circuit.o: $(UTILS_SRC)/usleep.h
 circuit.o: $(UTILS_SRC)/visual.h
-circuit.o: $(UTILS_SRC)/xshm.h
 circuit.o: $(UTILS_SRC)/yarandom.h
 circuit.o: $(HACK_SRC)/xlockmoreI.h
 circuit.o: $(HACK_SRC)/xlockmore.h
@@ -1232,12 +1241,12 @@ cityflow.o: $(HACK_SRC)/fps.h
 cityflow.o: $(srcdir)/gltrackball.h
 cityflow.o: $(HACK_SRC)/screenhackI.h
 cityflow.o: $(UTILS_SRC)/colors.h
+cityflow.o: $(UTILS_SRC)/erase.h
 cityflow.o: $(UTILS_SRC)/grabscreen.h
 cityflow.o: $(UTILS_SRC)/hsv.h
 cityflow.o: $(UTILS_SRC)/resources.h
 cityflow.o: $(UTILS_SRC)/usleep.h
 cityflow.o: $(UTILS_SRC)/visual.h
-cityflow.o: $(UTILS_SRC)/xshm.h
 cityflow.o: $(UTILS_SRC)/yarandom.h
 cityflow.o: $(HACK_SRC)/xlockmoreI.h
 cityflow.o: $(HACK_SRC)/xlockmore.h
@@ -1252,12 +1261,12 @@ companion.o: $(srcdir)/gltrackball.h
 companion.o: $(srcdir)/rotator.h
 companion.o: $(HACK_SRC)/screenhackI.h
 companion.o: $(UTILS_SRC)/colors.h
+companion.o: $(UTILS_SRC)/erase.h
 companion.o: $(UTILS_SRC)/grabscreen.h
 companion.o: $(UTILS_SRC)/hsv.h
 companion.o: $(UTILS_SRC)/resources.h
 companion.o: $(UTILS_SRC)/usleep.h
 companion.o: $(UTILS_SRC)/visual.h
-companion.o: $(UTILS_SRC)/xshm.h
 companion.o: $(UTILS_SRC)/yarandom.h
 companion.o: $(HACK_SRC)/xlockmoreI.h
 companion.o: $(HACK_SRC)/xlockmore.h
@@ -1280,12 +1289,12 @@ crackberg.o: ../../config.h
 crackberg.o: $(HACK_SRC)/fps.h
 crackberg.o: $(HACK_SRC)/screenhackI.h
 crackberg.o: $(UTILS_SRC)/colors.h
+crackberg.o: $(UTILS_SRC)/erase.h
 crackberg.o: $(UTILS_SRC)/grabscreen.h
 crackberg.o: $(UTILS_SRC)/hsv.h
 crackberg.o: $(UTILS_SRC)/resources.h
 crackberg.o: $(UTILS_SRC)/usleep.h
 crackberg.o: $(UTILS_SRC)/visual.h
-crackberg.o: $(UTILS_SRC)/xshm.h
 crackberg.o: $(UTILS_SRC)/yarandom.h
 crackberg.o: $(HACK_SRC)/xlockmoreI.h
 crackberg.o: $(HACK_SRC)/xlockmore.h
@@ -1294,12 +1303,12 @@ cube21.o: $(HACK_SRC)/fps.h
 cube21.o: $(srcdir)/gltrackball.h
 cube21.o: $(HACK_SRC)/screenhackI.h
 cube21.o: $(UTILS_SRC)/colors.h
+cube21.o: $(UTILS_SRC)/erase.h
 cube21.o: $(UTILS_SRC)/grabscreen.h
 cube21.o: $(UTILS_SRC)/hsv.h
 cube21.o: $(UTILS_SRC)/resources.h
 cube21.o: $(UTILS_SRC)/usleep.h
 cube21.o: $(UTILS_SRC)/visual.h
-cube21.o: $(UTILS_SRC)/xshm.h
 cube21.o: $(UTILS_SRC)/yarandom.h
 cube21.o: $(HACK_SRC)/xlockmoreI.h
 cube21.o: $(HACK_SRC)/xlockmore.h
@@ -1309,12 +1318,12 @@ cubenetic.o: $(srcdir)/gltrackball.h
 cubenetic.o: $(srcdir)/rotator.h
 cubenetic.o: $(HACK_SRC)/screenhackI.h
 cubenetic.o: $(UTILS_SRC)/colors.h
+cubenetic.o: $(UTILS_SRC)/erase.h
 cubenetic.o: $(UTILS_SRC)/grabscreen.h
 cubenetic.o: $(UTILS_SRC)/hsv.h
 cubenetic.o: $(UTILS_SRC)/resources.h
 cubenetic.o: $(UTILS_SRC)/usleep.h
 cubenetic.o: $(UTILS_SRC)/visual.h
-cubenetic.o: $(UTILS_SRC)/xshm.h
 cubenetic.o: $(UTILS_SRC)/yarandom.h
 cubenetic.o: $(HACK_SRC)/xlockmoreI.h
 cubenetic.o: $(HACK_SRC)/xlockmore.h
@@ -1324,12 +1333,12 @@ cubestack.o: $(srcdir)/gltrackball.h
 cubestack.o: $(srcdir)/rotator.h
 cubestack.o: $(HACK_SRC)/screenhackI.h
 cubestack.o: $(UTILS_SRC)/colors.h
+cubestack.o: $(UTILS_SRC)/erase.h
 cubestack.o: $(UTILS_SRC)/grabscreen.h
 cubestack.o: $(UTILS_SRC)/hsv.h
 cubestack.o: $(UTILS_SRC)/resources.h
 cubestack.o: $(UTILS_SRC)/usleep.h
 cubestack.o: $(UTILS_SRC)/visual.h
-cubestack.o: $(UTILS_SRC)/xshm.h
 cubestack.o: $(UTILS_SRC)/yarandom.h
 cubestack.o: $(HACK_SRC)/xlockmoreI.h
 cubestack.o: $(HACK_SRC)/xlockmore.h
@@ -1339,12 +1348,12 @@ cubestorm.o: $(srcdir)/gltrackball.h
 cubestorm.o: $(srcdir)/rotator.h
 cubestorm.o: $(HACK_SRC)/screenhackI.h
 cubestorm.o: $(UTILS_SRC)/colors.h
+cubestorm.o: $(UTILS_SRC)/erase.h
 cubestorm.o: $(UTILS_SRC)/grabscreen.h
 cubestorm.o: $(UTILS_SRC)/hsv.h
 cubestorm.o: $(UTILS_SRC)/resources.h
 cubestorm.o: $(UTILS_SRC)/usleep.h
 cubestorm.o: $(UTILS_SRC)/visual.h
-cubestorm.o: $(UTILS_SRC)/xshm.h
 cubestorm.o: $(UTILS_SRC)/yarandom.h
 cubestorm.o: $(HACK_SRC)/xlockmoreI.h
 cubestorm.o: $(HACK_SRC)/xlockmore.h
@@ -1355,12 +1364,12 @@ cubetwist.o: $(srcdir)/normals.h
 cubetwist.o: $(srcdir)/rotator.h
 cubetwist.o: $(HACK_SRC)/screenhackI.h
 cubetwist.o: $(UTILS_SRC)/colors.h
+cubetwist.o: $(UTILS_SRC)/erase.h
 cubetwist.o: $(UTILS_SRC)/grabscreen.h
 cubetwist.o: $(UTILS_SRC)/hsv.h
 cubetwist.o: $(UTILS_SRC)/resources.h
 cubetwist.o: $(UTILS_SRC)/usleep.h
 cubetwist.o: $(UTILS_SRC)/visual.h
-cubetwist.o: $(UTILS_SRC)/xshm.h
 cubetwist.o: $(UTILS_SRC)/yarandom.h
 cubetwist.o: $(HACK_SRC)/xlockmoreI.h
 cubetwist.o: $(HACK_SRC)/xlockmore.h
@@ -1370,12 +1379,12 @@ cubicgrid.o: $(srcdir)/gltrackball.h
 cubicgrid.o: $(srcdir)/rotator.h
 cubicgrid.o: $(HACK_SRC)/screenhackI.h
 cubicgrid.o: $(UTILS_SRC)/colors.h
+cubicgrid.o: $(UTILS_SRC)/erase.h
 cubicgrid.o: $(UTILS_SRC)/grabscreen.h
 cubicgrid.o: $(UTILS_SRC)/hsv.h
 cubicgrid.o: $(UTILS_SRC)/resources.h
 cubicgrid.o: $(UTILS_SRC)/usleep.h
 cubicgrid.o: $(UTILS_SRC)/visual.h
-cubicgrid.o: $(UTILS_SRC)/xshm.h
 cubicgrid.o: $(UTILS_SRC)/yarandom.h
 cubicgrid.o: $(HACK_SRC)/xlockmoreI.h
 cubicgrid.o: $(HACK_SRC)/xlockmore.h
@@ -1387,12 +1396,12 @@ dangerball.o: $(HACK_SRC)/screenhackI.h
 dangerball.o: $(srcdir)/sphere.h
 dangerball.o: $(srcdir)/tube.h
 dangerball.o: $(UTILS_SRC)/colors.h
+dangerball.o: $(UTILS_SRC)/erase.h
 dangerball.o: $(UTILS_SRC)/grabscreen.h
 dangerball.o: $(UTILS_SRC)/hsv.h
 dangerball.o: $(UTILS_SRC)/resources.h
 dangerball.o: $(UTILS_SRC)/usleep.h
 dangerball.o: $(UTILS_SRC)/visual.h
-dangerball.o: $(UTILS_SRC)/xshm.h
 dangerball.o: $(UTILS_SRC)/yarandom.h
 dangerball.o: $(HACK_SRC)/xlockmoreI.h
 dangerball.o: $(HACK_SRC)/xlockmore.h
@@ -1403,12 +1412,12 @@ discoball.o: $(srcdir)/normals.h
 discoball.o: $(srcdir)/rotator.h
 discoball.o: $(HACK_SRC)/screenhackI.h
 discoball.o: $(UTILS_SRC)/colors.h
+discoball.o: $(UTILS_SRC)/erase.h
 discoball.o: $(UTILS_SRC)/grabscreen.h
 discoball.o: $(UTILS_SRC)/hsv.h
 discoball.o: $(UTILS_SRC)/resources.h
 discoball.o: $(UTILS_SRC)/usleep.h
 discoball.o: $(UTILS_SRC)/visual.h
-discoball.o: $(UTILS_SRC)/xshm.h
 discoball.o: $(UTILS_SRC)/yarandom.h
 discoball.o: $(HACK_SRC)/xlockmoreI.h
 discoball.o: $(HACK_SRC)/xlockmore.h
@@ -1422,13 +1431,13 @@ dnalogo.o: $(srcdir)/sphere.h
 dnalogo.o: $(srcdir)/texfont.h
 dnalogo.o: $(srcdir)/tube.h
 dnalogo.o: $(UTILS_SRC)/colors.h
+dnalogo.o: $(UTILS_SRC)/erase.h
 dnalogo.o: $(UTILS_SRC)/grabscreen.h
 dnalogo.o: $(UTILS_SRC)/hsv.h
 dnalogo.o: $(UTILS_SRC)/resources.h
 dnalogo.o: $(UTILS_SRC)/usleep.h
 dnalogo.o: $(UTILS_SRC)/utf8wc.h
 dnalogo.o: $(UTILS_SRC)/visual.h
-dnalogo.o: $(UTILS_SRC)/xshm.h
 dnalogo.o: $(UTILS_SRC)/yarandom.h
 dnalogo.o: $(HACK_SRC)/xlockmoreI.h
 dnalogo.o: $(HACK_SRC)/xlockmore.h
@@ -1448,12 +1457,12 @@ dropshadow.o: $(srcdir)/dropshadow.h
 dropshadow.o: $(HACK_SRC)/fps.h
 dropshadow.o: $(HACK_SRC)/screenhackI.h
 dropshadow.o: $(UTILS_SRC)/colors.h
+dropshadow.o: $(UTILS_SRC)/erase.h
 dropshadow.o: $(UTILS_SRC)/grabscreen.h
 dropshadow.o: $(UTILS_SRC)/hsv.h
 dropshadow.o: $(UTILS_SRC)/resources.h
 dropshadow.o: $(UTILS_SRC)/usleep.h
 dropshadow.o: $(UTILS_SRC)/visual.h
-dropshadow.o: $(UTILS_SRC)/xshm.h
 dropshadow.o: $(UTILS_SRC)/yarandom.h
 dropshadow.o: $(HACK_SRC)/xlockmoreI.h
 dymaxionmap.o: ../../config.h
@@ -1467,12 +1476,12 @@ dymaxionmap.o: $(HACK_SRC)/screenhackI.h
 dymaxionmap.o: $(srcdir)/sphere.h
 dymaxionmap.o: $(srcdir)/texfont.h
 dymaxionmap.o: $(UTILS_SRC)/colors.h
+dymaxionmap.o: $(UTILS_SRC)/erase.h
 dymaxionmap.o: $(UTILS_SRC)/grabscreen.h
 dymaxionmap.o: $(UTILS_SRC)/hsv.h
 dymaxionmap.o: $(UTILS_SRC)/resources.h
 dymaxionmap.o: $(UTILS_SRC)/usleep.h
 dymaxionmap.o: $(UTILS_SRC)/visual.h
-dymaxionmap.o: $(UTILS_SRC)/xshm.h
 dymaxionmap.o: $(UTILS_SRC)/yarandom.h
 dymaxionmap.o: $(HACK_SRC)/xlockmoreI.h
 dymaxionmap.o: $(HACK_SRC)/xlockmore.h
@@ -1484,12 +1493,12 @@ endgame.o: $(HACK_SRC)/fps.h
 endgame.o: $(srcdir)/gltrackball.h
 endgame.o: $(HACK_SRC)/screenhackI.h
 endgame.o: $(UTILS_SRC)/colors.h
+endgame.o: $(UTILS_SRC)/erase.h
 endgame.o: $(UTILS_SRC)/grabscreen.h
 endgame.o: $(UTILS_SRC)/hsv.h
 endgame.o: $(UTILS_SRC)/resources.h
 endgame.o: $(UTILS_SRC)/usleep.h
 endgame.o: $(UTILS_SRC)/visual.h
-endgame.o: $(UTILS_SRC)/xshm.h
 endgame.o: $(UTILS_SRC)/yarandom.h
 endgame.o: $(HACK_SRC)/xlockmoreI.h
 endgame.o: $(HACK_SRC)/xlockmore.h
@@ -1499,12 +1508,12 @@ energystream.o: $(srcdir)/gltrackball.h
 energystream.o: $(srcdir)/rotator.h
 energystream.o: $(HACK_SRC)/screenhackI.h
 energystream.o: $(UTILS_SRC)/colors.h
+energystream.o: $(UTILS_SRC)/erase.h
 energystream.o: $(UTILS_SRC)/grabscreen.h
 energystream.o: $(UTILS_SRC)/hsv.h
 energystream.o: $(UTILS_SRC)/resources.h
 energystream.o: $(UTILS_SRC)/usleep.h
 energystream.o: $(UTILS_SRC)/visual.h
-energystream.o: $(UTILS_SRC)/xshm.h
 energystream.o: $(UTILS_SRC)/yarandom.h
 energystream.o: $(HACK_SRC)/xlockmoreI.h
 energystream.o: $(HACK_SRC)/xlockmore.h
@@ -1515,15 +1524,34 @@ engine.o: $(srcdir)/rotator.h
 engine.o: $(HACK_SRC)/screenhackI.h
 engine.o: $(srcdir)/texfont.h
 engine.o: $(UTILS_SRC)/colors.h
+engine.o: $(UTILS_SRC)/erase.h
 engine.o: $(UTILS_SRC)/grabscreen.h
 engine.o: $(UTILS_SRC)/hsv.h
 engine.o: $(UTILS_SRC)/resources.h
 engine.o: $(UTILS_SRC)/usleep.h
 engine.o: $(UTILS_SRC)/visual.h
-engine.o: $(UTILS_SRC)/xshm.h
 engine.o: $(UTILS_SRC)/yarandom.h
 engine.o: $(HACK_SRC)/xlockmoreI.h
 engine.o: $(HACK_SRC)/xlockmore.h
+erase-gl.o: ../../config.h
+erase-gl.o: $(UTILS_SRC)/erase.h
+erase-gl.o: $(UTILS_SRC)/utils.h
+esper.o: ../../config.h
+esper.o: $(HACK_SRC)/fps.h
+esper.o: $(srcdir)/grab-ximage.h
+esper.o: $(HACK_SRC)/screenhackI.h
+esper.o: $(srcdir)/texfont.h
+esper.o: $(UTILS_SRC)/colors.h
+esper.o: $(UTILS_SRC)/erase.h
+esper.o: $(UTILS_SRC)/grabscreen.h
+esper.o: $(UTILS_SRC)/hsv.h
+esper.o: $(UTILS_SRC)/resources.h
+esper.o: $(UTILS_SRC)/usleep.h
+esper.o: $(UTILS_SRC)/visual.h
+esper.o: $(UTILS_SRC)/xshm.h
+esper.o: $(UTILS_SRC)/yarandom.h
+esper.o: $(HACK_SRC)/xlockmoreI.h
+esper.o: $(HACK_SRC)/xlockmore.h
 extrusion-helix2.o: ../../config.h
 extrusion-helix2.o: $(srcdir)/extrusion.h
 extrusion-helix3.o: ../../config.h
@@ -1539,12 +1567,12 @@ extrusion.o: $(srcdir)/gltrackball.h
 extrusion.o: $(srcdir)/rotator.h
 extrusion.o: $(HACK_SRC)/screenhackI.h
 extrusion.o: $(UTILS_SRC)/colors.h
+extrusion.o: $(UTILS_SRC)/erase.h
 extrusion.o: $(UTILS_SRC)/grabscreen.h
 extrusion.o: $(UTILS_SRC)/hsv.h
 extrusion.o: $(UTILS_SRC)/resources.h
 extrusion.o: $(UTILS_SRC)/usleep.h
 extrusion.o: $(UTILS_SRC)/visual.h
-extrusion.o: $(UTILS_SRC)/xshm.h
 extrusion.o: $(UTILS_SRC)/yarandom.h
 extrusion.o: $(HACK_SRC)/xlockmoreI.h
 extrusion.o: $(HACK_SRC)/xlockmore.h
@@ -1561,12 +1589,12 @@ flipflop.o: $(srcdir)/gltrackball.h
 flipflop.o: $(srcdir)/grab-ximage.h
 flipflop.o: $(HACK_SRC)/screenhackI.h
 flipflop.o: $(UTILS_SRC)/colors.h
+flipflop.o: $(UTILS_SRC)/erase.h
 flipflop.o: $(UTILS_SRC)/grabscreen.h
 flipflop.o: $(UTILS_SRC)/hsv.h
 flipflop.o: $(UTILS_SRC)/resources.h
 flipflop.o: $(UTILS_SRC)/usleep.h
 flipflop.o: $(UTILS_SRC)/visual.h
-flipflop.o: $(UTILS_SRC)/xshm.h
 flipflop.o: $(UTILS_SRC)/yarandom.h
 flipflop.o: $(HACK_SRC)/xlockmoreI.h
 flipflop.o: $(HACK_SRC)/xlockmore.h
@@ -1576,12 +1604,12 @@ flipscreen3d.o: $(srcdir)/gltrackball.h
 flipscreen3d.o: $(srcdir)/grab-ximage.h
 flipscreen3d.o: $(HACK_SRC)/screenhackI.h
 flipscreen3d.o: $(UTILS_SRC)/colors.h
+flipscreen3d.o: $(UTILS_SRC)/erase.h
 flipscreen3d.o: $(UTILS_SRC)/grabscreen.h
 flipscreen3d.o: $(UTILS_SRC)/hsv.h
 flipscreen3d.o: $(UTILS_SRC)/resources.h
 flipscreen3d.o: $(UTILS_SRC)/usleep.h
 flipscreen3d.o: $(UTILS_SRC)/visual.h
-flipscreen3d.o: $(UTILS_SRC)/xshm.h
 flipscreen3d.o: $(UTILS_SRC)/yarandom.h
 flipscreen3d.o: $(HACK_SRC)/xlockmoreI.h
 flipscreen3d.o: $(HACK_SRC)/xlockmore.h
@@ -1590,13 +1618,13 @@ fliptext.o: $(HACK_SRC)/fps.h
 fliptext.o: $(HACK_SRC)/screenhackI.h
 fliptext.o: $(srcdir)/texfont.h
 fliptext.o: $(UTILS_SRC)/colors.h
+fliptext.o: $(UTILS_SRC)/erase.h
 fliptext.o: $(UTILS_SRC)/grabscreen.h
 fliptext.o: $(UTILS_SRC)/hsv.h
 fliptext.o: $(UTILS_SRC)/resources.h
 fliptext.o: $(UTILS_SRC)/textclient.h
 fliptext.o: $(UTILS_SRC)/usleep.h
 fliptext.o: $(UTILS_SRC)/visual.h
-fliptext.o: $(UTILS_SRC)/xshm.h
 fliptext.o: $(UTILS_SRC)/yarandom.h
 fliptext.o: $(HACK_SRC)/xlockmoreI.h
 fliptext.o: $(HACK_SRC)/xlockmore.h
@@ -1607,12 +1635,12 @@ flurry.o: $(srcdir)/gltrackball.h
 flurry.o: $(srcdir)/rotator.h
 flurry.o: $(HACK_SRC)/screenhackI.h
 flurry.o: $(UTILS_SRC)/colors.h
+flurry.o: $(UTILS_SRC)/erase.h
 flurry.o: $(UTILS_SRC)/grabscreen.h
 flurry.o: $(UTILS_SRC)/hsv.h
 flurry.o: $(UTILS_SRC)/resources.h
 flurry.o: $(UTILS_SRC)/usleep.h
 flurry.o: $(UTILS_SRC)/visual.h
-flurry.o: $(UTILS_SRC)/xshm.h
 flurry.o: $(UTILS_SRC)/yarandom.h
 flurry.o: $(HACK_SRC)/xlockmoreI.h
 flurry.o: $(HACK_SRC)/xlockmore.h
@@ -1644,12 +1672,12 @@ flyingtoasters.o: $(HACK_SRC)/images/chromesphere.xpm
 flyingtoasters.o: $(HACK_SRC)/images/toast.xpm
 flyingtoasters.o: $(HACK_SRC)/screenhackI.h
 flyingtoasters.o: $(UTILS_SRC)/colors.h
+flyingtoasters.o: $(UTILS_SRC)/erase.h
 flyingtoasters.o: $(UTILS_SRC)/grabscreen.h
 flyingtoasters.o: $(UTILS_SRC)/hsv.h
 flyingtoasters.o: $(UTILS_SRC)/resources.h
 flyingtoasters.o: $(UTILS_SRC)/usleep.h
 flyingtoasters.o: $(UTILS_SRC)/visual.h
-flyingtoasters.o: $(UTILS_SRC)/xshm.h
 flyingtoasters.o: $(UTILS_SRC)/yarandom.h
 flyingtoasters.o: $(HACK_SRC)/xlockmoreI.h
 flyingtoasters.o: $(HACK_SRC)/xlockmore.h
@@ -1660,12 +1688,12 @@ fps-gl.o: $(HACK_SRC)/fps.h
 fps-gl.o: $(HACK_SRC)/screenhackI.h
 fps-gl.o: $(srcdir)/texfont.h
 fps-gl.o: $(UTILS_SRC)/colors.h
+fps-gl.o: $(UTILS_SRC)/erase.h
 fps-gl.o: $(UTILS_SRC)/grabscreen.h
 fps-gl.o: $(UTILS_SRC)/hsv.h
 fps-gl.o: $(UTILS_SRC)/resources.h
 fps-gl.o: $(UTILS_SRC)/usleep.h
 fps-gl.o: $(UTILS_SRC)/visual.h
-fps-gl.o: $(UTILS_SRC)/xshm.h
 fps-gl.o: $(UTILS_SRC)/yarandom.h
 fps-gl.o: $(HACK_SRC)/xlockmoreI.h
 gears.o: ../../config.h
@@ -1677,12 +1705,12 @@ gears.o: $(srcdir)/rotator.h
 gears.o: $(HACK_SRC)/screenhackI.h
 gears.o: $(srcdir)/tube.h
 gears.o: $(UTILS_SRC)/colors.h
+gears.o: $(UTILS_SRC)/erase.h
 gears.o: $(UTILS_SRC)/grabscreen.h
 gears.o: $(UTILS_SRC)/hsv.h
 gears.o: $(UTILS_SRC)/resources.h
 gears.o: $(UTILS_SRC)/usleep.h
 gears.o: $(UTILS_SRC)/visual.h
-gears.o: $(UTILS_SRC)/xshm.h
 gears.o: $(UTILS_SRC)/yarandom.h
 gears.o: $(HACK_SRC)/xlockmoreI.h
 gears.o: $(HACK_SRC)/xlockmore.h
@@ -1696,12 +1724,12 @@ geodesicgears.o: $(srcdir)/rotator.h
 geodesicgears.o: $(HACK_SRC)/screenhackI.h
 geodesicgears.o: $(srcdir)/texfont.h
 geodesicgears.o: $(UTILS_SRC)/colors.h
+geodesicgears.o: $(UTILS_SRC)/erase.h
 geodesicgears.o: $(UTILS_SRC)/grabscreen.h
 geodesicgears.o: $(UTILS_SRC)/hsv.h
 geodesicgears.o: $(UTILS_SRC)/resources.h
 geodesicgears.o: $(UTILS_SRC)/usleep.h
 geodesicgears.o: $(UTILS_SRC)/visual.h
-geodesicgears.o: $(UTILS_SRC)/xshm.h
 geodesicgears.o: $(UTILS_SRC)/yarandom.h
 geodesicgears.o: $(HACK_SRC)/xlockmoreI.h
 geodesicgears.o: $(HACK_SRC)/xlockmore.h
@@ -1713,12 +1741,12 @@ geodesic.o: $(srcdir)/normals.h
 geodesic.o: $(srcdir)/rotator.h
 geodesic.o: $(HACK_SRC)/screenhackI.h
 geodesic.o: $(UTILS_SRC)/colors.h
+geodesic.o: $(UTILS_SRC)/erase.h
 geodesic.o: $(UTILS_SRC)/grabscreen.h
 geodesic.o: $(UTILS_SRC)/hsv.h
 geodesic.o: $(UTILS_SRC)/resources.h
 geodesic.o: $(UTILS_SRC)/usleep.h
 geodesic.o: $(UTILS_SRC)/visual.h
-geodesic.o: $(UTILS_SRC)/xshm.h
 geodesic.o: $(UTILS_SRC)/yarandom.h
 geodesic.o: $(HACK_SRC)/xlockmoreI.h
 geodesic.o: $(HACK_SRC)/xlockmore.h
@@ -1728,12 +1756,12 @@ gflux.o: $(srcdir)/gltrackball.h
 gflux.o: $(srcdir)/grab-ximage.h
 gflux.o: $(HACK_SRC)/screenhackI.h
 gflux.o: $(UTILS_SRC)/colors.h
+gflux.o: $(UTILS_SRC)/erase.h
 gflux.o: $(UTILS_SRC)/grabscreen.h
 gflux.o: $(UTILS_SRC)/hsv.h
 gflux.o: $(UTILS_SRC)/resources.h
 gflux.o: $(UTILS_SRC)/usleep.h
 gflux.o: $(UTILS_SRC)/visual.h
-gflux.o: $(UTILS_SRC)/xshm.h
 gflux.o: $(UTILS_SRC)/yarandom.h
 gflux.o: $(HACK_SRC)/xlockmoreI.h
 gflux.o: $(HACK_SRC)/xlockmore.h
@@ -1743,12 +1771,12 @@ glblur.o: $(srcdir)/gltrackball.h
 glblur.o: $(srcdir)/rotator.h
 glblur.o: $(HACK_SRC)/screenhackI.h
 glblur.o: $(UTILS_SRC)/colors.h
+glblur.o: $(UTILS_SRC)/erase.h
 glblur.o: $(UTILS_SRC)/grabscreen.h
 glblur.o: $(UTILS_SRC)/hsv.h
 glblur.o: $(UTILS_SRC)/resources.h
 glblur.o: $(UTILS_SRC)/usleep.h
 glblur.o: $(UTILS_SRC)/visual.h
-glblur.o: $(UTILS_SRC)/xshm.h
 glblur.o: $(UTILS_SRC)/yarandom.h
 glblur.o: $(HACK_SRC)/xlockmoreI.h
 glblur.o: $(HACK_SRC)/xlockmore.h
@@ -1756,12 +1784,12 @@ glcells.o: ../../config.h
 glcells.o: $(HACK_SRC)/fps.h
 glcells.o: $(HACK_SRC)/screenhackI.h
 glcells.o: $(UTILS_SRC)/colors.h
+glcells.o: $(UTILS_SRC)/erase.h
 glcells.o: $(UTILS_SRC)/grabscreen.h
 glcells.o: $(UTILS_SRC)/hsv.h
 glcells.o: $(UTILS_SRC)/resources.h
 glcells.o: $(UTILS_SRC)/usleep.h
 glcells.o: $(UTILS_SRC)/visual.h
-glcells.o: $(UTILS_SRC)/xshm.h
 glcells.o: $(UTILS_SRC)/yarandom.h
 glcells.o: $(HACK_SRC)/xlockmoreI.h
 glcells.o: $(HACK_SRC)/xlockmore.h
@@ -1770,12 +1798,12 @@ gleidescope.o: $(HACK_SRC)/fps.h
 gleidescope.o: $(srcdir)/grab-ximage.h
 gleidescope.o: $(HACK_SRC)/screenhackI.h
 gleidescope.o: $(UTILS_SRC)/colors.h
+gleidescope.o: $(UTILS_SRC)/erase.h
 gleidescope.o: $(UTILS_SRC)/grabscreen.h
 gleidescope.o: $(UTILS_SRC)/hsv.h
 gleidescope.o: $(UTILS_SRC)/resources.h
 gleidescope.o: $(UTILS_SRC)/usleep.h
 gleidescope.o: $(UTILS_SRC)/visual.h
-gleidescope.o: $(UTILS_SRC)/xshm.h
 gleidescope.o: $(UTILS_SRC)/yarandom.h
 gleidescope.o: $(HACK_SRC)/xlockmoreI.h
 gleidescope.o: $(HACK_SRC)/xlockmore.h
@@ -1787,12 +1815,12 @@ glforestfire.o: $(HACK_SRC)/images/ground.xpm
 glforestfire.o: $(HACK_SRC)/images/tree.xpm
 glforestfire.o: $(HACK_SRC)/screenhackI.h
 glforestfire.o: $(UTILS_SRC)/colors.h
+glforestfire.o: $(UTILS_SRC)/erase.h
 glforestfire.o: $(UTILS_SRC)/grabscreen.h
 glforestfire.o: $(UTILS_SRC)/hsv.h
 glforestfire.o: $(UTILS_SRC)/resources.h
 glforestfire.o: $(UTILS_SRC)/usleep.h
 glforestfire.o: $(UTILS_SRC)/visual.h
-glforestfire.o: $(UTILS_SRC)/xshm.h
 glforestfire.o: $(UTILS_SRC)/yarandom.h
 glforestfire.o: $(HACK_SRC)/xlockmoreI.h
 glforestfire.o: $(HACK_SRC)/xlockmore.h
@@ -1802,12 +1830,12 @@ glhanoi.o: $(HACK_SRC)/fps.h
 glhanoi.o: $(srcdir)/rotator.h
 glhanoi.o: $(HACK_SRC)/screenhackI.h
 glhanoi.o: $(UTILS_SRC)/colors.h
+glhanoi.o: $(UTILS_SRC)/erase.h
 glhanoi.o: $(UTILS_SRC)/grabscreen.h
 glhanoi.o: $(UTILS_SRC)/hsv.h
 glhanoi.o: $(UTILS_SRC)/resources.h
 glhanoi.o: $(UTILS_SRC)/usleep.h
 glhanoi.o: $(UTILS_SRC)/visual.h
-glhanoi.o: $(UTILS_SRC)/xshm.h
 glhanoi.o: $(UTILS_SRC)/yarandom.h
 glhanoi.o: $(HACK_SRC)/xlockmoreI.h
 glhanoi.o: $(HACK_SRC)/xlockmore.h
@@ -1818,12 +1846,12 @@ glknots.o: $(srcdir)/rotator.h
 glknots.o: $(HACK_SRC)/screenhackI.h
 glknots.o: $(srcdir)/tube.h
 glknots.o: $(UTILS_SRC)/colors.h
+glknots.o: $(UTILS_SRC)/erase.h
 glknots.o: $(UTILS_SRC)/grabscreen.h
 glknots.o: $(UTILS_SRC)/hsv.h
 glknots.o: $(UTILS_SRC)/resources.h
 glknots.o: $(UTILS_SRC)/usleep.h
 glknots.o: $(UTILS_SRC)/visual.h
-glknots.o: $(UTILS_SRC)/xshm.h
 glknots.o: $(UTILS_SRC)/yarandom.h
 glknots.o: $(HACK_SRC)/xlockmoreI.h
 glknots.o: $(HACK_SRC)/xlockmore.h
@@ -1834,12 +1862,12 @@ glmatrix.o: $(HACK_SRC)/fps.h
 glmatrix.o: $(HACK_SRC)/images/matrix3.xpm
 glmatrix.o: $(HACK_SRC)/screenhackI.h
 glmatrix.o: $(UTILS_SRC)/colors.h
+glmatrix.o: $(UTILS_SRC)/erase.h
 glmatrix.o: $(UTILS_SRC)/grabscreen.h
 glmatrix.o: $(UTILS_SRC)/hsv.h
 glmatrix.o: $(UTILS_SRC)/resources.h
 glmatrix.o: $(UTILS_SRC)/usleep.h
 glmatrix.o: $(UTILS_SRC)/visual.h
-glmatrix.o: $(UTILS_SRC)/xshm.h
 glmatrix.o: $(UTILS_SRC)/yarandom.h
 glmatrix.o: $(HACK_SRC)/xlockmoreI.h
 glmatrix.o: $(HACK_SRC)/xlockmore.h
@@ -1853,12 +1881,12 @@ glplanet.o: $(srcdir)/rotator.h
 glplanet.o: $(HACK_SRC)/screenhackI.h
 glplanet.o: $(srcdir)/sphere.h
 glplanet.o: $(UTILS_SRC)/colors.h
+glplanet.o: $(UTILS_SRC)/erase.h
 glplanet.o: $(UTILS_SRC)/grabscreen.h
 glplanet.o: $(UTILS_SRC)/hsv.h
 glplanet.o: $(UTILS_SRC)/resources.h
 glplanet.o: $(UTILS_SRC)/usleep.h
 glplanet.o: $(UTILS_SRC)/visual.h
-glplanet.o: $(UTILS_SRC)/xshm.h
 glplanet.o: $(UTILS_SRC)/yarandom.h
 glplanet.o: $(HACK_SRC)/xlockmoreI.h
 glplanet.o: $(HACK_SRC)/xlockmore.h
@@ -1878,12 +1906,12 @@ glschool.o: $(srcdir)/glschool_gl.h
 glschool.o: $(srcdir)/glschool.h
 glschool.o: $(HACK_SRC)/screenhackI.h
 glschool.o: $(UTILS_SRC)/colors.h
+glschool.o: $(UTILS_SRC)/erase.h
 glschool.o: $(UTILS_SRC)/grabscreen.h
 glschool.o: $(UTILS_SRC)/hsv.h
 glschool.o: $(UTILS_SRC)/resources.h
 glschool.o: $(UTILS_SRC)/usleep.h
 glschool.o: $(UTILS_SRC)/visual.h
-glschool.o: $(UTILS_SRC)/xshm.h
 glschool.o: $(UTILS_SRC)/yarandom.h
 glschool.o: $(HACK_SRC)/xlockmoreI.h
 glschool.o: $(HACK_SRC)/xlockmore.h
@@ -1893,12 +1921,12 @@ glslideshow.o: $(srcdir)/grab-ximage.h
 glslideshow.o: $(HACK_SRC)/screenhackI.h
 glslideshow.o: $(srcdir)/texfont.h
 glslideshow.o: $(UTILS_SRC)/colors.h
+glslideshow.o: $(UTILS_SRC)/erase.h
 glslideshow.o: $(UTILS_SRC)/grabscreen.h
 glslideshow.o: $(UTILS_SRC)/hsv.h
 glslideshow.o: $(UTILS_SRC)/resources.h
 glslideshow.o: $(UTILS_SRC)/usleep.h
 glslideshow.o: $(UTILS_SRC)/visual.h
-glslideshow.o: $(UTILS_SRC)/xshm.h
 glslideshow.o: $(UTILS_SRC)/yarandom.h
 glslideshow.o: $(HACK_SRC)/xlockmoreI.h
 glslideshow.o: $(HACK_SRC)/xlockmore.h
@@ -1907,18 +1935,19 @@ glsnake.o: $(HACK_SRC)/fps.h
 glsnake.o: $(HACK_SRC)/screenhackI.h
 glsnake.o: $(srcdir)/texfont.h
 glsnake.o: $(UTILS_SRC)/colors.h
+glsnake.o: $(UTILS_SRC)/erase.h
 glsnake.o: $(UTILS_SRC)/grabscreen.h
 glsnake.o: $(UTILS_SRC)/hsv.h
 glsnake.o: $(UTILS_SRC)/resources.h
 glsnake.o: $(UTILS_SRC)/usleep.h
 glsnake.o: $(UTILS_SRC)/visual.h
-glsnake.o: $(UTILS_SRC)/xshm.h
 glsnake.o: $(UTILS_SRC)/yarandom.h
 glsnake.o: $(HACK_SRC)/xlockmoreI.h
 glsnake.o: $(HACK_SRC)/xlockmore.h
 gltext.o: ../../config.h
 gltext.o: $(HACK_SRC)/fps.h
 gltext.o: $(srcdir)/gltrackball.h
+gltext.o: $(srcdir)/glut_mroman.h
 gltext.o: $(srcdir)/glut_roman.h
 gltext.o: $(srcdir)/glutstroke.h
 gltext.o: $(srcdir)/rotator.h
@@ -1926,6 +1955,7 @@ gltext.o: $(HACK_SRC)/screenhackI.h
 gltext.o: $(srcdir)/sphere.h
 gltext.o: $(srcdir)/tube.h
 gltext.o: $(UTILS_SRC)/colors.h
+gltext.o: $(UTILS_SRC)/erase.h
 gltext.o: $(UTILS_SRC)/grabscreen.h
 gltext.o: $(UTILS_SRC)/hsv.h
 gltext.o: $(UTILS_SRC)/resources.h
@@ -1933,7 +1963,6 @@ 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
@@ -1947,7 +1976,7 @@ glut_swidth.o: $(srcdir)/glutstroke.h
 grab-ximage.o: ../../config.h
 grab-ximage.o: $(srcdir)/grab-ximage.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
@@ -1957,12 +1986,12 @@ hexstrut.o: $(srcdir)/normals.h
 hexstrut.o: $(srcdir)/rotator.h
 hexstrut.o: $(HACK_SRC)/screenhackI.h
 hexstrut.o: $(UTILS_SRC)/colors.h
+hexstrut.o: $(UTILS_SRC)/erase.h
 hexstrut.o: $(UTILS_SRC)/grabscreen.h
 hexstrut.o: $(UTILS_SRC)/hsv.h
 hexstrut.o: $(UTILS_SRC)/resources.h
 hexstrut.o: $(UTILS_SRC)/usleep.h
 hexstrut.o: $(UTILS_SRC)/visual.h
-hexstrut.o: $(UTILS_SRC)/xshm.h
 hexstrut.o: $(UTILS_SRC)/yarandom.h
 hexstrut.o: $(HACK_SRC)/xlockmoreI.h
 hexstrut.o: $(HACK_SRC)/xlockmore.h
@@ -1974,12 +2003,12 @@ hilbert.o: $(HACK_SRC)/screenhackI.h
 hilbert.o: $(srcdir)/sphere.h
 hilbert.o: $(srcdir)/tube.h
 hilbert.o: $(UTILS_SRC)/colors.h
+hilbert.o: $(UTILS_SRC)/erase.h
 hilbert.o: $(UTILS_SRC)/grabscreen.h
 hilbert.o: $(UTILS_SRC)/hsv.h
 hilbert.o: $(UTILS_SRC)/resources.h
 hilbert.o: $(UTILS_SRC)/usleep.h
 hilbert.o: $(UTILS_SRC)/visual.h
-hilbert.o: $(UTILS_SRC)/xshm.h
 hilbert.o: $(UTILS_SRC)/yarandom.h
 hilbert.o: $(HACK_SRC)/xlockmoreI.h
 hilbert.o: $(HACK_SRC)/xlockmore.h
@@ -1990,12 +2019,12 @@ hydrostat.o: $(srcdir)/normals.h
 hydrostat.o: $(HACK_SRC)/screenhackI.h
 hydrostat.o: $(srcdir)/sphere.h
 hydrostat.o: $(UTILS_SRC)/colors.h
+hydrostat.o: $(UTILS_SRC)/erase.h
 hydrostat.o: $(UTILS_SRC)/grabscreen.h
 hydrostat.o: $(UTILS_SRC)/hsv.h
 hydrostat.o: $(UTILS_SRC)/resources.h
 hydrostat.o: $(UTILS_SRC)/usleep.h
 hydrostat.o: $(UTILS_SRC)/visual.h
-hydrostat.o: $(UTILS_SRC)/xshm.h
 hydrostat.o: $(UTILS_SRC)/yarandom.h
 hydrostat.o: $(HACK_SRC)/xlockmoreI.h
 hydrostat.o: $(HACK_SRC)/xlockmore.h
@@ -2004,12 +2033,12 @@ hypertorus.o: $(HACK_SRC)/fps.h
 hypertorus.o: $(srcdir)/gltrackball.h
 hypertorus.o: $(HACK_SRC)/screenhackI.h
 hypertorus.o: $(UTILS_SRC)/colors.h
+hypertorus.o: $(UTILS_SRC)/erase.h
 hypertorus.o: $(UTILS_SRC)/grabscreen.h
 hypertorus.o: $(UTILS_SRC)/hsv.h
 hypertorus.o: $(UTILS_SRC)/resources.h
 hypertorus.o: $(UTILS_SRC)/usleep.h
 hypertorus.o: $(UTILS_SRC)/visual.h
-hypertorus.o: $(UTILS_SRC)/xshm.h
 hypertorus.o: $(UTILS_SRC)/yarandom.h
 hypertorus.o: $(HACK_SRC)/xlockmoreI.h
 hypertorus.o: $(HACK_SRC)/xlockmore.h
@@ -2018,12 +2047,12 @@ hypnowheel.o: $(HACK_SRC)/fps.h
 hypnowheel.o: $(srcdir)/rotator.h
 hypnowheel.o: $(HACK_SRC)/screenhackI.h
 hypnowheel.o: $(UTILS_SRC)/colors.h
+hypnowheel.o: $(UTILS_SRC)/erase.h
 hypnowheel.o: $(UTILS_SRC)/grabscreen.h
 hypnowheel.o: $(UTILS_SRC)/hsv.h
 hypnowheel.o: $(UTILS_SRC)/resources.h
 hypnowheel.o: $(UTILS_SRC)/usleep.h
 hypnowheel.o: $(UTILS_SRC)/visual.h
-hypnowheel.o: $(UTILS_SRC)/xshm.h
 hypnowheel.o: $(UTILS_SRC)/yarandom.h
 hypnowheel.o: $(HACK_SRC)/xlockmoreI.h
 hypnowheel.o: $(HACK_SRC)/xlockmore.h
@@ -2045,12 +2074,12 @@ jigglypuff.o: $(srcdir)/gltrackball.h
 jigglypuff.o: $(HACK_SRC)/images/jigglymap.xpm
 jigglypuff.o: $(HACK_SRC)/screenhackI.h
 jigglypuff.o: $(UTILS_SRC)/colors.h
+jigglypuff.o: $(UTILS_SRC)/erase.h
 jigglypuff.o: $(UTILS_SRC)/grabscreen.h
 jigglypuff.o: $(UTILS_SRC)/hsv.h
 jigglypuff.o: $(UTILS_SRC)/resources.h
 jigglypuff.o: $(UTILS_SRC)/usleep.h
 jigglypuff.o: $(UTILS_SRC)/visual.h
-jigglypuff.o: $(UTILS_SRC)/xshm.h
 jigglypuff.o: $(UTILS_SRC)/yarandom.h
 jigglypuff.o: $(HACK_SRC)/xlockmoreI.h
 jigglypuff.o: $(HACK_SRC)/xlockmore.h
@@ -2064,13 +2093,13 @@ jigsaw.o: $(srcdir)/rotator.h
 jigsaw.o: $(HACK_SRC)/screenhackI.h
 jigsaw.o: $(srcdir)/texfont.h
 jigsaw.o: $(UTILS_SRC)/colors.h
+jigsaw.o: $(UTILS_SRC)/erase.h
 jigsaw.o: $(UTILS_SRC)/grabscreen.h
 jigsaw.o: $(UTILS_SRC)/hsv.h
 jigsaw.o: $(UTILS_SRC)/resources.h
 jigsaw.o: $(UTILS_SRC)/spline.h
 jigsaw.o: $(UTILS_SRC)/usleep.h
 jigsaw.o: $(UTILS_SRC)/visual.h
-jigsaw.o: $(UTILS_SRC)/xshm.h
 jigsaw.o: $(UTILS_SRC)/yarandom.h
 jigsaw.o: $(HACK_SRC)/xlockmoreI.h
 jigsaw.o: $(HACK_SRC)/xlockmore.h
@@ -2083,12 +2112,12 @@ juggler3d.o: $(srcdir)/sphere.h
 juggler3d.o: $(srcdir)/texfont.h
 juggler3d.o: $(srcdir)/tube.h
 juggler3d.o: $(UTILS_SRC)/colors.h
+juggler3d.o: $(UTILS_SRC)/erase.h
 juggler3d.o: $(UTILS_SRC)/grabscreen.h
 juggler3d.o: $(UTILS_SRC)/hsv.h
 juggler3d.o: $(UTILS_SRC)/resources.h
 juggler3d.o: $(UTILS_SRC)/usleep.h
 juggler3d.o: $(UTILS_SRC)/visual.h
-juggler3d.o: $(UTILS_SRC)/xshm.h
 juggler3d.o: $(UTILS_SRC)/yarandom.h
 juggler3d.o: $(HACK_SRC)/xlockmoreI.h
 juggler3d.o: $(HACK_SRC)/xlockmore.h
@@ -2099,12 +2128,12 @@ kaleidocycle.o: $(srcdir)/normals.h
 kaleidocycle.o: $(srcdir)/rotator.h
 kaleidocycle.o: $(HACK_SRC)/screenhackI.h
 kaleidocycle.o: $(UTILS_SRC)/colors.h
+kaleidocycle.o: $(UTILS_SRC)/erase.h
 kaleidocycle.o: $(UTILS_SRC)/grabscreen.h
 kaleidocycle.o: $(UTILS_SRC)/hsv.h
 kaleidocycle.o: $(UTILS_SRC)/resources.h
 kaleidocycle.o: $(UTILS_SRC)/usleep.h
 kaleidocycle.o: $(UTILS_SRC)/visual.h
-kaleidocycle.o: $(UTILS_SRC)/xshm.h
 kaleidocycle.o: $(UTILS_SRC)/yarandom.h
 kaleidocycle.o: $(HACK_SRC)/xlockmoreI.h
 kaleidocycle.o: $(HACK_SRC)/xlockmore.h
@@ -2114,12 +2143,12 @@ klein.o: $(HACK_SRC)/fps.h
 klein.o: $(srcdir)/gltrackball.h
 klein.o: $(HACK_SRC)/screenhackI.h
 klein.o: $(UTILS_SRC)/colors.h
+klein.o: $(UTILS_SRC)/erase.h
 klein.o: $(UTILS_SRC)/grabscreen.h
 klein.o: $(UTILS_SRC)/hsv.h
 klein.o: $(UTILS_SRC)/resources.h
 klein.o: $(UTILS_SRC)/usleep.h
 klein.o: $(UTILS_SRC)/visual.h
-klein.o: $(UTILS_SRC)/xshm.h
 klein.o: $(UTILS_SRC)/yarandom.h
 klein.o: $(HACK_SRC)/xlockmoreI.h
 klein.o: $(HACK_SRC)/xlockmore.h
@@ -2134,12 +2163,12 @@ lament.o: $(srcdir)/normals.h
 lament.o: $(srcdir)/rotator.h
 lament.o: $(HACK_SRC)/screenhackI.h
 lament.o: $(UTILS_SRC)/colors.h
+lament.o: $(UTILS_SRC)/erase.h
 lament.o: $(UTILS_SRC)/grabscreen.h
 lament.o: $(UTILS_SRC)/hsv.h
 lament.o: $(UTILS_SRC)/resources.h
 lament.o: $(UTILS_SRC)/usleep.h
 lament.o: $(UTILS_SRC)/visual.h
-lament.o: $(UTILS_SRC)/xshm.h
 lament.o: $(UTILS_SRC)/yarandom.h
 lament.o: $(HACK_SRC)/xlockmoreI.h
 lament.o: $(HACK_SRC)/xlockmore.h
@@ -2151,12 +2180,12 @@ lavalite.o: $(srcdir)/marching.h
 lavalite.o: $(srcdir)/rotator.h
 lavalite.o: $(HACK_SRC)/screenhackI.h
 lavalite.o: $(UTILS_SRC)/colors.h
+lavalite.o: $(UTILS_SRC)/erase.h
 lavalite.o: $(UTILS_SRC)/grabscreen.h
 lavalite.o: $(UTILS_SRC)/hsv.h
 lavalite.o: $(UTILS_SRC)/resources.h
 lavalite.o: $(UTILS_SRC)/usleep.h
 lavalite.o: $(UTILS_SRC)/visual.h
-lavalite.o: $(UTILS_SRC)/xshm.h
 lavalite.o: $(UTILS_SRC)/yarandom.h
 lavalite.o: $(HACK_SRC)/xlockmoreI.h
 lavalite.o: $(HACK_SRC)/xlockmore.h
@@ -2165,12 +2194,12 @@ lockward.o: ../../config.h
 lockward.o: $(HACK_SRC)/fps.h
 lockward.o: $(HACK_SRC)/screenhackI.h
 lockward.o: $(UTILS_SRC)/colors.h
+lockward.o: $(UTILS_SRC)/erase.h
 lockward.o: $(UTILS_SRC)/grabscreen.h
 lockward.o: $(UTILS_SRC)/hsv.h
 lockward.o: $(UTILS_SRC)/resources.h
 lockward.o: $(UTILS_SRC)/usleep.h
 lockward.o: $(UTILS_SRC)/visual.h
-lockward.o: $(UTILS_SRC)/xshm.h
 lockward.o: $(UTILS_SRC)/yarandom.h
 lockward.o: $(HACK_SRC)/xlockmoreI.h
 lockward.o: $(HACK_SRC)/xlockmore.h
@@ -2183,12 +2212,12 @@ menger.o: $(srcdir)/gltrackball.h
 menger.o: $(srcdir)/rotator.h
 menger.o: $(HACK_SRC)/screenhackI.h
 menger.o: $(UTILS_SRC)/colors.h
+menger.o: $(UTILS_SRC)/erase.h
 menger.o: $(UTILS_SRC)/grabscreen.h
 menger.o: $(UTILS_SRC)/hsv.h
 menger.o: $(UTILS_SRC)/resources.h
 menger.o: $(UTILS_SRC)/usleep.h
 menger.o: $(UTILS_SRC)/visual.h
-menger.o: $(UTILS_SRC)/xshm.h
 menger.o: $(UTILS_SRC)/yarandom.h
 menger.o: $(HACK_SRC)/xlockmoreI.h
 menger.o: $(HACK_SRC)/xlockmore.h
@@ -2198,12 +2227,12 @@ mirrorblob.o: $(srcdir)/gltrackball.h
 mirrorblob.o: $(srcdir)/grab-ximage.h
 mirrorblob.o: $(HACK_SRC)/screenhackI.h
 mirrorblob.o: $(UTILS_SRC)/colors.h
+mirrorblob.o: $(UTILS_SRC)/erase.h
 mirrorblob.o: $(UTILS_SRC)/grabscreen.h
 mirrorblob.o: $(UTILS_SRC)/hsv.h
 mirrorblob.o: $(UTILS_SRC)/resources.h
 mirrorblob.o: $(UTILS_SRC)/usleep.h
 mirrorblob.o: $(UTILS_SRC)/visual.h
-mirrorblob.o: $(UTILS_SRC)/xshm.h
 mirrorblob.o: $(UTILS_SRC)/yarandom.h
 mirrorblob.o: $(HACK_SRC)/xlockmoreI.h
 mirrorblob.o: $(HACK_SRC)/xlockmore.h
@@ -2215,12 +2244,12 @@ moebiusgears.o: $(srcdir)/normals.h
 moebiusgears.o: $(srcdir)/rotator.h
 moebiusgears.o: $(HACK_SRC)/screenhackI.h
 moebiusgears.o: $(UTILS_SRC)/colors.h
+moebiusgears.o: $(UTILS_SRC)/erase.h
 moebiusgears.o: $(UTILS_SRC)/grabscreen.h
 moebiusgears.o: $(UTILS_SRC)/hsv.h
 moebiusgears.o: $(UTILS_SRC)/resources.h
 moebiusgears.o: $(UTILS_SRC)/usleep.h
 moebiusgears.o: $(UTILS_SRC)/visual.h
-moebiusgears.o: $(UTILS_SRC)/xshm.h
 moebiusgears.o: $(UTILS_SRC)/yarandom.h
 moebiusgears.o: $(HACK_SRC)/xlockmoreI.h
 moebiusgears.o: $(HACK_SRC)/xlockmore.h
@@ -2232,12 +2261,12 @@ moebius.o: $(HACK_SRC)/screenhackI.h
 moebius.o: $(srcdir)/sphere.h
 moebius.o: $(srcdir)/tube.h
 moebius.o: $(UTILS_SRC)/colors.h
+moebius.o: $(UTILS_SRC)/erase.h
 moebius.o: $(UTILS_SRC)/grabscreen.h
 moebius.o: $(UTILS_SRC)/hsv.h
 moebius.o: $(UTILS_SRC)/resources.h
 moebius.o: $(UTILS_SRC)/usleep.h
 moebius.o: $(UTILS_SRC)/visual.h
-moebius.o: $(UTILS_SRC)/xshm.h
 moebius.o: $(UTILS_SRC)/yarandom.h
 moebius.o: $(HACK_SRC)/xlockmoreI.h
 moebius.o: $(HACK_SRC)/xlockmore.h
@@ -2251,12 +2280,12 @@ molecule.o: $(srcdir)/sphere.h
 molecule.o: $(srcdir)/texfont.h
 molecule.o: $(srcdir)/tube.h
 molecule.o: $(UTILS_SRC)/colors.h
+molecule.o: $(UTILS_SRC)/erase.h
 molecule.o: $(UTILS_SRC)/grabscreen.h
 molecule.o: $(UTILS_SRC)/hsv.h
 molecule.o: $(UTILS_SRC)/resources.h
 molecule.o: $(UTILS_SRC)/usleep.h
 molecule.o: $(UTILS_SRC)/visual.h
-molecule.o: $(UTILS_SRC)/xshm.h
 molecule.o: $(UTILS_SRC)/yarandom.h
 molecule.o: $(HACK_SRC)/xlockmoreI.h
 molecule.o: $(HACK_SRC)/xlockmore.h
@@ -2264,12 +2293,12 @@ morph3d.o: ../../config.h
 morph3d.o: $(HACK_SRC)/fps.h
 morph3d.o: $(HACK_SRC)/screenhackI.h
 morph3d.o: $(UTILS_SRC)/colors.h
+morph3d.o: $(UTILS_SRC)/erase.h
 morph3d.o: $(UTILS_SRC)/grabscreen.h
 morph3d.o: $(UTILS_SRC)/hsv.h
 morph3d.o: $(UTILS_SRC)/resources.h
 morph3d.o: $(UTILS_SRC)/usleep.h
 morph3d.o: $(UTILS_SRC)/visual.h
-morph3d.o: $(UTILS_SRC)/xshm.h
 morph3d.o: $(UTILS_SRC)/yarandom.h
 morph3d.o: $(HACK_SRC)/xlockmoreI.h
 morph3d.o: $(HACK_SRC)/xlockmore.h
@@ -2277,12 +2306,12 @@ noof.o: ../../config.h
 noof.o: $(HACK_SRC)/fps.h
 noof.o: $(HACK_SRC)/screenhackI.h
 noof.o: $(UTILS_SRC)/colors.h
+noof.o: $(UTILS_SRC)/erase.h
 noof.o: $(UTILS_SRC)/grabscreen.h
 noof.o: $(UTILS_SRC)/hsv.h
 noof.o: $(UTILS_SRC)/resources.h
 noof.o: $(UTILS_SRC)/usleep.h
 noof.o: $(UTILS_SRC)/visual.h
-noof.o: $(UTILS_SRC)/xshm.h
 noof.o: $(UTILS_SRC)/yarandom.h
 noof.o: $(HACK_SRC)/xlockmoreI.h
 noof.o: $(HACK_SRC)/xlockmore.h
@@ -2295,12 +2324,12 @@ photopile.o: $(srcdir)/grab-ximage.h
 photopile.o: $(HACK_SRC)/screenhackI.h
 photopile.o: $(srcdir)/texfont.h
 photopile.o: $(UTILS_SRC)/colors.h
+photopile.o: $(UTILS_SRC)/erase.h
 photopile.o: $(UTILS_SRC)/grabscreen.h
 photopile.o: $(UTILS_SRC)/hsv.h
 photopile.o: $(UTILS_SRC)/resources.h
 photopile.o: $(UTILS_SRC)/usleep.h
 photopile.o: $(UTILS_SRC)/visual.h
-photopile.o: $(UTILS_SRC)/xshm.h
 photopile.o: $(UTILS_SRC)/yarandom.h
 photopile.o: $(HACK_SRC)/xlockmoreI.h
 photopile.o: $(HACK_SRC)/xlockmore.h
@@ -2312,12 +2341,12 @@ pinion.o: $(srcdir)/normals.h
 pinion.o: $(HACK_SRC)/screenhackI.h
 pinion.o: $(srcdir)/texfont.h
 pinion.o: $(UTILS_SRC)/colors.h
+pinion.o: $(UTILS_SRC)/erase.h
 pinion.o: $(UTILS_SRC)/grabscreen.h
 pinion.o: $(UTILS_SRC)/hsv.h
 pinion.o: $(UTILS_SRC)/resources.h
 pinion.o: $(UTILS_SRC)/usleep.h
 pinion.o: $(UTILS_SRC)/visual.h
-pinion.o: $(UTILS_SRC)/xshm.h
 pinion.o: $(UTILS_SRC)/yarandom.h
 pinion.o: $(HACK_SRC)/xlockmoreI.h
 pinion.o: $(HACK_SRC)/xlockmore.h
@@ -2331,12 +2360,12 @@ pipes.o: $(HACK_SRC)/screenhackI.h
 pipes.o: $(srcdir)/sphere.h
 pipes.o: $(srcdir)/teapot.h
 pipes.o: $(UTILS_SRC)/colors.h
+pipes.o: $(UTILS_SRC)/erase.h
 pipes.o: $(UTILS_SRC)/grabscreen.h
 pipes.o: $(UTILS_SRC)/hsv.h
 pipes.o: $(UTILS_SRC)/resources.h
 pipes.o: $(UTILS_SRC)/usleep.h
 pipes.o: $(UTILS_SRC)/visual.h
-pipes.o: $(UTILS_SRC)/xshm.h
 pipes.o: $(UTILS_SRC)/yarandom.h
 pipes.o: $(HACK_SRC)/xlockmoreI.h
 pipes.o: $(HACK_SRC)/xlockmore.h
@@ -2350,12 +2379,12 @@ polyhedra-gl.o: $(HACK_SRC)/screenhackI.h
 polyhedra-gl.o: $(srcdir)/teapot.h
 polyhedra-gl.o: $(srcdir)/texfont.h
 polyhedra-gl.o: $(UTILS_SRC)/colors.h
+polyhedra-gl.o: $(UTILS_SRC)/erase.h
 polyhedra-gl.o: $(UTILS_SRC)/grabscreen.h
 polyhedra-gl.o: $(UTILS_SRC)/hsv.h
 polyhedra-gl.o: $(UTILS_SRC)/resources.h
 polyhedra-gl.o: $(UTILS_SRC)/usleep.h
 polyhedra-gl.o: $(UTILS_SRC)/visual.h
-polyhedra-gl.o: $(UTILS_SRC)/xshm.h
 polyhedra-gl.o: $(UTILS_SRC)/yarandom.h
 polyhedra-gl.o: $(HACK_SRC)/xlockmoreI.h
 polyhedra-gl.o: $(HACK_SRC)/xlockmore.h
@@ -2366,12 +2395,12 @@ polytopes.o: $(HACK_SRC)/fps.h
 polytopes.o: $(srcdir)/gltrackball.h
 polytopes.o: $(HACK_SRC)/screenhackI.h
 polytopes.o: $(UTILS_SRC)/colors.h
+polytopes.o: $(UTILS_SRC)/erase.h
 polytopes.o: $(UTILS_SRC)/grabscreen.h
 polytopes.o: $(UTILS_SRC)/hsv.h
 polytopes.o: $(UTILS_SRC)/resources.h
 polytopes.o: $(UTILS_SRC)/usleep.h
 polytopes.o: $(UTILS_SRC)/visual.h
-polytopes.o: $(UTILS_SRC)/xshm.h
 polytopes.o: $(UTILS_SRC)/yarandom.h
 polytopes.o: $(HACK_SRC)/xlockmoreI.h
 polytopes.o: $(HACK_SRC)/xlockmore.h
@@ -2381,12 +2410,12 @@ 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)/grabscreen.h
 projectiveplane.o: $(UTILS_SRC)/hsv.h
 projectiveplane.o: $(UTILS_SRC)/resources.h
 projectiveplane.o: $(UTILS_SRC)/usleep.h
 projectiveplane.o: $(UTILS_SRC)/visual.h
-projectiveplane.o: $(UTILS_SRC)/xshm.h
 projectiveplane.o: $(UTILS_SRC)/yarandom.h
 projectiveplane.o: $(HACK_SRC)/xlockmoreI.h
 projectiveplane.o: $(HACK_SRC)/xlockmore.h
@@ -2395,12 +2424,12 @@ providence.o: $(HACK_SRC)/fps.h
 providence.o: $(srcdir)/gltrackball.h
 providence.o: $(HACK_SRC)/screenhackI.h
 providence.o: $(UTILS_SRC)/colors.h
+providence.o: $(UTILS_SRC)/erase.h
 providence.o: $(UTILS_SRC)/grabscreen.h
 providence.o: $(UTILS_SRC)/hsv.h
 providence.o: $(UTILS_SRC)/resources.h
 providence.o: $(UTILS_SRC)/usleep.h
 providence.o: $(UTILS_SRC)/visual.h
-providence.o: $(UTILS_SRC)/xshm.h
 providence.o: $(UTILS_SRC)/yarandom.h
 providence.o: $(HACK_SRC)/xlockmoreI.h
 providence.o: $(HACK_SRC)/xlockmore.h
@@ -2408,12 +2437,12 @@ pulsar.o: ../../config.h
 pulsar.o: $(HACK_SRC)/fps.h
 pulsar.o: $(HACK_SRC)/screenhackI.h
 pulsar.o: $(UTILS_SRC)/colors.h
+pulsar.o: $(UTILS_SRC)/erase.h
 pulsar.o: $(UTILS_SRC)/grabscreen.h
 pulsar.o: $(UTILS_SRC)/hsv.h
 pulsar.o: $(UTILS_SRC)/resources.h
 pulsar.o: $(UTILS_SRC)/usleep.h
 pulsar.o: $(UTILS_SRC)/visual.h
-pulsar.o: $(UTILS_SRC)/xshm.h
 pulsar.o: $(UTILS_SRC)/yarandom.h
 pulsar.o: $(HACK_SRC)/xlockmoreI.h
 pulsar.o: $(HACK_SRC)/xlockmore.h
@@ -2423,12 +2452,12 @@ quasicrystal.o: $(HACK_SRC)/fps.h
 quasicrystal.o: $(srcdir)/rotator.h
 quasicrystal.o: $(HACK_SRC)/screenhackI.h
 quasicrystal.o: $(UTILS_SRC)/colors.h
+quasicrystal.o: $(UTILS_SRC)/erase.h
 quasicrystal.o: $(UTILS_SRC)/grabscreen.h
 quasicrystal.o: $(UTILS_SRC)/hsv.h
 quasicrystal.o: $(UTILS_SRC)/resources.h
 quasicrystal.o: $(UTILS_SRC)/usleep.h
 quasicrystal.o: $(UTILS_SRC)/visual.h
-quasicrystal.o: $(UTILS_SRC)/xshm.h
 quasicrystal.o: $(UTILS_SRC)/yarandom.h
 quasicrystal.o: $(HACK_SRC)/xlockmoreI.h
 quasicrystal.o: $(HACK_SRC)/xlockmore.h
@@ -2438,12 +2467,12 @@ queens.o: $(HACK_SRC)/fps.h
 queens.o: $(srcdir)/gltrackball.h
 queens.o: $(HACK_SRC)/screenhackI.h
 queens.o: $(UTILS_SRC)/colors.h
+queens.o: $(UTILS_SRC)/erase.h
 queens.o: $(UTILS_SRC)/grabscreen.h
 queens.o: $(UTILS_SRC)/hsv.h
 queens.o: $(UTILS_SRC)/resources.h
 queens.o: $(UTILS_SRC)/usleep.h
 queens.o: $(UTILS_SRC)/visual.h
-queens.o: $(UTILS_SRC)/xshm.h
 queens.o: $(UTILS_SRC)/yarandom.h
 queens.o: $(HACK_SRC)/xlockmoreI.h
 queens.o: $(HACK_SRC)/xlockmore.h
@@ -2453,12 +2482,12 @@ raverhoop.o: $(srcdir)/gltrackball.h
 raverhoop.o: $(srcdir)/rotator.h
 raverhoop.o: $(HACK_SRC)/screenhackI.h
 raverhoop.o: $(UTILS_SRC)/colors.h
+raverhoop.o: $(UTILS_SRC)/erase.h
 raverhoop.o: $(UTILS_SRC)/grabscreen.h
 raverhoop.o: $(UTILS_SRC)/hsv.h
 raverhoop.o: $(UTILS_SRC)/resources.h
 raverhoop.o: $(UTILS_SRC)/usleep.h
 raverhoop.o: $(UTILS_SRC)/visual.h
-raverhoop.o: $(UTILS_SRC)/xshm.h
 raverhoop.o: $(UTILS_SRC)/yarandom.h
 raverhoop.o: $(HACK_SRC)/xlockmoreI.h
 raverhoop.o: $(HACK_SRC)/xlockmore.h
@@ -2472,12 +2501,12 @@ romanboy.o: $(HACK_SRC)/fps.h
 romanboy.o: $(srcdir)/gltrackball.h
 romanboy.o: $(HACK_SRC)/screenhackI.h
 romanboy.o: $(UTILS_SRC)/colors.h
+romanboy.o: $(UTILS_SRC)/erase.h
 romanboy.o: $(UTILS_SRC)/grabscreen.h
 romanboy.o: $(UTILS_SRC)/hsv.h
 romanboy.o: $(UTILS_SRC)/resources.h
 romanboy.o: $(UTILS_SRC)/usleep.h
 romanboy.o: $(UTILS_SRC)/visual.h
-romanboy.o: $(UTILS_SRC)/xshm.h
 romanboy.o: $(UTILS_SRC)/yarandom.h
 romanboy.o: $(HACK_SRC)/xlockmoreI.h
 romanboy.o: $(HACK_SRC)/xlockmore.h
@@ -2490,12 +2519,12 @@ rubikblocks.o: $(srcdir)/gltrackball.h
 rubikblocks.o: $(srcdir)/rotator.h
 rubikblocks.o: $(HACK_SRC)/screenhackI.h
 rubikblocks.o: $(UTILS_SRC)/colors.h
+rubikblocks.o: $(UTILS_SRC)/erase.h
 rubikblocks.o: $(UTILS_SRC)/grabscreen.h
 rubikblocks.o: $(UTILS_SRC)/hsv.h
 rubikblocks.o: $(UTILS_SRC)/resources.h
 rubikblocks.o: $(UTILS_SRC)/usleep.h
 rubikblocks.o: $(UTILS_SRC)/visual.h
-rubikblocks.o: $(UTILS_SRC)/xshm.h
 rubikblocks.o: $(UTILS_SRC)/yarandom.h
 rubikblocks.o: $(HACK_SRC)/xlockmoreI.h
 rubikblocks.o: $(HACK_SRC)/xlockmore.h
@@ -2504,12 +2533,12 @@ rubik.o: $(HACK_SRC)/fps.h
 rubik.o: $(srcdir)/gltrackball.h
 rubik.o: $(HACK_SRC)/screenhackI.h
 rubik.o: $(UTILS_SRC)/colors.h
+rubik.o: $(UTILS_SRC)/erase.h
 rubik.o: $(UTILS_SRC)/grabscreen.h
 rubik.o: $(UTILS_SRC)/hsv.h
 rubik.o: $(UTILS_SRC)/resources.h
 rubik.o: $(UTILS_SRC)/usleep.h
 rubik.o: $(UTILS_SRC)/visual.h
-rubik.o: $(UTILS_SRC)/xshm.h
 rubik.o: $(UTILS_SRC)/yarandom.h
 rubik.o: $(HACK_SRC)/xlockmoreI.h
 rubik.o: $(HACK_SRC)/xlockmore.h
@@ -2534,16 +2563,18 @@ sballs.o: $(HACK_SRC)/images/sball-bg.xpm
 sballs.o: $(HACK_SRC)/images/sball.xpm
 sballs.o: $(HACK_SRC)/screenhackI.h
 sballs.o: $(UTILS_SRC)/colors.h
+sballs.o: $(UTILS_SRC)/erase.h
 sballs.o: $(UTILS_SRC)/grabscreen.h
 sballs.o: $(UTILS_SRC)/hsv.h
 sballs.o: $(UTILS_SRC)/resources.h
 sballs.o: $(UTILS_SRC)/usleep.h
 sballs.o: $(UTILS_SRC)/visual.h
-sballs.o: $(UTILS_SRC)/xshm.h
 sballs.o: $(UTILS_SRC)/yarandom.h
 sballs.o: $(HACK_SRC)/xlockmoreI.h
 sballs.o: $(HACK_SRC)/xlockmore.h
 sballs.o: $(srcdir)/xpm-ximage.h
+seccam.o: ../../config.h
+seccam.o: $(srcdir)/gllist.h
 shark.o: $(srcdir)/atlantis.h
 shark.o: ../../config.h
 shark.o: $(HACK_SRC)/fps.h
@@ -2561,12 +2592,12 @@ sierpinski3d.o: $(srcdir)/gltrackball.h
 sierpinski3d.o: $(srcdir)/rotator.h
 sierpinski3d.o: $(HACK_SRC)/screenhackI.h
 sierpinski3d.o: $(UTILS_SRC)/colors.h
+sierpinski3d.o: $(UTILS_SRC)/erase.h
 sierpinski3d.o: $(UTILS_SRC)/grabscreen.h
 sierpinski3d.o: $(UTILS_SRC)/hsv.h
 sierpinski3d.o: $(UTILS_SRC)/resources.h
 sierpinski3d.o: $(UTILS_SRC)/usleep.h
 sierpinski3d.o: $(UTILS_SRC)/visual.h
-sierpinski3d.o: $(UTILS_SRC)/xshm.h
 sierpinski3d.o: $(UTILS_SRC)/yarandom.h
 sierpinski3d.o: $(HACK_SRC)/xlockmoreI.h
 sierpinski3d.o: $(HACK_SRC)/xlockmore.h
@@ -2578,12 +2609,12 @@ skytentacles.o: $(srcdir)/normals.h
 skytentacles.o: $(srcdir)/rotator.h
 skytentacles.o: $(HACK_SRC)/screenhackI.h
 skytentacles.o: $(UTILS_SRC)/colors.h
+skytentacles.o: $(UTILS_SRC)/erase.h
 skytentacles.o: $(UTILS_SRC)/grabscreen.h
 skytentacles.o: $(UTILS_SRC)/hsv.h
 skytentacles.o: $(UTILS_SRC)/resources.h
 skytentacles.o: $(UTILS_SRC)/usleep.h
 skytentacles.o: $(UTILS_SRC)/visual.h
-skytentacles.o: $(UTILS_SRC)/xshm.h
 skytentacles.o: $(UTILS_SRC)/yarandom.h
 skytentacles.o: $(HACK_SRC)/xlockmoreI.h
 skytentacles.o: $(HACK_SRC)/xlockmore.h
@@ -2612,13 +2643,13 @@ sonar.o: $(srcdir)/sonar.h
 sonar.o: $(srcdir)/texfont.h
 sonar.o: $(UTILS_SRC)/aligned_malloc.h
 sonar.o: $(UTILS_SRC)/colors.h
+sonar.o: $(UTILS_SRC)/erase.h
 sonar.o: $(UTILS_SRC)/grabscreen.h
 sonar.o: $(UTILS_SRC)/hsv.h
 sonar.o: $(UTILS_SRC)/resources.h
 sonar.o: $(UTILS_SRC)/thread_util.h
 sonar.o: $(UTILS_SRC)/usleep.h
 sonar.o: $(UTILS_SRC)/visual.h
-sonar.o: $(UTILS_SRC)/xshm.h
 sonar.o: $(UTILS_SRC)/yarandom.h
 sonar.o: $(HACK_SRC)/xlockmoreI.h
 sonar.o: $(HACK_SRC)/xlockmore.h
@@ -2641,12 +2672,12 @@ spheremonics.o: $(srcdir)/rotator.h
 spheremonics.o: $(HACK_SRC)/screenhackI.h
 spheremonics.o: $(srcdir)/texfont.h
 spheremonics.o: $(UTILS_SRC)/colors.h
+spheremonics.o: $(UTILS_SRC)/erase.h
 spheremonics.o: $(UTILS_SRC)/grabscreen.h
 spheremonics.o: $(UTILS_SRC)/hsv.h
 spheremonics.o: $(UTILS_SRC)/resources.h
 spheremonics.o: $(UTILS_SRC)/usleep.h
 spheremonics.o: $(UTILS_SRC)/visual.h
-spheremonics.o: $(UTILS_SRC)/xshm.h
 spheremonics.o: $(UTILS_SRC)/yarandom.h
 spheremonics.o: $(HACK_SRC)/xlockmoreI.h
 spheremonics.o: $(HACK_SRC)/xlockmore.h
@@ -2660,6 +2691,7 @@ splitflap.o: $(srcdir)/rotator.h
 splitflap.o: $(HACK_SRC)/screenhackI.h
 splitflap.o: $(srcdir)/texfont.h
 splitflap.o: $(UTILS_SRC)/colors.h
+splitflap.o: $(UTILS_SRC)/erase.h
 splitflap.o: $(UTILS_SRC)/grabscreen.h
 splitflap.o: $(UTILS_SRC)/hsv.h
 splitflap.o: $(UTILS_SRC)/resources.h
@@ -2667,7 +2699,6 @@ 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)/xshm.h
 splitflap.o: $(UTILS_SRC)/yarandom.h
 splitflap.o: $(HACK_SRC)/xlockmoreI.h
 splitflap.o: $(HACK_SRC)/xlockmore.h
@@ -2681,12 +2712,12 @@ splodesic.o: $(srcdir)/normals.h
 splodesic.o: $(srcdir)/rotator.h
 splodesic.o: $(HACK_SRC)/screenhackI.h
 splodesic.o: $(UTILS_SRC)/colors.h
+splodesic.o: $(UTILS_SRC)/erase.h
 splodesic.o: $(UTILS_SRC)/grabscreen.h
 splodesic.o: $(UTILS_SRC)/hsv.h
 splodesic.o: $(UTILS_SRC)/resources.h
 splodesic.o: $(UTILS_SRC)/usleep.h
 splodesic.o: $(UTILS_SRC)/visual.h
-splodesic.o: $(UTILS_SRC)/xshm.h
 splodesic.o: $(UTILS_SRC)/yarandom.h
 splodesic.o: $(HACK_SRC)/xlockmoreI.h
 splodesic.o: $(HACK_SRC)/xlockmore.h
@@ -2696,12 +2727,12 @@ sproingies.o: $(srcdir)/gllist.h
 sproingies.o: $(HACK_SRC)/screenhackI.h
 sproingies.o: $(srcdir)/sproingies.h
 sproingies.o: $(UTILS_SRC)/colors.h
+sproingies.o: $(UTILS_SRC)/erase.h
 sproingies.o: $(UTILS_SRC)/grabscreen.h
 sproingies.o: $(UTILS_SRC)/hsv.h
 sproingies.o: $(UTILS_SRC)/resources.h
 sproingies.o: $(UTILS_SRC)/usleep.h
 sproingies.o: $(UTILS_SRC)/visual.h
-sproingies.o: $(UTILS_SRC)/xshm.h
 sproingies.o: $(UTILS_SRC)/yarandom.h
 sproingies.o: $(HACK_SRC)/xlockmoreI.h
 sproingiewrap.o: ../../config.h
@@ -2709,12 +2740,12 @@ sproingiewrap.o: $(HACK_SRC)/fps.h
 sproingiewrap.o: $(HACK_SRC)/screenhackI.h
 sproingiewrap.o: $(srcdir)/sproingies.h
 sproingiewrap.o: $(UTILS_SRC)/colors.h
+sproingiewrap.o: $(UTILS_SRC)/erase.h
 sproingiewrap.o: $(UTILS_SRC)/grabscreen.h
 sproingiewrap.o: $(UTILS_SRC)/hsv.h
 sproingiewrap.o: $(UTILS_SRC)/resources.h
 sproingiewrap.o: $(UTILS_SRC)/usleep.h
 sproingiewrap.o: $(UTILS_SRC)/visual.h
-sproingiewrap.o: $(UTILS_SRC)/xshm.h
 sproingiewrap.o: $(UTILS_SRC)/yarandom.h
 sproingiewrap.o: $(HACK_SRC)/xlockmoreI.h
 sproingiewrap.o: $(HACK_SRC)/xlockmore.h
@@ -2725,12 +2756,12 @@ stairs.o: $(HACK_SRC)/images/wood.xpm
 stairs.o: $(HACK_SRC)/screenhackI.h
 stairs.o: $(srcdir)/sphere.h
 stairs.o: $(UTILS_SRC)/colors.h
+stairs.o: $(UTILS_SRC)/erase.h
 stairs.o: $(UTILS_SRC)/grabscreen.h
 stairs.o: $(UTILS_SRC)/hsv.h
 stairs.o: $(UTILS_SRC)/resources.h
 stairs.o: $(UTILS_SRC)/usleep.h
 stairs.o: $(UTILS_SRC)/visual.h
-stairs.o: $(UTILS_SRC)/xshm.h
 stairs.o: $(UTILS_SRC)/yarandom.h
 stairs.o: $(HACK_SRC)/xlockmoreI.h
 stairs.o: $(HACK_SRC)/xlockmore.h
@@ -2743,6 +2774,7 @@ starwars.o: $(HACK_SRC)/screenhackI.h
 starwars.o: $(srcdir)/starwars.h
 starwars.o: $(srcdir)/texfont.h
 starwars.o: $(UTILS_SRC)/colors.h
+starwars.o: $(UTILS_SRC)/erase.h
 starwars.o: $(UTILS_SRC)/grabscreen.h
 starwars.o: $(UTILS_SRC)/hsv.h
 starwars.o: $(UTILS_SRC)/resources.h
@@ -2750,7 +2782,6 @@ 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
@@ -2767,12 +2798,12 @@ stonerview.o: $(srcdir)/stonerview.h
 stonerview.o: $(srcdir)/stonerview-move.h
 stonerview.o: $(srcdir)/stonerview-osc.h
 stonerview.o: $(UTILS_SRC)/colors.h
+stonerview.o: $(UTILS_SRC)/erase.h
 stonerview.o: $(UTILS_SRC)/grabscreen.h
 stonerview.o: $(UTILS_SRC)/hsv.h
 stonerview.o: $(UTILS_SRC)/resources.h
 stonerview.o: $(UTILS_SRC)/usleep.h
 stonerview.o: $(UTILS_SRC)/visual.h
-stonerview.o: $(UTILS_SRC)/xshm.h
 stonerview.o: $(UTILS_SRC)/yarandom.h
 stonerview.o: $(HACK_SRC)/xlockmoreI.h
 stonerview.o: $(HACK_SRC)/xlockmore.h
@@ -2789,12 +2820,12 @@ superquadrics.o: ../../config.h
 superquadrics.o: $(HACK_SRC)/fps.h
 superquadrics.o: $(HACK_SRC)/screenhackI.h
 superquadrics.o: $(UTILS_SRC)/colors.h
+superquadrics.o: $(UTILS_SRC)/erase.h
 superquadrics.o: $(UTILS_SRC)/grabscreen.h
 superquadrics.o: $(UTILS_SRC)/hsv.h
 superquadrics.o: $(UTILS_SRC)/resources.h
 superquadrics.o: $(UTILS_SRC)/usleep.h
 superquadrics.o: $(UTILS_SRC)/visual.h
-superquadrics.o: $(UTILS_SRC)/xshm.h
 superquadrics.o: $(UTILS_SRC)/yarandom.h
 superquadrics.o: $(HACK_SRC)/xlockmoreI.h
 superquadrics.o: $(HACK_SRC)/xlockmore.h
@@ -2804,12 +2835,12 @@ surfaces.o: $(srcdir)/gltrackball.h
 surfaces.o: $(srcdir)/rotator.h
 surfaces.o: $(HACK_SRC)/screenhackI.h
 surfaces.o: $(UTILS_SRC)/colors.h
+surfaces.o: $(UTILS_SRC)/erase.h
 surfaces.o: $(UTILS_SRC)/grabscreen.h
 surfaces.o: $(UTILS_SRC)/hsv.h
 surfaces.o: $(UTILS_SRC)/resources.h
 surfaces.o: $(UTILS_SRC)/usleep.h
 surfaces.o: $(UTILS_SRC)/visual.h
-surfaces.o: $(UTILS_SRC)/xshm.h
 surfaces.o: $(UTILS_SRC)/yarandom.h
 surfaces.o: $(HACK_SRC)/xlockmoreI.h
 surfaces.o: $(HACK_SRC)/xlockmore.h
@@ -2818,12 +2849,12 @@ swim.o: ../../config.h
 swim.o: $(HACK_SRC)/fps.h
 swim.o: $(HACK_SRC)/screenhackI.h
 swim.o: $(UTILS_SRC)/colors.h
+swim.o: $(UTILS_SRC)/erase.h
 swim.o: $(UTILS_SRC)/grabscreen.h
 swim.o: $(UTILS_SRC)/hsv.h
 swim.o: $(UTILS_SRC)/resources.h
 swim.o: $(UTILS_SRC)/usleep.h
 swim.o: $(UTILS_SRC)/visual.h
-swim.o: $(UTILS_SRC)/xshm.h
 swim.o: $(UTILS_SRC)/yarandom.h
 swim.o: $(HACK_SRC)/xlockmoreI.h
 tangram.o: ../../config.h
@@ -2832,12 +2863,12 @@ tangram.o: $(HACK_SRC)/screenhackI.h
 tangram.o: $(srcdir)/tangram_shapes.h
 tangram.o: $(srcdir)/texfont.h
 tangram.o: $(UTILS_SRC)/colors.h
+tangram.o: $(UTILS_SRC)/erase.h
 tangram.o: $(UTILS_SRC)/grabscreen.h
 tangram.o: $(UTILS_SRC)/hsv.h
 tangram.o: $(UTILS_SRC)/resources.h
 tangram.o: $(UTILS_SRC)/usleep.h
 tangram.o: $(UTILS_SRC)/visual.h
-tangram.o: $(UTILS_SRC)/xshm.h
 tangram.o: $(UTILS_SRC)/yarandom.h
 tangram.o: $(HACK_SRC)/xlockmoreI.h
 tangram.o: $(HACK_SRC)/xlockmore.h
@@ -2848,6 +2879,7 @@ teapot.o: $(srcdir)/teapot.h
 texfont.o: ../../config.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
@@ -2861,13 +2893,13 @@ timetunnel.o: $(HACK_SRC)/images/tunnelstar.xpm
 timetunnel.o: $(srcdir)/rotator.h
 timetunnel.o: $(HACK_SRC)/screenhackI.h
 timetunnel.o: $(UTILS_SRC)/colors.h
+timetunnel.o: $(UTILS_SRC)/erase.h
 timetunnel.o: $(UTILS_SRC)/grabscreen.h
 timetunnel.o: $(UTILS_SRC)/hsv.h
 timetunnel.o: $(UTILS_SRC)/images/logo-180.xpm
 timetunnel.o: $(UTILS_SRC)/resources.h
 timetunnel.o: $(UTILS_SRC)/usleep.h
 timetunnel.o: $(UTILS_SRC)/visual.h
-timetunnel.o: $(UTILS_SRC)/xshm.h
 timetunnel.o: $(UTILS_SRC)/yarandom.h
 timetunnel.o: $(HACK_SRC)/xlockmoreI.h
 timetunnel.o: $(HACK_SRC)/xlockmore.h
@@ -2900,12 +2932,12 @@ topblock.o: $(srcdir)/sphere.h
 topblock.o: $(srcdir)/topblock.h
 topblock.o: $(srcdir)/tube.h
 topblock.o: $(UTILS_SRC)/colors.h
+topblock.o: $(UTILS_SRC)/erase.h
 topblock.o: $(UTILS_SRC)/grabscreen.h
 topblock.o: $(UTILS_SRC)/hsv.h
 topblock.o: $(UTILS_SRC)/resources.h
 topblock.o: $(UTILS_SRC)/usleep.h
 topblock.o: $(UTILS_SRC)/visual.h
-topblock.o: $(UTILS_SRC)/xshm.h
 topblock.o: $(UTILS_SRC)/yarandom.h
 topblock.o: $(HACK_SRC)/xlockmoreI.h
 topblock.o: $(HACK_SRC)/xlockmore.h
@@ -2925,12 +2957,12 @@ tronbit.o: $(srcdir)/rotator.h
 tronbit.o: $(HACK_SRC)/screenhackI.h
 tronbit.o: $(srcdir)/sphere.h
 tronbit.o: $(UTILS_SRC)/colors.h
+tronbit.o: $(UTILS_SRC)/erase.h
 tronbit.o: $(UTILS_SRC)/grabscreen.h
 tronbit.o: $(UTILS_SRC)/hsv.h
 tronbit.o: $(UTILS_SRC)/resources.h
 tronbit.o: $(UTILS_SRC)/usleep.h
 tronbit.o: $(UTILS_SRC)/visual.h
-tronbit.o: $(UTILS_SRC)/xshm.h
 tronbit.o: $(UTILS_SRC)/yarandom.h
 tronbit.o: $(HACK_SRC)/xlockmoreI.h
 tronbit.o: $(HACK_SRC)/xlockmore.h
@@ -2943,12 +2975,12 @@ tunnel_draw.o: $(HACK_SRC)/fps.h
 tunnel_draw.o: $(HACK_SRC)/screenhackI.h
 tunnel_draw.o: $(srcdir)/tunnel_draw.h
 tunnel_draw.o: $(UTILS_SRC)/colors.h
+tunnel_draw.o: $(UTILS_SRC)/erase.h
 tunnel_draw.o: $(UTILS_SRC)/grabscreen.h
 tunnel_draw.o: $(UTILS_SRC)/hsv.h
 tunnel_draw.o: $(UTILS_SRC)/resources.h
 tunnel_draw.o: $(UTILS_SRC)/usleep.h
 tunnel_draw.o: $(UTILS_SRC)/visual.h
-tunnel_draw.o: $(UTILS_SRC)/xshm.h
 tunnel_draw.o: $(UTILS_SRC)/yarandom.h
 tunnel_draw.o: $(HACK_SRC)/xlockmoreI.h
 unicrud.o: ../../config.h
@@ -2958,13 +2990,13 @@ unicrud.o: $(srcdir)/rotator.h
 unicrud.o: $(HACK_SRC)/screenhackI.h
 unicrud.o: $(srcdir)/texfont.h
 unicrud.o: $(UTILS_SRC)/colors.h
+unicrud.o: $(UTILS_SRC)/erase.h
 unicrud.o: $(UTILS_SRC)/grabscreen.h
 unicrud.o: $(UTILS_SRC)/hsv.h
 unicrud.o: $(UTILS_SRC)/resources.h
 unicrud.o: $(UTILS_SRC)/usleep.h
 unicrud.o: $(UTILS_SRC)/utf8wc.h
 unicrud.o: $(UTILS_SRC)/visual.h
-unicrud.o: $(UTILS_SRC)/xshm.h
 unicrud.o: $(UTILS_SRC)/yarandom.h
 unicrud.o: $(HACK_SRC)/xlockmoreI.h
 unicrud.o: $(HACK_SRC)/xlockmore.h
@@ -2973,25 +3005,42 @@ unknownpleasures.o: $(HACK_SRC)/fps.h
 unknownpleasures.o: $(srcdir)/gltrackball.h
 unknownpleasures.o: $(HACK_SRC)/screenhackI.h
 unknownpleasures.o: $(UTILS_SRC)/colors.h
+unknownpleasures.o: $(UTILS_SRC)/erase.h
 unknownpleasures.o: $(UTILS_SRC)/grabscreen.h
 unknownpleasures.o: $(UTILS_SRC)/hsv.h
 unknownpleasures.o: $(UTILS_SRC)/resources.h
 unknownpleasures.o: $(UTILS_SRC)/usleep.h
 unknownpleasures.o: $(UTILS_SRC)/visual.h
-unknownpleasures.o: $(UTILS_SRC)/xshm.h
 unknownpleasures.o: $(UTILS_SRC)/yarandom.h
 unknownpleasures.o: $(HACK_SRC)/xlockmoreI.h
 unknownpleasures.o: $(HACK_SRC)/xlockmore.h
+vigilance.o: ../../config.h
+vigilance.o: $(HACK_SRC)/fps.h
+vigilance.o: $(srcdir)/gllist.h
+vigilance.o: $(srcdir)/gltrackball.h
+vigilance.o: $(srcdir)/normals.h
+vigilance.o: $(HACK_SRC)/screenhackI.h
+vigilance.o: $(UTILS_SRC)/colors.h
+vigilance.o: $(UTILS_SRC)/erase.h
+vigilance.o: $(UTILS_SRC)/grabscreen.h
+vigilance.o: $(UTILS_SRC)/hsv.h
+vigilance.o: $(UTILS_SRC)/resources.h
+vigilance.o: $(UTILS_SRC)/usleep.h
+vigilance.o: $(UTILS_SRC)/visual.h
+vigilance.o: $(UTILS_SRC)/yarandom.h
+vigilance.o: $(HACK_SRC)/xlockmoreI.h
+vigilance.o: $(HACK_SRC)/xlockmore.h
+vigilance.o: $(srcdir)/xpm-ximage.h
 voronoi.o: ../../config.h
 voronoi.o: $(HACK_SRC)/fps.h
 voronoi.o: $(HACK_SRC)/screenhackI.h
 voronoi.o: $(UTILS_SRC)/colors.h
+voronoi.o: $(UTILS_SRC)/erase.h
 voronoi.o: $(UTILS_SRC)/grabscreen.h
 voronoi.o: $(UTILS_SRC)/hsv.h
 voronoi.o: $(UTILS_SRC)/resources.h
 voronoi.o: $(UTILS_SRC)/usleep.h
 voronoi.o: $(UTILS_SRC)/visual.h
-voronoi.o: $(UTILS_SRC)/xshm.h
 voronoi.o: $(UTILS_SRC)/yarandom.h
 voronoi.o: $(HACK_SRC)/xlockmoreI.h
 voronoi.o: $(HACK_SRC)/xlockmore.h
@@ -3016,13 +3065,13 @@ winduprobot.o: $(HACK_SRC)/screenhackI.h
 winduprobot.o: $(srcdir)/sphere.h
 winduprobot.o: $(srcdir)/texfont.h
 winduprobot.o: $(UTILS_SRC)/colors.h
+winduprobot.o: $(UTILS_SRC)/erase.h
 winduprobot.o: $(UTILS_SRC)/grabscreen.h
 winduprobot.o: $(UTILS_SRC)/hsv.h
 winduprobot.o: $(UTILS_SRC)/resources.h
 winduprobot.o: $(UTILS_SRC)/textclient.h
 winduprobot.o: $(UTILS_SRC)/usleep.h
 winduprobot.o: $(UTILS_SRC)/visual.h
-winduprobot.o: $(UTILS_SRC)/xshm.h
 winduprobot.o: $(UTILS_SRC)/yarandom.h
 winduprobot.o: $(HACK_SRC)/xlockmoreI.h
 winduprobot.o: $(HACK_SRC)/xlockmore.h
@@ -3032,12 +3081,12 @@ xlock-gl-utils.o: $(HACK_SRC)/fps.h
 xlock-gl-utils.o: $(HACK_SRC)/screenhackI.h
 xlock-gl-utils.o: $(srcdir)/texfont.h
 xlock-gl-utils.o: $(UTILS_SRC)/colors.h
+xlock-gl-utils.o: $(UTILS_SRC)/erase.h
 xlock-gl-utils.o: $(UTILS_SRC)/grabscreen.h
 xlock-gl-utils.o: $(UTILS_SRC)/hsv.h
 xlock-gl-utils.o: $(UTILS_SRC)/resources.h
 xlock-gl-utils.o: $(UTILS_SRC)/usleep.h
 xlock-gl-utils.o: $(UTILS_SRC)/visual.h
-xlock-gl-utils.o: $(UTILS_SRC)/xshm.h
 xlock-gl-utils.o: $(UTILS_SRC)/yarandom.h
 xlock-gl-utils.o: $(HACK_SRC)/xlockmoreI.h
 xpm-ximage.o: ../../config.h