From http://www.jwz.org/xscreensaver/xscreensaver-5.31.tar.gz
[xscreensaver] / hacks / glx / Makefile.in
index 9f256641cc61ad4ec53c37c4d8c6e2ca64bf97da..92397730f415ccf4af05f977ba447a0c7eb695eb 100644 (file)
@@ -48,13 +48,14 @@ X_LIBS              = @X_LIBS@
 X_PRE_LIBS     = @X_PRE_LIBS@
 X_EXTRA_LIBS   = @X_EXTRA_LIBS@
 XMU_LIBS       = @XMU_LIBS@
+XFT_LIBS       = @XFT_LIBS@
 
 # Note: see comment in ../../driver/Makefile.in for explanation of X_LIBS, etc.
 #
 HACK_PRE       = $(LIBS) $(X_LIBS)
-HACK_POST     = $(X_PRE_LIBS) -lXt -lX11 $(XMU_LIBS) -lXext $(X_EXTRA_LIBS) -lm
+HACK_POST     = $(X_PRE_LIBS) $(XFT_LIBS) -lXt -lX11 $(XMU_LIBS) -lXext $(X_EXTRA_LIBS) -lm
 HACK_POST2     = @GL_LIBS@ @HACK_LIBS@ $(HACK_POST)
-HACK_LIBS      = $(HACK_PRE)                       $(HACK_POST2)
+HACK_LIBS      = $(HACK_PRE)           @ANIM_LIBS@ $(HACK_POST2)
 XPM_LIBS       = $(HACK_PRE)            @XPM_LIBS@ $(HACK_POST2)
 GLE_LIBS       = $(HACK_PRE) @GLE_LIBS@ @XPM_LIBS@ $(HACK_POST2)
 TEXT_LIBS      = @PTY_LIBS@
@@ -68,22 +69,24 @@ UTILS_BIN   = $(HACK_BIN)/../utils
 INCLUDES_1     = -I. -I$(srcdir) -I$(UTILS_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)/minixpm.o $(UTILS_BIN)/visual-gl.o \
+                 $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/xshm.o \
+                 $(UTILS_BIN)/textclient.o $(UTILS_BIN)/async_netdb.o \
+                 $(UTILS_BIN)/aligned_malloc.o $(UTILS_BIN)/thread_util.o \
+                 $(UTILS_BIN)/spline.o
+HACKDIR_OBJS   = $(HACK_SRC)/screenhack.o $(UTILS_SRC)/xlockmore.o \
+                 $(HACK_SRC)/fps.o
+
+SRCS           = xscreensaver-gl-helper.c normals.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 \
                  extrusion.c extrusion-helix2.c extrusion-helix3.c \
@@ -92,7 +95,7 @@ SRCS          = xscreensaver-gl-helper.c normals.c glxfonts.c fps-gl.c \
                  gflux.c stonerview.c stonerview-move.c stonerview-osc.c \
                  stonerview-view.c starwars.c glut_stroke.c glut_swidth.c \
                  gltext.c molecule.c dangerball.c sphere.c tube.c circuit.c \
-                 menger.c engine.c flipscreen3d.c font-ximage.c dnalogo.c \
+                 menger.c engine.c flipscreen3d.c dnalogo.c \
                  grab-ximage.c glsnake.c boxed.c glforestfire.c sballs.c \
                  cubenetic.c spheremonics.c marching.c lavalite.c rotator.c \
                  trackball.c gltrackball.c queens.c endgame.c chessmodels.c \
@@ -116,13 +119,16 @@ 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
+                 tronbit_no.c tronbit_yes.c jwzgles.c kaleidocycle.c \
+                 quasicrystal.c unknownpleasures.c geodesic.c geodesicgears.c \
+                 projectiveplane.c winduprobot.c robot.c robot-wireframe.c \
+                 cityflow.c
 
-OBJS           = xscreensaver-gl-helper.o normals.o glxfonts.o fps-gl.o \
+OBJS           = xscreensaver-gl-helper.o normals.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 \
                  extrusion.o extrusion-helix2.o extrusion-helix3.o \
