# utils/Makefile.in --- xscreensaver, Copyright (c) 1997-2010 Jamie Zawinski.
# the `../configure' script generates `utils/Makefile' from this file.
# The utilities in this directory are used mostly by the demos in ../hacks/.
# The Makefile in that directory builds executables by simply referencing
# the .o files in this directory.
##############################################################################
#
# Some rambling about dynamic libraries follows, ignore it if you don't care
# (which is almost assuredly the case.)
#
#
# It would probably be sensible to just build a single .a file in this
# directory, and link the hacks against that (statically.) I haven't done
# that for two reasons: first, it works now, and why fix what ain't broke;
# second, it wouldn't actually improve anything for the end user (it would
# just make the Makefiles be a little smaller.)
#
# People sometimes suggest that the stuff in this directory should be in a
# dynamic library, and that the hacks should be linked dynamically against
# it. I haven't done this for a number of reasons:
#
# * First, the only thing that would improve would be disk space, in that
# the executable files themselves would be smaller. That's it. Many other
# things would get worse if we used a dynamic library:
#
# * Complication of installation procedures: suddenly, before any of the
# hacks will work, you need to have a dynamic library installed, and
# the system configured to use it. This is, basically, rocket science.
# Most people don't know how to do this, it's a huge pain, and on many
# systems, it requires root access.
#
# * Complication of the Makefile: every system builds dynamic libraries
# differently. Every compiler takes different flags. I don't want to
# do the hand-holding for the scores of Unix systems and compilers on
# which people try to build this program.
#
# * Reduction of maintainability: gdb is remarkably bad at dealing with
# debug info in dynamic libraries, and when debugging a hack, one would
# constantly be fighting the linker and the debugger (or linking
# statically when debugging.)
#
# * Version skew: when things are statically linked, it's perfectly ok to
# make incompatible changes to the APIs defined in this directory, so long
# as the current version in ../hacks/ is in sync. Much more care would
# need to be taken with such things if dynamic libraries were involved,
# to make sure that the major and minor versions of the library changed
# at the appropriate time. This isn't too hard, but it's more work, and
# yet another opportunity to screw up.
#
# * Runtime memory usage goes *up*. That's right, up! When a program
# links in a dynamic library, the whole library is brought into the
# address space, not just the files that are actually used. Normally,
# this is ok, because if several programs are using (for example)
# libX11.so, chances are that the savings outweighs the overhead. But
# the nature of xscreensaver is that only one of the hacks ever runs at
# a time -- so there would never be a second program using the utils/
# dynamic library with which things could be shared.
#
# * Runtime speed decreases slightly, since dynamic code is marginally
# slower. On modern machines, this probably doesn't make a perceptible
# difference, however.
#
# So basically, I just don't think using libraries would be a win, and it would
# definitely cause more of a maintenance and portability headache. However,
# if someone else wants to do the work to make it be an option to configure,
# and verifies that it works on several (more than three) different Unixes,
# I'd be happy to take the patches.
# -- jwz, 30-Jun-98
#
##############################################################################
@SET_MAKE@
.SUFFIXES:
.SUFFIXES: .c .o
srcdir = @srcdir@
VPATH = @srcdir@
prefix = @prefix@
datarootdir = @datarootdir@
CC = @CC@
CFLAGS = @CFLAGS@
DEFS = @DEFS@
DEPEND = @DEPEND@
DEPEND_FLAGS = @DEPEND_FLAGS@
DEPEND_DEFINES = @DEPEND_DEFINES@
SHELL = /bin/sh
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_DIRS = @INSTALL_DIRS@
X_CFLAGS = @X_CFLAGS@
INCLUDES_1 = -I$(srcdir) -I..
INCLUDES = $(INCLUDES_1) @INCLUDES@
SRCS = alpha.c colors.c fade.c grabscreen.c grabclient.c hsv.c \
overlay.c resources.c spline.c usleep.c visual.c \
visual-gl.c xmu.c logo.c yarandom.c erase.c \
xshm.c xdbe.c colorbars.c minixpm.c textclient.c \
textclient-mobile.c aligned_malloc.c thread_util.c \
async_netdb.c xft.c utf8wc.c pow2.c font-retry.c
OBJS = alpha.o colors.o fade.o grabscreen.o grabclient.o hsv.o \
overlay.o resources.o spline.o usleep.o visual.o \
visual-gl.o xmu.o logo.o yarandom.o erase.o \
xshm.o xdbe.o colorbars.o minixpm.o textclient.o \
textclient-mobile.o aligned_malloc.o thread_util.o \
async_netdb.o xft.o utf8wc.o pow2.o \
font-retry.o font-retry-xft.o
HDRS = alpha.h colors.h fade.h grabscreen.h hsv.h resources.h \
spline.h usleep.h utils.h version.h visual.h vroot.h xmu.h \
yarandom.h erase.h xshm.h xdbe.h colorbars.h minixpm.h \
xscreensaver-intl.h textclient.h aligned_malloc.h \
thread_util.h async_netdb.h xft.h utf8wc.h pow2.h \
font-retry.h
STAR = *
LOGOS = images/$(STAR).xpm \
images/$(STAR).png \
images/$(STAR).gif \
images/$(STAR).eps
EXTRAS = README Makefile.in ad2c bin2c
VMSFILES = compile_axp.com compile_decc.com vms-gtod.c vms-gtod.h \
vms-strdup.c
TARFILES = $(EXTRAS) $(VMSFILES) $(SRCS) $(HDRS) $(LOGOS)
default: all
all: $(OBJS)
install: install-program install-man
uninstall: uninstall-program uninstall-man
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
install-program:
install-man:
uninstall-program:
uninstall-man:
clean:
-rm -f *.o a.out core
distclean: clean
-rm -f Makefile TAGS *~ "#"*
# Adds all current dependencies to Makefile
depend:
$(DEPEND) -s '# DO NOT DELETE: updated by make depend' \
$(DEPEND_FLAGS) -- \
$(INCLUDES) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) -- \
$(SRCS)
# Adds some dependencies to Makefile.in -- not totally accurate, but pretty
# close. This excludes dependencies on files in /usr/include, etc. It tries
# to include only dependencies on files which are themselves a part of this
# package.
distdepend::
@echo updating dependencies in `pwd`/Makefile.in... ; \
$(DEPEND) -w 0 -f - \
-s '# DO NOT DELETE: updated by make distdepend' $(DEPEND_FLAGS) -- \
$(INCLUDES_1) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) -- \
$(SRCS) 2>/dev/null | \
sort -d | \
( \
awk '/^# .*Makefile.in ---/,/^# DO .*distdepend/' < Makefile.in ; \
sed -e '/^#.*/d' \
-e 's@ \./@ @g;s@ /[^ ]*@@g;/^.*:$$/d' \
-e 's@ \([^$$]\)@ $$(srcdir)/\1@g' \
-e 's@ $$(srcdir)/\(.*config.h\)@ \1@g' ; \
echo '' \
) > /tmp/distdepend.$$$$ && \
mv /tmp/distdepend.$$$$ Makefile.in
TAGS: tags
tags:
find $(srcdir) -name '*.[chly]' -print | xargs etags -a
echo_tarfiles:
@echo $(TARFILES)
# How we build object files in this directory.
CCUTILS = $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS)
.c.o:
$(CC) -c $(CCUTILS) $<
# Two versions of this: driver/ does not link with Xft, but hacks/ does.
font-retry-xft.o: $(srcdir)/font-retry.c
$(CC) -c $(CCUTILS) -DUSE_XFT $< -o $@
# Rules for generating the VMS makefiles on Unix, so that it doesn't have to
# be done by hand...
#
VMS_AXP_COMPILE=$$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-])
compile_axp.com: Makefile.in
@echo generating $@ from $<... ; \
( ( for c in $(SRCS) vms-*.c ; do \
c=`echo $$c | tr a-z A-Z` ; \
echo "$(VMS_AXP_COMPILE) $$c" ; \
done ; \
) | sort -d ; \
echo '$$ lib/cre utils.olb_axp' ; \
echo '$$ lib utils.olb_axp *.obj' ; \
echo '$$! delete/noconf *.obj;' ; \
) > $@
compile_decc.com: compile_axp.com
@echo generating $@ from $<... ; \
sed 's/axp/decc/g' < $< > $@
distdepend:: compile_axp.com compile_decc.com
##############################################################################
#
# DO NOT DELETE: updated by make distdepend
aligned_malloc.o: $(srcdir)/aligned_malloc.h
alpha.o: $(srcdir)/alpha.h
alpha.o: ../config.h
alpha.o: $(srcdir)/hsv.h
alpha.o: $(srcdir)/resources.h
alpha.o: $(srcdir)/utils.h
alpha.o: $(srcdir)/visual.h
alpha.o: $(srcdir)/yarandom.h
async_netdb.o: $(srcdir)/aligned_malloc.h
async_netdb.o: $(srcdir)/async_netdb.h
async_netdb.o: ../config.h
async_netdb.o: $(srcdir)/thread_util.h
colorbars.o: $(srcdir)/colorbars.h
colorbars.o: ../config.h
colorbars.o: $(srcdir)/../hacks/ximage-loader.h
colorbars.o: $(srcdir)/resources.h
colorbars.o: $(srcdir)/utils.h
colors.o: $(srcdir)/colors.h
colors.o: ../config.h
colors.o: $(srcdir)/hsv.h
colors.o: $(srcdir)/utils.h
colors.o: $(srcdir)/visual.h
colors.o: $(srcdir)/yarandom.h
erase.o: ../config.h
erase.o: $(srcdir)/erase.h
erase.o: $(srcdir)/resources.h
erase.o: $(srcdir)/usleep.h
erase.o: $(srcdir)/utils.h
erase.o: $(srcdir)/yarandom.h
fade.o: ../config.h
fade.o: $(srcdir)/fade.h
fade.o: $(srcdir)/usleep.h
fade.o: $(srcdir)/utils.h
fade.o: $(srcdir)/visual.h
font-retry.o: ../config.h
font-retry.o: $(srcdir)/font-retry.h
font-retry.o: $(srcdir)/utils.h
font-retry.o: $(srcdir)/visual.h
font-retry.o: $(srcdir)/xft.h
grabclient.o: ../config.h
grabclient.o: $(srcdir)/grabscreen.h
grabclient.o: $(srcdir)/resources.h
grabclient.o: $(srcdir)/utils.h
grabclient.o: $(srcdir)/vroot.h
grabclient.o: $(srcdir)/yarandom.h
grabscreen.o: $(srcdir)/colors.h
grabscreen.o: ../config.h
grabscreen.o: $(srcdir)/grabscreen.h
grabscreen.o: $(srcdir)/resources.h
grabscreen.o: $(srcdir)/usleep.h
grabscreen.o: $(srcdir)/utils.h
grabscreen.o: $(srcdir)/visual.h
grabscreen.o: $(srcdir)/vroot.h
grabscreen.o: $(srcdir)/yarandom.h
hsv.o: ../config.h
hsv.o: $(srcdir)/hsv.h
hsv.o: $(srcdir)/utils.h
logo.o: ../config.h
logo.o: $(srcdir)/images/logo-180.xpm
logo.o: $(srcdir)/images/logo-50.xpm
logo.o: $(srcdir)/minixpm.h
logo.o: $(srcdir)/resources.h
logo.o: $(srcdir)/utils.h
logo.o: $(srcdir)/visual.h
minixpm.o: ../config.h
minixpm.o: $(srcdir)/minixpm.h
overlay.o: ../config.h
overlay.o: $(srcdir)/utils.h
overlay.o: $(srcdir)/visual.h
pow2.o: $(srcdir)/pow2.h
resources.o: ../config.h
resources.o: $(srcdir)/resources.h
resources.o: $(srcdir)/utils.h
spline.o: ../config.h
spline.o: $(srcdir)/spline.h
spline.o: $(srcdir)/utils.h
textclient-mobile.o: ../config.h
textclient-mobile.o: $(srcdir)/utils.h
textclient.o: ../config.h
textclient.o: $(srcdir)/resources.h
textclient.o: $(srcdir)/textclient.h
textclient.o: $(srcdir)/utils.h
thread_util.o: $(srcdir)/aligned_malloc.h
thread_util.o: ../config.h
thread_util.o: $(srcdir)/resources.h
thread_util.o: $(srcdir)/thread_util.h
usleep.o: ../config.h
utf8wc.o: ../config.h
utf8wc.o: $(srcdir)/utf8wc.h
visual-gl.o: ../config.h
visual-gl.o: $(srcdir)/resources.h
visual-gl.o: $(srcdir)/utils.h
visual-gl.o: $(srcdir)/visual.h
visual.o: ../config.h
visual.o: $(srcdir)/resources.h
visual.o: $(srcdir)/utils.h
visual.o: $(srcdir)/visual.h
xdbe.o: ../config.h
xdbe.o: $(srcdir)/resources.h
xdbe.o: $(srcdir)/utils.h
xdbe.o: $(srcdir)/xdbe.h
xft.o: ../config.h
xmu.o: ../config.h
xshm.o: $(srcdir)/aligned_malloc.h
xshm.o: ../config.h
xshm.o: $(srcdir)/resources.h
xshm.o: $(srcdir)/thread_util.h
xshm.o: $(srcdir)/utils.h
xshm.o: $(srcdir)/xshm.h
yarandom.o: ../config.h
yarandom.o: $(srcdir)/yarandom.h