From http://www.jwz.org/xscreensaver/xscreensaver-5.24.tar.gz
[xscreensaver] / driver / Makefile.in
index eb478b0b361d109620fda0befc37b71b9a46910b..af077ca935b8e53891451325b13af824868895e6 100644 (file)
@@ -1,4 +1,4 @@
-# driver/Makefile.in --- xscreensaver, Copyright (c) 1997-2005 Jamie Zawinski.
+# driver/Makefile.in --- xscreensaver, Copyright (c) 1997-2010 Jamie Zawinski.
 # the `../configure' script generates `driver/Makefile' from this file.
 
 @SET_MAKE@
@@ -14,6 +14,7 @@ install_prefix        =
 prefix         = @prefix@
 exec_prefix    = @exec_prefix@
 bindir         = @bindir@
+datarootdir    = @datarootdir@
 datadir                = @datadir@
 localedir      = $(datadir)/locale
 mandir         = @mandir@
@@ -86,7 +87,8 @@ PAM_CONF      = /etc/pam.conf
 UTILS_SRC      = $(srcdir)/../utils
 UTILS_BIN      = ../utils
 
-INCLUDES       = -I. -I$(srcdir) -I$(UTILS_SRC) -I.. @INCLUDES@
+INCLUDES_1     = -I. -I$(srcdir) -I$(UTILS_SRC) -I..
+INCLUDES       = $(INCLUDES_1) @INCLUDES@
 
 MOTIF_SRCS     = demo-Xm.c demo-Xm-widgets.c
 MOTIF_OBJS     = demo-Xm.o demo-Xm-widgets.o
@@ -115,10 +117,10 @@ NOLOCK_OBJS_1     = lock.o
 
 TEST_SRCS      = test-passwd.c test-uid.c  test-xdpms.c    test-grab.c \
                  test-apm.c    test-fade.c test-xinerama.c test-vp.c   \
-                 test-randr.c  xdpyinfo.c
+                 test-randr.c  xdpyinfo.c  test-mlstring.c test-screens.c
 TEST_EXES      = test-passwd   test-uid    test-xdpms      test-grab   \
                  test-apm      test-fade   test-xinerama   test-vp     \
-                 test-randr    xdpyinfo
+                 test-randr    xdpyinfo    test-mlstring   test-screens
 
 MOTIF_LIBS     = @MOTIF_LIBS@ @XPM_LIBS@ $(XMU_LIBS)
 GTK_LIBS       = @GTK_LIBS@ $(XMU_LIBS)
@@ -126,6 +128,7 @@ XML_LIBS    = @XML_LIBS@
 
 XDPMS_LIBS     = @XDPMS_LIBS@
 XINERAMA_LIBS  = @XINERAMA_LIBS@
+XINPUT_LIBS    = @XINPUT_LIBS@
 
 PASSWD_SRCS    = @PASSWD_SRCS@
 PASSWD_OBJS    = @PASSWD_OBJS@
@@ -146,52 +149,56 @@ LOGO              = $(ICON_SRC)/logo-50.xpm
 GTK_ICONS      = $(ICON_SRC)/screensaver-*.png
 
 DEMO_UTIL_SRCS = $(UTILS_SRC)/resources.c $(UTILS_SRC)/usleep.c \
-                 $(UTILS_SRC)/visual.c
+                 $(UTILS_SRC)/visual.c $(XMU_SRCS)
 DEMO_UTIL_OBJS = $(UTILS_BIN)/resources.o $(UTILS_BIN)/usleep.o \
-                 $(UTILS_BIN)/visual.o
+                 $(UTILS_BIN)/visual.o $(XMU_OBJS)
 
 SAVER_UTIL_SRCS        = $(UTILS_SRC)/fade.c $(UTILS_SRC)/overlay.c \
                  $(UTILS_SRC)/logo.c $(UTILS_SRC)/yarandom.c \
+                 $(UTILS_SRC)/minixpm.c \
                  $(DEMO_UTIL_SRCS)
 SAVER_UTIL_OBJS        = $(UTILS_BIN)/fade.o $(UTILS_BIN)/overlay.o \
                  $(UTILS_BIN)/logo.o $(UTILS_BIN)/yarandom.o \
+                 $(UTILS_BIN)/minixpm.o \
                  $(DEMO_UTIL_OBJS)
 
 GETIMG_SRCS_1  = xscreensaver-getimage.c
 GETIMG_OBJS_1  = xscreensaver-getimage.o
 
 GETIMG_SRCS    = $(GETIMG_SRCS_1) \