@@ -131,7 +137,7 @@ OBJS                = xscreensaver-gl-helper.o normals.o glxfonts.o fps-gl.o \
                  gflux.o stonerview.o stonerview-move.o stonerview-osc.o \
                  stonerview-view.o starwars.o glut_stroke.o glut_swidth.o \
                  gltext.o molecule.o dangerball.o sphere.o tube.o circuit.o \
-                 menger.o engine.o flipscreen3d.o font-ximage.o dnalogo.o \
+                 menger.o engine.o flipscreen3d.o dnalogo.o \
                  grab-ximage.o glsnake.o boxed.o glforestfire.o sballs.o \
                  cubenetic.o spheremonics.o marching.o lavalite.o rotator.o \
                  trackball.o gltrackball.o queens.o endgame.o chessmodels.o \
@@ -155,7 +161,10 @@ 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
+                 tronbit_no.o tronbit_yes.o jwzgles.o kaleidocycle.o \
+                 quasicrystal.o unknownpleasures.o geodesic.o geodesicgears.o \
+                 projectiveplane.o winduprobot.o robot.o robot-wireframe.o \
+                 cityflow.o
 
 GL_EXES                = cage gears moebius pipes sproingies stairs superquadrics \
                  morph3d rubik atlantis lament bubble3d glplanet pulsar \
@@ -170,7 +179,9 @@ GL_EXES             = cage gears moebius pipes sproingies stairs superquadrics \
                  antmaze tangram crackberg glhanoi cube21 timetunnel \
                  juggler3d topblock glschool glcells voronoi moebiusgears \
                  lockward cubicgrid hypnowheel skytentacles jigsaw photopile \
-                 rubikblocks surfaces hilbert companioncube tronbit
+                 rubikblocks surfaces hilbert companioncube tronbit \
+                 kaleidocycle quasicrystal unknownpleasures geodesic \
+                 geodesicgears projectiveplane winduprobot cityflow
 GLE_EXES       = extrusion
 SUID_EXES      = sonar
 GL_UTIL_EXES   = xscreensaver-gl-helper
@@ -179,27 +190,29 @@ HACK_EXES_1       = @GL_EXES@ @GLE_EXES@
 HACK_EXES      = $(HACK_EXES_1) @SUID_EXES@
 XSHM_OBJS      = $(UTILS_BIN)/xshm.o
 GRAB_OBJS      = $(UTILS_BIN)/grabclient.o grab-ximage.o $(XSHM_OBJS)
+ANIM_OBJS      = recanim-gl.o
+ANIM_LIBS      = @XPM_LIBS@
 EXES           = @GL_UTIL_EXES@ $(HACK_EXES)
 
 RETIRED_EXES   = @RETIRED_GL_EXES@
 RETIRED_GL_EXES        = glforestfire
 
