1 # utils/Makefile.in --- xscreensaver, Copyright (c) 1997-2010 Jamie Zawinski.
2 # the `../configure' script generates `utils/Makefile' from this file.
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.
10 ##############################################################################
12 # Some rambling about dynamic libraries follows, ignore it if you don't care
13 # (which is almost assuredly the case.)
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.)
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:
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:
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.
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.
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.)
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.
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.
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.
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.
74 ##############################################################################
84 datarootdir = @datarootdir@
91 DEPEND_FLAGS = @DEPEND_FLAGS@
92 DEPEND_DEFINES = @DEPEND_DEFINES@
96 INSTALL_PROGRAM = @INSTALL_PROGRAM@
97 INSTALL_DATA = @INSTALL_DATA@
98 INSTALL_DIRS = @INSTALL_DIRS@
100 X_CFLAGS = @X_CFLAGS@
102 INCLUDES_1 = -I$(srcdir) -I..
103 INCLUDES = $(INCLUDES_1) @INCLUDES@
105 SRCS = alpha.c colors.c fade.c grabscreen.c grabclient.c hsv.c \
106 overlay.c resources.c spline.c usleep.c visual.c \
107 visual-gl.c xmu.c logo.c yarandom.c erase.c \
108 xshm.c xdbe.c colorbars.c minixpm.c textclient.c \
109 aligned_malloc.c thread_util.c async_netdb.c xft.c utf8wc.c
110 OBJS = alpha.o colors.o fade.o grabscreen.o grabclient.o hsv.o \
111 overlay.o resources.o spline.o usleep.o visual.o \
112 visual-gl.o xmu.o logo.o yarandom.o erase.o \
113 xshm.o xdbe.o colorbars.o minixpm.o textclient.o \
114 aligned_malloc.o thread_util.o async_netdb.o xft.o utf8wc.o
115 HDRS = alpha.h colors.h fade.h grabscreen.h hsv.h resources.h \
116 spline.h usleep.h utils.h version.h visual.h vroot.h xmu.h \
117 yarandom.h erase.h xshm.h xdbe.h colorbars.h minixpm.h \
118 xscreensaver-intl.h textclient.h aligned_malloc.h \
119 thread_util.h async_netdb.h xft.h utf8wc.h
121 LOGOS = images/$(STAR).xpm \
125 EXTRAS = README Makefile.in ad2c
126 VMSFILES = compile_axp.com compile_decc.com vms-gtod.c vms-gtod.h \
129 TARFILES = $(EXTRAS) $(VMSFILES) $(SRCS) $(HDRS) $(LOGOS)
135 install: install-program install-man
136 uninstall: uninstall-program uninstall-man
139 $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
147 -rm -f *.o a.out core
150 -rm -f Makefile TAGS *~ "#"*
152 # Adds all current dependencies to Makefile
154 $(DEPEND) -s '# DO NOT DELETE: updated by make depend' \
156 $(INCLUDES) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) -- \
159 # Adds some dependencies to Makefile.in -- not totally accurate, but pretty
160 # close. This excludes dependencies on files in /usr/include, etc. It tries
161 # to include only dependencies on files which are themselves a part of this
164 @echo updating dependencies in `pwd`/Makefile.in... ; \
165 $(DEPEND) -w 0 -f - \
166 -s '# DO NOT DELETE: updated by make distdepend' $(DEPEND_FLAGS) -- \
167 $(INCLUDES_1) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) -- \
168 $(SRCS) 2>/dev/null | \
171 awk '/^# .*Makefile.in ---/,/^# DO .*distdepend/' < Makefile.in ; \
173 -e 's@ \./@ @g;s@ /[^ ]*@@g;/^.*:$$/d' \
174 -e 's@ \([^$$]\)@ $$(srcdir)/\1@g' \
175 -e 's@ $$(srcdir)/\(.*config.h\)@ \1@g' ; \
177 ) > /tmp/distdepend.$$$$ && \
178 mv Makefile.in Makefile.in.bak && \
179 mv /tmp/distdepend.$$$$ Makefile.in
183 find $(srcdir) -name '*.[chly]' -print | xargs etags -a
189 # How we build object files in this directory.
191 $(CC) -c $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) $<
194 # Rules for generating the VMS makefiles on Unix, so that it doesn't have to
197 VMS_AXP_COMPILE=$$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-])
199 compile_axp.com: Makefile.in
200 @echo generating $@ from $<... ; \
201 ( ( for c in $(SRCS) vms-*.c ; do \
202 c=`echo $$c | tr a-z A-Z` ; \
203 echo "$(VMS_AXP_COMPILE) $$c" ; \
206 echo '$$ lib/cre utils.olb_axp' ; \
207 echo '$$ lib utils.olb_axp *.obj' ; \
208 echo '$$! delete/noconf *.obj;' ; \
211 compile_decc.com: compile_axp.com
212 @echo generating $@ from $<... ; \
213 sed 's/axp/decc/g' < $< > $@
215 distdepend:: compile_axp.com compile_decc.com
218 ##############################################################################
220 # DO NOT DELETE: updated by make distdepend
222 aligned_malloc.o: $(srcdir)/aligned_malloc.h
223 alpha.o: $(srcdir)/alpha.h
225 alpha.o: $(srcdir)/hsv.h
226 alpha.o: $(srcdir)/resources.h
227 alpha.o: $(srcdir)/utils.h
228 alpha.o: $(srcdir)/visual.h
229 alpha.o: $(srcdir)/yarandom.h
230 async_netdb.o: $(srcdir)/aligned_malloc.h
231 async_netdb.o: $(srcdir)/async_netdb.h
232 async_netdb.o: ../config.h
233 async_netdb.o: $(srcdir)/thread_util.h
234 colorbars.o: $(srcdir)/colorbars.h
235 colorbars.o: ../config.h
236 colorbars.o: $(srcdir)/resources.h
237 colorbars.o: $(srcdir)/utils.h
238 colors.o: $(srcdir)/colors.h
239 colors.o: ../config.h
240 colors.o: $(srcdir)/hsv.h
241 colors.o: $(srcdir)/utils.h
242 colors.o: $(srcdir)/visual.h
243 colors.o: $(srcdir)/yarandom.h
245 erase.o: $(srcdir)/erase.h
246 erase.o: $(srcdir)/resources.h
247 erase.o: $(srcdir)/usleep.h
248 erase.o: $(srcdir)/utils.h
249 erase.o: $(srcdir)/yarandom.h
251 fade.o: $(srcdir)/fade.h
252 fade.o: $(srcdir)/usleep.h
253 fade.o: $(srcdir)/utils.h
254 fade.o: $(srcdir)/visual.h
255 grabclient.o: ../config.h
256 grabclient.o: $(srcdir)/grabscreen.h
257 grabclient.o: $(srcdir)/resources.h
258 grabclient.o: $(srcdir)/utils.h
259 grabclient.o: $(srcdir)/vroot.h
260 grabclient.o: $(srcdir)/yarandom.h
261 grabscreen.o: $(srcdir)/colors.h
262 grabscreen.o: ../config.h
263 grabscreen.o: $(srcdir)/grabscreen.h
264 grabscreen.o: $(srcdir)/resources.h
265 grabscreen.o: $(srcdir)/usleep.h
266 grabscreen.o: $(srcdir)/utils.h
267 grabscreen.o: $(srcdir)/visual.h
268 grabscreen.o: $(srcdir)/vroot.h
269 grabscreen.o: $(srcdir)/yarandom.h
271 hsv.o: $(srcdir)/hsv.h
272 hsv.o: $(srcdir)/utils.h
274 logo.o: $(srcdir)/images/logo-180.xpm
275 logo.o: $(srcdir)/images/logo-50.xpm
276 logo.o: $(srcdir)/minixpm.h
277 logo.o: $(srcdir)/resources.h
278 logo.o: $(srcdir)/utils.h
279 logo.o: $(srcdir)/visual.h
280 minixpm.o: ../config.h
281 minixpm.o: $(srcdir)/minixpm.h
282 overlay.o: ../config.h
283 overlay.o: $(srcdir)/utils.h
284 overlay.o: $(srcdir)/visual.h
285 resources.o: ../config.h
286 resources.o: $(srcdir)/resources.h
287 resources.o: $(srcdir)/utils.h
288 spline.o: ../config.h
289 spline.o: $(srcdir)/spline.h
290 spline.o: $(srcdir)/utils.h
291 textclient.o: ../config.h
292 textclient.o: $(srcdir)/resources.h
293 textclient.o: $(srcdir)/textclient.h
294 textclient.o: $(srcdir)/utils.h
295 thread_util.o: $(srcdir)/aligned_malloc.h
296 thread_util.o: ../config.h
297 thread_util.o: $(srcdir)/resources.h
298 thread_util.o: $(srcdir)/thread_util.h
299 usleep.o: ../config.h
300 utf8wc.o: ../config.h
301 utf8wc.o: $(srcdir)/utf8wc.h
302 visual-gl.o: ../config.h
303 visual-gl.o: $(srcdir)/resources.h
304 visual-gl.o: $(srcdir)/utils.h
305 visual-gl.o: $(srcdir)/visual.h
306 visual.o: ../config.h
307 visual.o: $(srcdir)/resources.h
308 visual.o: $(srcdir)/utils.h
309 visual.o: $(srcdir)/visual.h
311 xdbe.o: $(srcdir)/resources.h
312 xdbe.o: $(srcdir)/utils.h
313 xdbe.o: $(srcdir)/xdbe.h
317 xshm.o: $(srcdir)/resources.h
318 xshm.o: $(srcdir)/utils.h
319 xshm.o: $(srcdir)/xshm.h
320 yarandom.o: ../config.h
321 yarandom.o: $(srcdir)/yarandom.h