-                 $(UTILS_SRC)/colorbars.o $(UTILS_SRC)/resources.o \
-                 $(UTILS_SRC)/yarandom.o $(UTILS_SRC)/visual.o \
-                 $(UTILS_SRC)/usleep.o $(UTILS_SRC)/hsv.o \
-                 $(UTILS_SRC)/colors.o $(UTILS_SRC)/grabscreen.o \
-                 $(UTILS_SRC)/logo.o prefs.o $(XMU_SRCS)
+                 $(UTILS_BIN)/colorbars.o $(UTILS_BIN)/resources.o \
+                 $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/visual.o \
+                 $(UTILS_BIN)/usleep.o $(UTILS_BIN)/hsv.o \
+                 $(UTILS_BIN)/colors.o $(UTILS_BIN)/grabscreen.o \
+                 $(UTILS_BIN)/logo.o $(UTILS_BIN)/minixpm.o prefs.o \
+                 $(XMU_SRCS)
 
 GETIMG_OBJS    = $(GETIMG_OBJS_1) \
                  $(UTILS_BIN)/colorbars.o $(UTILS_BIN)/resources.o \
                  $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/visual.o \
                  $(UTILS_BIN)/usleep.o $(UTILS_BIN)/hsv.o \
                  $(UTILS_BIN)/colors.o $(UTILS_BIN)/grabscreen.o \
-                 $(UTILS_BIN)/logo.o prefs.o $(XMU_OBJS)
+                 $(UTILS_BIN)/logo.o $(UTILS_BIN)/minixpm.o prefs.o \
+                 $(XMU_OBJS)
 
-SAVER_SRCS_1   = xscreensaver.c windows.c timers.c subprocs.c exec.c \
-                 xset.c splash.c setuid.c stderr.c
-SAVER_OBJS_1   = xscreensaver.o windows.o timers.o subprocs.o exec.o \
-                 xset.o splash.o setuid.o stderr.o
+SAVER_SRCS_1   = xscreensaver.c windows.c screens.c timers.c subprocs.c \
+                 exec.c xset.c splash.c setuid.c stderr.c mlstring.c
+SAVER_OBJS_1   = xscreensaver.o windows.o screens.o timers.o subprocs.o \
+                 exec.o xset.o splash.o setuid.o stderr.o mlstring.o
 
 SAVER_SRCS     = $(SAVER_SRCS_1) prefs.c dpms.c $(LOCK_SRCS) \
-                 $(SAVER_UTIL_SRCS) $(GL_SRCS) $(XMU_SRCS)
+                 $(SAVER_UTIL_SRCS) $(GL_SRCS)
 SAVER_OBJS     = $(SAVER_OBJS_1) prefs.o dpms.o $(LOCK_OBJS) \
-                 $(SAVER_UTIL_OBJS) $(GL_OBJS) $(XMU_OBJS)
+                 $(SAVER_UTIL_OBJS) $(GL_OBJS)
 
 CMD_SRCS       = remote.c xscreensaver-command.c
 CMD_OBJS       = remote.o xscreensaver-command.o
 
-DEMO_SRCS_1    = prefs.c dpms.c $(XMU_SRCS)
-DEMO_OBJS_1    = prefs.o dpms.o $(XMU_OBJS)
+DEMO_SRCS_1    = prefs.c dpms.c
+DEMO_OBJS_1    = prefs.o dpms.o
 
-DEMO_SRCS      = prefs.c dpms.c remote.c exec.c $(DEMO_UTIL_SRCS)
-DEMO_OBJS      = prefs.o dpms.o remote.o exec.o $(DEMO_UTIL_OBJS)
+DEMO_SRCS      = $(DEMO_SRCS_1) remote.c exec.c $(DEMO_UTIL_SRCS)
+DEMO_OBJS      = $(DEMO_OBJS_1) remote.o exec.o $(DEMO_UTIL_OBJS)
 
 PDF2JPEG_SRCS  = pdf2jpeg.m
 PDF2JPEG_OBJS  = pdf2jpeg.o
@@ -219,9 +226,9 @@ SCRIPTS_OSX = xscreensaver-getimage-desktop
 SCRIPTS                = $(SCRIPTS_1) @SCRIPTS_OSX@
 
 HDRS           = XScreenSaver_ad.h XScreenSaver_Xm_ad.h \
-                 xscreensaver.h prefs.h remote.h \
+                 xscreensaver.h prefs.h remote.h exec.h \
                  demo-Gtk-widgets.h demo-Gtk-stubs.h demo-Gtk-support.h \
