From http://www.jwz.org/xscreensaver/xscreensaver-5.37.tar.gz
[xscreensaver] / hacks / Makefile.in
index 36b2aebfed3a2bf895a9472638b03bcf41e9686f..2a090f6d92ebaed8217f7c6d0f9205e5b66ba946 100644 (file)
@@ -1,4 +1,4 @@
-# hacks/Makefile.in --- xscreensaver, Copyright (c) 1997-2011 Jamie Zawinski.
+# hacks/Makefile.in --- xscreensaver, Copyright (c) 1997-2015 Jamie Zawinski.
 # the `../configure' script generates `hacks/Makefile' from this file.
 
 @SET_MAKE@
@@ -31,6 +31,9 @@ DEFS          = -DSTANDALONE @DEFS@
 LIBS           = @LIBS@
 PERL           = @PERL@
 
+THREAD_LIBS    = @PTHREAD_LIBS@
+THREAD_CFLAGS  = @PTHREAD_CFLAGS@
+
 DEPEND         = @DEPEND@
 DEPEND_FLAGS   = @DEPEND_FLAGS@
 DEPEND_DEFINES = @DEPEND_DEFINES@
@@ -47,13 +50,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_LIBS      = $(HACK_PRE)            @HACK_LIBS@ $(HACK_POST)
-XPM_LIBS       = $(HACK_PRE) @XPM_LIBS@ @HACK_LIBS@ $(HACK_POST)
+HACK_POST     = $(X_PRE_LIBS) $(XFT_LIBS) -lXt -lX11 $(XMU_LIBS) -lXext $(X_EXTRA_LIBS) -lm
+HACK_LIBS      = $(HACK_PRE) @ANIM_LIBS@ @HACK_LIBS@ $(HACK_POST)
+XPM_LIBS       = $(HACK_PRE) @XPM_LIBS@  @HACK_LIBS@ $(HACK_POST)
 JPEG_LIBS      = @JPEG_LIBS@
 XLOCK_LIBS     = $(HACK_LIBS)
 TEXT_LIBS      = @PTY_LIBS@
@@ -73,17 +77,20 @@ UTIL_SRCS   = $(UTILS_SRC)/alpha.c $(UTILS_SRC)/colors.c \
                  $(UTILS_SRC)/minixpm.c \
                  $(UTILS_SRC)/yarandom.c $(UTILS_SRC)/erase.c \
                  $(UTILS_SRC)/xshm.c $(UTILS_SRC)/xdbe.c \
-                 $(UTILS_SRC)/textclient.c
+                 $(UTILS_SRC)/textclient.c $(UTILS_SRC)/aligned_malloc.c \
+                 $(UTILS_SRC)/thread_util.c $(UTILS_SRC)/pow2.c
 UTIL_OBJS      = $(UTILS_BIN)/alpha.o $(UTILS_BIN)/colors.o \
                  $(UTILS_BIN)/grabclient.o \
                  $(UTILS_BIN)/hsv.o $(UTILS_BIN)/resources.o \
                  $(UTILS_BIN)/spline.o $(UTILS_BIN)/usleep.o \
                  $(UTILS_BIN)/visual.o $(UTILS_BIN)/logo.o \
-                 $(UTILS_SRC)/minixpm.c \
+                 $(UTILS_BIN)/minixpm.o \
                  $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/erase.o \
                  $(UTILS_BIN)/xshm.o $(UTILS_BIN)/xdbe.o \
                  $(UTILS_BIN)/colorbars.o \
-                 $(UTILS_SRC)/textclient.o
+                 $(UTILS_BIN)/textclient.o $(UTILS_BIN)/aligned_malloc.o \
+                 $(UTILS_BIN)/thread_util.o $(UTILS_BIN)/pow2.o \
+                 $(UTILS_BIN)/xft.o $(UTILS_BIN)/utf8wc.o
 
 SRCS           = attraction.c blitspin.c bouboule.c braid.c bubbles.c \
                  bubbles-default.c decayscreen.c deco.c drift.c flag.c \
@@ -114,7 +121,8 @@ SRCS                = attraction.c blitspin.c bouboule.c braid.c bubbles.c \
                  intermomentary.c fireworkx.c fiberlamp.c \
                  boxfit.c interaggregate.c celtic.c cwaves.c m6502.c \
                  asm6502.c abstractile.c lcdscrub.c hexadrop.c \
-                 webcollage-cocoa.m webcollage-helper-cocoa.m
+                 tessellimage.c delaunay.c recanim.c binaryring.c \
+                 webcollage-cocoa.m webcollage-helper-cocoa.m testx11.c
 SCRIPTS                = vidwhacker webcollage ljlatest
 
 # Programs that are mentioned in XScreenSaver.ad, and that have XML files,
@@ -153,7 +161,8 @@ OBJS                = attraction.o blitspin.o bouboule.o braid.o bubbles.o \
                  intermomentary.o fireworkx.o fiberlamp.o boxfit.o \
                  interaggregate.o celtic.o cwaves.o webcollage-cocoa.o \
                  webcollage-helper-cocoa.o m6502.o asm6502.o abstractile.o \
