30cd49c214707b3d35efdefcdce2927f7866db79
[xscreensaver] / hacks / Imakefile
1 /*
2  * Imakefile file for xscreensaver, Copyright (c) 1993 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 EXTRA_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
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        TARFILES = README Imakefile screenhack.c $(HACKS) screenhack.h \
33                   vroot.h xlock.h default.xbm $(MEN) .gdbinit noses/\*
34
35 all::
36
37 echo_tarfiles:
38         @echo $(TARFILES)
39
40 #define ScreenhackTarget(p,ps,deps)                                      @@\
41 all:: p                                                                  @@\
42 p: deps screenhack.h ps.o $(DEPLIBS)                                     @@\
43         RemoveTargetProgram($@)                                          @@\
44         $(CC) -o $@ $(LDOPTIONS) deps ps.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\
45                                                                          @@\
46 InstallProgram(p,$(BINDIR))                                              @@\
47 InstallManPage(p,$(MANDIR))                                              @@\
48 clean::                                                                  @@\
49         $(RM) p
50
51 HOBJS=screenhack.o $(UTILS)/resources.o $(UTILS)/usleep.o
52
53 ScreenhackTarget (qix, qix, $(HOBJS) $(UTILS)/hsv.o)
54 ScreenhackTarget (helix, helix, $(HOBJS) $(UTILS)/hsv.o)
55 ScreenhackTarget (pyro, pyro, $(HOBJS) $(UTILS)/hsv.o)
56 ScreenhackTarget (attraction, attraction, $(HOBJS) $(UTILS)/hsv.o $(UTILS)/spline.o)
57 ScreenhackTarget (rorschach, rorschach, $(HOBJS) $(UTILS)/hsv.o)
58 ScreenhackTarget (hopalong, hopalong, $(HOBJS) $(UTILS)/hsv.o)
59 ScreenhackTarget (xroger, xroger-hack, $(HOBJS) $(UTILS)/hsv.o $(UTILS)/xroger.o)
60 ScreenhackTarget (rocks, rocks, $(HOBJS))
61 ScreenhackTarget (noseguy, noseguy, $(HOBJS))
62 ScreenhackTarget (blitspin, blitspin, $(HOBJS))
63 ScreenhackTarget (greynetic, greynetic, $(HOBJS))
64 ScreenhackTarget (slidescreen, slidescreen, $(HOBJS) $(UTILS)/grabscreen.o)
65 ScreenhackTarget (decayscreen, decayscreen, $(HOBJS) $(UTILS)/grabscreen.o)
66 ScreenhackTarget (imsmap, imsmap, $(HOBJS) $(UTILS)/hsv.o)
67 ScreenhackTarget (maze, maze, $(HOBJS) $(UTILS)/xroger.o)
68 ScreenhackTarget (hypercube, hypercube, $(HOBJS))
69 ScreenhackTarget (halo, halo, $(HOBJS) $(UTILS)/hsv.o)
70 ScreenhackTarget (flame, flame, $(HOBJS) $(UTILS)/hsv.o)