-                 demo-Gtk-conf.h
+                 demo-Gtk-conf.h auth.h mlstring.h types.h
 MEN_1          = xscreensaver.man xscreensaver-demo.man \
                  xscreensaver-command.man \
                  xscreensaver-text.man \
@@ -232,7 +239,7 @@ MEN_OSX             = xscreensaver-getimage-desktop.man pdf2jpeg.man
 MEN            = $(MEN_1) @MEN_OSX@
 
 EXTRAS         = README Makefile.in \
-                 XScreenSaver.ad.in XScreenSaver-Xm.ad xscreensaver.pam \
+                 XScreenSaver.ad.in XScreenSaver-Xm.ad xscreensaver.pam.in \
                  xscreensaver-demo.glade2 xscreensaver-demo.glade2p \
                  screensaver-properties.desktop.in \
                  .gdbinit
@@ -366,7 +373,7 @@ munge-scripts: $(SCRIPTS)
 install-man: $(MEN)
        @men="$(MEN)" ;                                                 \
        U=$(UTILS_SRC)/version.h ;                                      \
-       V=`sed -n 's/.*\([0-9]\.[^)]*)\).*/\1/p' < $$U` ;               \
+       V=`sed -n 's/.*xscreensaver \([0-9]\.[^)]*)\).*/\1/p' < $$U` ;          \
        T=/tmp/xs$$$$.$(mansuffix) ;                                    \
        TH=".TH XScreenSaver $(mansuffix) \"$$V\" \"X Version 11\"" ;   \
        echo "installing man pages: $$TH" ;                             \
@@ -377,6 +384,8 @@ install-man: $(MEN)
                                                                        \
        for man in $$men; do                                            \
          instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ;     \
+         manbase=`echo $$man | sed 's/\.man$$//'` ;    \
+         TH=".TH $$manbase $(mansuffix) \"$$V\" \"X Version 11\" \"XScreenSaver manual\"" ;    \
          sed -e "s/^\.TH.*/$$TH/"                                      \
              -e 's/^\(\.BR xscr.*(\)[^()]\(.*\)/\1$(mansuffix)\2/'     \
              -e 's@(MANSUFFIX)@($(mansuffix))@g'                       \
@@ -405,8 +414,8 @@ uninstall-man:
               rm -f $(install_prefix)$(manNdir)/$$instname* ;          \
        done
 
-install-pam:
-       @src="$(srcdir)/xscreensaver.pam" ;                             \
+install-pam: xscreensaver.pam
+       @src="xscreensaver.pam" ;                               \
        dest=`sed -n 's/.*PAM_SERVICE_NAME[     ]*"\([^"]*\)".*$$/\1/p' \
           < ../config.h` ;                                             \
        dir="$(install_prefix)$(PAM_DIR)" ;                             \
@@ -425,8 +434,8 @@ install-pam:
            $(INSTALL_DATA) $$src $$dir/$$dest ;                        \
          else                                                          \
            src="xscreensaver.pam.$$$$" ;                               \
-           echo "grep '^#%\|^auth' $$src2 > $$src" ;                   \
-                 grep '^#%\|^auth' $$src2 > $$src ;                    \
+           echo "grep '^#%\|^auth\|^@include' $$src2 > $$src" ;        \
+                 grep '^#%\|^auth\|^@include' $$src2 > $$src  ;        \
            echo $(INSTALL_DATA) $$src $$dir/$$dest ;                   \
                 $(INSTALL_DATA) $$src $$dir/$$dest ;                   \
            echo rm -f $$src ;                                          \
@@ -446,7 +455,7 @@ install-pam:
  $$e "  ####################################################################";\
  $$e ""                                                                             ;\
          fi ;                                                          \
-       elif [ -f $$conf ]; then                                        \
+       elif [ -f $$conf -a "x$$dest" != "x" ]; then                    \
          if ( grep $$dest $$conf >/dev/null ); then                    \
           echo "$$conf unchanged: already has an entry for $$dest" ;   \
          else                                                          \
@@ -466,7 +475,9 @@ install-pam:
            echo rm -f $$src ;                                          \
                 rm -f $$src ;                                          \
          fi ;                                                          \
-         if ! ( grep $$dest $$conf >/dev/null ); then                  \
+         if ( grep $$dest $$conf >/dev/null ); then                    \
+           echo ;                                                      \
+         else                                                          \
            e=echo ;                                                    \
  $$e ""                                                                             ;\
  $$e "  ####################################################################";\