-                 lcdscrub.o hexadrop.o
+                 lcdscrub.o hexadrop.o tessellimage.o delaunay.o recanim.o \
+                 binaryring.o testx11.o
 
 EXES           = attraction blitspin bouboule braid decayscreen deco \
                  drift flame galaxy grav greynetic halo \
@@ -175,26 +184,31 @@ EXES              = attraction blitspin bouboule braid decayscreen deco \
                  pacman fuzzyflakes anemotaxis memscroller substrate \
                  intermomentary fireworkx fiberlamp boxfit interaggregate \
                  celtic cwaves m6502 abstractile lcdscrub hexadrop \
+                 tessellimage binaryring \
                  @JPEG_EXES@
 JPEG_EXES      = webcollage-helper
 
 RETIRED_EXES   = ant bubbles critical flag forest hyperball hypercube laser \
                  lightning lisa lissie lmorph rotor sphere spiral t3d vines \
-                 whirlygig worm xsublim juggle
+                 whirlygig worm xsublim juggle testx11
 
 HACK_OBJS_1    = fps.o $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
-                 $(UTILS_BIN)/usleep.o $(UTILS_BIN)/yarandom.o @XMU_OBJS@
+                 $(UTILS_BIN)/usleep.o $(UTILS_BIN)/yarandom.o \
+                 $(UTILS_BIN)/utf8wc.o @XMU_OBJS@ @XFT_OBJS@ @ANIM_OBJS@
 HACK_OBJS      = screenhack.o $(HACK_OBJS_1)
 XLOCK_OBJS     = screenhack.o xlockmore.o $(COLOR_OBJS) $(HACK_OBJS_1)
 COLOR_OBJS     = $(UTILS_BIN)/hsv.o $(UTILS_BIN)/colors.o
 GRAB_OBJS      = $(UTILS_BIN)/grabclient.o
 XSHM_OBJS      = $(UTILS_BIN)/xshm.o
 XDBE_OBJS      = $(UTILS_BIN)/xdbe.o
+ANIM_OBJS      = recanim.o
+ANIM_LIBS      = @XPM_LIBS@
+THREAD_OBJS    = $(UTILS_BIN)/aligned_malloc.o $(UTILS_BIN)/thread_util.o
 
 HDRS           = screenhack.h screenhackI.h fps.h fpsI.h xlockmore.h \
                  xlockmoreI.h automata.h bubbles.h xpm-pixmap.h \
                  apple2.h analogtv.h pacman.h pacman_ai.h pacman_level.h \
-                 asm6502.h
+                 asm6502.h delaunay.h recanim.h
 MEN            = anemone.man apollonian.man attraction.man \
                  blaster.man blitspin.man bouboule.man braid.man bsod.man \
                  bumps.man ccurve.man compass.man coral.man \
@@ -226,7 +240,7 @@ MEN         = anemone.man apollonian.man attraction.man \
                  anemotaxis.man memscroller.man substrate.man \
                  intermomentary.man fireworkx.man fiberlamp.man boxfit.man \
                  interaggregate.man celtic.man cwaves.man abstractile.man \
-                 lcdscrub.man hexadrop.man
+                 lcdscrub.man hexadrop.man tessellimage.man binaryring.man
 
 RETIRED_MEN    = ant.man bubbles.man critical.man flag.man forest.man \
                  laser.man lightning.man lisa.man lissie.man lmorph.man \
@@ -408,7 +422,6 @@ distdepend:: m6502.h
              -e 's@ $$(srcdir)/\(m6502.h\)@ \1@g' ;                        \
          echo ''                                                           \
        ) > /tmp/distdepend.$$$$ &&                                         \
-       mv Makefile.in Makefile.in.bak &&                                   \
        mv /tmp/distdepend.$$$$ Makefile.in
 
 TAGS: tags
@@ -508,6 +521,8 @@ $(UTILS_BIN)/spline.o:              $(UTILS_SRC)/spline.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)/yarandom.o:       $(UTILS_SRC)/yarandom.c
@@ -515,13 +530,17 @@ $(UTILS_BIN)/erase.o:             $(UTILS_SRC)/erase.c
 $(UTILS_BIN)/xshm.o:           $(UTILS_SRC)/xshm.c
 $(UTILS_BIN)/xdbe.o:           $(UTILS_SRC)/xdbe.c
 $(UTILS_BIN)/textclient.o:     $(UTILS_SRC)/textclient.c
+$(UTILS_BIN)/aligned_malloc.o: $(UTILS_SRC)/aligned_malloc.c
+$(UTILS_BIN)/thread_util.o:    $(UTILS_SRC)/thread_util.c
+$(UTILS_BIN)/pow2.o:           $(UTILS_SRC)/pow2.c
 
 $(UTIL_OBJS):
-       $(MAKE) -C $(UTILS_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
+       cd $(UTILS_BIN) ; \
+       $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
 
 # How we build object files in this directory.
 .c.o:
-       $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) $<
+       $(CC) -c $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) $<
 
 
 # Make sure these are regenerated when the version number ticks.
