-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 \
- xscreensaver.c xset.c
-SAVER_OBJS_1 = demo.o stderr.o subprocs.o timers.o windows.o \
- xscreensaver.o xset.o
-
-SAVER_SRCS = $(SAVER_SRCS_1) $(DIALOG_SRCS) $(LOCK_SRCS) $(UTIL_SRCS)
-SAVER_OBJS = $(SAVER_OBJS_1) $(DIALOG_OBJS) $(LOCK_OBJS) $(UTIL_OBJS)
-SAVER_LIBS = $(X_LIBS) @SAVER_LIBS@ -lXt $(XLIBS) $(PASSWD_LIBS) $(LIBS)
-
-CMD_SRCS = xscreensaver-command.c
-CMD_OBJS = xscreensaver-command.o
-CMD_LIBS = $(X_LIBS) $(XLIBS) $(LIBS)
-
-EXES = xscreensaver xscreensaver-command
-
-HDRS = XScreenSaver_ad.h xscreensaver.h
-MEN = xscreensaver.man xscreensaver-command.man
-EXTRAS = README Makefile.in XScreenSaver.ad.in dialogs.xd .gdbinit
+DEMO_UTIL_SRCS = $(UTILS_SRC)/resources.c $(UTILS_SRC)/usleep.c \
+ $(UTILS_SRC)/visual.c
+DEMO_UTIL_OBJS = $(UTILS_BIN)/resources.o $(UTILS_BIN)/usleep.o \
+ $(UTILS_BIN)/visual.o
+
+SAVER_UTIL_SRCS = $(UTILS_SRC)/fade.c $(UTILS_SRC)/overlay.c \
+ $(UTILS_SRC)/xroger.c $(UTILS_SRC)/spline.c \
+ $(UTILS_SRC)/yarandom.c \
+ $(DEMO_UTIL_SRCS)
+SAVER_UTIL_OBJS = $(UTILS_BIN)/fade.o $(UTILS_BIN)/overlay.o \
+ $(UTILS_BIN)/xroger.o $(UTILS_BIN)/spline.o \
+ $(UTILS_BIN)/yarandom.o \
+ $(DEMO_UTIL_OBJS)
+
+SAVER_SRCS_1 = xscreensaver.c windows.c timers.c subprocs.c \
+ xset.c splash.c setuid.c stderr.c
+SAVER_OBJS_1 = xscreensaver.o windows.o timers.o subprocs.o \
+ xset.o splash.o setuid.o stderr.o
+
+SAVER_SRCS = $(SAVER_SRCS_1) prefs.c $(LOCK_SRCS) \
+ $(SAVER_UTIL_SRCS) @XMU_SRCS@
+SAVER_OBJS = $(SAVER_OBJS_1) prefs.o $(LOCK_OBJS) \
+ $(SAVER_UTIL_OBJS) @XMU_OBJS@
+
+CMD_SRCS = remote.c xscreensaver-command.c
+CMD_OBJS = remote.o xscreensaver-command.o
+
+DEMO_SRCS_1 = demo.c prefs.c
+DEMO_OBJS_1 = demo.o prefs.o
+
+DEMO_SRCS = $(DEMO_SRCS_1) remote.c \
+ $(TOOLKIT_SRCS) $(DEMO_UTIL_SRCS)
+DEMO_OBJS = $(DEMO_OBJS_1) remote.o \
+ $(TOOLKIT_OBJS) $(DEMO_UTIL_OBJS)
+
+SAVER_LIBS = $(LIBS) $(X_LIBS) @SAVER_LIBS@ \
+ $(X_PRE_LIBS) -lXt -lX11 -lXext $(X_EXTRA_LIBS) \
+ $(PASSWD_LIBS)
+
+CMD_LIBS = $(LIBS) $(X_LIBS) \
+ $(X_PRE_LIBS) -lX11 -lXext $(X_EXTRA_LIBS)
+
+DEMO_LIBS = $(LIBS) $(X_LIBS) $(TOOLKIT_LIBS) \
+ $(X_PRE_LIBS) -lXt -lX11 -lXext $(X_EXTRA_LIBS)
+
+EXES = xscreensaver xscreensaver-command xscreensaver-demo
+
+HDRS = XScreenSaver_ad.h xscreensaver.h prefs.h remote.h
+MEN = xscreensaver.man xscreensaver-demo.man \
+ xscreensaver-command.man
+EXTRAS = README Makefile.in XScreenSaver.ad.in xscreensaver.pam \
+ .gdbinit