@@ -489,7 +500,7 @@ install-gnome:: screensaver-properties.desktop
             echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_APPDIR)"           ;\
                  $(INSTALL_DIRS) "$(install_prefix)$(GTK_APPDIR)"           ;\
           fi                                                                ;\
-          name2=gnome-screensaver-properties.desktop                        ;\
+          name2=xscreensaver-properties.desktop                             ;\
           echo $(INSTALL_DATA) screensaver-properties.desktop                \
                  $(install_prefix)$(GTK_APPDIR)/$$name2                     ;\
                $(INSTALL_DATA) screensaver-properties.desktop                \
@@ -515,7 +526,7 @@ install-gnome:: $(LOGO)
 # ../utils/images/screensaver-*.png
 # into /usr/share/xscreensaver/glade/
 install-gnome::
-       @if [ "$(GTK_GLADEDIR)" != "" ]; then                                 \
+       @if [ "$(GTK_DATADIR)" != "" ]; then                                 \
            if [ ! -d "$(install_prefix)$(GTK_GLADEDIR)" ]; then               \
              echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_GLADEDIR)"         ;\
                   $(INSTALL_DIRS) "$(install_prefix)$(GTK_GLADEDIR)"         ;\
@@ -532,7 +543,7 @@ install-gnome::
 # xscreensaver-demo.glade2
 # into /usr/share/xscreensaver/glade/
 install-gnome:: xscreensaver-demo.glade2
-       @if [ "$(GTK_GLADEDIR)" != "" ]; then                                 \
+       @if [ "$(GTK_DATADIR)" != "" ]; then                                  \
          if [ ! -d "$(install_prefix)$(GTK_GLADEDIR)" ]; then                \
            echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_GLADEDIR)"          ;\
                 $(INSTALL_DIRS) "$(install_prefix)$(GTK_GLADEDIR)"          ;\
@@ -562,7 +573,7 @@ install-gnome:: xscreensaver-demo.glade2
 # into /usr/share/applications/
 uninstall-gnome::
        @if [ "$(GTK_DATADIR)" != "" ]; then                                  \
-          f=gnome-screensaver-properties.desktop                             ;\
+          f=xscreensaver-properties.desktop                                  ;\
           echo rm -f $(install_prefix)$(GTK_APPDIR)/$$f                      ;\
                rm -f $(install_prefix)$(GTK_APPDIR)/$$f                      ;\
         fi
@@ -579,7 +590,7 @@ uninstall-gnome::
 # ../utils/images/screensaver-*.png
 # into /usr/share/xscreensaver/glade/
 uninstall-gnome::
-       @if [ "$(GTK_GLADEDIR)" != "" ]; then                                 \
+       @if [ "$(GTK_DATADIR)" != "" ]; then                                  \
           for target in $(GTK_ICONS) ; do                                    \
             dest=`echo $$target | sed 's@^.*/@@'`                           ;\
             echo rm -f $(install_prefix)$(GTK_GLADEDIR)/$$dest              ;\
@@ -590,7 +601,7 @@ uninstall-gnome::
 # xscreensaver-demo.glade2
 # into /usr/share/xscreensaver/glade/
 uninstall-gnome:: xscreensaver-demo.glade2
-       @if [ "$(GTK_GLADEDIR)" != "" ]; then                                 \
+       @if [ "$(GTK_DATADIR)" != "" ]; then                                  \
          target=xscreensaver-demo.glade2                                    ;\
          echo rm -f $(install_prefix)$(GTK_GLADEDIR)/$$target               ;\
               rm -f $(install_prefix)$(GTK_GLADEDIR)/$$target               ;\
@@ -616,14 +627,14 @@ clean:
        XScreenSaver_ad.h XScreenSaver_Xm_ad.h
 
 distclean: clean
-       -rm -f Makefile XScreenSaver.ad XScreenSaver-Xm.ad \
+       -rm -f Makefile XScreenSaver.ad \
        TAGS *~ "#"* screensaver-properties.desktop
 
 # Adds all current dependencies to Makefile
 depend: XScreenSaver_ad.h XScreenSaver_Xm_ad.h
        $(DEPEND) -s '# DO NOT DELETE: updated by make depend'              \
        $(DEPEND_FLAGS) --                                                  \
-       $(INCLUDES) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) --      \
+       $(INCLUDES_1) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) --    \
        $(SAVER_SRCS) $(CMD_SRCS) $(GETIMG_SRCS_1)
 
 # Adds some dependencies to Makefile.in -- not totally accurate, but pretty