@@ -536,9 +555,11 @@ LOGO               = $(UTILS_BIN)/logo.o $(UTILS_BIN)/minixpm.o
 GRAB           = $(GRAB_OBJS)
 ERASE          = $(UTILS_BIN)/erase.o
 COL            = $(COLOR_OBJS)
-SHM            = $(XSHM_OBJS)
+SHM             = $(XSHM_OBJS) $(THREAD_OBJS)
 DBE            = $(XDBE_OBJS)
 BARS           = $(UTILS_BIN)/colorbars.o $(LOGO)
+THRO           = $(THREAD_OBJS)
+THRL           = $(THREAD_CFLAGS) $(THREAD_LIBS)
 ATV             = analogtv.o $(SHM)
 APPLE2          = apple2.o $(ATV)
 TEXT            = $(UTILS_BIN)/textclient.o
@@ -549,6 +570,9 @@ xscreensaver-sgigl: xscreensaver-sgigl.c
        $(CC) $(LDFLAGS) -o $@ $< -I$(UTILS_SRC) $(HACK_PRE) \
                $(XMU_LIBS) -lX11 -lXext $(X_EXTRA_LIBS) -lm
 
+test-utf8wc: $(UTILS_SRC)/utf8wc.c
+       $(CC) $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) $(LDFLAGS)\
+       -o $@ -DSELFTEST $<
 
 # The rules for those hacks which follow the `screenhack.c' API.
 # If make wasn't such an utter abomination, these could all be combined
@@ -559,8 +583,11 @@ xscreensaver-sgigl: xscreensaver-sgigl.c
 attraction:    attraction.o    $(HACK_OBJS) $(COL) $(SPL)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(SPL) $(HACK_LIBS)
 
-blitspin:      blitspin.o      $(HACK_OBJS) $(GRAB) $(XPM)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(XPM) $(XPM_LIBS)
+binaryring:  binaryring.o $(HACK_OBJS) $(COL)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(HACK_LIBS)
+
+blitspin:      blitspin.o      $(HACK_OBJS) $(GRAB) $(XPM) $(UTILS_BIN)/pow2.o
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(XPM) $(UTILS_BIN)/pow2.o $(XPM_LIBS)
 
 bubbles:       bubbles.o       $(HACK_OBJS) bubbles-default.o $(XPM)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) bubbles-default.o $(XPM) $(XPM_LIBS)
@@ -599,7 +626,7 @@ maze:               maze.o          $(HACK_OBJS) $(ERASE) $(LOGO)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(ERASE) $(LOGO) $(HACK_LIBS)
 
 moire:         moire.o         $(HACK_OBJS) $(COL) $(SHM)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(SHM) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(SHM) $(HACK_LIBS) $(THRL)
 
 moire2:                moire2.o        $(HACK_OBJS) $(COL) $(DBE)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(DBE) $(HACK_LIBS)
@@ -635,7 +662,7 @@ munch:              munch.o         $(HACK_OBJS) $(COL) $(SPL)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(SPL) $(HACK_LIBS)
 
 rd-bomb:       rd-bomb.o       $(HACK_OBJS) $(COL) $(SHM)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(SHM) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(SHM) $(HACK_LIBS) $(THRL)
 
 coral:         coral.o         $(HACK_OBJS) $(COL) $(ERASE)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(ERASE) $(HACK_LIBS)
@@ -653,22 +680,22 @@ epicycle:         epicycle.o      $(HACK_OBJS) $(COL) $(ERASE)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(ERASE) $(HACK_LIBS)
 
 interference:  interference.o  $(HACK_OBJS) $(COL) $(SHM) $(DBE)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(SHM) $(DBE) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(SHM) $(DBE) $(HACK_LIBS) $(THRL)
 
 truchet:        truchet.o      $(HACK_OBJS) $(COL)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(HACK_LIBS)
 
 bsod:          bsod.o          $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM) $(XPM_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM) $(XPM_LIBS) $(THRL)
 
 apple2:                apple2.o apple2-main.o  $(HACK_OBJS) $(ATV) $(GRAB) $(TEXT)
-       $(CC_HACK) -o $@ $@.o   apple2-main.o $(HACK_OBJS) $(ATV) $(GRAB) $(TEXT) $(XPM_LIBS) $(TEXT_LIBS)
+       $(CC_HACK) -o $@ $@.o   apple2-main.o $(HACK_OBJS) $(ATV) $(GRAB) $(TEXT) $(XPM_LIBS) $(TEXT_LIBS) $(THRL)
 
 xanalogtv:     xanalogtv.o     $(HACK_OBJS) $(ATV) $(GRAB) $(XPM)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(XPM_LIBS) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(XPM_LIBS) $(HACK_LIBS) $(THRL)
 
 distort:       distort.o       $(HACK_OBJS) $(GRAB) $(SHM)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS) $(THRL)
 
 kumppa:                kumppa.o        $(HACK_OBJS) $(DBE)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(DBE) $(HACK_LIBS)
