ftp://ftp.smr.ru/pub/0/FreeBSD/releases/distfiles/xscreensaver-3.16.tar.gz
[xscreensaver] / utils / Makefile.in
1 # utils/Makefile.in --- xscreensaver, Copyright (c) 1997 Jamie Zawinski.
2 # the `../configure' script generates `utils/Makefile' from this file.
3
4
5 # The utilities in this directory are used mostly by the demos in ../hacks/.
6 # The Makefile in that directory builds executables by simply referencing
7 # the .o files in this directory.
8
9
10 ##############################################################################
11 #
12 # Some rambling about dynamic libraries follows, ignore it if you don't care
13 # (which is almost assuredly the case.)
14 #
15 #
16 # It would probably be sensible to just build a single .a file in this
17 # directory, and link the hacks against that (statically.)  I haven't done
18 # that for two reasons: first, it works now, and why fix what ain't broke;
19 # second, it wouldn't actually improve anything for the end user (it would
20 # just make the Makefiles be a little smaller.)
21 #
22 # People sometimes suggest that the stuff in this directory should be in a
23 # dynamic library, and that the hacks should be linked dynamically against
24 # it.  I haven't done this for a number of reasons:
25 #
26 #  *  First, the only thing that would improve would be disk space, in that
27 #     the executable files themselves would be smaller.  That's it.  Many other
28 #     things would get worse if we used a dynamic library:
29 #
30 #  *  Complication of installation procedures: suddenly, before any of the
31 #     hacks will work, you need to have a dynamic library installed, and
32 #     the system configured to use it.  This is, basically, rocket science.
33 #     Most people don't know how to do this, it's a huge pain, and on many
34 #     systems, it requires root access.
35 #
36 #  *  Complication of the Makefile: every system builds dynamic libraries
37 #     differently.  Every compiler takes different flags.  I don't want to
38 #     do the hand-holding for the scores of Unix systems and compilers on 
39 #     which people try to build this program.
40 #
41 #  *  Reduction of maintainability: gdb is remarkably bad at dealing with
42 #     debug info in dynamic libraries, and when debugging a hack, one would
43 #     constantly be fighting the linker and the debugger (or linking
44 #     statically when debugging.)
45 #
46 #  *  Version skew: when things are statically linked, it's perfectly ok to
47 #     make incompatible changes to the APIs defined in this directory, so long
48 #     as the current version in ../hacks/ is in sync.  Much more care would 
49 #     need to be taken with such things if dynamic libraries were involved,
50 #     to make sure that the major and minor versions of the library changed
51 #     at the appropriate time.  This isn't too hard, but it's more work, and
52 #     yet another opportunity to screw up.
53 #
54 #  *  Runtime memory usage goes *up*.  That's right, up!  When a program
55 #     links in a dynamic library, the whole library is brought into the 
56 #     address space, not just the files that are actually used.  Normally,
57 #     this is ok, because if several programs are using (for example)
58 #     libX11.so, chances are that the savings outweighs the overhead.  But
59 #     the nature of xscreensaver is that only one of the hacks ever runs at
60 #     a time -- so there would never be a second program using the utils/
61 #     dynamic library with which things could be shared.
62 #
63 #  *  Runtime speed decreases slightly, since dynamic code is marginally
64 #     slower.  On modern machines, this probably doesn't make a perceptible
65 #     difference, however.
66 #
67 # So basically, I just don't think using libraries would be a win, and it would
68 # definitely cause more of a maintenance and portability headache.  However,
69 # if someone else wants to do the work to make it be an option to configure,
70 # and verifies that it works on several (more than three) different Unixes,
71 # I'd be happy to take the patches.
72 #                                                           -- jwz, 30-Jun-98
73 #
74 ##############################################################################
75
76
77 @SET_MAKE@
78 .SUFFIXES:
79 .SUFFIXES: .c .o
80
81 srcdir          = @srcdir@
82 VPATH           = @srcdir@
83 prefix          = @prefix@
84
85 CC              = @CC@
86 CFLAGS          = @CFLAGS@
87 DEFS            = @DEFS@
88
89 DEPEND          = @DEPEND@
90 DEPEND_FLAGS    = @DEPEND_FLAGS@
91 DEPEND_DEFINES  = @DEPEND_DEFINES@
92
93 SHELL           = /bin/sh
94 INSTALL         = @INSTALL@
95 INSTALL_PROGRAM = @INSTALL_PROGRAM@
96 INSTALL_DATA    = @INSTALL_DATA@
97 INSTALL_DIRS    = @INSTALL_DIRS@
98
99 X_CFLAGS        = @X_CFLAGS@
100
101 INCLUDES        = -I$(srcdir) -I.. @INCLUDES@
102
103 SRCS            = alpha.c colors.c fade.c grabscreen.c hsv.c overlay.c \
104                   resources.c spline.c usleep.c visual.c visual-gl.c xmu.c \
105                   xroger.c yarandom.c erase.c sgivideo.c xshm.c xdbe.c
106 OBJS            = alpha.o colors.o fade.o grabscreen.o hsv.o overlay.o \
107                   resources.o spline.o usleep.o visual.o visual-gl.o xmu.o \
108                   xroger.o yarandom.o erase.o sgivideo.o xshm.o xdbe.o
109 HDRS            = alpha.h colors.h fade.h grabscreen.h hsv.h resources.h \
110                   spline.h usleep.h utils.h version.h visual.h vroot.h xmu.h \
111                   yarandom.h erase.h sgivideo.h xshm.h xdbe.h
112 EXTRAS          = README Makefile.in ad2c
113 VMSFILES        = compile_axp.com compile_decc.com vms-gtod.c vms-gtod.h \
114                   vms-strdup.c
115
116 TARFILES        = $(EXTRAS) $(VMSFILES) $(SRCS) $(HDRS)
117
118
119 default: all
120 all: $(OBJS)
121
122 install:   install-program   install-man
123 uninstall: uninstall-program uninstall-man
124
125 install-strip:
126         $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
127
128 install-program:
129 install-man:
130 uninstall-program:
131 uninstall-man:
132
133 clean:
134         -rm -f *.o a.out core
135
136 distclean: clean
137         -rm -f Makefile TAGS *~ "#"*
138
139 # Adds all current dependencies to Makefile
140 depend:
141         $(DEPEND) -s '# DO NOT DELETE: updated by make depend'              \
142         $(DEPEND_FLAGS) --                                                  \
143         $(INCLUDES) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) --      \
144         $(SRCS)
145
146 # Adds some dependencies to Makefile.in -- not totally accurate, but pretty
147 # close.  This excludes dependencies on files in /usr/include, etc.  It tries
148 # to include only dependencies on files which are themselves a part of this
149 # package.
150 distdepend::
151         @echo updating dependencies in `pwd`/Makefile.in... ;               \
152         $(DEPEND) -w 0 -f -                                                 \
153         -s '# DO NOT DELETE: updated by make distdepend' $(DEPEND_FLAGS) -- \
154         $(INCLUDES) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) --      \
155         $(SRCS) |                                                           \
156         (                                                                   \
157           awk '/^# .*Makefile.in ---/,/^# DO .*distdepend/' < Makefile.in ; \
158           sed -e 's@ \./@ @g;s@ /[^ ]*@@g;/^.*:$$/d'                        \
159               -e 's@ \([^$$]\)@ $$(srcdir)/\1@g'                            \
160               -e 's@ $$(srcdir)/\(.*config.h\)@ \1@g' ;                     \
161           echo ''                                                           \
162         ) > /tmp/distdepend.$$$$ &&                                         \
163         mv Makefile.in Makefile.in.bak &&                                   \
164         mv /tmp/distdepend.$$$$ Makefile.in
165
166 TAGS: tags
167 tags:
168         find $(srcdir) -name '*.[chly]' -print | xargs etags -a
169
170 echo_tarfiles:
171         @echo $(TARFILES)
172
173
174 # How we build object files in this directory.
175 .c.o:
176         $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) $<
177
178
179 # Rules for generating the VMS makefiles on Unix, so that it doesn't have to
180 # be done by hand...
181 #
182 VMS_AXP_COMPILE=$$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-])
183
184 compile_axp.com: Makefile.in
185         @echo generating $@ from $<...  ;                                   \
186         ( ( for c in $(SRCS) vms-*.c ; do                                   \
187               c=`echo $$c | tr a-z A-Z` ;                                   \
188               echo "$(VMS_AXP_COMPILE) $$c" ;                               \
189             done ;                                                          \
190           ) | sort ;                                                        \
191           echo '$$ lib/cre utils.olb_axp' ;                                 \
192           echo '$$ lib utils.olb_axp *.obj' ;                               \
193           echo '$$! delete/noconf *.obj;' ;                                 \
194         ) > $@
195
196 compile_decc.com: compile_axp.com
197         @echo generating $@ from $<...  ;                                   \
198         sed 's/axp/decc/g' < $< > $@
199
200 distdepend:: compile_axp.com compile_decc.com
201
202
203 ##############################################################################
204 #
205 # DO NOT DELETE: updated by make distdepend
206 # $(srcdir)/DO $(srcdir)/NOT $(srcdir)/DELETE: $(srcdir)/updated $(srcdir)/by $(srcdir)/make $(srcdir)/distdepend
207
208 alpha.o: $(srcdir)/utils.h
209 alpha.o: ../config.h
210 alpha.o: $(srcdir)/alpha.h
211 alpha.o: $(srcdir)/visual.h
212 alpha.o: $(srcdir)/hsv.h
213 alpha.o: $(srcdir)/yarandom.h
214 alpha.o: $(srcdir)/resources.h
215 colors.o: $(srcdir)/utils.h
216 colors.o: ../config.h
217 colors.o: $(srcdir)/hsv.h
218 colors.o: $(srcdir)/yarandom.h
219 colors.o: $(srcdir)/visual.h
220 colors.o: $(srcdir)/colors.h
221 fade.o: $(srcdir)/utils.h
222 fade.o: ../config.h
223 fade.o: $(srcdir)/visual.h
224 fade.o: $(srcdir)/usleep.h
225 fade.o: $(srcdir)/fade.h
226 grabscreen.o: $(srcdir)/utils.h
227 grabscreen.o: ../config.h
228 grabscreen.o: $(srcdir)/yarandom.h
229 grabscreen.o: $(srcdir)/usleep.h
230 grabscreen.o: $(srcdir)/colors.h
231 grabscreen.o: $(srcdir)/grabscreen.h
232 grabscreen.o: $(srcdir)/sgivideo.h
233 grabscreen.o: $(srcdir)/visual.h
234 grabscreen.o: $(srcdir)/resources.h
235 grabscreen.o: $(srcdir)/vroot.h
236 hsv.o: $(srcdir)/utils.h
237 hsv.o: ../config.h
238 hsv.o: $(srcdir)/hsv.h
239 overlay.o: $(srcdir)/utils.h
240 overlay.o: ../config.h
241 overlay.o: $(srcdir)/visual.h
242 resources.o: $(srcdir)/utils.h
243 resources.o: ../config.h
244 resources.o: $(srcdir)/resources.h
245 spline.o: $(srcdir)/utils.h
246 spline.o: ../config.h
247 spline.o: $(srcdir)/spline.h
248 usleep.o: ../config.h
249 visual.o: $(srcdir)/utils.h
250 visual.o: ../config.h
251 visual.o: $(srcdir)/resources.h
252 visual.o: $(srcdir)/visual.h
253 visual-gl.o: $(srcdir)/utils.h
254 visual-gl.o: ../config.h
255 visual-gl.o: $(srcdir)/visual.h
256 xmu.o: ../config.h
257 xroger.o: $(srcdir)/utils.h
258 xroger.o: ../config.h
259 xroger.o: $(srcdir)/spline.h
260 yarandom.o: ../config.h
261 yarandom.o: $(srcdir)/yarandom.h
262 erase.o: $(srcdir)/utils.h
263 erase.o: ../config.h
264 erase.o: $(srcdir)/yarandom.h
265 erase.o: $(srcdir)/usleep.h
266 erase.o: $(srcdir)/resources.h
267 sgivideo.o: $(srcdir)/utils.h
268 sgivideo.o: ../config.h
269 sgivideo.o: $(srcdir)/sgivideo.h
270 sgivideo.o: $(srcdir)/resources.h
271 sgivideo.o: $(srcdir)/visual.h
272 xshm.o: $(srcdir)/utils.h
273 xshm.o: ../config.h
274 xshm.o: $(srcdir)/xshm.h
275 xshm.o: $(srcdir)/resources.h
276 xdbe.o: $(srcdir)/utils.h
277 xdbe.o: ../config.h
278 xdbe.o: $(srcdir)/xdbe.h
279 xdbe.o: $(srcdir)/resources.h
280