@@ -634,8 +645,7 @@ distdepend: check_men update_ad_version XScreenSaver_ad.h XScreenSaver_Xm_ad.h
        @echo updating dependencies in `pwd`/Makefile.in... ;               \
        $(DEPEND) -w 0 -f -                                                 \
        -s '# DO NOT DELETE: updated by make distdepend' $(DEPEND_FLAGS) -- \
-       $(INCLUDES) -I$(ICON_SRC) $(DEFS) $(DEPEND_DEFINES)                 \
-       $(CFLAGS) $(X_CFLAGS) --                                            \
+       $(INCLUDES_1) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) --    \
        $(SAVER_SRCS_1) $(MOTIF_SRCS) $(GTK_SRCS) $(GETIMG_SRCS_1)          \
        $(PWENT_SRCS) $(LOCK_SRCS_1) $(DEMO_SRCS_1) $(CMD_SRCS)             \
        $(TEST_SRCS) 2>/dev/null |                                          \
@@ -659,30 +669,33 @@ distdepend: check_men update_ad_version XScreenSaver_ad.h XScreenSaver_Xm_ad.h
 # have a version skew between the app-defaults file and the executable.
 # Also update hacks/config/README in the same way.
 update_ad_version::
-       @files="XScreenSaver.ad.in ../hacks/config/README" ;                \
-       U=$(UTILS_SRC)/version.h ;                                          \
-       V=`sed -n 's/.*\([0-9][0-9]*\.[0-9]*\).*/\1/p' < $$U` ;             \
-       D=`date '+%d-%b-%Y'` ;                                              \
-       for S in $$files ; do                                               \
-         T=/tmp/xs.$$$$ ;                                                  \
-         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][0-9]*\)/$$D/"   \
-           < $$S > $$T ;                                                   \
-         if cmp -s $$S $$T ; then                                          \
-           true ;                                                          \
-         else                                                              \
-           cat $$T > $$S ;                                                 \
-           echo "updated $$S to $$V $$D" ;                                 \
-         fi ;                                                              \
-       done ;                                                              \
-       rm $$T
+       @                                                                   \
+  files="XScreenSaver.ad.in ../hacks/config/README ../OSX/bindist.rtf" ;    \
+  U=$(UTILS_SRC)/version.h ;                                               \
+  V=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' < $$U` ;              \
+  Y=`date '+%Y'` ;                                                         \
+  D=`date '+%d-%b-%Y'` ;                                                   \
+  for S in $$files ; do                                                            \
+    T=/tmp/xs.$$$$ ;                                                       \
+    sed -e "s/\(.*version \)[0-9][0-9]*\.[0-9]*[ab]*[0-9]*\(.*\)/\1$$V\2/"  \
+        -e "s/\([0-9][0-9]-[A-Z][a-z][a-z]-[0-9][0-9][0-9]*\)/$$D/"        \
+        -e "s/\( [0-9][0-9][0-9][0-9]-\)[0-9][0-9][0-9][0-9] /\1$$Y /"     \
+      < $$S > $$T ;                                                        \
+    if cmp -s $$S $$T ; then                                               \
+      true ;                                                               \
+    else                                                                   \
+      cat $$T > $$S ;                                                      \
+      echo "updated $$S to $$V $$D" ;                                      \
+    fi ;                                                                   \
+  done ;                                                                   \
+  rm $$T
 
 TAGS: tags
 tags:
        find $(srcdir) -name '*.[chly]' -print | xargs etags -a
 
 echo_tarfiles:
-       @$(MAKE) XScreenSaver_ad.h XScreenSaver_Xm_ad.h 2>&1 >&- /dev/null
+       @$(MAKE) XScreenSaver_ad.h XScreenSaver_Xm_ad.h 2>&1 >/dev/null
        @echo $(TARFILES)
 
 check_men:
@@ -714,34 +727,39 @@ $(UTILS_BIN)/usleep.o:            $(UTILS_SRC)/usleep.c
 $(UTILS_BIN)/visual.o:         $(UTILS_SRC)/visual.c
 $(UTILS_BIN)/xmu.o:            $(UTILS_SRC)/xmu.c
 $(UTILS_BIN)/logo.o:           $(UTILS_SRC)/logo.c
+$(UTILS_BIN)/minixpm.o:                $(UTILS_SRC)/minixpm.c
 $(UTILS_BIN)/yarandom.o:       $(UTILS_SRC)/yarandom.c
 $(UTILS_BIN)/colorbars.o:      $(UTILS_SRC)/colorbars.c
 
 $(SAVER_UTIL_OBJS):
