d2276c49b6125866df8d42d436a1f33851c091ff
[xscreensaver] / hacks / Imakefile
1 /*
2  * Imakefile file for xscreensaver, Copyright (c) 1993, 1995 Jamie Zawinski.
3  *
4  * You should not need to edit this file; edit ../config.h instead.
5  *
6  */
7
8 #include "../config.h"
9
10 #ifdef HAVE_XPM
11  /* Yeah, this means that all hacks link against libXpm even though only
12     one hack actually uses it.  It doesn't matter: it's a library. */
13 # define XPMDEFS -DHAVE_XPM
14 # define XPMLIB -lXpm
15 #else
16 # define XPMDEFS
17 # define XPMLIB
18 #endif
19
20           UTILS = ../utils
21        INCLUDES = -I$(UTILS)
22         DEFINES = R5ISMS XPMDEFS
23 LOCAL_LIBRARIES = $(XMULIB) $(XTOOLLIB) XPMLIB $(EXTENSIONLIB) $(XLIB) -lm
24           HACKS = attraction.c greynetic.c helix.c hopalong.c xroger-hack.c \
25                   noseguy.c pyro.c qix.c rocks.c rorschach.c blitspin.c \
26                   imsmap.c slidescreen.c decayscreen.c maze.c hypercube.c \
27                   halo.c flame.c pedal.c lmorph.c
28             MEN = attraction.man greynetic.man helix.man hopalong.man \
29                   noseguy.man pyro.man xroger.man qix.man rocks.man \
30                   rorschach.man blitspin.man imsmap.man slidescreen.man \
31                   decayscreen.man maze.man hypercube.man halo.man flame.man \
32                   pedal.man lmorph.man
33        TARFILES = README Imakefile screenhack.c $(HACKS) screenhack.h \
34                   vroot.h xlock.h default.xbm $(MEN) .gdbinit noses/\*
35
36 all::
37
38 echo_tarfiles:
39         @echo $(TARFILES)
40
41 #define ScreenhackTarget(p,ps,deps)                                      @@\
42 all:: p                                                                  @@\
43 p: deps screenhack.h ps.o $(DEPLIBS)                                     @@\
44         RemoveTargetProgram($@)                                          @@\
45         $(CCENVSETUP)                                                      \
46         $(CC) -o $@ $(LDOPTIONS) deps ps.o $(LOCAL_LIBRARIES) $(LDLIBS)  @@\
47                                                                          @@\
48 InstallProgram(p,$(BINDIR))                                              @@\
49 InstallManPage(p,$(MANDIR))                                              @@\
50 clean::                                                                  @@\
51         $(RM) p
52
53 HOBJS=screenhack.o $(UTILS)/resources.o $(UTILS)/visual.o \
54                    $(UTILS)/usleep.o $(UTILS)/yarandom.o
55
56 ScreenhackTarget (qix, qix, $(HOBJS) $(UTILS)/hsv.o)
57 ScreenhackTarget (helix, helix, $(HOBJS) $(UTILS)/hsv.o)
58 ScreenhackTarget (pyro, pyro, $(HOBJS) $(UTILS)/hsv.o)
59 ScreenhackTarget (attraction, attraction, $(HOBJS) $(UTILS)/hsv.o $(UTILS)/spline.o)
60 ScreenhackTarget (rorschach, rorschach, $(HOBJS) $(UTILS)/hsv.o)
61 ScreenhackTarget (hopalong, hopalong, $(HOBJS) $(UTILS)/hsv.o)
62 ScreenhackTarget (xroger, xroger-hack, $(HOBJS) $(UTILS)/hsv.o $(UTILS)/xroger.o)
63 ScreenhackTarget (rocks, rocks, $(HOBJS))
64 ScreenhackTarget (noseguy, noseguy, $(HOBJS))
65 ScreenhackTarget (blitspin, blitspin, $(HOBJS))
66 ScreenhackTarget (greynetic, greynetic, $(HOBJS))
67 ScreenhackTarget (slidescreen, slidescreen, $(HOBJS) $(UTILS)/grabscreen.o)
68 ScreenhackTarget (decayscreen, decayscreen, $(HOBJS) $(UTILS)/grabscreen.o)
69 ScreenhackTarget (imsmap, imsmap, $(HOBJS) $(UTILS)/hsv.o)
70 ScreenhackTarget (maze, maze, $(HOBJS) $(UTILS)/xroger.o)
71 ScreenhackTarget (hypercube, hypercube, $(HOBJS))
72 ScreenhackTarget (halo, halo, $(HOBJS) $(UTILS)/hsv.o)
73 ScreenhackTarget (flame, flame, $(HOBJS) $(UTILS)/hsv.o)
74 ScreenhackTarget (pedal, pedal, $(HOBJS) $(UTILS)/hsv.o)
75 ScreenhackTarget (lmorph, lmorph, $(HOBJS))