-FPS_OBJS       = @GLFPS_OBJS@ $(HACK_BIN)/fps.o
-FONT_OBJS      = @GLFONT_OBJS@
-
-HACK_OBJS      = $(JWZGLES_OBJS) $(HACK_BIN)/screenhack.o \
+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 \
                  $(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
 
 HDRS           = atlantis.h bubble3d.h buildlwo.h e_textures.h xpm-ximage.h \
-                 grab-ximage.h font-ximage.h tube.h sphere.h boxed.h \
+                 grab-ximage.h tube.h sphere.h boxed.h \
                  stonerview.h stonerview-move.h stonerview-osc.h \
                  glutstroke.h glut_roman.h marching.h rotator.h trackball.h \
                  gltrackball.h chessmodels.h chessgames.h gllist.h flurry.h \
-                 tunnel_draw.h ants.h polyhedra.h normals.h glxfonts.h \
+                 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 \
@@ -225,13 +238,16 @@ GL_MEN            = atlantis.man boxed.man bubble3d.man cage.man circuit.man \
                  voronoi.man moebiusgears.man lockward.man cubicgrid.man \
                  hypnowheel.man skytentacles.man sonar.man jigsaw.man \
                  photopile.man rubikblocks.man surfaces.man hilbert.man \
-                 companioncube.man tronbit.man
+                 companioncube.man tronbit.man kaleidocycle.man \
+                 quasicrystal.man unknownpleasures.man geodesic.man \
+                 geodesicgears.man projectiveplane.man winduprobot.man \
+                 cityflow.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 *.dxf
 
-TARFILES       = $(SRCS) $(HDRS) $(MEN) $(RETIRED_MEN) $(EXTRAS)
+TARFILES       = $(SRCS) $(HDRS) $(GL_MEN) $(RETIRED_MEN) $(EXTRAS)
 
 
 default: all
@@ -442,15 +458,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
@@ -458,22 +474,32 @@ $(UTILS_BIN)/hsv.o:               $(UTILS_SRC)/hsv.c
 $(UTILS_BIN)/resources.o:      $(UTILS_SRC)/resources.c
 $(UTILS_BIN)/usleep.o:         $(UTILS_SRC)/usleep.c
 $(UTILS_BIN)/visual.o:         $(UTILS_SRC)/visual.c
+$(UTILS_BIN)/xmu.o:            $(UTILS_SRC)/xmu.c
+$(UTILS_BIN)/xft.o:            $(UTILS_SRC)/xft.c
+$(UTILS_BIN)/utf8wc.o:         $(UTILS_SRC)/utf8wc.c
+$(UTILS_BIN)/logo.o:           $(UTILS_SRC)/logo.c
+$(UTILS_BIN)/minixpm.o:                $(UTILS_SRC)/minixpm.c
 $(UTILS_BIN)/visual-gl.o:      $(UTILS_SRC)/visual-gl.c
 $(UTILS_BIN)/yarandom.o:       $(UTILS_SRC)/yarandom.c
 $(UTILS_BIN)/xshm.o:           $(UTILS_SRC)/xshm.c
 $(UTILS_BIN)/textclient.o:     $(UTILS_SRC)/textclient.c
+$(UTILS_BIN)/async_netdb.o:    $(UTILS_SRC)/async_netdb.c
+$(UTILS_BIN)/aligned_malloc.o: $(UTILS_SRC)/aligned_malloc.c
+$(UTILS_BIN)/thread_util.o:    $(UTILS_SRC)/thread_util.c
+$(UTILS_BIN)/spline.o:         $(UTILS_SRC)/spline.c
+$(HACK_BIN)/screenhack.o:      $(HACK_SRC)/screenhack.c
+$(HACK_BIN)/xlockmore.o:       $(HACK_SRC)/xlockmore.c
+$(HACK_BIN)/fps.o:             $(HACK_SRC)/fps.c
 
-$(UTIL_OBJS):
-       cd $(UTILS_BIN) ; \
-       $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
-
-$(HACK_BIN)/xlockmore.o: $(HACK_SRC)/xlockmore.c
-       cd $(HACK_BIN)  ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+$(UTILDIR_OBJS):
+       $(MAKE) -C $(UTILS_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+$(HACKDIR_OBJS):
+       $(MAKE) -C $(HACK_BIN) $(@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) $<
 
 
 # How to build the "xscreensaver-gl-helper" program, that lets the daemon
@@ -488,9 +514,11 @@ xscreensaver-gl-helper: $(HELPER_OBJS)
 # These hacks use a slightly-differently-compiled variant of xlockmore.c.
 # This is how to make the the other .o file from it.
 #
-XLM_CFLAGS=-DUSE_GL $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS)
+XLM_CFLAGS=-DUSE_GL $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS)
 xlockmore-gl.o: $(HACK_SRC)/xlockmore.c
        $(CC) -o $@ -c $(XLM_CFLAGS) $(HACK_SRC)/xlockmore.c
+recanim-gl.o: $(HACK_SRC)/recanim.c
+       $(CC) -o $@ -c $(XLM_CFLAGS) $(HACK_SRC)/recanim.c
 
 CC_HACK                = $(CC) $(LDFLAGS)
 
@@ -517,7 +545,8 @@ FLURRY_OBJS = $(FLURRY_OBJS_1) $(HACK_OBJS)
 flurry:                flurry.o        $(FLURRY_OBJS)
        $(CC_HACK) -o $@ $@.o   $(FLURRY_OBJS) $(HACK_LIBS) -lm
 
-GEARS_OBJS=normals.o involute.o $(HACK_TRACK_OBJS)
+GEARS_OBJS_1=normals.o involute.o
+GEARS_OBJS=$(GEARS_OBJS_1) $(HACK_TRACK_OBJS)
 gears:         gears.o         tube.o $(GEARS_OBJS)
        $(CC_HACK) -o $@ $@.o   tube.o $(GEARS_OBJS) $(HACK_LIBS)
 