-       cd $(UTILS_BIN) ; \
-       $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
+       $(MAKE) -C $(UTILS_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
 
 # How we build object files in this directory.
 .c.o:
-       $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) $<
+       $(CC) -c $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) $<
 
 .m.o:
-       $(OBJCC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) $<
+       $(OBJCC) -c $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) $<
 
 # subprocs takes an extra -D option.
 subprocs.o: subprocs.c
-       $(CC) -c $(INCLUDES) $(SUBP_DEFS) $(CFLAGS) $(X_CFLAGS) \
+       $(CC) -c $(INCLUDES) $(SUBP_DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) \
          $(srcdir)/subprocs.c
 
+# xscreensaver takes an extra -D option.
+xscreensaver.o: xscreensaver.c
+       $(CC) -c $(INCLUDES) $(DEFS) $(INTL_DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) \
+         $(srcdir)/xscreensaver.c
+
 # demo-Gtk takes extra -D options, and an extra -I option.
 demo-Gtk.o: demo-Gtk.c
        $(CC) -c $(INCLUDES) $(SUBP_DEFS) -I$(ICON_SRC) \
-         $(GTK_DEFS) $(INTL_DEFS) $(CFLAGS) $(X_CFLAGS) \
+         $(GTK_DEFS) $(INTL_DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) \
          $(srcdir)/demo-Gtk.c
 
 # demo-Gtk-conf takes an extra -D option.
 demo-Gtk-conf.o: demo-Gtk-conf.c
-       $(CC) -c $(INCLUDES) $(CONF_DEFS) $(GTK_DEFS) $(CFLAGS) $(X_CFLAGS) \
+       $(CC) -c $(INCLUDES) $(CONF_DEFS) $(GTK_DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) \
          $(srcdir)/demo-Gtk-conf.c
 
 
@@ -785,7 +803,9 @@ xscreensaver-demo-Gtk: $(DEMO_OBJS) $(GTK_OBJS)
        -lXt -lX11 $(XDPMS_LIBS) $(XINERAMA_LIBS) -lXext $(X_EXTRA_LIBS)
 
 demo-Gtk.o: XScreenSaver_ad.h
-demo-Xm.o:  XScreenSaver_ad_Xm.h
+demo-Xm.o:  XScreenSaver_Xm_ad.h
+xscreensaver.o: XScreenSaver_ad.h
+xscreensaver-getimage.o: XScreenSaver_ad.h
 
 xscreensaver-getimage: $(GETIMG_OBJS)
        $(CC) $(LDFLAGS) -o $@ $(GETIMG_OBJS) $(GETIMG_LIBS) -lm
@@ -795,7 +815,7 @@ pdf2jpeg: $(PDF2JPEG_OBJS)
 
 
 TEST_PASSWD_OBJS = test-passwd.o $(LOCK_OBJS_1) $(PASSWD_OBJS) \
-        subprocs.o setuid.o splash.o prefs.o \
+        subprocs.o setuid.o splash.o prefs.o mlstring.o exec.o \
        $(SAVER_UTIL_OBJS)
 test-passwd.o: XScreenSaver_ad.h
 
@@ -810,7 +830,7 @@ test-xdpms: test-xdpms.o
        $(X_PRE_LIBS) -lXt -lX11 -lXext $(X_EXTRA_LIBS)
 
 test-xinerama: test-xinerama.o
-       $(CC) $(LDFLAGS) -o $@ test-xinerama.o $(LIBS) $(X_LIBS) $(SAVER_LIBS)\
+       $(CC) $(LDFLAGS) -o $@ test-xinerama.o $(LIBS) $(X_LIBS) $(SAVER_LIBS) \
        $(X_PRE_LIBS) $(XINERAMA_LIBS) -lXt -lX11 -lXext $(X_EXTRA_LIBS)
 
 test-vp: test-vp.o
@@ -827,13 +847,22 @@ test-grab: test-grab.o
 test-apm: test-apm.o
        $(CC) $(LDFLAGS) -o $@ test-apm.o $(SAVER_LIBS) -lapm
 
+test-mlstring.o: mlstring.c
+test-mlstring: test-mlstring.o
+       $(CC) -DTEST $(LDFLAGS) -o $@ test-mlstring.o $(SAVER_LIBS)
+
 TEST_FADE_OBJS = test-fade.o $(UTILS_SRC)/fade.o $(DEMO_UTIL_OBJS)
 test-fade: test-fade.o $(UTILS_BIN)/fade.o
        $(CC) $(LDFLAGS) -o $@ $(TEST_FADE_OBJS) $(SAVER_LIBS)
 
