INSTALL_SETUID = @INSTALL_SETUID@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_DIRS = @INSTALL_DIRS@
+GNOME_DATADIR = @GNOME_DATADIR@
HACKDIR = @HACKDIR@
+HACK_CONF_DIR = @HACK_CONF_DIR@
X_CFLAGS = @X_CFLAGS@
X_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)
+JPEG_LIBS = @JPEG_LIBS@
XLOCK_LIBS = $(HACK_LIBS)
UTILS_SRC = $(srcdir)/../utils
phosphor.c xmatrix.c petri.c shadebobs.c xsublim.c ccurve.c \
blaster.c bumps.c ripples.c xteevee.c xspirograph.c \
nerverot.c xrayswarm.c hyperball.c zoom.c whirlwindwarp.c \
- rotzoomer.c
+ rotzoomer.c whirlygig.c speedmine.c vermiculate.c \
+ xpm-pixmap.c webcollage-helper.c twang.c apollonian.c \
+ euler2d.c juggle.c polyominoes.c thornbird.c fluidballs.c
SCRIPTS = vidwhacker webcollage
OBJS = attraction.o blitspin.o bouboule.o braid.o bubbles.o \
phosphor.o xmatrix.o petri.o shadebobs.o xsublim.o ccurve.o \
blaster.o bumps.o ripples.o xteevee.o xspirograph.o \
nerverot.o xrayswarm.o hyperball.o zoom.o whirlwindwarp.o \
- rotzoomer.o
+ rotzoomer.o whirlygig.o speedmine.o vermiculate.o \
+ xpm-pixmap.o webcollage-helper.o twang.o apollonian.o \
+ euler2d.o juggle.o polyominoes.o thornbird.o fluidballs.o
NEXES = attraction blitspin bouboule braid bubbles decayscreen deco \
drift flag flame forest vines galaxy grav greynetic halo \
demon loop t3d penetrate deluxe compass squiral xflame \
wander spotlight critical phosphor xmatrix petri shadebobs \
xsublim ccurve blaster bumps ripples xteevee xspirograph \
- nerverot xrayswarm hyperball zoom whirlwindwarp rotzoomer
+ nerverot xrayswarm hyperball zoom whirlwindwarp rotzoomer \
+ whirlygig speedmine vermiculate twang apollonian euler2d \
+ juggle polyominoes thornbird fluidballs \
+ @JPEG_EXES@
SEXES = sonar
+JPEG_EXES = webcollage-helper
EXES = $(NEXES) $(SEXES)
HACK_OBJS_1 = $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
XDBE_OBJS = $(UTILS_BIN)/xdbe.o
HDRS = bubbles.h screenhack.h xlockmore.h xlockmoreI.h automata.h \
- bumps.h
+ bumps.h xpm-pixmap.h
MEN = attraction.man blitspin.man bouboule.man braid.man \
bubbles.man decayscreen.man deco.man drift.man flag.man \
flame.man forest.man vines.man galaxy.man grav.man \
vidwhacker.man webcollage.man xsublim.man distort.man \
phosphor.man xmatrix.man xteevee.man xflame.man petri.man \
nerverot.man zoom.man whirlwindwarp.man hyperball.man \
- rotzoomer.man
+ rotzoomer.man whirlygig.man speedmine.man penetrate.man \
+ xspirograph.man twang.man
STAR = *
EXTRAS = README Makefile.in xlock_23.h .gdbinit \
+ config/README \
+ config/$(STAR).xml \
images/$(STAR).xbm \
images/$(STAR).xpm \
images/bubbles/$(STAR).pov \
default: all
all: $(EXES)
-install: install-program install-scripts install-man
-uninstall: uninstall-program uninstall-man
+install: install-program install-scripts install-xml install-man
+uninstall: uninstall-program uninstall-xml uninstall-man
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
sinst="$(INSTALL_PROGRAM)" ; \
fi ; \
for program in $(SEXES); do \
- echo $$sinst $$program $(install_prefix)$(HACKDIR)/$$program ;\
- $$sinst $$program $(install_prefix)$(HACKDIR)/$$program ;\
+ instargs="$$program $(install_prefix)$(HACKDIR)/$$program" ; \
+ echo $$sinst $$instargs ; \
+ if $$sinst $$instargs ; then \
+ true ; \
+ elif [ @SETUID_HACKS@ = yes ]; then \
+ echo $(INSTALL_PROGRAM) $$instargs ; \
+ if $(INSTALL_PROGRAM) $$instargs ; then \
+ echo "" ; \
+ echo "WARNING: unable to install $$program setuid:" \
+ "installed non-setuid instead." ; \
+ echo "" ; \
+ else \
+ exit 1 ; \
+ fi ; \
+ else \
+ exit 1 ; \
+ fi ; \
done
install-scripts: $(SCRIPTS) munge-scripts
munge-scripts: $(SCRIPTS)
@tmp=/tmp/mf.$$$$ ; \
perl="${PERL}" ; \
+ rm -f $$tmp ; \
for program in $(SCRIPTS); do \
echo "adjusting location of perl in $$program..." ; \
sed "s@^\(#!\)\(/[^ ]*/perl[^ ]*\)\(.*\)\$$@\1$$perl\3@" \
else \
cat $$tmp > ./$$program ; \
fi ; \
- done
+ done ; \
+ rm -f $$tmp
install-man: $(MEN)
@men="$(MEN)" ; \
$(install_prefix)$(man1dir)/$$instname ; \
done
+install-xml:
+ @if [ ! -d $(install_prefix)$(HACK_CONF_DIR) ]; then \
+ $(INSTALL_DIRS) $(install_prefix)$(HACK_CONF_DIR) ; \
+ fi ; \
+ files=`cd $(srcdir)/config/ ; echo README $(STAR).xml` ; \
+ for file in $$files ; do \
+ echo $(INSTALL_DATA) $(srcdir)/config/$$file \
+ $(install_prefix)$(HACK_CONF_DIR)/$$file ; \
+ $(INSTALL_DATA) $(srcdir)/config/$$file \
+ $(install_prefix)$(HACK_CONF_DIR)/$$file ; \
+ done
+
uninstall-program:
@for program in $(EXES) $(SCRIPTS); do \
echo rm -f $(install_prefix)$(HACKDIR)/$$program ; \
rm -f $(install_prefix)$(man1dir)/$$instname ; \
done
+uninstall-xml:
+ @cd $(srcdir)/config/ ; \
+ for file in README $(STAR).xml ; do \
+ echo rm -f $(install_prefix)$(HACK_CONF_DIR)/$$file ; \
+ rm -f $(install_prefix)$(HACK_CONF_DIR)/$$file ; \
+ done
+
clean:
-rm -f *.o a.out core $(EXES)
-DXLOCKMORE $(srcdir)/screenhack.c
# Some abbreviations to keep the lines short...
+XPM = xpm-pixmap.o
ALP = $(UTILS_BIN)/alpha.o
HSV = $(UTILS_BIN)/hsv.o
SPL = $(UTILS_BIN)/spline.o
attraction: attraction.o $(HACK_OBJS) $(COL) $(SPL)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(SPL) $(HACK_LIBS)
-blitspin: blitspin.o $(HACK_OBJS) $(GRAB)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(XPM_LIBS)
+blitspin: blitspin.o $(HACK_OBJS) $(GRAB) $(XPM)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(XPM) $(XPM_LIBS)
-bubbles: bubbles.o $(HACK_OBJS) bubbles-default.o
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) bubbles-default.o $(XPM_LIBS)
+bubbles: bubbles.o $(HACK_OBJS) bubbles-default.o $(XPM)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) bubbles-default.o $(XPM) $(XPM_LIBS)
decayscreen: decayscreen.o $(HACK_OBJS) $(GRAB)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(HACK_LIBS)
moire2: moire2.o $(HACK_OBJS) $(COL) $(DBE)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(DBE) $(HACK_LIBS)
-noseguy: noseguy.o $(HACK_OBJS)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(XPM_LIBS)
+noseguy: noseguy.o $(HACK_OBJS) $(XPM)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(XPM) $(XPM_LIBS)
pedal: pedal.o $(HACK_OBJS) $(HSV)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HSV) $(HACK_LIBS)
truchet: truchet.o $(HACK_OBJS) $(COL)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(HACK_LIBS)
-bsod: bsod.o $(HACK_OBJS) $(GRAB)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(HACK_LIBS) $(XPM_LIBS)
+bsod: bsod.o $(HACK_OBJS) $(GRAB) $(XPM)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(XPM) $(XPM_LIBS)
distort: distort.o $(HACK_OBJS) $(GRAB) $(SHM)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS)
squiral: squiral.o $(HACK_OBJS) $(COL)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(HACK_LIBS)
-xflame: xflame.o $(HACK_OBJS) $(SHM)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(SHM) $(HACK_LIBS) $(XPM_LIBS)
+xflame: xflame.o $(HACK_OBJS) $(SHM) $(XPM)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(SHM) $(XPM) $(XPM_LIBS)
wander: wander.o $(HACK_OBJS) $(COL) $(ERASE)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(ERASE) $(HACK_LIBS)
phosphor: phosphor.o $(HACK_OBJS) $(COL)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(HACK_LIBS)
-xmatrix: xmatrix.o $(HACK_OBJS)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS) $(XPM_LIBS)
+xmatrix: xmatrix.o $(HACK_OBJS) $(XPM)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(XPM) $(XPM_LIBS)
petri: petri.o $(HACK_OBJS) $(COL) $(SPL)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(SPL) $(HACK_LIBS)
rotzoomer: rotzoomer.o $(HACK_OBJS) $(GRAB) $(SHM)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS)
+whirlygig: whirlygig.o $(HACK_OBJS) $(COL)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(HACK_LIBS)
+
+speedmine: speedmine.o $(HACK_OBJS) $(COL)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(HACK_LIBS)
+
+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)
+
+fluidballs: fluidballs.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+
# The rules for those hacks which follow the `xlockmore' API.
#
drift: drift.o $(XLOCK_OBJS) $(ERASE)
$(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(ERASE) $(HACK_LIBS)
-flag: flag.o $(XLOCK_OBJS)
- $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(XPM_LIBS)
+flag: flag.o $(XLOCK_OBJS) $(XPM)
+ $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(XPM) $(XPM_LIBS)
forest: forest.o $(XLOCK_OBJS) $(ERASE)
$(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(ERASE) $(HACK_LIBS)
flow: flow.o $(XLOCK_OBJS)
$(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS)
-discrete: discrete.o $(XLOCK_OBJS) $(ERASE)
+discrete: discrete.o $(XLOCK_OBJS) $(ERASE)
+ $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(ERASE) $(HACK_LIBS)
+
+crystal: crystal.o $(XLOCK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS)
+
+apollonian: apollonian.o $(XLOCK_OBJS) $(ERASE)
$(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(ERASE) $(HACK_LIBS)
-crystal: crystal.o $(XLOCK_OBJS)
+euler2d: euler2d.o $(XLOCK_OBJS)
$(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS)
+juggle: juggle.o $(XLOCK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS)
+polyominoes: polyominoes.o $(XLOCK_OBJS) $(ERASE)
+ $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(ERASE) $(HACK_LIBS)
-# This one is not like the others.
+thornbird: thornbird.o $(XLOCK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS)
+
+
+# These are not like the others.
#
xsublim: xsublim.o $(HACK_OBJS_1)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS_1) $(HACK_LIBS)
+webcollage-helper: webcollage-helper.o
+ $(CC_HACK) -o $@ $@.o $(XPM_LIBS) $(JPEG_LIBS)
+
##############################################################################
#
attraction.o: ../config.h
blitspin.o: $(srcdir)/screenhack.h
blitspin.o: ../config.h
+blitspin.o: $(srcdir)/xpm-pixmap.h
blitspin.o: $(srcdir)/images/som.xbm
bouboule.o: $(srcdir)/xlockmore.h
bouboule.o: ../config.h
bubbles.o: $(srcdir)/screenhack.h
bubbles.o: ../config.h
bubbles.o: $(srcdir)/bubbles.h
+bubbles.o: $(srcdir)/xpm-pixmap.h
bubbles-default.o: ../config.h
bubbles-default.o: $(srcdir)/bubbles.h
bubbles-default.o: $(srcdir)/images/bubbles/blood1.xpm
flag.o: ../config.h
flag.o: $(srcdir)/xlockmoreI.h
flag.o: $(srcdir)/screenhack.h
+flag.o: $(srcdir)/xpm-pixmap.h
flag.o: $(srcdir)/images/bob.xbm
flame.o: $(srcdir)/screenhack.h
flame.o: ../config.h
moire.o: ../config.h
noseguy.o: $(srcdir)/screenhack.h
noseguy.o: ../config.h
+noseguy.o: $(srcdir)/xpm-pixmap.h
noseguy.o: $(srcdir)/images/noseguy/nose-f1.xpm
noseguy.o: $(srcdir)/images/noseguy/nose-f2.xpm
noseguy.o: $(srcdir)/images/noseguy/nose-f3.xpm
truchet.o: ../config.h
bsod.o: $(srcdir)/screenhack.h
bsod.o: ../config.h
+bsod.o: $(srcdir)/xpm-pixmap.h
bsod.o: $(srcdir)/images/amiga.xpm
bsod.o: $(srcdir)/images/atari.xbm
bsod.o: $(srcdir)/images/mac.xbm
+bsod.o: $(srcdir)/images/macbomb.xbm
crystal.o: $(srcdir)/xlockmore.h
crystal.o: ../config.h
crystal.o: $(srcdir)/xlockmoreI.h
squiral.o: ../config.h
xflame.o: $(srcdir)/screenhack.h
xflame.o: ../config.h
+xflame.o: $(srcdir)/xpm-pixmap.h
xflame.o: $(srcdir)/images/bob.xbm
wander.o: $(srcdir)/screenhack.h
wander.o: ../config.h
phosphor.o: ../config.h
xmatrix.o: $(srcdir)/screenhack.h
xmatrix.o: ../config.h
-xmatrix.o: $(srcdir)/images/matrix.xpm
+xmatrix.o: $(srcdir)/xpm-pixmap.h
+xmatrix.o: $(srcdir)/images/matrix0.xpm
+xmatrix.o: $(srcdir)/images/matrix1.xpm
xmatrix.o: $(srcdir)/images/matrix2.xpm
-xmatrix.o: $(srcdir)/images/matrix.xbm
+xmatrix.o: $(srcdir)/images/matrix0b.xpm
+xmatrix.o: $(srcdir)/images/matrix1b.xpm
+xmatrix.o: $(srcdir)/images/matrix2b.xpm
+xmatrix.o: $(srcdir)/images/matrix0.xbm
+xmatrix.o: $(srcdir)/images/matrix1.xbm
xmatrix.o: $(srcdir)/images/matrix2.xbm
+xmatrix.o: $(srcdir)/images/matrix0b.xbm
+xmatrix.o: $(srcdir)/images/matrix1b.xbm
+xmatrix.o: $(srcdir)/images/matrix2b.xbm
petri.o: $(srcdir)/screenhack.h
petri.o: ../config.h
shadebobs.o: $(srcdir)/screenhack.h
whirlwindwarp.o: ../config.h
rotzoomer.o: $(srcdir)/screenhack.h
rotzoomer.o: ../config.h
+whirlygig.o: $(srcdir)/screenhack.h
+whirlygig.o: ../config.h
+speedmine.o: $(srcdir)/screenhack.h
+speedmine.o: ../config.h
+vermiculate.o: $(srcdir)/screenhack.h
+vermiculate.o: ../config.h
+xpm-pixmap.o: ../config.h
+webcollage-helper.o: ../config.h
+twang.o: $(srcdir)/screenhack.h
+twang.o: ../config.h
+apollonian.o: $(srcdir)/xlockmore.h
+apollonian.o: ../config.h
+apollonian.o: $(srcdir)/xlockmoreI.h
+apollonian.o: $(srcdir)/screenhack.h
+euler2d.o: $(srcdir)/xlockmore.h
+euler2d.o: ../config.h
+euler2d.o: $(srcdir)/xlockmoreI.h
+euler2d.o: $(srcdir)/screenhack.h
+juggle.o: $(srcdir)/xlockmore.h
+juggle.o: ../config.h
+juggle.o: $(srcdir)/xlockmoreI.h
+juggle.o: $(srcdir)/screenhack.h
+polyominoes.o: $(srcdir)/xlockmore.h
+polyominoes.o: ../config.h
+polyominoes.o: $(srcdir)/xlockmoreI.h
+polyominoes.o: $(srcdir)/screenhack.h
+thornbird.o: $(srcdir)/xlockmore.h
+thornbird.o: ../config.h
+thornbird.o: $(srcdir)/xlockmoreI.h
+thornbird.o: $(srcdir)/screenhack.h
+fluidballs.o: $(srcdir)/screenhack.h
+fluidballs.o: ../config.h