@@ -547,10 +576,14 @@ SPROINGIES = sproingiewrap.o gllist.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) xpm-ximage.o normals.o
 lament:                lament.o        $(LAMENTOBJS)
        $(CC_HACK) -o $@ $@.o   $(LAMENTOBJS) $(XPM_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)
@@ -575,8 +608,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)
 
@@ -589,8 +621,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)
@@ -640,12 +672,40 @@ TOAST_OBJS=\
 flyingtoasters:                        $(TOAST_OBJS)
        $(CC_HACK) -o $@        $(TOAST_OBJS) $(XPM_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:                   $(COW_OBJS)         
        $(CC_HACK) -o $@        $(COW_OBJS) $(XPM_LIBS)
 
+ROBO_OBJS=\
+  robot.o robot-wireframe.o gllist.o xpm-ximage.o sphere.o \
+  winduprobot.o $(GEARS_OBJS_1) $(TEXT) $(HACK_TRACK_OBJS)
+winduprobot:                   $(ROBO_OBJS)
+       $(CC_HACK) -o $@        $(ROBO_OBJS) $(XPM_LIBS) $(TEXT_LIBS)
+
+winduprobot_dxf::
+       ./dxf2gl.pl --smooth --layers robot.dxf robot.c
+       ./dxf2gl.pl --wireframe robot-wireframe.dxf robot-wireframe.c
+
 glslideshow:   glslideshow.o   $(HACK_GRAB_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_GRAB_OBJS) $(HACK_LIBS)
 
@@ -661,6 +721,9 @@ surfaces:   surfaces.o      $(HACK_TRACK_OBJS)
 hypertorus:    hypertorus.o    $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
+projectiveplane:       projectiveplane.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)
 
@@ -728,11 +791,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)
@@ -788,16 +851,15 @@ TENTACLE_OBJS=normals.o xpm-ximage.o $(HACK_TRACK_OBJS)
 skytentacles:  skytentacles.o  $(TENTACLE_OBJS)
        $(CC_HACK) -o $@ $@.o   $(TENTACLE_OBJS) $(XPM_LIBS)
 
-SONAR_OBJS=sonar-sim.o sonar-icmp.o ${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)
 
@@ -818,6 +880,25 @@ TBIT_OBJS=tronbit.o tronbit_idle1.o tronbit_idle2.o tronbit_no.o tronbit_yes.o\
 tronbit:                       $(TBIT_OBJS)
        $(CC_HACK) -o $@        $(TBIT_OBJS) $(HACK_LIBS)
 
+KALEIDOCYCLE_OBJS=kaleidocycle.o normals.o $(HACK_TRACK_OBJS)
+kaleidocycle:                  $(KALEIDOCYCLE_OBJS)
+       $(CC_HACK) -o $@        $(KALEIDOCYCLE_OBJS) $(HACK_LIBS)
+
+quasicrystal:  quasicrystal.o  $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+unknownpleasures: unknownpleasures.o   $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+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)
+
 ##############################################################################
 #
 # DO NOT DELETE: updated by make distdepend
@@ -1111,11 +1192,11 @@ 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)/grabscreen.h
 circuit.o: $(UTILS_SRC)/hsv.h
@@ -1126,6 +1207,22 @@ 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: $(srcdir)/jwzglesI.h
+cityflow.o: $(srcdir)/jwzgles.h
+cityflow.o: $(HACK_SRC)/screenhackI.h
+cityflow.o: $(UTILS_SRC)/colors.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
 companion_disc.o: ../../config.h
 companion_disc.o: $(srcdir)/gllist.h
 companion_disc.o: $(srcdir)/jwzglesI.h
@@ -1340,7 +1437,6 @@ endgame.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
@@ -1520,14 +1616,9 @@ flyingtoasters.o: $(UTILS_SRC)/yarandom.h
 flyingtoasters.o: $(HACK_SRC)/xlockmoreI.h
 flyingtoasters.o: $(HACK_SRC)/xlockmore.h
 flyingtoasters.o: $(srcdir)/xpm-ximage.h
