# Generated automatically from Makefile.in by configure.
# utils/Makefile.in --- xscreensaver, Copyright (c) 1997 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
#
##############################################################################



.SUFFIXES:
.SUFFIXES: .c .o

srcdir		= .
prefix		= /elmar/sdl/xscreensaver/

CC		= gcc -Wall -Wstrict-prototypes -Wnested-externs -Wno-format -Wp,-lang-c89
CFLAGS		= -g -O2
DEFS		= -DHAVE_CONFIG_H

DEPEND		= makedepend
DEPEND_FLAGS	= 
DEPEND_DEFINES	= 

SHELL		= /bin/sh
INSTALL		= /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA	= ${INSTALL} -m 644
INSTALL_DIRS	= ${INSTALL} -d

X_CFLAGS	=  -I/usr/X11R6/include

INCLUDES	= -I$(srcdir) -I..  -I/usr/include -DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include -I/usr/lib/glib/include -I/usr/X11R6/include -I${prefix}/include

SRCS		= alpha.c colors.c fade.c grabscreen.c hsv.c overlay.c \
		  resources.c spline.c usleep.c visual.c visual-gl.c xmu.c \
		  xroger.c yarandom.c erase.c sgivideo.c xshm.c xdbe.c
OBJS		= alpha.o colors.o fade.o grabscreen.o hsv.o overlay.o \
		  resources.o spline.o usleep.o visual.o visual-gl.o xmu.o \
		  xroger.o yarandom.o erase.o sgivideo.o xshm.o xdbe.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 sgivideo.h xshm.h xdbe.h
EXTRAS		= README Makefile.in ad2c
VMSFILES	= compile_axp.com compile_decc.com vms-gtod.c vms-gtod.h \
		  vms-strdup.c

TARFILES	= $(EXTRAS) $(VMSFILES) $(SRCS) $(HDRS)


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) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) --	    \
	$(SRCS) | 							    \
	(								    \
	  awk '/^# .*Makefile.in ---/,/^# DO .*distdepend/' < Makefile.in ; \
	  sed -e 's@ \./@ @g;s@ /[^ ]*@@g;/^.*:$$/d'			    \
	      -e 's@ \([^$$]\)@ $$(srcdir)/\1@g'			    \
	      -e 's@ $$(srcdir)/\(.*config.h\)@ \1@g' ;			    \
	  echo ''							    \
	) > /tmp/distdepend.$$$$ &&					    \
	mv Makefile.in Makefile.in.bak &&				    \
	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.
.c.o:
	$(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) $<


# 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 ;							    \
          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
# $(srcdir)/DO $(srcdir)/NOT $(srcdir)/DELETE: $(srcdir)/updated $(srcdir)/by $(srcdir)/make $(srcdir)/distdepend

alpha.o: $(srcdir)/utils.h
alpha.o: ../config.h
alpha.o: $(srcdir)/alpha.h
alpha.o: $(srcdir)/visual.h
alpha.o: $(srcdir)/hsv.h
alpha.o: $(srcdir)/yarandom.h
alpha.o: $(srcdir)/resources.h
colors.o: $(srcdir)/utils.h
colors.o: ../config.h
colors.o: $(srcdir)/hsv.h
colors.o: $(srcdir)/yarandom.h
colors.o: $(srcdir)/visual.h
colors.o: $(srcdir)/colors.h
fade.o: $(srcdir)/utils.h
fade.o: ../config.h
fade.o: $(srcdir)/visual.h
fade.o: $(srcdir)/usleep.h
fade.o: $(srcdir)/fade.h
grabscreen.o: $(srcdir)/utils.h
grabscreen.o: ../config.h
grabscreen.o: $(srcdir)/yarandom.h
grabscreen.o: $(srcdir)/usleep.h
grabscreen.o: $(srcdir)/colors.h
grabscreen.o: $(srcdir)/grabscreen.h
grabscreen.o: $(srcdir)/sgivideo.h
grabscreen.o: $(srcdir)/visual.h
grabscreen.o: $(srcdir)/resources.h
grabscreen.o: $(srcdir)/vroot.h
hsv.o: $(srcdir)/utils.h
hsv.o: ../config.h
hsv.o: $(srcdir)/hsv.h
overlay.o: $(srcdir)/utils.h
overlay.o: ../config.h
overlay.o: $(srcdir)/visual.h
resources.o: $(srcdir)/utils.h
resources.o: ../config.h
resources.o: $(srcdir)/resources.h
spline.o: $(srcdir)/utils.h
spline.o: ../config.h
spline.o: $(srcdir)/spline.h
usleep.o: ../config.h
visual.o: $(srcdir)/utils.h
visual.o: ../config.h
visual.o: $(srcdir)/resources.h
visual.o: $(srcdir)/visual.h
visual-gl.o: $(srcdir)/utils.h
visual-gl.o: ../config.h
visual-gl.o: $(srcdir)/visual.h
xmu.o: ../config.h
xroger.o: $(srcdir)/utils.h
xroger.o: ../config.h
xroger.o: $(srcdir)/spline.h
yarandom.o: ../config.h
yarandom.o: $(srcdir)/yarandom.h
erase.o: $(srcdir)/utils.h
erase.o: ../config.h
erase.o: $(srcdir)/yarandom.h
erase.o: $(srcdir)/usleep.h
erase.o: $(srcdir)/resources.h
sgivideo.o: $(srcdir)/utils.h
sgivideo.o: ../config.h
sgivideo.o: $(srcdir)/sgivideo.h
sgivideo.o: $(srcdir)/resources.h
sgivideo.o: $(srcdir)/visual.h
xshm.o: $(srcdir)/utils.h
xshm.o: ../config.h
xshm.o: $(srcdir)/xshm.h
xshm.o: $(srcdir)/resources.h
xdbe.o: $(srcdir)/utils.h
xdbe.o: ../config.h
xdbe.o: $(srcdir)/xdbe.h
xdbe.o: $(srcdir)/resources.h