+TEST_SCREENS_OBJS = test-screens.o $(DEMO_UTIL_OBJS)
+test-screens.o: screens.c
+test-screens: test-screens.o
+       $(CC) $(LDFLAGS) -o $@ $(TEST_SCREENS_OBJS) $(SAVER_LIBS)
+
 
 xdpyinfo.o: xdpyinfo.c
-       $(CC) -c $(INCLUDES) -DHAVE_GLX $(CFLAGS) $(X_CFLAGS) \
+       $(CC) -c $(INCLUDES) -DHAVE_GLX $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) \
          $(srcdir)/xdpyinfo.c
 
 xdpyinfo: xdpyinfo.o
@@ -848,6 +877,7 @@ xdpyinfo: xdpyinfo.o
 
 demo-Gtk-conf.o: ../config.h
 demo-Gtk-conf.o: $(srcdir)/demo-Gtk-conf.h
+demo-Gtk-conf.o: $(UTILS_SRC)/xscreensaver-intl.h
 demo-Gtk.o: XScreenSaver_ad.h
 demo-Gtk.o: ../config.h
 demo-Gtk.o: $(srcdir)/demo-Gtk-conf.h
@@ -855,6 +885,12 @@ demo-Gtk.o: $(srcdir)/demo-Gtk-support.h
 demo-Gtk.o: $(srcdir)/demo-Gtk-widgets.h
 demo-Gtk.o: $(srcdir)/prefs.h
 demo-Gtk.o: $(srcdir)/remote.h
+demo-Gtk.o: $(srcdir)/types.h
+demo-Gtk.o: $(UTILS_SRC)/resources.h
+demo-Gtk.o: $(UTILS_SRC)/usleep.h
+demo-Gtk.o: $(UTILS_SRC)/version.h
+demo-Gtk.o: $(UTILS_SRC)/visual.h
+demo-Gtk.o: $(UTILS_SRC)/xscreensaver-intl.h
 demo-Gtk-support.o: ../config.h
 demo-Gtk-support.o: $(srcdir)/demo-Gtk-support.h
 demo-Gtk-widgets.o: ../config.h
@@ -865,59 +901,125 @@ demo-Xm.o: ../config.h
 demo-Xm-widgets.o: ../config.h
 dpms.o: ../config.h
 dpms.o: $(srcdir)/prefs.h
+dpms.o: $(srcdir)/types.h
 dpms.o: $(srcdir)/xscreensaver.h
 exec.o: ../config.h
+exec.o: $(srcdir)/exec.h
+lock.o: $(srcdir)/auth.h
 lock.o: ../config.h
+lock.o: $(srcdir)/mlstring.h
 lock.o: $(srcdir)/prefs.h
+lock.o: $(srcdir)/types.h
+lock.o: $(UTILS_SRC)/resources.h
 lock.o: $(srcdir)/xscreensaver.h
+mlstring.o: $(srcdir)/mlstring.h
+passwd.o: $(srcdir)/auth.h
 passwd.o: ../config.h
+passwd.o: $(srcdir)/prefs.h
+passwd.o: $(srcdir)/types.h
+passwd.o: $(srcdir)/xscreensaver.h
 passwd-pwent.o: ../config.h
 prefs.o: ../config.h
 prefs.o: $(srcdir)/prefs.h
+prefs.o: $(srcdir)/types.h
+prefs.o: $(UTILS_SRC)/resources.h
+prefs.o: $(UTILS_SRC)/version.h
 remote.o: ../config.h
 remote.o: $(srcdir)/remote.h
+screens.o: ../config.h
+screens.o: $(srcdir)/prefs.h
+screens.o: $(srcdir)/types.h
+screens.o: $(UTILS_SRC)/visual.h
+screens.o: $(srcdir)/xscreensaver.h
 setuid.o: ../config.h
 setuid.o: $(srcdir)/prefs.h
+setuid.o: $(srcdir)/types.h
 setuid.o: $(srcdir)/xscreensaver.h
 splash.o: ../config.h
 splash.o: $(srcdir)/prefs.h
+splash.o: $(srcdir)/types.h
+splash.o: $(UTILS_SRC)/resources.h
 splash.o: $(srcdir)/xscreensaver.h
 stderr.o: ../config.h
 stderr.o: $(srcdir)/prefs.h