-font-ximage.o: ../../config.h
-font-ximage.o: $(srcdir)/font-ximage.h
-font-ximage.o: $(srcdir)/jwzglesI.h
-font-ximage.o: $(srcdir)/jwzgles.h
 fps-gl.o: ../../config.h
 fps-gl.o: $(HACK_SRC)/fpsI.h
 fps-gl.o: $(HACK_SRC)/fps.h
-fps-gl.o: $(srcdir)/glxfonts.h
 fps-gl.o: $(srcdir)/jwzglesI.h
 fps-gl.o: $(srcdir)/jwzgles.h
 fps-gl.o: $(HACK_SRC)/screenhackI.h
@@ -1561,6 +1652,46 @@ 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)/jwzglesI.h
+geodesicgears.o: $(srcdir)/jwzgles.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)/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
+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)/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
 gflux.o: ../../config.h
 gflux.o: $(HACK_SRC)/fps.h
 gflux.o: $(srcdir)/gltrackball.h
@@ -1704,6 +1835,7 @@ glmatrix.o: $(srcdir)/xpm-ximage.h
 glplanet.o: ../../config.h
 glplanet.o: $(HACK_SRC)/fps.h
 glplanet.o: $(srcdir)/gltrackball.h
+glplanet.o: $(HACK_SRC)/images/earth_night.xpm
 glplanet.o: $(HACK_SRC)/images/earth.xpm
 glplanet.o: $(srcdir)/jwzglesI.h
 glplanet.o: $(srcdir)/jwzgles.h
@@ -1751,7 +1883,6 @@ 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
@@ -1769,7 +1900,6 @@ 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
@@ -1801,6 +1931,7 @@ 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
@@ -1819,13 +1950,6 @@ 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
@@ -1941,7 +2065,6 @@ 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
@@ -1961,6 +2084,24 @@ 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)/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: $(HACK_SRC)/fps.h
 klein.o: $(srcdir)/gltrackball.h
@@ -1977,8 +2118,13 @@ klein.o: $(UTILS_SRC)/xshm.h
 klein.o: $(UTILS_SRC)/yarandom.h
 klein.o: $(HACK_SRC)/xlockmoreI.h
 klein.o: $(HACK_SRC)/xlockmore.h
+lament_model.o: ../../config.h
+lament_model.o: $(srcdir)/gllist.h
+lament_model.o: $(srcdir)/jwzglesI.h
+lament_model.o: $(srcdir)/jwzgles.h
 lament.o: ../../config.h
 lament.o: $(HACK_SRC)/fps.h
+lament.o: $(srcdir)/gllist.h
 lament.o: $(srcdir)/gltrackball.h
 lament.o: $(HACK_SRC)/images/lament512.xpm
 lament.o: $(srcdir)/jwzglesI.h
@@ -2111,7 +2257,6 @@ 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
@@ -2185,7 +2330,6 @@ 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
@@ -2228,7 +2372,6 @@ 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
@@ -2265,6 +2408,22 @@ 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: $(HACK_SRC)/fps.h
+projectiveplane.o: $(srcdir)/gltrackball.h
+projectiveplane.o: $(srcdir)/jwzglesI.h
+projectiveplane.o: $(srcdir)/jwzgles.h
+projectiveplane.o: $(HACK_SRC)/screenhackI.h
+projectiveplane.o: $(UTILS_SRC)/colors.h
+projectiveplane.o: $(UTILS_SRC)/grabscreen.h
+projectiveplane.o: $(UTILS_SRC)/hsv.h
+projectiveplane.o: $(UTILS_SRC)/resources.h
+projectiveplane.o: $(UTILS_SRC)/usleep.h
+projectiveplane.o: $(UTILS_SRC)/visual.h
+projectiveplane.o: $(UTILS_SRC)/xshm.h
+projectiveplane.o: $(UTILS_SRC)/yarandom.h
+projectiveplane.o: $(HACK_SRC)/xlockmoreI.h
+projectiveplane.o: $(HACK_SRC)/xlockmore.h
 providence.o: ../../config.h
 providence.o: $(HACK_SRC)/fps.h
 providence.o: $(srcdir)/gltrackball.h
@@ -2297,6 +2456,22 @@ pulsar.o: $(UTILS_SRC)/yarandom.h
 pulsar.o: $(HACK_SRC)/xlockmoreI.h
 pulsar.o: $(HACK_SRC)/xlockmore.h
 pulsar.o: $(srcdir)/xpm-ximage.h
