/*
 * Imakefile file for xscreensaver, Copyright (c) 1993 Jamie Zawinski.
 *
 * You should not need to edit this file; edit ../config.h instead.
 *
 */

#include "../config.h"

#ifdef HAVE_XPM
 /* Yeah, this means that all hacks link against libXpm even though only
    one hack actually uses it.  It doesn't matter: it's a library. */
# define XPMDEFS -DHAVE_XPM
# define XPMLIB -lXpm
#else
# define XPMDEFS
# define XPMLIB
#endif

          UTILS = ../utils
       INCLUDES = -I$(UTILS)
        DEFINES = R5ISMS XPMDEFS
EXTRA_LIBRARIES = $(XMULIB) $(XTOOLLIB) XPMLIB $(EXTENSIONLIB) $(XLIB) -lm
          HACKS = attraction.c greynetic.c helix.c hopalong.c xroger-hack.c \
                  noseguy.c pyro.c qix.c rocks.c rorschach.c blitspin.c \
                  imsmap.c slidescreen.c decayscreen.c maze.c hypercube.c \
                  halo.c flame.c
            MEN = attraction.man greynetic.man helix.man hopalong.man \
                  noseguy.man pyro.man xroger.man qix.man rocks.man \
                  rorschach.man blitspin.man imsmap.man slidescreen.man \
                  decayscreen.man maze.man hypercube.man halo.man flame.man
       TARFILES = README Imakefile screenhack.c $(HACKS) screenhack.h \
                  vroot.h xlock.h default.xbm $(MEN) .gdbinit noses/\*

all::

echo_tarfiles:
	@echo $(TARFILES)

#define	ScreenhackTarget(p,ps,deps)					 @@\
all:: p									 @@\
p: deps screenhack.h ps.o $(DEPLIBS)					 @@\
	RemoveTargetProgram($@)						 @@\
	$(CC) -o $@ $(LDOPTIONS) deps ps.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\
									 @@\
InstallProgram(p,$(BINDIR))						 @@\
InstallManPage(p,$(MANDIR))						 @@\
clean::									 @@\
	$(RM) p

HOBJS=screenhack.o $(UTILS)/resources.o $(UTILS)/usleep.o

ScreenhackTarget (qix, qix, $(HOBJS) $(UTILS)/hsv.o)
ScreenhackTarget (helix, helix, $(HOBJS) $(UTILS)/hsv.o)
ScreenhackTarget (pyro, pyro, $(HOBJS) $(UTILS)/hsv.o)
ScreenhackTarget (attraction, attraction, $(HOBJS) $(UTILS)/hsv.o $(UTILS)/spline.o)
ScreenhackTarget (rorschach, rorschach, $(HOBJS) $(UTILS)/hsv.o)
ScreenhackTarget (hopalong, hopalong, $(HOBJS) $(UTILS)/hsv.o)
ScreenhackTarget (xroger, xroger-hack, $(HOBJS) $(UTILS)/hsv.o $(UTILS)/xroger.o)
ScreenhackTarget (rocks, rocks, $(HOBJS))
ScreenhackTarget (noseguy, noseguy, $(HOBJS))
ScreenhackTarget (blitspin, blitspin, $(HOBJS))
ScreenhackTarget (greynetic, greynetic, $(HOBJS))
ScreenhackTarget (slidescreen, slidescreen, $(HOBJS) $(UTILS)/grabscreen.o)
ScreenhackTarget (decayscreen, decayscreen, $(HOBJS) $(UTILS)/grabscreen.o)
ScreenhackTarget (imsmap, imsmap, $(HOBJS) $(UTILS)/hsv.o)
ScreenhackTarget (maze, maze, $(HOBJS) $(UTILS)/xroger.o)
ScreenhackTarget (hypercube, hypercube, $(HOBJS))
ScreenhackTarget (halo, halo, $(HOBJS) $(UTILS)/hsv.o)
ScreenhackTarget (flame, flame, $(HOBJS) $(UTILS)/hsv.o)