@@ -689,7 +716,7 @@ squiral:    squiral.o       $(HACK_OBJS) $(COL)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(HACK_LIBS)
 
 xflame:                xflame.o        $(HACK_OBJS) $(SHM) $(XPM)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(SHM) $(XPM) $(XPM_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(SHM) $(XPM) $(XPM_LIBS) $(THRL)
 
 wander:                wander.o        $(HACK_OBJS) $(COL) $(ERASE)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(ERASE) $(HACK_LIBS)
@@ -719,10 +746,10 @@ blaster:  blaster.o       $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
 
 bumps:         bumps.o         $(HACK_OBJS) $(GRAB) $(SHM)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS) $(THRL)
 
 ripples:       ripples.o       $(HACK_OBJS) $(SHM) $(COL) $(GRAB)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(SHM) $(COL) $(GRAB) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(SHM) $(COL) $(GRAB) $(HACK_LIBS) $(THRL)
 
 xspirograph:   xspirograph.o   $(HACK_OBJS) $(COL) $(ERASE)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(ERASE) $(HACK_LIBS)
@@ -743,7 +770,7 @@ whirlwindwarp:      whirlwindwarp.o $(HACK_OBJS) $(COL)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(HACK_LIBS)
 
 rotzoomer:     rotzoomer.o     $(HACK_OBJS) $(GRAB) $(SHM)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS) $(THRL)
 
 whirlygig:     whirlygig.o     $(HACK_OBJS) $(DBE) $(COL)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(DBE) $(COL) $(HACK_LIBS)
@@ -755,7 +782,7 @@ vermiculate:        vermiculate.o   $(HACK_OBJS) $(COL)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(HACK_LIBS)
 
 twang:         twang.o         $(HACK_OBJS) $(GRAB) $(SHM)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS) $(THRL)
 
 fluidballs:    fluidballs.o    $(HACK_OBJS) $(DBE)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(DBE) $(HACK_LIBS)
@@ -788,7 +815,7 @@ fontglide:  fontglide.o     $(HACK_OBJS) $(DBE) $(TEXT)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(DBE) $(TEXT) $(HACK_LIBS) $(TEXT_LIBS)
 
 pong:  pong.o  $(HACK_OBJS) $(ATV) $(GRAB) $(XPM)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(XPM_LIBS) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(XPM_LIBS) $(HACK_LIBS) $(THRL)
 
 wormhole:      wormhole.o      $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
@@ -800,7 +827,7 @@ anemotaxis: anemotaxis.o    $(HACK_OBJS) $(COL) $(DBE)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(DBE) $(HACK_LIBS)
 
 memscroller:   memscroller.o   $(HACK_OBJS) $(SHM) $(COL)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(SHM) $(COL) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(SHM) $(COL) $(HACK_LIBS) $(THRL)
 
 substrate:     substrate.o     $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
@@ -833,7 +860,7 @@ m6502.h:
 
 m6502.o:       m6502.h
 m6502:         m6502.o         asm6502.o $(HACK_OBJS) $(ATV)
-       $(CC_HACK) -o $@ $@.o   asm6502.o $(HACK_OBJS) $(ATV) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   asm6502.o $(HACK_OBJS) $(ATV) $(HACK_LIBS) $(THRL)
 
 abstractile:   abstractile.o   $(HACK_OBJS) $(COL)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(HACK_LIBS)
@@ -844,6 +871,15 @@ lcdscrub:  lcdscrub.o      $(HACK_OBJS)
 hexadrop:      hexadrop.o      $(HACK_OBJS) $(COL)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(HACK_LIBS)
 
+tessellimage:  tessellimage.o  delaunay.o $(HACK_OBJS) $(GRAB)
+       $(CC_HACK) -o $@ $@.o   delaunay.o $(HACK_OBJS) $(GRAB) $(HACK_LIBS)
+
+testx11:       testx11.o       glx/rotator.o $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   glx/rotator.o $(HACK_OBJS) $(COL) $(HACK_LIBS)
+glx/rotator.o: glx/rotator.c
+       cd glx ; \
+       $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
+
 # The rules for those hacks which follow the `xlockmore' API.
 #
 
