e9e6ed87423e8ca783aad3562d7929b1a95f3d12
[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           STAR = *
21           UTILS = ../utils
22        INCLUDES = -I$(UTILS)
23         DEFINES = R5ISMS XPMDEFS
24 LOCAL_LIBRARIES = $(XMULIB) $(XTOOLLIB) XPMLIB $(EXTENSIONLIB) $(XLIB) -lm
25           HACKS = attraction.c greynetic.c helix.c hopalong.c xroger-hack.c \
26                   noseguy.c pyro.c qix.c rocks.c rorschach.c blitspin.c \
27                   imsmap.c slidescreen.c decayscreen.c maze.c hypercube.c \
28                   halo.c flame.c pedal.c lmorph.c \
29                   bubbles.c bubbles.h bubbles_default.c
30             MEN = attraction.man greynetic.man helix.man hopalong.man \
31                   noseguy.man pyro.man xroger.man qix.man rocks.man \
32                   rorschach.man blitspin.man imsmap.man slidescreen.man \
33                   decayscreen.man maze.man hypercube.man halo.man flame.man \
34                   pedal.man lmorph.man \
35                   bubbles.man bubbles.README
36        TARFILES = README Imakefile screenhack.c $(HACKS) screenhack.h \
37                   vroot.h xlock.h default.xbm $(MEN) .gdbinit \
38                   noses/nose.$(STAR) \
39                   bubbles-tools/bubbles$(STAR) \
40                   bubbles-tools/xpm$(STAR) \
41                   bubbles-sources/$(STAR).pov \
42                   bubbles-samples/$(STAR).bub.gz
43
44 all::
45
46 echo_tarfiles:
47         @echo $(TARFILES)
48
49 #define ScreenhackTarget(p,ps,deps)                                      @@\
50 all:: p                                                                  @@\
51 p: deps screenhack.h ps.o $(DEPLIBS)                                     @@\
52         RemoveTargetProgram($@)                                          @@\
53         $(CCENVSETUP)                                                      \
54         $(CC) -o $@ $(LDOPTIONS) deps ps.o $(LOCAL_LIBRARIES) $(LDLIBS)  @@\
55                                                                          @@\
56 InstallProgram(p,$(BINDIR))                                              @@\
57 InstallManPage(p,$(MANDIR))                                              @@\
58 clean::                                                                  @@\
59         $(RM) p
60
61 HOBJS=screenhack.o $(UTILS)/resources.o $(UTILS)/visual.o \
62                    $(UTILS)/usleep.o $(UTILS)/yarandom.o
63
64 ScreenhackTarget (qix, qix, $(HOBJS) $(UTILS)/hsv.o)
65 ScreenhackTarget (helix, helix, $(HOBJS) $(UTILS)/hsv.o)
66 ScreenhackTarget (pyro, pyro, $(HOBJS) $(UTILS)/hsv.o)
67 ScreenhackTarget (attraction, attraction, $(HOBJS) $(UTILS)/hsv.o $(UTILS)/spline.o)
68 ScreenhackTarget (rorschach, rorschach, $(HOBJS) $(UTILS)/hsv.o)
69 ScreenhackTarget (hopalong, hopalong, $(HOBJS) $(UTILS)/hsv.o)
70 ScreenhackTarget (xroger, xroger-hack, $(HOBJS) $(UTILS)/hsv.o $(UTILS)/xroger.o)
71 ScreenhackTarget (rocks, rocks, $(HOBJS))
72 ScreenhackTarget (noseguy, noseguy, $(HOBJS))
73 ScreenhackTarget (blitspin, blitspin, $(HOBJS))
74 ScreenhackTarget (greynetic, greynetic, $(HOBJS))
75 ScreenhackTarget (slidescreen, slidescreen, $(HOBJS) $(UTILS)/grabscreen.o)
76 ScreenhackTarget (decayscreen, decayscreen, $(HOBJS) $(UTILS)/grabscreen.o)
77 ScreenhackTarget (imsmap, imsmap, $(HOBJS) $(UTILS)/hsv.o)
78 ScreenhackTarget (maze, maze, $(HOBJS) $(UTILS)/xroger.o)
79 ScreenhackTarget (hypercube, hypercube, $(HOBJS))
80 ScreenhackTarget (halo, halo, $(HOBJS) $(UTILS)/hsv.o)
81 ScreenhackTarget (flame, flame, $(HOBJS) $(UTILS)/hsv.o)
82 ScreenhackTarget (pedal, pedal, $(HOBJS) $(UTILS)/hsv.o)
83 ScreenhackTarget (lmorph, lmorph, $(HOBJS))
84 ScreenhackTarget (bubbles, bubbles, bubbles_default.o $(HOBJS))