+stderr.o: $(srcdir)/types.h
+stderr.o: $(UTILS_SRC)/resources.h
+stderr.o: $(UTILS_SRC)/visual.h
 stderr.o: $(srcdir)/xscreensaver.h
 subprocs.o: ../config.h
+subprocs.o: $(srcdir)/exec.h
 subprocs.o: $(srcdir)/prefs.h
+subprocs.o: $(srcdir)/types.h
+subprocs.o: $(UTILS_SRC)/visual.h
+subprocs.o: $(UTILS_SRC)/yarandom.h
 subprocs.o: $(srcdir)/xscreensaver.h
 test-apm.o: ../config.h
 test-fade.o: ../config.h
 test-fade.o: $(srcdir)/prefs.h
+test-fade.o: $(srcdir)/types.h
+test-fade.o: $(UTILS_SRC)/fade.h
 test-fade.o: $(srcdir)/xscreensaver.h
 test-grab.o: ../config.h
+test-mlstring.o: $(srcdir)/mlstring.c
+test-mlstring.o: $(srcdir)/mlstring.h
 test-passwd.o: XScreenSaver_ad.h
+test-passwd.o: $(srcdir)/auth.h
 test-passwd.o: ../config.h
 test-passwd.o: $(srcdir)/prefs.h
+test-passwd.o: $(srcdir)/types.h
+test-passwd.o: $(UTILS_SRC)/resources.h
+test-passwd.o: $(UTILS_SRC)/version.h
+test-passwd.o: $(UTILS_SRC)/visual.h
 test-passwd.o: $(srcdir)/xscreensaver.h
 test-randr.o: ../config.h
+test-screens.o: ../config.h
+test-screens.o: $(srcdir)/prefs.h
+test-screens.o: $(srcdir)/screens.c
+test-screens.o: $(srcdir)/types.h
+test-screens.o: $(UTILS_SRC)/visual.h
+test-screens.o: $(srcdir)/xscreensaver.h
 test-uid.o: ../config.h
 test-vp.o: ../config.h
 test-xdpms.o: ../config.h
 test-xinerama.o: ../config.h
 timers.o: ../config.h
 timers.o: $(srcdir)/prefs.h
+timers.o: $(srcdir)/types.h
 timers.o: $(srcdir)/xscreensaver.h
 windows.o: ../config.h
 windows.o: $(srcdir)/prefs.h
+windows.o: $(srcdir)/types.h
+windows.o: $(UTILS_SRC)/fade.h
+windows.o: $(UTILS_SRC)/visual.h
 windows.o: $(srcdir)/xscreensaver.h
 xscreensaver-command.o: ../config.h
 xscreensaver-command.o: $(srcdir)/remote.h
+xscreensaver-command.o: $(UTILS_SRC)/version.h
 xscreensaver-getimage.o: ../config.h
 xscreensaver-getimage.o: XScreenSaver_ad.h
 xscreensaver-getimage.o: $(srcdir)/prefs.h
+xscreensaver-getimage.o: $(srcdir)/types.h
+xscreensaver-getimage.o: $(UTILS_SRC)/colorbars.h
+xscreensaver-getimage.o: $(UTILS_SRC)/grabscreen.h
+xscreensaver-getimage.o: $(UTILS_SRC)/resources.h
+xscreensaver-getimage.o: $(UTILS_SRC)/utils.h
+xscreensaver-getimage.o: $(UTILS_SRC)/version.h
+xscreensaver-getimage.o: $(UTILS_SRC)/visual.h
+xscreensaver-getimage.o: $(UTILS_SRC)/vroot.h
+xscreensaver-getimage.o: $(UTILS_SRC)/yarandom.h
 xscreensaver.o: XScreenSaver_ad.h
+xscreensaver.o: $(srcdir)/auth.h
 xscreensaver.o: ../config.h
 xscreensaver.o: $(srcdir)/prefs.h
+xscreensaver.o: $(srcdir)/types.h
+xscreensaver.o: $(UTILS_SRC)/resources.h
+xscreensaver.o: $(UTILS_SRC)/usleep.h
+xscreensaver.o: $(UTILS_SRC)/version.h
+xscreensaver.o: $(UTILS_SRC)/visual.h
+xscreensaver.o: $(UTILS_SRC)/yarandom.h
 xscreensaver.o: $(srcdir)/xscreensaver.h
 xset.o: ../config.h
 xset.o: $(srcdir)/prefs.h
+xset.o: $(srcdir)/types.h
 xset.o: $(srcdir)/xscreensaver.h