@@ -904,11 +940,11 @@ sphere:           sphere.o        $(XLOCK_OBJS)
 spiral:                spiral.o        $(XLOCK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(XLOCK_OBJS) $(HACK_LIBS)
 
-strange:       strange.o       $(XLOCK_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(XLOCK_OBJS) $(HACK_LIBS)
+strange:       strange.o       $(XLOCK_OBJS) $(SHM) $(UTILS_BIN)/pow2.o
+       $(CC_HACK) -o $@ $@.o   $(XLOCK_OBJS) $(SHM) $(UTILS_BIN)/pow2.o $(HACK_LIBS) $(THRL)
 
 swirl:         swirl.o         $(XLOCK_OBJS) $(SHM)
-       $(CC_HACK) -o $@ $@.o   $(XLOCK_OBJS) $(SHM) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(XLOCK_OBJS) $(SHM) $(HACK_LIBS) $(THRL)
 
 fadeplot:      fadeplot.o      $(XLOCK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(XLOCK_OBJS) $(HACK_LIBS)
@@ -992,9 +1028,12 @@ abstractile.o: $(UTILS_SRC)/yarandom.h
 analogtv.o: $(srcdir)/analogtv.h
 analogtv.o: ../config.h
 analogtv.o: $(srcdir)/images/6x10font.xbm
+analogtv.o: $(UTILS_SRC)/aligned_malloc.h
 analogtv.o: $(UTILS_SRC)/grabscreen.h
 analogtv.o: $(UTILS_SRC)/resources.h
+analogtv.o: $(UTILS_SRC)/thread_util.h
 analogtv.o: $(UTILS_SRC)/utils.h
+analogtv.o: $(UTILS_SRC)/visual.h
 analogtv.o: $(UTILS_SRC)/xshm.h
 analogtv.o: $(UTILS_SRC)/yarandom.h
 anemone.o: ../config.h
@@ -1056,12 +1095,15 @@ apple2-main.o: ../config.h
 apple2-main.o: $(srcdir)/fps.h
 apple2-main.o: $(srcdir)/screenhackI.h
 apple2-main.o: $(srcdir)/screenhack.h
+apple2-main.o: $(UTILS_SRC)/aligned_malloc.h
 apple2-main.o: $(UTILS_SRC)/colors.h
 apple2-main.o: $(UTILS_SRC)/grabscreen.h
 apple2-main.o: $(UTILS_SRC)/hsv.h
 apple2-main.o: $(UTILS_SRC)/resources.h
 apple2-main.o: $(UTILS_SRC)/textclient.h
+apple2-main.o: $(UTILS_SRC)/thread_util.h
 apple2-main.o: $(UTILS_SRC)/usleep.h
+apple2-main.o: $(UTILS_SRC)/utf8wc.h
 apple2-main.o: $(UTILS_SRC)/visual.h
 apple2-main.o: $(UTILS_SRC)/xshm.h
 apple2-main.o: $(UTILS_SRC)/yarandom.h
@@ -1071,15 +1113,18 @@ apple2.o: ../config.h
 apple2.o: $(srcdir)/fps.h
 apple2.o: $(srcdir)/images/apple2font.xbm
 apple2.o: $(srcdir)/screenhackI.h
+apple2.o: $(UTILS_SRC)/aligned_malloc.h
 apple2.o: $(UTILS_SRC)/colors.h
 apple2.o: $(UTILS_SRC)/grabscreen.h
 apple2.o: $(UTILS_SRC)/hsv.h
 apple2.o: $(UTILS_SRC)/resources.h
+apple2.o: $(UTILS_SRC)/thread_util.h
 apple2.o: $(UTILS_SRC)/usleep.h
 apple2.o: $(UTILS_SRC)/visual.h
 apple2.o: $(UTILS_SRC)/xshm.h
 apple2.o: $(UTILS_SRC)/yarandom.h
 asm6502.o: $(srcdir)/asm6502.h
+asm6502.o: ../config.h
 asm6502.o: $(UTILS_SRC)/yarandom.h
 attraction.o: ../config.h
 attraction.o: $(srcdir)/fps.h
@@ -1104,6 +1149,17 @@ barcode.o: $(UTILS_SRC)/resources.h
 barcode.o: $(UTILS_SRC)/usleep.h
 barcode.o: $(UTILS_SRC)/visual.h
 barcode.o: $(UTILS_SRC)/yarandom.h
+binaryring.o: ../config.h
+binaryring.o: $(srcdir)/fps.h
+binaryring.o: $(srcdir)/screenhackI.h
+binaryring.o: $(srcdir)/screenhack.h
+binaryring.o: $(UTILS_SRC)/colors.h
+binaryring.o: $(UTILS_SRC)/grabscreen.h
+binaryring.o: $(UTILS_SRC)/hsv.h
+binaryring.o: $(UTILS_SRC)/resources.h
+binaryring.o: $(UTILS_SRC)/usleep.h
+binaryring.o: $(UTILS_SRC)/visual.h
+binaryring.o: $(UTILS_SRC)/yarandom.h
 blaster.o: ../config.h
 blaster.o: $(srcdir)/fps.h
 blaster.o: $(srcdir)/screenhackI.h
@@ -1123,6 +1179,7 @@ blitspin.o: $(srcdir)/screenhack.h
 blitspin.o: $(UTILS_SRC)/colors.h
 blitspin.o: $(UTILS_SRC)/grabscreen.h
 blitspin.o: $(UTILS_SRC)/hsv.h
+blitspin.o: $(UTILS_SRC)/pow2.h
 blitspin.o: $(UTILS_SRC)/resources.h
 blitspin.o: $(UTILS_SRC)/usleep.h
 blitspin.o: $(UTILS_SRC)/visual.h
@@ -1173,6 +1230,7 @@ bsod.o: ../config.h
 bsod.o: $(srcdir)/fps.h
 bsod.o: $(srcdir)/images/amiga.xpm
 bsod.o: $(srcdir)/images/android.xpm
+bsod.o: $(srcdir)/images/apple.xbm
 bsod.o: $(srcdir)/images/atari.xbm
 bsod.o: $(srcdir)/images/atm.xbm
 bsod.o: $(srcdir)/images/hmac.xpm
@@ -1182,10 +1240,12 @@ bsod.o: $(srcdir)/images/osx_10_2.xpm
 bsod.o: $(srcdir)/images/osx_10_3.xpm
 bsod.o: $(srcdir)/screenhackI.h
 bsod.o: $(srcdir)/screenhack.h
+bsod.o: $(UTILS_SRC)/aligned_malloc.h
 bsod.o: $(UTILS_SRC)/colors.h
 bsod.o: $(UTILS_SRC)/grabscreen.h
 bsod.o: $(UTILS_SRC)/hsv.h
 bsod.o: $(UTILS_SRC)/resources.h
+bsod.o: $(UTILS_SRC)/thread_util.h
 bsod.o: $(UTILS_SRC)/usleep.h
 bsod.o: $(UTILS_SRC)/visual.h
 bsod.o: $(UTILS_SRC)/xshm.h
@@ -1261,6 +1321,7 @@ bumps.o: $(UTILS_SRC)/hsv.h
 bumps.o: $(UTILS_SRC)/resources.h
 bumps.o: $(UTILS_SRC)/usleep.h
 bumps.o: $(UTILS_SRC)/visual.h
+bumps.o: $(UTILS_SRC)/xshm.h
 bumps.o: $(UTILS_SRC)/yarandom.h
 ccurve.o: ../config.h
 ccurve.o: $(srcdir)/fps.h
@@ -1391,6 +1452,8 @@ deco.o: $(UTILS_SRC)/resources.h
 deco.o: $(UTILS_SRC)/usleep.h
 deco.o: $(UTILS_SRC)/visual.h
 deco.o: $(UTILS_SRC)/yarandom.h
+delaunay.o: ../config.h
+delaunay.o: $(srcdir)/delaunay.h
 deluxe.o: ../config.h
 deluxe.o: $(srcdir)/fps.h
 deluxe.o: $(srcdir)/screenhackI.h
@@ -1442,6 +1505,7 @@ distort.o: $(UTILS_SRC)/hsv.h
 distort.o: $(UTILS_SRC)/resources.h
 distort.o: $(UTILS_SRC)/usleep.h
 distort.o: $(UTILS_SRC)/visual.h
+distort.o: $(UTILS_SRC)/xshm.h
 distort.o: $(UTILS_SRC)/yarandom.h
 drift.o: ../config.h
 drift.o: $(srcdir)/fps.h
@@ -1591,8 +1655,10 @@ fontglide.o: $(UTILS_SRC)/hsv.h
 fontglide.o: $(UTILS_SRC)/resources.h
 fontglide.o: $(UTILS_SRC)/textclient.h
 fontglide.o: $(UTILS_SRC)/usleep.h
+fontglide.o: $(UTILS_SRC)/utf8wc.h
 fontglide.o: $(UTILS_SRC)/visual.h
 fontglide.o: $(UTILS_SRC)/xdbe.h
+fontglide.o: $(UTILS_SRC)/xft.h
 fontglide.o: $(UTILS_SRC)/yarandom.h
 forest.o: ../config.h
 forest.o: $(srcdir)/fps.h
@@ -1797,13 +1863,16 @@ interference.o: ../config.h
 interference.o: $(srcdir)/fps.h
 interference.o: $(srcdir)/screenhackI.h
 interference.o: $(srcdir)/screenhack.h
+interference.o: $(UTILS_SRC)/aligned_malloc.h
 interference.o: $(UTILS_SRC)/colors.h
 interference.o: $(UTILS_SRC)/grabscreen.h
 interference.o: $(UTILS_SRC)/hsv.h
 interference.o: $(UTILS_SRC)/resources.h
+interference.o: $(UTILS_SRC)/thread_util.h
 interference.o: $(UTILS_SRC)/usleep.h
 interference.o: $(UTILS_SRC)/visual.h
 interference.o: $(UTILS_SRC)/xdbe.h
+interference.o: $(UTILS_SRC)/xshm.h
 interference.o: $(UTILS_SRC)/yarandom.h
 intermomentary.o: ../config.h
 intermomentary.o: $(srcdir)/fps.h
@@ -1961,10 +2030,12 @@ m6502.o: $(srcdir)/fps.h
 m6502.o: m6502.h
 m6502.o: $(srcdir)/screenhackI.h
 m6502.o: $(srcdir)/screenhack.h
+m6502.o: $(UTILS_SRC)/aligned_malloc.h
 m6502.o: $(UTILS_SRC)/colors.h
 m6502.o: $(UTILS_SRC)/grabscreen.h
 m6502.o: $(UTILS_SRC)/hsv.h
 m6502.o: $(UTILS_SRC)/resources.h
+m6502.o: $(UTILS_SRC)/thread_util.h
 m6502.o: $(UTILS_SRC)/usleep.h
 m6502.o: $(UTILS_SRC)/visual.h
 m6502.o: $(UTILS_SRC)/xshm.h
@@ -1991,6 +2062,7 @@ memscroller.o: $(UTILS_SRC)/hsv.h
 memscroller.o: $(UTILS_SRC)/resources.h
 memscroller.o: $(UTILS_SRC)/usleep.h
 memscroller.o: $(UTILS_SRC)/visual.h
+memscroller.o: $(UTILS_SRC)/xshm.h
 memscroller.o: $(UTILS_SRC)/yarandom.h
 metaballs.o: ../config.h
 metaballs.o: $(srcdir)/fps.h
@@ -2025,6 +2097,7 @@ moire.o: $(UTILS_SRC)/hsv.h
 moire.o: $(UTILS_SRC)/resources.h
 moire.o: $(UTILS_SRC)/usleep.h
 moire.o: $(UTILS_SRC)/visual.h
+moire.o: $(UTILS_SRC)/xshm.h
 moire.o: $(UTILS_SRC)/yarandom.h
 mountain.o: ../config.h
 mountain.o: $(srcdir)/fps.h
@@ -2080,6 +2153,7 @@ noseguy.o: $(UTILS_SRC)/resources.h
 noseguy.o: $(UTILS_SRC)/textclient.h
 noseguy.o: $(UTILS_SRC)/usleep.h
 noseguy.o: $(UTILS_SRC)/visual.h
+noseguy.o: $(UTILS_SRC)/xft.h
 noseguy.o: $(UTILS_SRC)/yarandom.h
 noseguy.o: $(srcdir)/xpm-pixmap.h
 pacman_ai.o: ../config.h
@@ -2223,6 +2297,7 @@ phosphor.o: $(UTILS_SRC)/hsv.h
 phosphor.o: $(UTILS_SRC)/resources.h
 phosphor.o: $(UTILS_SRC)/textclient.h
 phosphor.o: $(UTILS_SRC)/usleep.h
+phosphor.o: $(UTILS_SRC)/utf8wc.h
 phosphor.o: $(UTILS_SRC)/visual.h
 phosphor.o: $(UTILS_SRC)/yarandom.h
 piecewise.o: ../config.h
@@ -2256,10 +2331,12 @@ pong.o: ../config.h
 pong.o: $(srcdir)/fps.h
 pong.o: $(srcdir)/screenhackI.h
 pong.o: $(srcdir)/screenhack.h
+pong.o: $(UTILS_SRC)/aligned_malloc.h
 pong.o: $(UTILS_SRC)/colors.h
 pong.o: $(UTILS_SRC)/grabscreen.h
 pong.o: $(UTILS_SRC)/hsv.h
 pong.o: $(UTILS_SRC)/resources.h
+pong.o: $(UTILS_SRC)/thread_util.h
 pong.o: $(UTILS_SRC)/usleep.h
 pong.o: $(UTILS_SRC)/visual.h
 pong.o: $(UTILS_SRC)/xshm.h
@@ -2309,7 +2386,19 @@ rd-bomb.o: $(UTILS_SRC)/hsv.h
 rd-bomb.o: $(UTILS_SRC)/resources.h
 rd-bomb.o: $(UTILS_SRC)/usleep.h
 rd-bomb.o: $(UTILS_SRC)/visual.h
+rd-bomb.o: $(UTILS_SRC)/xshm.h
 rd-bomb.o: $(UTILS_SRC)/yarandom.h
+recanim.o: ../config.h
+recanim.o: $(srcdir)/fps.h
+recanim.o: $(srcdir)/recanim.h
+recanim.o: $(srcdir)/screenhackI.h
+recanim.o: $(UTILS_SRC)/colors.h
+recanim.o: $(UTILS_SRC)/grabscreen.h
+recanim.o: $(UTILS_SRC)/hsv.h
+recanim.o: $(UTILS_SRC)/resources.h
+recanim.o: $(UTILS_SRC)/usleep.h
+recanim.o: $(UTILS_SRC)/visual.h
+recanim.o: $(UTILS_SRC)/yarandom.h
 ripples.o: ../config.h
 ripples.o: $(srcdir)/fps.h
 ripples.o: $(srcdir)/screenhackI.h
@@ -2320,6 +2409,7 @@ ripples.o: $(UTILS_SRC)/hsv.h
 ripples.o: $(UTILS_SRC)/resources.h
 ripples.o: $(UTILS_SRC)/usleep.h
 ripples.o: $(UTILS_SRC)/visual.h
+ripples.o: $(UTILS_SRC)/xshm.h
 ripples.o: $(UTILS_SRC)/yarandom.h
 rocks.o: ../config.h
 rocks.o: $(srcdir)/fps.h
@@ -2367,9 +2457,11 @@ rotzoomer.o: $(UTILS_SRC)/hsv.h
 rotzoomer.o: $(UTILS_SRC)/resources.h
 rotzoomer.o: $(UTILS_SRC)/usleep.h
 rotzoomer.o: $(UTILS_SRC)/visual.h
+rotzoomer.o: $(UTILS_SRC)/xshm.h
 rotzoomer.o: $(UTILS_SRC)/yarandom.h
 screenhack.o: ../config.h
 screenhack.o: $(srcdir)/fps.h
+screenhack.o: $(srcdir)/recanim.h
 screenhack.o: $(srcdir)/screenhackI.h
 screenhack.o: $(UTILS_SRC)/colors.h
 screenhack.o: $(UTILS_SRC)/grabscreen.h
@@ -2505,10 +2597,13 @@ starfish.o: $(UTILS_SRC)/yarandom.h
 strange.o: ../config.h
 strange.o: $(srcdir)/fps.h
 strange.o: $(srcdir)/screenhackI.h
+strange.o: $(UTILS_SRC)/aligned_malloc.h
 strange.o: $(UTILS_SRC)/colors.h
 strange.o: $(UTILS_SRC)/grabscreen.h
 strange.o: $(UTILS_SRC)/hsv.h
+strange.o: $(UTILS_SRC)/pow2.h
 strange.o: $(UTILS_SRC)/resources.h
+strange.o: $(UTILS_SRC)/thread_util.h
 strange.o: $(UTILS_SRC)/usleep.h
 strange.o: $(UTILS_SRC)/visual.h
 strange.o: $(UTILS_SRC)/xshm.h
@@ -2550,6 +2645,30 @@ t3d.o: $(UTILS_SRC)/resources.h
 t3d.o: $(UTILS_SRC)/usleep.h
 t3d.o: $(UTILS_SRC)/visual.h
 t3d.o: $(UTILS_SRC)/yarandom.h
+tessellimage.o: ../config.h
+tessellimage.o: $(srcdir)/delaunay.h
+tessellimage.o: $(srcdir)/fps.h
+tessellimage.o: $(srcdir)/screenhackI.h
+tessellimage.o: $(srcdir)/screenhack.h
+tessellimage.o: $(UTILS_SRC)/colors.h
+tessellimage.o: $(UTILS_SRC)/grabscreen.h
+tessellimage.o: $(UTILS_SRC)/hsv.h
+tessellimage.o: $(UTILS_SRC)/resources.h
+tessellimage.o: $(UTILS_SRC)/usleep.h
+tessellimage.o: $(UTILS_SRC)/visual.h
+tessellimage.o: $(UTILS_SRC)/yarandom.h
+testx11.o: ../config.h
+testx11.o: $(srcdir)/fps.h
+testx11.o: $(srcdir)/glx/rotator.h
+testx11.o: $(srcdir)/screenhackI.h
+testx11.o: $(srcdir)/screenhack.h
+testx11.o: $(UTILS_SRC)/colors.h
+testx11.o: $(UTILS_SRC)/grabscreen.h
+testx11.o: $(UTILS_SRC)/hsv.h
+testx11.o: $(UTILS_SRC)/resources.h
+testx11.o: $(UTILS_SRC)/usleep.h
+testx11.o: $(UTILS_SRC)/visual.h
+testx11.o: $(UTILS_SRC)/yarandom.h
 thornbird.o: ../config.h
 thornbird.o: $(srcdir)/fps.h
 thornbird.o: $(srcdir)/screenhackI.h
@@ -2597,6 +2716,7 @@ twang.o: $(UTILS_SRC)/hsv.h
 twang.o: $(UTILS_SRC)/resources.h
 twang.o: $(UTILS_SRC)/usleep.h
 twang.o: $(UTILS_SRC)/visual.h
+twang.o: $(UTILS_SRC)/xshm.h
 twang.o: $(UTILS_SRC)/yarandom.h
 vermiculate.o: ../config.h
 vermiculate.o: $(srcdir)/fps.h
@@ -2700,11 +2820,13 @@ xanalogtv.o: ../config.h
 xanalogtv.o: $(srcdir)/fps.h
 xanalogtv.o: $(srcdir)/screenhackI.h
 xanalogtv.o: $(srcdir)/screenhack.h
+xanalogtv.o: $(UTILS_SRC)/aligned_malloc.h
 xanalogtv.o: $(UTILS_SRC)/colors.h
 xanalogtv.o: $(UTILS_SRC)/grabscreen.h
 xanalogtv.o: $(UTILS_SRC)/hsv.h
 xanalogtv.o: $(UTILS_SRC)/images/logo-50.xpm
 xanalogtv.o: $(UTILS_SRC)/resources.h
+xanalogtv.o: $(UTILS_SRC)/thread_util.h
 xanalogtv.o: $(UTILS_SRC)/usleep.h
 xanalogtv.o: $(UTILS_SRC)/visual.h
 xanalogtv.o: $(UTILS_SRC)/xshm.h
@@ -2721,6 +2843,7 @@ xflame.o: $(UTILS_SRC)/hsv.h
 xflame.o: $(UTILS_SRC)/resources.h
 xflame.o: $(UTILS_SRC)/usleep.h
 xflame.o: $(UTILS_SRC)/visual.h
+xflame.o: $(UTILS_SRC)/xshm.h
 xflame.o: $(UTILS_SRC)/yarandom.h
 xflame.o: $(srcdir)/xpm-pixmap.h
 xjack.o: ../config.h
@@ -2806,6 +2929,7 @@ xspirograph.o: $(UTILS_SRC)/resources.h
 xspirograph.o: $(UTILS_SRC)/usleep.h
 xspirograph.o: $(UTILS_SRC)/visual.h
 xspirograph.o: $(UTILS_SRC)/yarandom.h
+xsublim.o: ../config.h
 xsublim.o: $(UTILS_SRC)/resources.h
 xsublim.o: $(UTILS_SRC)/usleep.h
 xsublim.o: $(UTILS_SRC)/vroot.h