# driver/Makefile.in --- xscreensaver, Copyright © 1997-2021 Jamie Zawinski. # the `../configure' script generates `driver/Makefile' from this file. @SET_MAKE@ .SUFFIXES: .SUFFIXES: .c .m .o .desktop .desktop.in srcdir = @srcdir@ VPATH = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = .. install_prefix = prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @PO_DATADIR@/locale mandir = @mandir@ libexecdir = @libexecdir@ sysconfdir = @sysconfdir@ # A = suffix for user commands in /usr/bin/ # B = suffix for helper programs in /usr/libexec/xscreensaver/ mansuffixA = 1 mansuffixB = 6 GTK_DATADIR = @GTK_DATADIR@ GTK_APPDIR = $(GTK_DATADIR)/applications GTK_ICONDIR = $(GTK_DATADIR)/pixmaps GTK_UIDIR = $(GTK_DATADIR)/xscreensaver/ui HACKDIR = @HACKDIR@ HACK_CONF_DIR = @HACK_CONF_DIR@ CC = @CC@ CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ DEFS = @DEFS@ LIBS = @LIBS@ DEPEND = @DEPEND@ DEPEND_FLAGS = @DEPEND_FLAGS@ DEPEND_DEFINES = @DEPEND_DEFINES@ INSTALL = @INSTALL@ SUID_FLAGS = -o root -m 4755 INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SETUID = $(INSTALL_PROGRAM) $(SUID_FLAGS) 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@ PNG_LIBS = @PNG_LIBS@ XFT_LIBS = @XFT_LIBS@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTL_LIBS = @INTLLIBS@ # 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.) # # I think (but am not totally sure) that LIBS is also really "LDFLAGS". AD_DIR = @APPDEFAULTS@ # $(sysconfdir) is either /usr/local/etc or /usr/etc but this must be /etc. PAM_ROOT = /etc PAM_DIR = $(PAM_ROOT)/pam.d PAM_CONF = $(PAM_ROOT)/pam.conf ICON_SRC = $(UTILS_SRC)/images LOGO = $(ICON_SRC)/logo-50.xpm GTK_ICONS = $(ICON_SRC)/screensaver-*.png UTILS_SRC = $(srcdir)/../utils UTILS_BIN = ../utils INCLUDES_1 = -I. -I$(srcdir) -I$(UTILS_SRC) -I.. INCLUDES = $(INCLUDES_1) @INCLUDES@ LIBS_PRE = $(LIBS) $(X_LIBS) $(X_PRE_LIBS) LIBS_POST = $(X_EXTRA_LIBS) XDPMS_LIBS = @XDPMS_LIBS@ XINERAMA_LIBS = @XINERAMA_LIBS@ $(FIXME) XINPUT_LIBS = -lXi XML_LIBS = @XML_LIBS@ DAEMON_DEFS = -DDEFAULT_PATH_PREFIX='"@HACKDIR@"' -DAD_DIR='"$(AD_DIR)"' DAEMON_SRCS = xscreensaver.c blurb.c atoms.c clientmsg.c xinput.c prefs.c DAEMON_OBJS = xscreensaver.o blurb.o atoms.o clientmsg.o xinput.o prefs.o \ $(UTILS_BIN)/xmu.o DAEMON_LIBS = $(LIBS_PRE) $(XINPUT_LIBS) -lX11 $(LIBS_POST) GFX_DEFS = -DLOCALEDIR=\"$(localedir)\" GFX_SRCS = xscreensaver-gfx.c screens.c windows.c subprocs.c \ exec.c prefsw.c dpms.c fade.c exts.c atomswm.c GFX_OBJS = xscreensaver-gfx.o screens.o windows.o subprocs.o \ exec.o prefsw.o dpms.o fade.o exts.o atomswm.o \ prefs.o blurb.o atoms.o clientmsg.o xinput.o \ $(UTILS_BIN)/xmu.o \ $(UTILS_BIN)/yarandom.o \ $(UTILS_BIN)/resources.o \ $(UTILS_BIN)/visual.o \ $(UTILS_BIN)/usleep.o \ $(UTILS_BIN)/font-retry.o \ $(UTILS_BIN)/logo.o \ $(UTILS_BIN)/minixpm.o \ $(UTILS_BIN)/xft.o \ $(UTILS_BIN)/utf8wc.o \ $(UTILS_BIN)/xshm.o \ $(UTILS_BIN)/aligned_malloc.o GFX_LIBS = $(LIBS_PRE) $(XFT_LIBS) $(XDPMS_LIBS) $(XINERAMA_LIBS) \ @SAVER_LIBS@ -lXt -lX11 -lXext -lXi $(LIBS_POST) $(INTL_LIBS) PWENT_SRCS = passwd-pwent.c PWENT_OBJS = passwd-pwent.o KERBEROS_SRCS = passwd-kerberos.c KERBEROS_OBJS = passwd-kerberos.o PAM_SRCS = passwd-pam.c PAM_OBJS = passwd-pam.o PWHELPER_SRCS = passwd-helper.c PWHELPER_OBJS = passwd-helper.o PASSWD_SRCS = @PASSWD_SRCS@ PASSWD_OBJS = @PASSWD_OBJS@ LOCK_SRCS = @LOCK_SRCS@ LOCK_OBJS = @LOCK_OBJS@ AUTH_DEFS = -DLOCALEDIR=\"$(localedir)\" -DAD_DIR='"$(AD_DIR)"' AUTH_SRCS = xscreensaver-auth.c dialog.c passwd.c setuid.c AUTH_OBJS = xscreensaver-auth.o $(AUTH_OBJS_1) AUTH_OBJS_1 = dialog.o passwd.o setuid.o \ @PASSWD_OBJS@ \ blurb.o screens.o xinput.o prefs.o atoms.o atomswm.o \ $(UTILS_BIN)/xft.o \ $(UTILS_BIN)/xftwrap.o \ $(UTILS_BIN)/utf8wc.o \ $(UTILS_BIN)/font-retry.o \ $(UTILS_BIN)/yarandom.o \ $(UTILS_BIN)/usleep.o \ $(UTILS_BIN)/resources.o \ $(UTILS_BIN)/logo.o \ $(UTILS_BIN)/minixpm.o AUTH_LIBS = $(LIBS_PRE) $(XFT_LIBS) $(XINPUT_LIBS) $(XINERAMA_LIBS) \ @SAVER_LIBS@ -lXt -lX11 -lXext -lXi \ @PASSWD_LIBS@ $(LIBS_POST) $(INTL_LIBS) SYSTEMD_DEFS = SYSTEMD_SRCS = xscreensaver-systemd.c SYSTEMD_OBJS = xscreensaver-systemd.o blurb.o $(UTILS_BIN)/yarandom.o SYSTEMD_LIBS = $(LIBS_PRE) @SYSTEMD_LIBS@ -lX11 $(LIBS_POST) CMD_DEFS = CMD_SRCS = remote.c xscreensaver-command.c CMD_OBJS = remote.o xscreensaver-command.o blurb.o atoms.o clientmsg.o CMD_LIBS = $(LIBS_PRE) $(XINPUT_LIBS) -lX11 -lXext $(LIBS_POST) GTK_DEFS = -DHACK_CONFIGURATION_PATH='"$(HACK_CONF_DIR)"' \ -DDEFAULT_PATH_PREFIX='"@HACKDIR@"' \ -DDEFAULT_ICONDIR='"$(GTK_UIDIR)"' \ -DLOCALEDIR=\"$(localedir)\" \ -I$(ICON_SRC) GTK_SRCS = demo-Gtk.c demo-Gtk-conf.c GTK_OBJS = demo-Gtk.o demo-Gtk-conf.o \ blurb.o exec.o prefs.o prefsw.o dpms.o remote.o \ clientmsg.o atoms.o \ $(UTILS_BIN)/xmu.o \ $(UTILS_BIN)/resources.o \ $(UTILS_BIN)/visual.o \ $(UTILS_BIN)/usleep.o GTK_LIBS = $(LIBS_PRE) $(INTL_LIBS) $(XDPMS_LIBS) \ $(XINERAMA_LIBS) $(XML_LIBS) @GTK_LIBS@ \ -lXt -lX11 -lXext -lXi $(LIBS_POST) MOTIF_DEFS = -DHACK_CONFIGURATION_PATH='"$(HACK_CONF_DIR)"' \ -DDEFAULT_PATH_PREFIX='"@HACKDIR@"' MOTIF_SRCS = demo-Xm.c demo-Xm-widgets.c MOTIF_OBJS = demo-Xm.o demo-Xm-widgets.o \ blurb.o exec.o prefs.o prefsw.o dpms.o remote.o \ clientmsg.o atoms.o \ $(UTILS_BIN)/xmu.o \ $(UTILS_BIN)/resources.o \ $(UTILS_BIN)/visual.o \ $(UTILS_BIN)/usleep.o MOTIF_LIBS = $(LIBS_PRE) $(XDPMS_LIBS) $(XDPMS_LIBS) @MOTIF_LIBS@ \ @PNG_LIBS@ -lXt -lX11 -lXext -lXi $(LIBS_POST) TEST_SRCS = test-passwd.c test-uid.c test-xdpms.c test-grab.c \ test-fade.c test-xinerama.c test-vp.c test-randr.c \ xdpyinfo.c test-screens.c test-yarandom.c test-xinput.c \ test-xkb.c TEST_EXES = test-passwd test-uid test-xdpms test-grab \ test-fade test-xinerama test-vp test-randr \ xdpyinfo test-screens test-yarandom test-xinput \ test-xkb EXES = xscreensaver xscreensaver-command xscreensaver-settings UTIL_EXES = xscreensaver-gfx @EXES_SYSTEMD@ SETUID_EXES = xscreensaver-auth DEMO_EXES = @ALL_DEMO_PROGRAMS@ EXES_SYSTEMD = xscreensaver-systemd HDRS = XScreenSaver_ad.h XScreenSaver_Xm_ad.h \ xscreensaver.h prefs.h remote.h exec.h \ demo-Gtk-conf.h auth.h types.h blurb.h atoms.h clientmsg.h \ screens.h xinput.h fade.h MENA = xscreensaver.man xscreensaver-settings.man \ xscreensaver-command.man MENB = xscreensaver-gfx.man xscreensaver-auth.man \ xscreensaver-command.man xscreensaver-systemd.man EXTRAS = README Makefile.in \ XScreenSaver.ad.in XScreenSaver-Xm.ad xscreensaver.pam.in \ xscreensaver.ui screensaver-properties.desktop.in \ .gdbinit TARFILES = $(DAEMON_SRCS) $(GFX_SRCS) $(AUTH_SRCS) $(SYSTEMD_SRCS) \ $(CMD_SRCS) $(GTK_SRCS) $(MOTIF_SRCS) $(PWENT_SRCS) \ $(PWHELPER_SRCS) $(KERBEROS_SRCS) $(PAM_SRCS) \ $(HDRS) $(MENA) $(MENB) $(TEST_SRCS) $(EXTRAS) default: $(EXES) $(UTIL_EXES) $(SETUID_EXES) all: $(EXES) $(UTIL_EXES) $(SETUID_EXES) $(DEMO_EXES) tests: $(TEST_EXES) ############################################################################## # # Installation # ############################################################################## install: install-program install-ad install-man install-xml \ install-pam install-gnome uninstall: uninstall-program uninstall-ad uninstall-man uninstall-xml \ uninstall-gnome install-strip: $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install install-program:: $(EXES) @if [ ! -d $(install_prefix)$(bindir) ]; then \ $(INSTALL_DIRS) $(install_prefix)$(bindir) ; \ fi ; \ if [ ! -d $(install_prefix)$(HACKDIR) ]; then \ $(INSTALL_DIRS) $(install_prefix)$(HACKDIR) ; \ fi install-program:: $(EXES) @inst="$(INSTALL_PROGRAM)" ; \ for exe in $(EXES); do \ echo $$inst $$exe $(install_prefix)$(bindir)/$$exe ; \ $$inst $$exe $(install_prefix)$(bindir)/$$exe ; \ done install-program:: $(UTIL_EXES) @inst="$(INSTALL_PROGRAM)" ; \ for exe in $(UTIL_EXES); do \ echo $$inst $$exe $(install_prefix)$(HACKDIR)/$$exe ; \ $$inst $$exe $(install_prefix)$(HACKDIR)/$$exe ; \ done install-program:: $(SETUID_EXES) @inst="$(INSTALL_PROGRAM)" ; \ idir="$(install_prefix)$(HACKDIR)" ; \ if [ @SETUID_AUTH@ = yes ]; then \ inst="$(INSTALL_SETUID)" ; \ else \ inst="$(INSTALL_PROGRAM)" ; \ fi ; \ for exe in $(SETUID_EXES); do \ echo $$inst $$exe $$idir/$$exe ; \ if $$inst $$exe $$idir/$$exe ; then \ true ; \ elif [ @SETUID_AUTH@ = yes ]; then \ echo $(INSTALL_PROGRAM) $$exe $$idir/$$exe ; \ if $(INSTALL_PROGRAM) $$exe $$idir/$$exe ; then \ echo "" ; \ echo "WARNING: unable to install $$exe setuid." ; \ echo "WARNING: authentication may not work!" ; \ echo "" ; \ else \ exit 1 ; \ fi ; \ else \ exit 1 ; \ fi ; \ done # Symlink from xscreensaver-demo -> xscreensaver-settings in /usr/bin/ install-program:: @D=$(install_prefix)$(bindir) ; \ echo ln -sf xscreensaver-settings $$D/xscreensaver-demo ; \ ln -sf xscreensaver-settings $$D/xscreensaver-demo install-ad: XScreenSaver.ad @if [ ! -d $(install_prefix)$(AD_DIR) ]; then \ $(INSTALL_DIRS) $(install_prefix)$(AD_DIR) ; \ fi ; \ echo $(INSTALL_DATA) XScreenSaver.ad \ $(install_prefix)$(AD_DIR)/XScreenSaver ; \ if $(INSTALL_DATA) XScreenSaver.ad \ $(install_prefix)$(AD_DIR)/XScreenSaver ; then \ true ; \ else \ e=echo ; \ if [ -f $(install_prefix)$(AD_DIR)/XScreenSaver ]; then \ $$e "" ;\ $$e " ####################################################################";\ $$e " Warning: unable to install $(install_prefix)$(AD_DIR)/XScreenSaver" ;\ $$e " That file exists, and is unwritable. It is probably from" ;\ $$e " an older version of xscreensaver, and could cause things" ;\ $$e " to malfunction. Please delete it!" ;\ $$e " ####################################################################";\ $$e "" ;\ exit 1 ; \ else \ $$e "" ;\ $$e " ####################################################################";\ $$e " Warning: unable to install $(install_prefix)$(AD_DIR)/XScreenSaver" ;\ $$e " This is probably ok; it should work without that file." ;\ $$e " ####################################################################";\ $$e "" ;\ exit 0 ; \ fi \ fi # When installing man pages, we install "foo.man" as "foo.N" and update # the .TH line in the installed file with one like # # .TH XScreenSaver N "V.VV (DD-MMM-YYYY)" "X Version 11" # # where N is the manual section suffix (usually 1 or 6, depending). # install-man:: $(MENA) $(MENB) @ \ U=$(UTILS_SRC)/version.h ; \ V=`sed -n 's/.*xscreensaver \([0-9]\.[^)]*)\).*/\1/p' < $$U | \ head -1` ; \ T=/tmp/xs$$$$.man ; \ SUFA=$(mansuffixA) ; \ SUFB=$(mansuffixB) ; \ \ INST() { \ TH=".TH XScreenSaver $$SUF \"$$V\" \"X Version 11\"" ; \ DIR="$(install_prefix)$(mandir)/man$$SUF" ; \ if [ ! -d $$DIR ]; then \ echo $(INSTALL_DIRS) $$DIR ; \ $(INSTALL_DIRS) $$DIR ; \ fi ; \ \ sed -e "s/^\.TH.*/$$TH/" \ -e "s/^\(\.BR xscreens[^ ]* (\)[0-9]\(.*\)/\1$$SUFA\2/" \ -e "s@(MANSUFFIX)@($$SUFB)@g" \ < $(srcdir)/$$man > $$T ; \ manbase=`echo $$man | sed 's/\.man$$//'` ; \ echo $(INSTALL_DATA) $$man $$DIR/$$manbase.$$SUF ; \ $(INSTALL_DATA) $$T $$DIR/$$manbase.$$SUF ; \ } ; \ \ SUF=$$SUFA ; for man in $(MENA); do INST ; done ; \ SUF=$$SUFB ; for man in $(MENB); do INST ; done ; \ rm -f $$T # Symlink from xscreensaver-demo.1 -> xscreensaver-settings.1 in /usr/man/man1/ install-man:: @D=$(install_prefix)$(mandir)/man$(mansuffixA) ; \ F1=xscreensaver-settings.$(mansuffixA) ; \ F2=xscreensaver-demo.$(mansuffixA) ; \ echo ln -sf $$F1 $$D/$$F2 ; \ ln -sf $$F1 $$D/$$F2 # These used to be in driver/ and installed into $(bindir) # Now they are in hacks/ and are installed into ${libexecdir}/xscreensaver/ OLD_EXES = xscreensaver-getimage xscreensaver-getimage-file \ xscreensaver-getimage-video xscreensaver-text \ xscreensaver-systemd OLD_MEN = xscreensaver-getimage.man xscreensaver-getimage-file.man \ xscreensaver-getimage-video.man xscreensaver-text.man \ xscreensaver-demo.man uninstall-program:: @for program in $(EXES) $(OLD_EXES); do \ echo rm -f $(install_prefix)$(bindir)/$$program ; \ rm -f $(install_prefix)$(bindir)/$$program ; \ done uninstall-program:: @for program in $(UTIL_EXES) $(SETUID_EXES); do \ echo rm -f $(install_prefix)$(HACKDIR)/$$program ; \ rm -f $(install_prefix)$(HACKDIR)/$$program ; \ done uninstall-ad: rm -f $(install_prefix)$(AD_DIR)/XScreenSaver uninstall-man: @men="$(MEN) $(OLD_MEN)" ; \ for man in $$men; do \ instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ; \ echo rm -f $(install_prefix)$(manAdir)/$$instname* ; \ rm -f $(install_prefix)$(manAdir)/$$instname* ; \ done install-pam: xscreensaver.pam @src="xscreensaver.pam" ; \ name=`sed -n 's/.*PAM_SERVICE_NAME[ ]*"\([^"]*\)".*$$/\1/p' \ < ../config.h` ; \ dir="$(install_prefix)$(PAM_DIR)" ; \ conf="$(PAM_CONF)" ; \ \ if [ -z "$$name" ]; then \ echo "PAM not configured, not installing" >&2 ; \ exit 0 ; \ fi ; \ \ if [ ! -d $(install_prefix)$(PAM_ROOT) ]; then \ echo $(INSTALL_DIRS) $(install_prefix)$(PAM_ROOT) ; \ $(INSTALL_DIRS) $(install_prefix)$(PAM_ROOT) ; \ fi ; \ \ if [ -d $$dir ] ; then \ \ if [ -f $$dir/xdm ]; then \ src2=$$dir/xdm ; \ elif [ -f $$dir/login ]; then \ src2=$$dir/login ; \ fi ; \ \ if [ -z "$$src2" ]; then \ echo $(INSTALL_DATA) $$src $$dir/$$name ; \ $(INSTALL_DATA) $$src $$dir/$$name ; \ else \ tmp="xscreensaver.pam.$$$$" ; \ grep '^#%\|^auth\|^@include' $$src2 > $$tmp ; \ if cmp -s $$tmp $$dir/$$name ; then \ echo "$$dir/$$name unchanged" ; \ else \ echo "Updating contents of $$dir/$$name from $$src2" ; \ $(INSTALL_DATA) $$tmp $$dir/$$name ; \ fi ; \ rm -f $$tmp ; \ fi ; \ \ if [ ! -f $$dir/$$name ]; then \ e=echo ; \ $$e "" ;\ $$e " ####################################################################";\ $$e " Warning: xscreensaver has been compiled with support for Pluggable" ;\ $$e " Authentication Modules (PAM). However, we were unable to" ;\ $$e " install the file \"$$dir/$$name\". XScreenSaver is" ;\ $$e " unlikely to work without this file." ;\ $$e " ####################################################################";\ $$e "" ;\ fi ; \ elif [ -f $$conf -a "x$$name" != "x" ]; then \ if ( grep $$name $$conf >/dev/null ); then \ echo "$$conf unchanged: already has an entry for $$name" ; \ else \ tmp="pam.conf.$$$$" ; \ grep -v $$name $$conf > $$tmp ; \ extras=`sed -n "s/^login\(.*auth.*\)$$/$$name\1/p" $$conf`; \ echo "$$extras" >> $$tmp ; \ if [ "x$$extras" = "x" ]; then \ echo "Error: no login rules in $$conf?" >&2 ; \ else \ echo "adding $$name rules to $$conf:" ; \ echo "" ; \ echo "$$extras" | sed 's/^/ /' ; \ fi ; \ $(INSTALL_DATA) $$tmp $$conf ; \ rm -f $$tmp ; \ fi ; \ if ( grep $$name $$conf >/dev/null ); then \ echo ; \ else \ e=echo ; \ $$e "" ;\ $$e " ####################################################################";\ $$e " Warning: xscreensaver has been compiled with support for Pluggable" ;\ $$e " Authentication Modules (PAM). However, we were unable to" ;\ $$e " install xscreensaver rules in the file $$conf." ;\ $$e " XScreenSaver is unlikely to work without this." ;\ $$e " ####################################################################";\ $$e "" ;\ fi ; \ else \ e=echo ; \ $$e "" ;\ $$e " ####################################################################";\ $$e " Warning: $$dir/ does not exist, not installing PAM config." ;\ $$e " ####################################################################";\ $$e "" ;\ fi # screensaver-properties.desktop # into /usr/share/applications/ install-gnome:: screensaver-properties.desktop @if [ "$(GTK_DATADIR)" != "" ]; then \ if [ ! -d "$(install_prefix)$(GTK_APPDIR)" ]; then \ echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_APPDIR)" ;\ $(INSTALL_DIRS) "$(install_prefix)$(GTK_APPDIR)" ;\ fi ;\ name2=xscreensaver-properties.desktop ;\ echo $(INSTALL_DATA) screensaver-properties.desktop \ $(install_prefix)$(GTK_APPDIR)/$$name2 ;\ $(INSTALL_DATA) screensaver-properties.desktop \ $(install_prefix)$(GTK_APPDIR)/$$name2 ;\ fi # xscreensaver.xpm # into /usr/share/pixmaps/ install-gnome:: $(LOGO) @if [ "$(GTK_DATADIR)" != "" ]; then \ if [ ! -d "$(install_prefix)$(GTK_ICONDIR)" ]; then \ echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_ICONDIR)" ;\ $(INSTALL_DIRS) "$(install_prefix)$(GTK_ICONDIR)" ;\ fi ;\ target=xscreensaver.xpm ;\ echo $(INSTALL_DATA) $(LOGO) \ $(install_prefix)$(GTK_ICONDIR)/$$target ;\ $(INSTALL_DATA) $(LOGO) \ $(install_prefix)$(GTK_ICONDIR)/$$target ;\ fi # ../utils/images/screensaver-*.png # into /usr/share/xscreensaver/ui/ install-gnome:: @if [ "$(GTK_DATADIR)" != "" ]; then \ if [ ! -d "$(install_prefix)$(GTK_UIDIR)" ]; then \ echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_UIDIR)" ;\ $(INSTALL_DIRS) "$(install_prefix)$(GTK_UIDIR)" ;\ fi ;\ for target in $(GTK_ICONS) ; do \ dest=`echo $$target | sed 's@^.*/@@'` ;\ echo $(INSTALL_DATA) $$target \ $(install_prefix)$(GTK_UIDIR)/$$dest ;\ $(INSTALL_DATA) $$target \ $(install_prefix)$(GTK_UIDIR)/$$dest ;\ done ;\ fi # xscreensaver.ui # into /usr/share/xscreensaver/ui/ install-gnome:: xscreensaver.ui @if [ "$(GTK_DATADIR)" != "" ]; then \ if [ ! -d "$(install_prefix)$(GTK_UIDIR)" ]; then \ echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_UIDIR)" ;\ $(INSTALL_DIRS) "$(install_prefix)$(GTK_UIDIR)" ;\ fi ;\ target=xscreensaver.ui ;\ echo $(INSTALL_DATA) $(srcdir)/$$target \ $(install_prefix)$(GTK_UIDIR)/$$target ;\ if $(INSTALL_DATA) $(srcdir)/$$target \ $(install_prefix)$(GTK_UIDIR)/$$target ;\ then true ;\ else \ e=echo ; \ $$e "" ;\ $$e " ####################################################################";\ $$e " Warning: unable to install $$target into" ;\ $$e " $(install_prefix)$(GTK_UIDIR)/." ;\ $$e " Without this file, xscreensaver-settings will not" ;\ $$e " be able to run properly." ;\ $$e " ####################################################################";\ $$e "" ;\ exit 1 ; \ fi ; \ fi # screensaver-properties.desktop # into /usr/share/applications/ uninstall-gnome:: @if [ "$(GTK_DATADIR)" != "" ]; then \ f=xscreensaver-properties.desktop ;\ echo rm -f $(install_prefix)$(GTK_APPDIR)/$$f ;\ rm -f $(install_prefix)$(GTK_APPDIR)/$$f ;\ fi # xscreensaver.xpm # into /usr/share/pixmaps/ uninstall-gnome:: @if [ "$(GTK_ICONDIR)" != "" ]; then \ target=xscreensaver.xpm ;\ echo rm -f $(install_prefix)$(GTK_ICONDIR)/$$target ;\ rm -f $(install_prefix)$(GTK_ICONDIR)/$$target ;\ fi # ../utils/images/screensaver-*.png # into /usr/share/xscreensaver/ui/ uninstall-gnome:: @if [ "$(GTK_DATADIR)" != "" ]; then \ for target in $(GTK_ICONS) ; do \ dest=`echo $$target | sed 's@^.*/@@'` ;\ echo rm -f $(install_prefix)$(GTK_UIDIR)/$$dest ;\ rm -f $(install_prefix)$(GTK_UIDIR)/$$dest ;\ done ;\ fi # xscreensaver.ui # into /usr/share/xscreensaver/ui/ uninstall-gnome:: @if [ "$(GTK_DATADIR)" != "" ]; then \ for target in xscreensaver.ui xscreensaver-demo.ui ; do \ echo rm -f $(install_prefix)$(GTK_UIDIR)/$$target ;\ rm -f $(install_prefix)$(GTK_UIDIR)/$$target ;\ done ;\ rmdir "$(GTK_UIDIR)" ;\ rmdir "$(GTK_DATADIR)/xscreensaver" ;\ exit 0 ;\ fi # /usr/share/xscreensaver/glade/ no longer used uninstall-gnome:: -rm -rf $(GTK_DATADIR)/xscreensaver/glade # /usr/share/xscreensaver/config/README install-xml: @dest=$(install_prefix)$(HACK_CONF_DIR) ; \ if [ ! -d $$dest ]; then \ $(INSTALL_DIRS) $$dest ; \ fi ; \ src=$(srcdir)/../hacks/config ; \ echo $(INSTALL_DATA) $$src/README $$dest/README ; \ $(INSTALL_DATA) $$src/README $$dest/README # /usr/share/xscreensaver/config/README uninstall-xml: rm -f $(install_prefix)$(HACK_CONF_DIR)/README ############################################################################## # # Clean and dependencies # ############################################################################## clean: -rm -f *.o a.out core $(EXES) $(UTIL_EXES) $(SETUID_EXES) \ $(DEMO_EXES) $(TEST_EXES) \ XScreenSaver_ad.h XScreenSaver_Xm_ad.h distclean: clean -rm -f \ TAGS *~ "#"* *.rej *.orig \ Makefile \ XScreenSaver.ad \ screensaver-properties.desktop \ xscreensaver.pam # 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_1) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) -- \ $(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: 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_1) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) -- \ $(SAVER_SRCS_1) $(SYSTEMD_SRCS) $(MOTIF_SRCS) $(GTK_SRCS) \ $(PWENT_SRCS) $(PWHELPER_SRCS) $(KERBEROS_SRCS) $(PAM_SRCS) \ $(LOCK_SRCS_1) $(DEMO_SRCS_1) $(CMD_SRCS) \ $(TEST_SRCS) 2>/dev/null | \ sort -d | \ ( \ awk '/^# .*Makefile.in ---/,/^# DO .*distdepend/' < Makefile.in ; \ sed -e '/^#.*/d' \ -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_Xm_ad\)@\1@g' \ -e 's@ $$(srcdir)/\(.*config\.h\)@ \1@g' ; \ echo '' \ ) > /tmp/distdepend.$$$$ && \ mv /tmp/distdepend.$$$$ Makefile.in # Updates the version number in the app-defaults file to be in sync with # the version number in version.h. This is so people can tell when they # 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 ../OSX/bindist.rtf" ; \ U=$(UTILS_SRC)/version.h ; \ V=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^ ]*\).*/\1/p' < $$U | head -1` ; \ 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 list_tarfiles: @$(MAKE) XScreenSaver_ad.h XScreenSaver_Xm_ad.h 2>&1 >/dev/null @find $(TARFILES) -type f -print | sort check_men: @badmen="" ; \ for exe in $(EXES); do \ if ! [ -f $(srcdir)/$$exe.man ]; then \ badmen="$$badmen $$exe" ; \ fi ; \ done ; \ if [ -n "$$badmen" ]; then \ echo "" ; \ echo "Warning: The following programs have no manuals:" ; \ echo "" ; \ for m in $$badmen ; do \ echo " $$m" ; \ done ; \ echo "" ; \ fi ############################################################################## # # Dependencies on utils/ # ############################################################################## $(UTILS_BIN)/overlay.o: $(UTILS_SRC)/overlay.c $(UTILS_BIN)/resources.o: $(UTILS_SRC)/resources.c $(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 $(UTILS_BIN)/hsv.o: $(UTILS_SRC)/hsv.c $(UTILS_BIN)/colors.o: $(UTILS_SRC)/colors.c $(UTILS_BIN)/grabscreen.o: $(UTILS_SRC)/grabscreen.c $(UTILS_BIN)/utf8wc.o: $(UTILS_SRC)/utf8wc.c $(UTILS_BIN)/xftwrap.o: $(UTILS_SRC)/xftwrap.c $(UTILS_BIN)/font-retry.o: $(UTILS_SRC)/font-retry.c $(UTILS_BIN)/xshm.o: $(UTILS_SRC)/xshm.c $(UTILS_BIN)/aligned_malloc.o: $(UTILS_SRC)/aligned_malloc.c UTIL_OBJS = $(UTILS_BIN)/overlay.o \ $(UTILS_BIN)/resources.o \ $(UTILS_BIN)/usleep.o \ $(UTILS_BIN)/visual.o \ $(UTILS_BIN)/xmu.o \ $(UTILS_BIN)/logo.o \ $(UTILS_BIN)/minixpm.o \ $(UTILS_BIN)/yarandom.o \ $(UTILS_BIN)/colorbars.o \ $(UTILS_BIN)/hsv.o \ $(UTILS_BIN)/colors.o \ $(UTILS_BIN)/grabscreen.o \ $(UTILS_BIN)/xft.o \ $(UTILS_BIN)/xftwrap.o \ $(UTILS_BIN)/utf8wc.o \ $(UTILS_BIN)/font-retry.o \ $(UTILS_BIN)/xshm.o \ $(UTILS_BIN)/aligned_malloc.o $(UTIL_OBJS): cd $(UTILS_BIN) ; \ $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" ############################################################################## # # Compiling the daemon: xscreensaver, xscreensaver-gfx, xscreensaver-auth, # xscreensaver-systemd and xscreensaver-comand. # ############################################################################## # How we build object files in this directory. CC_ALL=$(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) .c.o: $(CC) -c $(CC_ALL) $< # # subprocs takes an extra -D option. # subprocs.o: subprocs.c # $(CC) -c $(CC_ALL) $(SUBP_DEFS) $< # xscreensaver takes an extra -D option. xscreensaver.o: xscreensaver.c $(CC) -c $(CC_ALL) $(DAEMON_DEFS) $< xscreensaver-auth.o: XScreenSaver_ad.h xscreensaver-auth.o: xscreensaver-auth.c $(CC) -c $(CC_ALL) $(AUTH_DEFS) $< xscreensaver: $(DAEMON_OBJS) $(CC) $(LDFLAGS) -o $@ $(DAEMON_OBJS) $(DAEMON_LIBS) xscreensaver-gfx.o: XScreenSaver_ad.h xscreensaver-gfx.o: xscreensaver-gfx.c $(CC) -c $(CC_ALL) $(GFX_DEFS) $< xscreensaver-gfx: $(GFX_OBJS) $(CC) $(LDFLAGS) -o $@ $(GFX_OBJS) $(GFX_LIBS) dialog.o: dialog.c $(CC) -c $(CC_ALL) $(AUTH_DEFS) $< xscreensaver-auth: $(AUTH_OBJS) $(CC) $(LDFLAGS) -o $@ $(AUTH_OBJS) $(AUTH_LIBS) xscreensaver-systemd: $(SYSTEMD_OBJS) $(CC) $(LDFLAGS) -o $@ $(SYSTEMD_OBJS) $(SYSTEMD_LIBS) -lm xscreensaver-command: $(CMD_OBJS) $(CC) $(LDFLAGS) -o $@ $(CMD_OBJS) $(CMD_LIBS) ############################################################################## # # Compiling the GUI, xscreensaver-settings # ############################################################################## demo-Gtk.o: XScreenSaver_ad.h demo-Gtk.o: demo-Gtk.c $(CC) -c $(CC_ALL) $(GTK_DEFS) $< demo-Gtk-conf.o: demo-Gtk-conf.c $(CC) -c $(CC_ALL) $(GTK_DEFS) $< xscreensaver-settings-Gtk: $(GTK_OBJS) $(CC) $(LDFLAGS) -o $@ $(GTK_OBJS) $(GTK_LIBS) demo-Xm.o: XScreenSaver_ad.h demo-Xm.o: demo-Xm.c $(CC) -c $(CC_ALL) $(GTK_DEFS) $< demo-Xm-widgets.o: demo-Xm-widgets.c $(CC) -c $(CC_ALL) $(GTK_DEFS) $< xscreensaver-settings-Xm: $(MOTIF_OBJS) $(CC) $(LDFLAGS) -o $@ $(MOTIF_OBJS) $(MOTIF_LIBS) xscreensaver-settings: @PREFERRED_DEMO_PROGRAM@ @if [ "@PREFERRED_DEMO_PROGRAM@" = "" ]; then \ echo "WARNING: neither GTK nor Motif are available," \ "therefore no xscreensaver-settings!" ; \ rm -f $@@EXEEXT@ ; \ else \ echo cp -p @PREFERRED_DEMO_PROGRAM@@EXEEXT@ $@@EXEEXT@ ; \ cp -p @PREFERRED_DEMO_PROGRAM@@EXEEXT@ $@@EXEEXT@ ; \ fi # How we build the default app-defaults file into the program. # XScreenSaver_ad.h:: @TMP=/tmp/xs$$$$.h ; \ IN="XScreenSaver.ad" ; \ OUT=XScreenSaver_ad.h ; \ $(UTILS_SRC)/ad2c $$IN > $$TMP ; \ if cmp -s $$TMP $$OUT ; then \ rm -f "$$TMP" ; \ else \ echo $(UTILS_SRC)/ad2c $$IN \> $$OUT ; \ mv $$TMP $$OUT ; \ fi XScreenSaver_Xm_ad.h:: @TMP=/tmp/xs$$$$.h ; \ IN="XScreenSaver-Xm.ad" ; \ OUT=XScreenSaver_Xm_ad.h ; \ $(UTILS_SRC)/ad2c $$IN > $$TMP ; \ if cmp -s $$TMP $$OUT ; then \ rm -f "$$TMP" ; \ else \ echo $(UTILS_SRC)/ad2c $$IN \> $$OUT ; \ mv $$TMP $$OUT ; \ fi # Replace this with @INTLTOOL_DESKTOP_RULE@ once # https://bugs.launchpad.net/intltool/+bug/1749904 is fixed. .desktop.in.desktop: $(INTLTOOL_MERGE) $(top_srcdir)/po/*.po $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) \ $(INTLTOOL_V_MERGE_OPTIONS) -d -u \ -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@ ############################################################################## # # Debugging utilities, not built by default # ############################################################################## TESTPASS_OBJS = test-passwd.o test-passwd-b.o $(AUTH_OBJS_1) TESTPATH_DEFS = -Dxscreensaver_auth_conv=test_auth_conv $(AUTH_DEFS) test-passwd-b.o: XScreenSaver_ad.h test-passwd-b.o: $(srcdir)/xscreensaver-auth.c $(CC) -c $(CC_ALL) $(TESTPATH_DEFS) $< -o $@ test-passwd: $(TESTPASS_OBJS) $(CC) $(LDFLAGS) -o $@ $(TESTPASS_OBJS) $(AUTH_LIBS) test-uid: test-uid.o $(CC) $(LDFLAGS) -o $@ test-uid.o TESTDPMS_LIBS = $(LIBS_PRE) $(XDPMS_LIBS) -lXt -lX11 -lXext $(LIBS_POST) test-xdpms: test-xdpms.o blurb.o $(CC) $(LDFLAGS) -o $@ test-xdpms.o blurb.o $(TESTDPMS_LIBS) TESTXINPUT_OBJS = test-xinput.o blurb.o xinput.o TESTXINPUT_LIBS = $(LIBS_PRE) $(XDPMS_LIBS) -lXi -lXt -lX11 -lXext $(LIBS_POST) test-xinput: $(TESTXINPUT_OBJS) $(CC) $(LDFLAGS) -o $@ $(TESTXINPUT_OBJS) $(TESTXINPUT_LIBS) TESTXIN_LIBS = $(LIBS_PRE) $(XINERAMA_LIBS) -lXi -lXt -lX11 -lXext $(LIBS_POST) test-xinerama: test-xinerama.o blurb.o $(CC) $(LDFLAGS) -o $@ test-xinerama.o blurb.o $(TESTXIN_LIBS) TESTXKB_OBJS = test-xkb.o blurb.o TESTXKB_LIBS = $(LIBS_PRE) $(XDPMS_LIBS) -lXi -lXt -lX11 -lXext $(LIBS_POST) test-xkb: $(TESTXKB_OBJS) $(CC) $(LDFLAGS) -o $@ $(TESTXKB_OBJS) $(TESTXKB_LIBS) test-vp: test-vp.o blurb.o $(CC) $(LDFLAGS) -o $@ test-vp.o blurb.o $(GFX_LIBS) test-randr: test-randr.o blurb.o $(CC) $(LDFLAGS) -o $@ test-randr.o blurb.o $(GFX_LIBS) TESTGRAB_LIBS = $(LIBS_PRE) -lXt -lX11 -lXext $(LIBS_POST) test-grab: test-grab.o blurb.o $(CC) $(LDFLAGS) -o $@ test-grab.o blurb.o $(TESTGRAB_LIBS) TEST_FADE_OBJS = test-fade.o fade.o blurb.o atoms.o clientmsg.o xinput.o \ $(UTILS_BIN)/visual.o $(UTILS_BIN)/resources.o $(UTILS_BIN)/usleep.o \ $(UTILS_BIN)/logo.o $(UTILS_BIN)/minixpm.o $(UTILS_BIN)/xshm.o \ $(UTILS_BIN)/xmu.o $(UTILS_BIN)/aligned_malloc.o test-fade: $(TEST_FADE_OBJS) $(CC) $(LDFLAGS) -o $@ $(TEST_FADE_OBJS) $(GFX_LIBS) TEST_SCREENS_OBJS = test-screens.o screens.o blurb.o test-screens: $(TEST_SCREENS_OBJS) $(CC) $(LDFLAGS) -o $@ $(TEST_SCREENS_OBJS) $(GFX_LIBS) test-yarandom: test-yarandom.o blurb.o $(CC) -DTEST $(LDFLAGS) -o $@ test-yarandom.o blurb.o $(UTILS_BIN)/yarandom.o XDPY_DEFS = -DHAVE_GLX $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) XDPY_LIBS = $(LIBS_PRE) -lGL -lX11 -lXext $(LIBS_POST) xdpyinfo.o: xdpyinfo.c $(CC) -c $(INCLUDES) $(XDPY_DEFS) $(srcdir)/xdpyinfo.c xdpyinfo: xdpyinfo.o $(CC) $(LDFLAGS) -o $@ xdpyinfo.o $(XDPY_LIBS) ############################################################################## # # DO NOT DELETE: updated by make distdepend 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: $(srcdir)/atoms.h demo-Gtk.o: $(srcdir)/blurb.h demo-Gtk.o: ../config.h demo-Gtk.o: $(srcdir)/demo-Gtk-conf.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)/xmu.h demo-Gtk.o: $(UTILS_SRC)/xscreensaver-intl.h demo-Xm.o: XScreenSaver_Xm_ad.h demo-Xm.o: XScreenSaver_ad.h demo-Xm.o: $(srcdir)/atoms.h demo-Xm.o: $(srcdir)/blurb.h demo-Xm.o: ../config.h demo-Xm.o: $(srcdir)/remote.h demo-Xm.o: $(srcdir)/types.h demo-Xm.o: $(UTILS_SRC)/resources.h demo-Xm.o: $(UTILS_SRC)/version.h demo-Xm.o: $(UTILS_SRC)/visual.h demo-Xm.o: $(UTILS_SRC)/xmu.h demo-Xm-widgets.o: ../config.h passwd-helper.o: $(srcdir)/auth.h passwd-helper.o: $(srcdir)/blurb.h passwd-helper.o: ../config.h passwd-kerberos.o: $(srcdir)/auth.h passwd-kerberos.o: $(srcdir)/blurb.h passwd-kerberos.o: ../config.h passwd-pam.o: $(srcdir)/auth.h passwd-pam.o: $(srcdir)/blurb.h passwd-pam.o: ../config.h passwd-pwent.o: $(srcdir)/auth.h passwd-pwent.o: $(srcdir)/blurb.h passwd-pwent.o: ../config.h remote.o: $(srcdir)/atoms.h remote.o: $(srcdir)/blurb.h remote.o: $(srcdir)/clientmsg.h remote.o: ../config.h remote.o: $(srcdir)/remote.h test-fade.o: $(srcdir)/atoms.h test-fade.o: $(srcdir)/blurb.h test-fade.o: ../config.h test-fade.o: $(srcdir)/fade.h test-fade.o: $(srcdir)/screens.h test-fade.o: $(srcdir)/types.h test-fade.o: $(UTILS_SRC)/resources.h test-fade.o: $(srcdir)/xscreensaver.h test-grab.o: $(srcdir)/blurb.h test-grab.o: ../config.h test-passwd.o: $(srcdir)/auth.h test-passwd.o: $(srcdir)/blurb.h test-passwd.o: ../config.h test-randr.o: $(srcdir)/blurb.h test-randr.o: ../config.h test-screens.o: $(srcdir)/blurb.h test-screens.o: ../config.h test-screens.o: $(srcdir)/screens.h test-screens.o: $(UTILS_SRC)/visual.h test-uid.o: ../config.h test-vp.o: $(srcdir)/blurb.h test-vp.o: ../config.h test-xdpms.o: $(srcdir)/blurb.h test-xdpms.o: ../config.h test-xinerama.o: $(srcdir)/blurb.h test-xinerama.o: ../config.h test-xinput.o: $(srcdir)/blurb.h test-xinput.o: ../config.h test-xinput.o: $(srcdir)/xinput.h test-xkb.o: $(srcdir)/blurb.h test-xkb.o: ../config.h test-yarandom.o: $(srcdir)/blurb.h test-yarandom.o: ../config.h test-yarandom.o: $(UTILS_SRC)/yarandom.h xscreensaver-command.o: $(srcdir)/atoms.h xscreensaver-command.o: $(srcdir)/blurb.h xscreensaver-command.o: ../config.h xscreensaver-command.o: $(srcdir)/remote.h xscreensaver-command.o: $(UTILS_SRC)/version.h xscreensaver-systemd.o: $(srcdir)/blurb.h xscreensaver-systemd.o: ../config.h xscreensaver-systemd.o: $(UTILS_SRC)/queue.h xscreensaver-systemd.o: $(UTILS_SRC)/version.h xscreensaver-systemd.o: $(UTILS_SRC)/yarandom.h