+quasicrystal.o: ../../config.h
+quasicrystal.o: $(HACK_SRC)/fps.h
+quasicrystal.o: $(srcdir)/jwzglesI.h
+quasicrystal.o: $(srcdir)/jwzgles.h
+quasicrystal.o: $(srcdir)/rotator.h
+quasicrystal.o: $(HACK_SRC)/screenhackI.h
+quasicrystal.o: $(UTILS_SRC)/colors.h
+quasicrystal.o: $(UTILS_SRC)/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
 queens.o: $(srcdir)/chessmodels.h
 queens.o: ../../config.h
 queens.o: $(HACK_SRC)/fps.h
@@ -2314,6 +2489,14 @@ queens.o: $(UTILS_SRC)/xshm.h
 queens.o: $(UTILS_SRC)/yarandom.h
 queens.o: $(HACK_SRC)/xlockmoreI.h
 queens.o: $(HACK_SRC)/xlockmore.h
+robot.o: ../../config.h
+robot.o: $(srcdir)/gllist.h
+robot.o: $(srcdir)/jwzglesI.h
+robot.o: $(srcdir)/jwzgles.h
+robot-wireframe.o: ../../config.h
+robot-wireframe.o: $(srcdir)/gllist.h
+robot-wireframe.o: $(srcdir)/jwzglesI.h
+robot-wireframe.o: $(srcdir)/jwzgles.h
 rotator.o: ../../config.h
 rotator.o: $(srcdir)/rotator.h
 rotator.o: $(UTILS_SRC)/yarandom.h
@@ -2468,10 +2651,12 @@ 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)/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
@@ -2492,7 +2677,6 @@ 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
@@ -2579,14 +2763,13 @@ 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
@@ -2611,8 +2794,6 @@ 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
@@ -2672,7 +2853,6 @@ 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
@@ -2699,10 +2879,13 @@ teapot.o: $(srcdir)/normals.h
 teapot.o: $(srcdir)/teapot2.h
 teapot.o: $(srcdir)/teapot.h
 texfont.o: ../../config.h
+texfont.o: $(HACK_SRC)/fps.h
 texfont.o: $(srcdir)/jwzglesI.h
 texfont.o: $(srcdir)/jwzgles.h
 texfont.o: $(srcdir)/texfont.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
@@ -2841,6 +3024,22 @@ 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
+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)/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
 voronoi.o: ../../config.h
 voronoi.o: $(HACK_SRC)/fps.h
 voronoi.o: $(srcdir)/jwzglesI.h
@@ -2869,9 +3068,30 @@ 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: $(srcdir)/involute.h
+winduprobot.o: $(srcdir)/jwzglesI.h
+winduprobot.o: $(srcdir)/jwzgles.h
+winduprobot.o: $(HACK_SRC)/screenhackI.h
+winduprobot.o: $(srcdir)/sphere.h
+winduprobot.o: $(srcdir)/texfont.h
+winduprobot.o: $(UTILS_SRC)/colors.h
+winduprobot.o: $(UTILS_SRC)/grabscreen.h
+winduprobot.o: $(UTILS_SRC)/hsv.h
+winduprobot.o: $(UTILS_SRC)/resources.h
+winduprobot.o: $(UTILS_SRC)/textclient.h
+winduprobot.o: $(UTILS_SRC)/usleep.h
+winduprobot.o: $(UTILS_SRC)/visual.h
+winduprobot.o: $(UTILS_SRC)/xshm.h
+winduprobot.o: $(UTILS_SRC)/yarandom.h
+winduprobot.o: $(HACK_SRC)/xlockmoreI.h
+winduprobot.o: $(HACK_SRC)/xlockmore.h
+winduprobot.o: $(srcdir)/xpm-ximage.h
 xlock-gl-utils.o: ../../config.h
 xlock-gl-utils.o: $(HACK_SRC)/fps.h
-xlock-gl-utils.o: $(srcdir)/glxfonts.h
 xlock-gl-utils.o: $(srcdir)/jwzglesI.h
 xlock-gl-utils.o: $(srcdir)/jwzgles.h
 xlock-gl-utils.o: $(HACK_SRC)/screenhackI.h