CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
DEFS = @DEFS@
+DEFS2 = $(DEFS) -DDEFAULT_PATH_PREFIX='"@HACKDIR@"'
LIBS = @LIBS@
DEPEND = @DEPEND@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SETUID = @INSTALL_SETUID@
INSTALL_DATA = @INSTALL_DATA@
+INSTALL_DIRS = @INSTALL_DIRS@
X_CFLAGS = @X_CFLAGS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
-XLIBS = $(X_LIBS) $(X_PRE_LIBS) -lX11 -lXext $(X_EXTRA_LIBS)
+# Note:
+#
+# X_LIBS would more properly be called X_LDFLAGS (it contains the -L args.)
+# X_PRE_LIBS contains extra libraries you have to link against on some systems,
+# and that must come before -lX11. (e.g., -lSM and -lICE.)
+# X_EXTRA_LIBS contains extra libraries needed by X that aren't a part of X.
+# (e.g., -lsocket, -lnsl, etc.)
+#
+# SAVER_LIBS is the link line for "xscreensaver", and
+# CMD_LIBS is the link line for "xscreensaver-command".
+
AD_DIR = @APPDEFAULTS@
UTILS_SRC = $(srcdir)/../utils
UTILS_BIN = ../utils
-INCLUDES = -I. -I$(srcdir) -I$(srcdir)/.. -I$(UTILS_SRC) @INCLUDES@
+INCLUDES = -I. -I$(srcdir) -I$(UTILS_SRC) -I.. @INCLUDES@
PASSWD_LIBS = @PASSWD_LIBS@
MOTIF_SRCS = dialogs-Xm.c
UTIL_SRCS = $(UTILS_SRC)/fade.c $(UTILS_SRC)/overlay.c \
$(UTILS_SRC)/resources.c $(UTILS_SRC)/usleep.c \
$(UTILS_SRC)/visual.c $(UTILS_SRC)/xroger.c \
+ $(UTILS_SRC)/spline.c \
$(UTILS_SRC)/yarandom.c @XMU_SRCS@
UTIL_OBJS = $(UTILS_BIN)/fade.o $(UTILS_BIN)/overlay.o \
$(UTILS_BIN)/resources.o $(UTILS_BIN)/usleep.o \
$(UTILS_BIN)/visual.o $(UTILS_BIN)/xroger.o \
+ $(UTILS_BIN)/spline.o \
$(UTILS_BIN)/yarandom.o @XMU_OBJS@
SAVER_SRCS_1 = demo.c stderr.c subprocs.c timers.c windows.c \
SAVER_SRCS = $(SAVER_SRCS_1) $(DIALOG_SRCS) $(LOCK_SRCS) $(UTIL_SRCS)
SAVER_OBJS = $(SAVER_OBJS_1) $(DIALOG_OBJS) $(LOCK_OBJS) $(UTIL_OBJS)
-SAVER_LIBS = @SAVER_LIBS@ -lXt $(XLIBS) $(PASSWD_LIBS) $(LIBS)
CMD_SRCS = xscreensaver-command.c
CMD_OBJS = xscreensaver-command.o
-CMD_LIBS = $(XLIBS) $(LIBS)
+
+SAVER_LIBS = $(X_LIBS) $(X_PRE_LIBS) @SAVER_LIBS@ -lXt \
+ -lX11 -lXext $(X_EXTRA_LIBS) $(PASSWD_LIBS) \
+ $(LIBS)
+
+CMD_LIBS = $(X_LIBS) $(X_PRE_LIBS) \
+ -lX11 -lXext $(X_EXTRA_LIBS) \
+ $(LIBS)
EXES = xscreensaver xscreensaver-command
$$e " must run 'make install' as 'root', not as '$$me'." ;\
$$e "" ;\
$$e " For now, xscreensaver will be installed non-setuid, which" ;\
- $$e " means that locking may not work." ;\
+ $$e " means that locking might not work." ;\
$$e "" ;\
fi ; \
fi ; \
+ if [ ! -d $(bindir) ]; then $(INSTALL_DIRS) $(bindir) ; fi ; \
echo $$inst xscreensaver $(bindir)/xscreensaver ; \
$$inst xscreensaver $(bindir)/xscreensaver
$(INSTALL_PROGRAM) xscreensaver-command $(bindir)/xscreensaver-command
install-ad:
+ @if [ ! -d $(AD_DIR) ]; then $(INSTALL_DIRS) $(AD_DIR) ; fi ; \
$(INSTALL_DATA) XScreenSaver.ad $(AD_DIR)/XScreenSaver
install-man:
@men="$(MEN)" ; \
+ if [ ! -d $(man1dir) ]; then $(INSTALL_DIRS) $(man1dir) ; fi ; \
for man in $$men; do \
instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ; \
echo $(INSTALL_DATA) $(srcdir)/$$man $(man1dir)/$$instname ; \
$(DEPEND) -s '# DO NOT DELETE: updated by make depend' \
$(DEPEND_FLAGS) -- \
$(INCLUDES) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) -- \
- $(SAVER_SRCS_1) $(CMD_SRCS)
+ $(SAVER_SRCS) $(CMD_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: update_ad_version XScreenSaver_ad.h
+distdepend: update_ad_version update_man_version XScreenSaver_ad.h
@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) -- \
- $(SAVER_SRCS_1) $(CMD_SRCS) | \
+ $(SAVER_SRCS_1) $(MOTIF_SRCS) $(ATHENA_SRCS) $(PWENT_SRCS) \
+ $(LOCK_SRCS_1) $(CMD_SRCS) | \
( \
awk '/^# .*Makefile.in ---/,/^# DO .*distdepend/' < Makefile.in ; \
sed -e 's@ \./@ @g;s@ /[^ ]*@@g;/^.*:$$/d' \
-e 's@\.\./utils@$$(UTILS_SRC)@g' \
-e 's@ \([^$$]\)@ $$(srcdir)/\1@g' \
- -e 's@$$.*\(XScreenSaver_ad\)@\1@g' ; \
+ -e 's@$$.*\(XScreenSaver_ad\)@\1@g' \
+ -e 's@ $$(srcdir)/\(.*config\.h\)@ \1@g' ; \
echo '' \
) > /tmp/distdepend.$$$$ && \
mv Makefile.in Makefile.in.bak && \
@S=XScreenSaver.ad.in ; \
U=$(UTILS_SRC)/version.h ; \
V=`sed -n 's/.*\([0-9][0-9]*\.[0-9]*\).*/\1/p' < $$U` ; \
- echo -n "Updating version number in $$S to $$V... " ; \
+ D=`date '+%d-%b-%y'` ; \
+ echo -n "Updating version number in $$S to $$V $$D... " ; \
T=/tmp/xs.$$$$ ; \
- sed "s/\(.*version \)[0-9][0-9]*\.[0-9]*\(.*\)/\1$$V\2/" \
+ sed -e "s/\(.*version \)[0-9][0-9]*\.[0-9]*\(.*\)/\1$$V\2/" \
+ -e "s/\([0-9][0-9]-[A-Z][a-z][a-z]-[0-9][0-9]\)/$$D/" \
< $$S > $$T ; \
if cmp -s $$S $$T ; then \
echo "unchanged." ; \
fi ; \
rm $$T
+update_man_version::
+ @for S in $(MEN); do \
+ U=$(UTILS_SRC)/version.h ; \
+ V=`sed -n 's/.*\([0-9][0-9]*\.[0-9]*\).*/\1/p' < $$U` ; \
+ V="`date '+%d-%b-%y'` ($$V)" ; \
+ echo -n "Updating footer in $$S to \"$$V\"... " ; \
+ T=/tmp/xs.$$$$ ; \
+ sed "s/^\(\.TH[^\"]*\)\"[^\"]*\"\(.*\)/\1\"$$V\"\2/" \
+ < $$S > $$T ; \
+ if cmp -s $$S $$T ; then \
+ echo "unchanged." ; \
+ else \
+ cat $$T > $$S ; \
+ echo "done." ; \
+ fi ; \
+ rm $$T ; \
+ done
TAGS: tags
tags:
$(UTILS_BIN)/visual.o: $(UTILS_SRC)/visual.c
$(UTILS_BIN)/xmu.o: $(UTILS_SRC)/xmu.c
$(UTILS_BIN)/xroger.o: $(UTILS_SRC)/xroger.c
+$(UTILS_BIN)/spline.o: $(UTILS_SRC)/spline.c
$(UTILS_BIN)/yarandom.o: $(UTILS_SRC)/yarandom.c
$(UTIL_OBJS):
# How we build object files in this directory.
.c.o:
- $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) $<
+ $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) $<
+
+# subprocs is the only one that takes an extra -D option.
+subprocs.o: subprocs.c
+ $(CC) -c $(INCLUDES) $(DEFS2) $(CFLAGS) $(X_CFLAGS) $<
# How we build the default app-defaults file into the program.
#
XScreenSaver_ad.h: XScreenSaver.ad
- $(SHELL) $(UTILS_SRC)/ad2c XScreenSaver.ad > $@
+ $(SHELL) $(UTILS_SRC)/ad2c XScreenSaver.ad > XScreenSaver_ad.h
# The executables linked in this directory.
#
$(CC) $(LDFLAGS) -o $@ $(CMD_OBJS) $(CMD_LIBS)
+TEST_PASSWD_OBJS = test-passwd.o $(LOCK_OBJS_1) $(PWENT_OBJS) $(DIALOG_OBJS) \
+ subprocs.o demo.o \
+ $(UTIL_OBJS)
+
+test-passwd: $(TEST_PASSWD_OBJS)
+ $(CC) $(LDFLAGS) -o $@ $(TEST_PASSWD_OBJS) $(SAVER_LIBS)
+
##############################################################################
#
# DO NOT DELETE: updated by make distdepend
-demo.o: $(srcdir)/../config.h
+demo.o: ../config.h
demo.o: $(srcdir)/xscreensaver.h
demo.o: $(UTILS_SRC)/resources.h
-stderr.o: $(srcdir)/../config.h
+stderr.o: ../config.h
stderr.o: $(srcdir)/xscreensaver.h
stderr.o: $(UTILS_SRC)/resources.h
stderr.o: $(UTILS_SRC)/visual.h
-subprocs.o: $(srcdir)/../config.h
+subprocs.o: ../config.h
subprocs.o: $(srcdir)/xscreensaver.h
subprocs.o: $(UTILS_SRC)/yarandom.h
-timers.o: $(srcdir)/../config.h
+timers.o: ../config.h
timers.o: $(srcdir)/xscreensaver.h
-windows.o: $(srcdir)/../config.h
+windows.o: ../config.h
windows.o: $(srcdir)/xscreensaver.h
windows.o: $(UTILS_SRC)/visual.h
windows.o: $(UTILS_SRC)/fade.h
-xscreensaver.o: $(srcdir)/../config.h
+xscreensaver.o: ../config.h
xscreensaver.o: $(srcdir)/xscreensaver.h
xscreensaver.o: $(UTILS_SRC)/version.h
xscreensaver.o: $(UTILS_SRC)/yarandom.h
xscreensaver.o: $(UTILS_SRC)/resources.h
xscreensaver.o: $(UTILS_SRC)/visual.h
xscreensaver.o: XScreenSaver_ad.h
-xset.o: $(srcdir)/../config.h
+xset.o: ../config.h
xset.o: $(srcdir)/xscreensaver.h
-xscreensaver-command.o: $(srcdir)/../config.h
+dialogs-Xm.o: ../config.h
+dialogs-Xm.o: $(UTILS_SRC)/visual.h
+dialogs-Xaw.o: ../config.h
+dialogs-Xaw.o: $(UTILS_SRC)/visual.h
+passwd.o: ../config.h
+lock.o: ../config.h
+lock.o: $(srcdir)/xscreensaver.h
+lock.o: $(UTILS_SRC)/resources.h
+xscreensaver-command.o: ../config.h
xscreensaver-command.o: $(UTILS_SRC)/version.h